Added passkey-based file encryption, multiple file upload/download su…#9
Added passkey-based file encryption, multiple file upload/download su…#9ShreyashkumarDube wants to merge 3 commits intoContriHUB:mainfrom
Conversation
…pport, updated Main and FileTesting
|
could you share a video demo of what you have done and also submit this PR for verification |
|
also how does your passkey based system actually works and how is it implemented |
|
Here is the detailed video of how it works: 20251004_134928.mp4How this passkey based system works? |
|
was the previous Assymetric key based encryption removed?? keep the asymetric encryption and add passkey based encryption on top of it need a combination for enhanced security don't worry about the overhead |
|
@ShreyashkumarDube any updates the issue will go back to open if no progress is made |



…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)