{"id":21905895,"url":"https://github.com/cosmian/cloudproof_rust","last_synced_at":"2026-02-27T20:02:30.571Z","repository":{"id":105088186,"uuid":"597995475","full_name":"Cosmian/cloudproof_rust","owner":"Cosmian","description":"The Rust Cloudproof Data protection Library","archived":false,"fork":false,"pushed_at":"2024-12-19T16:30:29.000Z","size":2399,"stargazers_count":0,"open_issues_count":9,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-11T19:18:50.579Z","etag":null,"topics":["cloudproof","cryptography"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cosmian.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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-02-06T06:59:37.000Z","updated_at":"2024-12-19T16:30:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"95e00db6-6bd7-471c-a2a9-b4916aeb515b","html_url":"https://github.com/Cosmian/cloudproof_rust","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmian%2Fcloudproof_rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmian%2Fcloudproof_rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmian%2Fcloudproof_rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cosmian%2Fcloudproof_rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cosmian","download_url":"https://codeload.github.com/Cosmian/cloudproof_rust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173061,"owners_count":21224481,"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":["cloudproof","cryptography"],"created_at":"2024-11-28T16:39:09.572Z","updated_at":"2026-02-27T20:02:25.523Z","avatar_url":"https://github.com/Cosmian.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cosmian Cloudproof Data Protection Library\n\n![Build status](https://github.com/Cosmian/cloudproof_rust/actions/workflows/ci.yml/badge.svg?branch=main)\n![Build status](https://github.com/Cosmian/cloudproof_rust/actions/workflows/build.yml/badge.svg?branch=main)\n![Build status](https://github.com/Cosmian/cloudproof_rust/actions/workflows/benches.yml/badge.svg?branch=main)\n\nCloudproof Encryption provides libraries and tools to encrypt and securely index large repositories of data with advanced, high-performance security primitives with Post-Quantum resistance.\n\nSee [an introduction to Cosmian libraries](https://docs.cosmian.com/cloudproof_encryption/how_it_works/) and a description of the [cryptosystems](https://docs.cosmian.com/cloudproof_encryption/crypto_systems/) used.\n\nThe libraries are available in multiple languages to facilitate encryption close to the data source and decryption close to the decryption target, including mobile devices and browsers.\n\nThe Cloudproof Rust repository provides these interfaces such as FFI, WebAssembly and Pyo3 to run :\n\n- **FFI** interface is used by:\n  - [cloudproof_java](https://github.com/Cosmian/cloudproof_java): the Cloudproof Java Library\n  - [cloudproof_flutter](https://github.com/Cosmian/cloudproof_flutter): the Cloudproof Flutter Library\n- **WebAssembly** interface is used by:\n  - [cloudproof_js](https://github.com/Cosmian/cloudproof_js): the Cloudproof Javascript Library\n- **Pyo3** interface is used by:\n  - [cloudproof_python](https://github.com/Cosmian/cloudproof_python): the Cloudproof Python Library\n\n\u003c!-- toc --\u003e\n\n- [Licensing](#licensing)\n- [Cryptographic primitives](#cryptographic-primitives)\n- [Building and testing](#building-and-testing)\n  * [Building the library for `cloudproof_java`](#building-the-library-for-cloudproof_java)\n  * [Building the library for `cloudproof_flutter`](#building-the-library-for-cloudproof_flutter)\n  * [Build the library for `cloudproof_js`](#build-the-library-for-cloudproof_js)\n  * [Build the library for `cloudproof_python`](#build-the-library-for-cloudproof_python)\n  * [Building the library for a different glibc](#building-the-library-for-a-different-glibc)\n- [Benchmarks](#benchmarks)\n- [Documentation](#documentation)\n  * [CoverCrypt](#covercrypt)\n  * [Findex](#findex)\n  * [Format Preserving Encryption](#format-preserving-encryption)\n- [Releases](#releases)\n\n\u003c!-- tocstop --\u003e\n\n## Licensing\n\nThe library is available under a dual licensing scheme Affero GPL/v3 and commercial. See [LICENSE.md](LICENSE.md) for details.\n\n## Cryptographic primitives\n\nThese interfaces are based on:\n\n- [CoverCrypt](https://github.com/Cosmian/cover_crypt) algorithm which allows\n  creating ciphertexts for a set of attributes and issuing user keys with access\n  policies over these attributes. `CoverCrypt` offers Post-Quantum resistance.\n\n- [Findex](https://github.com/Cosmian/findex) which is a cryptographic protocol designed to securely make search queries on\n  an untrusted cloud server. Thanks to its encrypted indexes, large databases can\n  securely be outsourced without compromising usability.\n\n- [FPE](./crates/fpe/README.md) provides `Format Preserving Encryption` (FPE) techniques for use in a zero-trust environment. These techniques are based on FPE-FF1 which is described in [NIST:800-38G](https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-38g.pdf).\n\n## Building and testing\n\nTo build all interfaces (including the FFI, Wasm and Pyo3):\n\n```bash\ncargo build --release --all-features\n```\n\nThe latter will build the shared libraries for `cover_crypt` and `findex`. On Linux, one can verify that the FFI symbols are present using:\n\n```bash\nobjdump -T  target/release/libcosmian_cover_crypt.so\nobjdump -T  target/release/libcosmian_findex.so\n```\n\nThe code contains numerous tests that you can run using:\n\n```bash\ncargo test --release --all-features\n```\n\n### Building the library for `cloudproof_java`\n\nFrom the root directory:\n\n```bash\ncargo build --release --features ffi,cloud\n```\n\nThe `.so` libraries can then be found in `target/release/`.\n\n### Building the library for `cloudproof_flutter`\n\nFrom the root directory:\n\n```bash\ncargo build --release --features ffi\n```\n\nThe `.so` libraries can then be found in `target/release/`.\n\n### Build the library for `cloudproof_js`\n\nFrom the root directory:\n\n```bash\nwasm-pack build -t web --release --features wasm\n```\n\nThe `.wasm` libraries can then be found in `pkg/`.\n\nThese can be used to test new functionalities in cloudproof_js.\n\n### Build the library for `cloudproof_python`\n\nFrom the root directory:\n\n```bash\nmaturin build --release --manifest-path crates/\u003ccover_crypt or findex\u003e/Cargo.toml --features python\n```\n\n**Note**: when a new function or class is added to the PyO3 interface, its signature needs to be added to\n[`**init**.pyi`](./crates/\u003ccover*crypt or findex\u003e/python/cloudproof*\u003ccover_crypt or findex\u003e/**init**.pyi).\n\nTo run tests on the Python interface, run:\n\n```bash\nbash ./scripts/test_python.sh\n```\n\nThe `.whl` libraries can then be found in `target/wheels/`.\n\n### Building the library for a different glibc\n\nGo to the [build](glibc-2.17/) directory for an example on how to build for GLIBC 2.17\n\n## Benchmarks\n\nThe benchmarks presented in this section are run on a Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz.\n\n- [CoverCrypt classic](https://github.com/Cosmian/cover_crypt/blob/main/benches/BENCHMARKS_classic.md)\n- [CoverCrypt post-quantum](https://github.com/Cosmian/cover_crypt/blob/main/benches/BENCHMARKS_hybridized.md)\n- [Findex](https://github.com/Cosmian/findex/blob/develop/benches/BENCHMARKS.md)\n- [FPE](./crates/fpe/benches/BENCHMARKS.md)\n\n## Documentation\n\n### CoverCrypt\n\nA formal description and proof of the CoverCrypt scheme is given in [this paper](https://github.com/Cosmian/cover_crypt/blob/main/bib/CoverCrypt.pdf).\nIt also contains an interesting discussion about the implementation.\n\nThe developer documentation can be found on [doc.rs](https://docs.rs/cosmian_cover_crypt/latest/cosmian_cover_crypt/index.html)\n\n### Findex\n\nFindex technical documentation can be found [here](https://github.com/Cosmian/findex/blob/main/documentation/Findex.pdf).\n\nThe developer documentation can be found on [doc.rs](https://docs.rs/cosmian_findex/latest/cosmian_findex/index.html)\n\n### Format Preserving Encryption\n\nFindex technical documentation can be found [here](./crates/fpe/documentation/FPE.pdf).\n\n## Releases\n\nAll releases can be found in the public URL [package.cosmian.com](https://package.cosmian.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmian%2Fcloudproof_rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcosmian%2Fcloudproof_rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmian%2Fcloudproof_rust/lists"}