https://github.com/jacobgh2/secure_file_transfer
Client and server C programs,which implement secure file transfer using OpenSSL.
https://github.com/jacobgh2/secure_file_transfer
md5-hashing openssl socket-programming
Last synced: about 1 year ago
JSON representation
Client and server C programs,which implement secure file transfer using OpenSSL.
- Host: GitHub
- URL: https://github.com/jacobgh2/secure_file_transfer
- Owner: JacobGH2
- Created: 2025-02-08T21:50:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-08T22:18:44.000Z (over 1 year ago)
- Last Synced: 2025-02-08T22:28:03.230Z (over 1 year ago)
- Topics: md5-hashing, openssl, socket-programming
- Language: C
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Functionality
Once the server executable is running, the client executable can be run. The client will ask for a username and password (valid entries listed below,
enter as ` `).
Once valid credentials are provided, the user will be able to interact with the server through the following client commands:
1. ```lls``` - print the files in the client's directory.
2. ```ls``` - print the files in the server's directory.
3. ```get ``` - initiate a transfer of the requested file from the server.
4. ```cd ``` - change to a different diretory within the server.
5. ```bye``` - close the connection.
After a connection is closed, the server will continue to run, and running the client executable again will begin a new connection.
### Encryption/Hashing code:
I am using a library created by Brad Conte with basic implementations of MD5 hashing and AES-CBC encryption, which includes the files: aes.c, aes.h, md5.c, and md5.h, which are located in the server subdirectory.
Repository link: https://github.com/B-Con/crypto-algorithms/tree/master
### Execution instructions:
Both sub-directories contain their own Makefiles. With the subdirectory as your current working directory, the command "make" will compile either sftpcli or sftpserv.
These executables can then be run from the command line:
`./sftpcli ` for the client
`./sftpser ` for the server
The client and server may be run on different machines across the same network, but they **MUST** be run with their respective sub-directories as the current working directory.
The usernames and passwords are as follows:
john 2345
tim 6780
bob 1234
The PEM passphrase is "1234".