{"id":25320336,"url":"https://github.com/jacobgh2/secure_file_transfer","last_synced_at":"2025-04-07T20:15:01.929Z","repository":{"id":276542347,"uuid":"929579707","full_name":"JacobGH2/Secure_File_Transfer","owner":"JacobGH2","description":"Client and server C programs,which implement secure file transfer using OpenSSL.","archived":false,"fork":false,"pushed_at":"2025-02-08T22:18:44.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T22:28:03.230Z","etag":null,"topics":["md5-hashing","openssl","socket-programming"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JacobGH2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-08T21:50:33.000Z","updated_at":"2025-02-08T22:24:11.000Z","dependencies_parsed_at":"2025-02-08T22:38:06.737Z","dependency_job_id":null,"html_url":"https://github.com/JacobGH2/Secure_File_Transfer","commit_stats":null,"previous_names":["jacobgh2/secure_file_transfer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGH2%2FSecure_File_Transfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGH2%2FSecure_File_Transfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGH2%2FSecure_File_Transfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGH2%2FSecure_File_Transfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JacobGH2","download_url":"https://codeload.github.com/JacobGH2/Secure_File_Transfer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721921,"owners_count":20985084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["md5-hashing","openssl","socket-programming"],"created_at":"2025-02-13T21:41:49.603Z","updated_at":"2025-04-07T20:15:01.897Z","avatar_url":"https://github.com/JacobGH2.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Functionality\n\nOnce the server executable is running, the client executable can be run. The client will ask for a username and password (valid entries listed below,\nenter  as `\u003cusername\u003e \u003cpassword\u003e`).\n\nOnce valid credentials are provided, the user will be able to interact with the server through the following client commands:\n1.  ```lls``` - print the files in the client's directory.\n    \n2.   ```ls``` - print the files in the server's directory.\n3.  ```get \u003cfilename\u003e``` - initiate a transfer of the requested file from the server.\n4.  ```cd \u003cdirectory\u003e``` - change to a different diretory within the server.\n5.  ```bye``` - close the connection.\n\nAfter a connection is closed, the server will continue to run, and running the client executable again will begin a new connection.\n\n\n### Encryption/Hashing code:\n\nI 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.\n\nRepository link: https://github.com/B-Con/crypto-algorithms/tree/master\n\n### Execution instructions:\n\nBoth sub-directories contain their own Makefiles. With the subdirectory as your current working directory, the command \"make\" will compile either sftpcli or sftpserv.\n\nThese executables can then be run from the command line:\n\n`./sftpcli \u003cserver IP/hostname\u003e \u003cserver port\u003e` for the client\n\n`./sftpser \u003cserver port\u003e` for the server\n\nThe 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.\n\nThe usernames and passwords are as follows: \n    \n    john 2345\n    tim 6780\n    bob 1234\n\nThe PEM passphrase is \"1234\".","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobgh2%2Fsecure_file_transfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacobgh2%2Fsecure_file_transfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobgh2%2Fsecure_file_transfer/lists"}