- Fixed
CKKSEncoder::encode(std::int64_t, ...)(issue #757) to encode negative values whose magnitude exceeds a coefficient modulus, and to handleINT64_MINwithout undefined behavior. - Fixed
Evaluator::add_manyandEvaluator::multiply_many(issue #759) to validate every input ciphertext, including for a single-element vector. - Fixed
Evaluator::add_many(issue #760) to leavedestinationunchanged when it throws, and documented the state ofdestinationfor the other destination-taking overloads. - Fixed
Evaluator::apply_galois_inplace(issue #761) to validate the selected Galois key before modifying the ciphertext. - Fixed
Plaintext_SwapDatain the C API (issue #762) to keep the coefficient count in sync with the installed buffer, and to reject a swap that would resize an NTT transformed plaintext; a shorter buffer left later reads out of bounds. - Fixed
Evaluator::relinearize,Evaluator::exponentiate,Evaluator::mod_switch_to, andEvaluator::mod_reduce_toto validate the ciphertext on the paths that return without performing any operation. - Fixed
Evaluator::multiply_plainto verify that the ciphertext and plaintext match before transforming the ciphertext. - Fixed undefined behavior for the most negative representable rotation step in
GaloisTool::get_elt_from_stepandutil::naf.