Added passkey-based file encryption, multiple file upload/download su… #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…pport, updated Main and FileTesting
Description
This update introduces passkey-based encryption for file transfers and adds support for uploading and downloading multiple files in the P2P network. The following changes were made:
Added passkey layer for downloading files (encryption/decryption using symmetric AES keys).
Updated Main.java to allow manual passkey input for upload and download.
Updated FileTesting.java to support multiple file uploads and downloads with passkeys.
Refactored ConnectionHandlerSequential for encryption/decryption handling.
Added utility class CryptoUtils.java for key derivation and encryption/decryption.
Added downloads folder structure for received files.
Updated peer handshake protocol to handle passkey-based transfers.
Related Issue
Enhances security for file transfers in the current P2P setup.
Implements feature: passkey-based access to files.
Motivation and Context
Previously, anyone with a file hash could download files from peers.
This update ensures that only users with the correct passkey can decrypt and access the file, improving security.
How Has This Been Tested?
Tested multiple file uploads and downloads between two peers on localhost.
Verified correct encryption and decryption with passkey.
Tested incorrect passkey scenarios to ensure download fails if the passkey is wrong.
Peer-to-peer handshake and registration with the central registry remain functional.
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:
Test Configuration:
*Java 17
*Windows 10 / Linux (tested on localhost)
*Ports: 3000 (central), 4000 & 5000 (peers)