{"id":16542089,"url":"https://github.com/bcebere/tcn-psi","last_synced_at":"2025-10-28T15:30:47.211Z","repository":{"id":130016383,"uuid":"267850021","full_name":"bcebere/TCN-PSI","owner":"bcebere","description":"TCN protocol based on Private Set Intersection Cardinality.","archived":false,"fork":false,"pushed_at":"2020-06-09T17:46:36.000Z","size":44,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-01T15:40:51.727Z","etag":null,"topics":["contact-tracing","covid-19","covid19","go","golang","privacy","private-set-intersection","tcn"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bcebere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-05-29T12:16:36.000Z","updated_at":"2023-03-02T22:40:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"97b02702-4b36-4e58-879b-80188eeb0904","html_url":"https://github.com/bcebere/TCN-PSI","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcebere%2FTCN-PSI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcebere%2FTCN-PSI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcebere%2FTCN-PSI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcebere%2FTCN-PSI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bcebere","download_url":"https://codeload.github.com/bcebere/TCN-PSI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238671968,"owners_count":19511188,"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":["contact-tracing","covid-19","covid19","go","golang","privacy","private-set-intersection","tcn"],"created_at":"2024-10-11T18:56:37.563Z","updated_at":"2025-10-28T15:30:46.806Z","avatar_url":"https://github.com/bcebere.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# TCN-PSI Protocol\n\nTCN protocol based on Private Set Intersection Cardinality.\n\n## Description\n\n1. The server receives a list of TCN reports and expands their Temporary Contact Numbers.\n2. The server loads the encoded elements in the PSI server.\n3. The client encodes a list of TCNs and loads them in the PSI client logic.\n4. The client and server follow the PSI protocol, and the client receives the intersection size.\n\nSee the full TCN protocol description [here](https://github.com/TCNCoalition/TCN).\n\nSee the full PSI description [here](https://github.com/OpenMined/PSI/blob/master/private_set_intersection/cpp/psi_client.h).\n\n## Requirements\n\nThere are requirements for the entire project which each language shares. There also could be requirements for each target language:\n\n### Global Requirements\n\nThese are the common requirements across all target languages of this project.\n\n- A compiler such as clang, gcc, or msvc\n- [Bazel](https://bazel.build)\n\n## Installation\n\nThe repository uses a folder structure to isolate the supported targets from one another:\n\n```\ntcn_psi/\u003ctarget language\u003e/\u003csources\u003e\n```\n\n### Go\n\nSee the [Go README.md](tcn_psi/go/README.md)\n\n\n## Usage\n\nTo use this library in another Bazel project, add the following in your WORKSPACE file:\n\n```\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"git_repository\")\n\ngit_repository(\n   name = \"org_openmined_tcn_psi\",\n   remote = \"https://github.com/OpenMined/TCN-PSI\",\n   branch = \"master\",\n   init_submodules = True,\n)\n\nload(\"@org_openmined_psi//tcn_psi:preload.bzl\", \"tcn_psi_preload\")\n\ntcn_psi_preload()\n\nload(\"@org_openmined_psi//tcn_psi:deps.bzl\", \"tcn_psi_deps\")\n\ntcn_psi_deps()\n\n```\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\n## Contributors\n\nSee [CONTRIBUTORS.md](CONTRIBUTORS.md).\n\n## License\n[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcebere%2Ftcn-psi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbcebere%2Ftcn-psi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcebere%2Ftcn-psi/lists"}