Skip to content

Releases: microsoft/SEAL

Release 4.3.3

29 May 18:13

Choose a tag to compare

  • Hardened Serialization::Load against hostile input by bounding deserialized KSwitchKeys/GaloisKeys/RelinKeys dimensions and rejecting a SEALHeader whose size exceeds the available input, including on non-seekable streams.
  • Hardened loading of zlib/zstd-compressed objects against decompression bombs by inflating on demand.
  • Fixed the Windows RtlGenRandom fallback to fill the entire requested buffer and to cast its length safely to ULONG.
  • Noted in SECURITY.md that Decryptor::invariant_noise_budget can leak the secret key on attacker-chosen ciphertexts.
  • Documented in Evaluator (C++ and .NET) the NTT-domain multiply_plain accumulation pattern for repeated plaintext-ciphertext products (issue #744).

Release 4.3.2

01 May 23:29

Choose a tag to compare

  • Switched the macOS install RPATH to loader-relative (@loader_path) and disabled CMAKE_INSTALL_RPATH_USE_LINK_PATH. No effect on the default static build or the NuGet artifact.
  • Tightened dotnet/nuget/SEALNet.targets to match iossimulator-arm64 only; Intel Mac iOS-simulator targets are not supported.
  • SEAL_SECURE_COMPILE_OPTIONS (default OFF) now also enables stack canaries, libstdc++/libc++ hardening, and ELF link-time hardening on GCC/Clang.
  • Documented in decryptor.h and Decryptor.cs that invariant_noise_budget can leak information about the secret key on attacker-chosen ciphertexts and is unreliable as a correctness signal once the noise exceeds q/2 (issue #742).

Release 4.3.1

29 Apr 03:56

Choose a tag to compare

  • Merged (PR #740): Removed the version restriction on find_package(HEXL), which was incompatible with HEXL's exact-version HEXLConfigVersion.cmake.
  • Merged (PR #741): Added a warmup pass to sealbench to eliminate an observed slowdown due to cold instruction cache, page faults, and an uninitialized memory pool (issue #625).

Release 4.3.0

25 Apr 08:06

Choose a tag to compare

Version 4.3.0

  • Merged (PR #734): Fixed IterTuple constructors that returned references to local temporaries.
  • Merged (PR #738): Fixed out-of-bounds read in Serialization_IsCompatibleVersion and Serialization_IsValidHeader (C API).
  • Fixed undefined behavior in CKKS encoding reported in (issue #732) by Wowblk, and other instances of a similar broken pattern.
  • Bumped .NET target framework from net8.0 to net10.0.
  • Updated dependency versions: Google Benchmark to 1.9.5, GoogleTest to 1.17.0, MSGSL to 4.2.1, zlib to 1.3.2.
  • Added cmake/ios_xcframework.cmake and a CI artifact that produces libseal-<ver>.xcframework and libsealc-<ver>.xcframework in one command.
  • Added CMakePresets.json for Windows, Linux, and macOS development.
  • No further releases will be published to NuGet.org. Users who want newer versions in .NET projects should build their own NuGet package from source.

Version 4.2.0

Release 4.1.2

11 Jul 02:15

Choose a tag to compare

Hotfix - 6/13/2024

Hotfix - 7/10/2024

Release 4.1.1

11 Jan 04:54

Choose a tag to compare

Bug Fixes

Release 4.1.0

04 Jan 06:11

Choose a tag to compare

Features

  • The BGV scheme now keeps ciphertexts in NTT form. BGV ciphertext multiplication is much faster than version 4.0.0.
  • When a BGV ciphertext saved by previous versions is loaded in the current version, it is automatically converted to NTT form.
  • Increased SEAL_COEFF_MOD_COUNT_MAX, the maximum number of primes that define the coefficient modulus, from 64 to 256.

Other Fixes

  • Fixed typos (PR #590).
  • Added $schema to cgmanifest.json (PR #558).
  • Fixed typos (PR #512).
  • Fixed typos (PR #530).
  • Fixed typos (PR #509).
  • Added missing const qualifiers (PR #556).
  • Added vcpkg installation instructions (PR #562).
  • Fixed an issue in specific environments where allocation fails without throwing std::bad_alloc.
  • Fixed comments (C++) and C/.NET wrapper implementation of an exception thrown by invariant_noise_budget.

Major API Changes

  • Added new public methods mod_reduce_xxx(...) (native) and ModReduceXxx(...) (dotnet) to the class Evaluator.

Release 4.0.0

17 Mar 19:31

Choose a tag to compare

Features

  • Added BGV scheme (PR 283). Thanks, Alibaba Gemini Lab!
  • Added a new example "BGV basics" to native and dotnet.
  • Loading objects serialized by Microsoft SEAL v3.4+ are supported.
  • Updated versions of dependencies: GoogleTest from 1.10.0 to 1.11.0 and GoogleBenchmark from 1.5.2 to 1.6.0.

Other Fixes

Major API Changes

  • Added seal::scheme_type::bgv.
  • Added a new public method parms_id() (native) to the class EncryptionParameters.
  • Added a new public method Create(...) (native and dotnet) with three inputs in the class CoeffModulus.
  • Added a new public method correction_factor() (native) or CorrectionFactor() (dotnet) to the class Ciphertext.
  • Removed the friendship of the class EncryptionParameters to the class SEALContext.

File Changes

  • native/bench/bgv.cpp is added.
  • Examples are renamed and extended.

Release 3.7.3

17 Mar 04:15

Choose a tag to compare

Features

  • All output files including downloaded thirdparty dependencies and Visual Studio project and solution files will be created in the build directory (PR 427).
  • Reduced util::try_minimal_primitive_root search iterations by half (PR 430). Thanks, zirconium-n!
  • Updated .Net SDK version to 6.0.x and supported Visual Studio version to 17 2022.
  • Added SEAL_AVOID_BRANCHING option to eleminate branching in critical functions when Microsoft SEAL is built with maliciously inserted compiler flags.

Bug Fixes

  • Removed exceptions in KeyGenerator::CreateGaloisKeys when inputs do not include steps so that even when EncryptionParameterQualifiers::using_batching is false Galois automorphisms are still available.

File Changes

  • dotnet/SEALNet.sln is removed.
  • dotnet/SEALNet.sln.in is added.

Release 3.7.2

12 Nov 21:46

Choose a tag to compare

Bug Fixes

  • Fixed a bug when Intel HEXL is used (Issue 411) (PR414).
  • Fixed an abnormal benchmark case due to AVX512 transitions when Intel HEXL is used (PR 416).