{"id":15150099,"url":"https://github.com/johnmanjohnston/end-to-end-encrypted-chat","last_synced_at":"2025-07-31T09:11:13.983Z","repository":{"id":179161663,"uuid":"659217397","full_name":"johnmanjohnston/end-to-end-encrypted-chat","owner":"johnmanjohnston","description":"Utility to securely transfer text using end-to-end encryption","archived":false,"fork":false,"pushed_at":"2023-07-07T12:40:22.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T04:43:58.194Z","etag":null,"topics":["chat","cryption","e2ee","encryption-decryption","end-to-end-encryption","security"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/johnmanjohnston.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":"2023-06-27T11:17:31.000Z","updated_at":"2023-07-06T12:13:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"57985a7e-88af-49cb-9400-7d016e5306d8","html_url":"https://github.com/johnmanjohnston/end-to-end-encrypted-chat","commit_stats":null,"previous_names":["johnmanjohnston/end-to-end-encrypted-chat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/johnmanjohnston/end-to-end-encrypted-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fend-to-end-encrypted-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fend-to-end-encrypted-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fend-to-end-encrypted-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fend-to-end-encrypted-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnmanjohnston","download_url":"https://codeload.github.com/johnmanjohnston/end-to-end-encrypted-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnmanjohnston%2Fend-to-end-encrypted-chat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268016988,"owners_count":24181657,"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","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["chat","cryption","e2ee","encryption-decryption","end-to-end-encryption","security"],"created_at":"2024-09-26T14:01:55.384Z","updated_at":"2025-07-31T09:11:13.955Z","avatar_url":"https://github.com/johnmanjohnston.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# end-to-end-encryted-chat\n\nA basic utility to transfer text, using end-to-end encryption.\nThe utility is built using socket.io, to connect clients to the server and transfer text, and uses Node.js for the server.\n\n# Usage\nYou can start the server, by using the following:\n```shell\nnode server.js\n```\nThe server should then start running on `http://localhost:3000`\n\nThen, to connect as a client, you can run\n```shell    \nnode client.js\n```\n\nYou'll then be prompted to enter a room name, then your username will be assigned as your socket ID. \nAfter another user connects to the same room, both users' public keys will be stored and sent to each other, which are used to\nencrypt messages. \n\nTo leave the room, enter `.exit`.\n\n# Demo\nOn running `client.js`, you'll be prompted to enter a room name.\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/652b3e85-bef8-457b-a66f-a2cc89c5feed)\n\nAfter entering a room name, you'll be assigned a username, which is your socket ID\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/8a9d9ea2-3e23-4c1c-ab22-9ef78e12cffe)\n\nWe can also see the users joining the server.\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/645aaac9-8b33-4ac8-bafb-415ae6f2d103)\n\nAfter another client joins the same room, the clients' public keys are exchanged\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/49e9be8a-f234-46ad-b395-85e8dbb4018a)\n\nUsers can then have a lovely conversation about whatever they please.\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/f8ada704-7487-4438-a571-5e186fa0ac9c)\n\nAll the data being sent over to the server is encrypted using state-of-the-art, end-to-end encryption, so even if the users are being spied on, the data can't be decrypted without the user's private key.\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/34e353c1-2368-43a3-8200-ba3dca3e9eff)\n\nAfter a user leaves (by entering `.exit`), the other user in the room will be notified.\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/ca1ecd89-37c6-4263-b0ab-b32b3c8bc2b6)\n\nAs users leave, we can see them leaving on the server.\n![image](https://github.com/johnmanjohnston/end-to-end-encrypted-chat/assets/97091148/1a4a254a-e1e6-457c-b5e7-efc36d548316)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmanjohnston%2Fend-to-end-encrypted-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnmanjohnston%2Fend-to-end-encrypted-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnmanjohnston%2Fend-to-end-encrypted-chat/lists"}