{"id":34127200,"url":"https://github.com/beka-birhanu/udp-socket-manager","last_synced_at":"2026-03-11T13:41:51.420Z","repository":{"id":276184481,"uuid":"928460087","full_name":"beka-birhanu/udp-socket-manager","owner":"beka-birhanu","description":"udp client server socket manager with proto buffer encoding and DTLS security ","archived":false,"fork":false,"pushed_at":"2026-03-01T23:46:00.000Z","size":28,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-02T02:11:50.335Z","etag":null,"topics":["dtls","golang","protobuf","socket-programming","udp","udp-socket"],"latest_commit_sha":null,"homepage":"","language":"Go","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/beka-birhanu.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-06T17:17:33.000Z","updated_at":"2026-03-01T23:45:39.000Z","dependencies_parsed_at":"2025-02-08T05:45:31.429Z","dependency_job_id":null,"html_url":"https://github.com/beka-birhanu/udp-socket-manager","commit_stats":null,"previous_names":["beka-birhanu/udp-socket-manager"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/beka-birhanu/udp-socket-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beka-birhanu%2Fudp-socket-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beka-birhanu%2Fudp-socket-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beka-birhanu%2Fudp-socket-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beka-birhanu%2Fudp-socket-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beka-birhanu","download_url":"https://codeload.github.com/beka-birhanu/udp-socket-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beka-birhanu%2Fudp-socket-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30382674,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T12:49:11.341Z","status":"ssl_error","status_checked_at":"2026-03-11T12:46:41.342Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["dtls","golang","protobuf","socket-programming","udp","udp-socket"],"created_at":"2025-12-14T23:57:33.113Z","updated_at":"2026-03-11T13:41:51.414Z","avatar_url":"https://github.com/beka-birhanu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **UDP Socket Manager**  \n\n## **Overview**  \n\nUDP-based Socket Manager for secure communication using asymmetric and symmetric encryption is a wrapper over UDP. It uses Protocol Buffers for message encoding and supports DTLS for secure communication.  \n\n## **How It Works**  \n\n1. **Client Fetches Server Public Key** – The client retrieves the server’s public key.  \n2. **Client Hello** – The client sends a `hello` message containing a random value and an AES-CBC key, encrypted with the server’s public key.  \n3. **Server Hello Verify** – The server responds with a `helloverify` message containing a cookie HMAC, using the AES-CBC key from the client.  \n4. **Client Verification** – The client resends the `hello` message with the cookie HMAC, AES-CBC key, and a verification token.  \n5. **Server Hello** – The server completes the handshake by sending a session ID.  \n6. **Session Maintenance** – The client continues communication while maintaining heartbeat messages; otherwise, the session expires.  \n\n## **Message Structure**  \n\n| Field          | Description             |  \n|---------------|-------------------------|  \n| Message Type  | 1 byte                   |  \n| Payload       | ... rest of the message  |  \n\n### **Message Types**  \n\n```plaintext\n    ClientHelloRecordType   = 1  \n    HelloVerifyRecordType   = 2  \n    ServerHelloRecordType   = 3  \n    PingRecordType          = 4  \n    PongRecordType          = 5  \n    UnAuthenticated         = 6  \n```\nAny value greater than these can be used as a custom message type.  \n\n## Docs\n[Socket Client docs](./docs/socket-client.md)\n[Socket Server docs](./docs/socket-server.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeka-birhanu%2Fudp-socket-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeka-birhanu%2Fudp-socket-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeka-birhanu%2Fudp-socket-manager/lists"}