#seal #fhe #encryption #homomorphic #phe

sealy

Rust bindings for Microsoft's SEAL Fully Homomorphic Encryption (FHE) library

2 releases

0.1.1 Jul 7, 2024
0.1.0 Jun 29, 2024

#1103 in Cryptography

Download history 230/week @ 2024-06-28 117/week @ 2024-07-05 8/week @ 2024-07-12

97 downloads per month

Custom license

13MB
255K SLoC

C++ 102K SLoC // 0.1% comments C 92K SLoC // 0.2% comments Visual Studio Project 21K SLoC C# 14K SLoC // 0.3% comments Python 10K SLoC // 0.3% comments Rust 5K SLoC // 0.0% comments Shell 3K SLoC // 0.2% comments Ada 1.5K SLoC // 0.2% comments GNU Style Assembly 1.5K SLoC // 0.3% comments Assembly 1.5K SLoC // 0.2% comments Pascal 1K SLoC // 0.2% comments Bazel 1K SLoC // 0.1% comments Visual Studio Solution 879 SLoC Bitbake 527 SLoC Batch 170 SLoC Lua 69 SLoC // 0.0% comments Automake 34 SLoC Prolog 20 SLoC ReScript 4 SLoC NuGet Config 4 SLoC Forge Config 2 SLoC // 0.7% comments Poke 1 SLoC

Contains (JAR file, 55KB) gradle-wrapper.jar, (obscure autoconf code, 1KB) configure.ac

sealy

sealy is a crate that wraps the Microsoft SEAL library to enable us to perform arithimetic operations over encrypted data. It is a fork of the Sunscreen's SEAL bindings that you can found here.

Architecture

All types in this crate implement Sync/Send. So long as you never dereference the internal handle on any type after it has been dropped, these traits should safely hold. The internal handles should be of little use to you anyways.

Schemes implemented:

  • Brakerski/Fan-Vercauteren (BFV)
  • Cheon-Kim-Kim-Song (CKKS)

lib.rs:

This crate provides wrappers for Micorosft's SEAL Homomorphic encryption library.

Notes

All types in this crate implement Sync/Send. So long as you never dereference the internal handle on any type after it has been dropped, these traits should safely hold. The internal handles should be of little use to you anyways.

This crate intentionally omits more esoteric use cases to streamline the API and is currently incomplete (e.g. CKKS is not currently supported). If any underlying SEAL API you care about is missing, please add it in a pull request or file an issue.

Dependencies