Under R CMD check the package caps OpenFHE at two threads.
set_num_threads() now sets the cap through OpenFHE's own thread
controls rather than the OpenMP runtime, and returns the cap in
effect (invisibly).
The package now installs on musl-based Linux (Alpine).
rlang is declared in Imports.
Every handle the package passes between R and C++ now carries its type, and every binding checks that type before using the pointer.
bin_fhe_context() returns an object of the new BinFHEContext
class instead of the base OpenFHEObject. The boolean-circuit
context and the CryptoContext used by BFV, BGV, and CKKS are
therefore distinct classes, and passing one where the other belongs
is an error rather than a silent misuse.
OpenFHEObject, the base class, is now abstract. It was never useful
to construct directly, and every handle now belongs to a concrete
class.
decrypt() accepts its arguments in either order, matching the C++
library, which declares both. decrypt(private_key, ciphertext) is
now equivalent to decrypt(ciphertext, private_key).
Fixed undefined behavior in the vendored OpenFHE library reported by
CRAN's UBSAN check platforms. RingGSWAccumulator::SignedDigitDecompose
sign-extended a balanced digit by shifting a signed value into and past
the sign bit, which is undefined in C++17. The vendored library now
carries the upstream fix (OpenFHE PR #1238), which computes the same
digits without signed shifts. Results are unchanged.
The eval_sign() example in the BinFHE vignette and its corresponding
test are skipped on CRAN, where their bootstrapping-key generation
dominated the check time. Both still run on CI and locally.
Initial release. An R interface to the OpenFHE C++ library for fully homomorphic encryption, with a binding surface that mirrors openfhe-python.
Supports the BFV, BGV, and CKKS schemes for computation on encrypted integers and approximate reals, plus BinFHE (FHEW/TFHE) for Boolean circuits over encrypted bits.
Provides threshold (multiparty) FHE, including interactive bootstrapping, for computations shared across several key-holders.
Built on S7 classes and cpp11 bindings; the OpenFHE C++ library is vendored and built from source, so the package version tracks the library version.
Ships an API tour vignette plus worked examples of CKKS bootstrapping and BinFHE Boolean circuits.