Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bcebere/tcn-psi
TCN protocol based on Private Set Intersection Cardinality.
https://github.com/bcebere/tcn-psi
contact-tracing covid-19 covid19 go golang privacy private-set-intersection tcn
Last synced: 26 days ago
JSON representation
TCN protocol based on Private Set Intersection Cardinality.
- Host: GitHub
- URL: https://github.com/bcebere/tcn-psi
- Owner: bcebere
- License: apache-2.0
- Created: 2020-05-29T12:16:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-06-09T17:46:36.000Z (over 4 years ago)
- Last Synced: 2024-06-20T06:32:10.245Z (5 months ago)
- Topics: contact-tracing, covid-19, covid19, go, golang, privacy, private-set-intersection, tcn
- Language: Go
- Homepage:
- Size: 43 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TCN-PSI Protocol
TCN protocol based on Private Set Intersection Cardinality.
## Description
1. The server receives a list of TCN reports and expands their Temporary Contact Numbers.
2. The server loads the encoded elements in the PSI server.
3. The client encodes a list of TCNs and loads them in the PSI client logic.
4. The client and server follow the PSI protocol, and the client receives the intersection size.See the full TCN protocol description [here](https://github.com/TCNCoalition/TCN).
See the full PSI description [here](https://github.com/OpenMined/PSI/blob/master/private_set_intersection/cpp/psi_client.h).
## Requirements
There are requirements for the entire project which each language shares. There also could be requirements for each target language:
### Global Requirements
These are the common requirements across all target languages of this project.
- A compiler such as clang, gcc, or msvc
- [Bazel](https://bazel.build)## Installation
The repository uses a folder structure to isolate the supported targets from one another:
```
tcn_psi//
```### Go
See the [Go README.md](tcn_psi/go/README.md)
## Usage
To use this library in another Bazel project, add the following in your WORKSPACE file:
```
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")git_repository(
name = "org_openmined_tcn_psi",
remote = "https://github.com/OpenMined/TCN-PSI",
branch = "master",
init_submodules = True,
)load("@org_openmined_psi//tcn_psi:preload.bzl", "tcn_psi_preload")
tcn_psi_preload()
load("@org_openmined_psi//tcn_psi:deps.bzl", "tcn_psi_deps")
tcn_psi_deps()
```
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.Please make sure to update tests as appropriate.
## Contributors
See [CONTRIBUTORS.md](CONTRIBUTORS.md).
## License
[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)