14 KiB
14 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.5.5 (2023-11-18)
Added
0.5.4 (2023-11-12)
Added
trailing_ones[_vartime](),trailing_zeros_vartime(),leading_zeros_vartime()(#282)- Implement
ArrayEncodingforU832(#288)
Changed
- Make
Uint::random_mod()work identically on 32- and 64-bit targets (#285)
0.5.3 (2023-09-04)
Added
BoxedUint: heap-allocated fixed-precision integers (#221)extra-sizesfeature (#229)U4224andU4352(#233)- Zeroizing support for
DynResidue(#235) cmp_vartime,ct_cmp(#238)- Expose Montgomery form in
Residue/DynResidue(#239) - Make
Uint::powwork with different sized exponents (#251) - Expose
wrapping_neg(#252) - Make
concat,split, and multiply work with different sized operands (#253) U16384andU32768(#255)Uint::{inv_mod, inv_mod2k_vartime}(#263)const fnconstructors forNonZero<Uint>andNonZero<Limb>(#266)- Constant-time
Uint::shr()andUint::shl()(#267) - Subtle trait impls for
DynResidueandDynResidueParams(#269)
Changed
- Modular inversion improvements (#263)
Fixed
serdectusage (#222)- Enforce valid modulus for
DynResidueParams(#240) - Enforce valid modulus for
Residueand associated macros (#243) - Make
Uint::{from_be_hex, from_le_hex}constant-time (#254) - Remove conditionals in
Uint::saturating_add()andsaturating_mul()(#256) - More logical checks in the
Uint::random_mod()test (#256) - Mark
sqrtfor renaming, to explicitly describe it as vartime (#256)
0.5.2 (2023-04-26)
Added
- Expose residue params and modulus in
DynResidue(#197) - Impl
DefaultIsZeroesforResidue(#210) div_by_2()method for integers in Montgomery form (#211, #212)
Changed
- Montgomery multiplication improvements (#203)
0.5.1 (2023-03-13)
Changed
- Improve
Debugimpls onLimbandUint(#195)
Fixed
const_residuemacro accessibility bug (#193)
0.5.0 (2023-02-27)
Added
Residue: modular arithmetic with static compile-time moduli (#130)DynResidue: modular arithmetic with dynamic runtime moduli (#134)- Constant-time division by a single
Limb(#141) - Windowed exponentiation for
(Dyn)Residue(#147) SubResiduetrait and impls forResidueandDynResidue(#149)Pow,InvertandSquare(#155)CtChoicetype (#159)BITS,BYTES, andLIMBStoIntegertrait (#161)- Impl
RandomforWrapping(#168) - Support to concat
U320andU640(#173) - Define
U224andU544on 32-bit platforms (#179, #180)
Changed
- Rename
UInt->Uint(#143) - Rename
Uintmethods (#144)limbs->as_limbslimbs_mut->as_limbs_mutinto_limbs->to_limbs
- Faster
random_mod(#146) - Constant-time
leading_zeros(),trailing_zeros(),bits(), andbit()forUint(#153) - Rename
BIT_SIZE->BITS,BYTE_SIZE->BYTES(#157) - More efficient squaring operation ([#133])
- Use
CryptoRngCore(#164) - Bump
serdectto 0.2 (#185) - Bump
derdependency to v0.7; MSRV 1.65 (#187)
Fixed
0.4.9 (2022-10-11)
Added
UInt::from_wordand::from_wide_word(#105)UIntmodulo operations for special moduli (#108)- Non-const
UIntdecoding from an array (#110) const fnimpls ofconcatandsplit(#111)Limbleft/right bitshifts (#112)UInt::LIMBSconstant (#114)
Changed
- Optimize
UInt::neg_modby simply calling::sub_mod(#106) - Relax bounds for
UInt::add_modand::sub_mod(#104) - Always inline
Limb::bitand(#109) - Faster const decoding of UInt (#113)
- Optimize
UInt::neg_mod(#127) - Faster comparisons (#128)
UInt::resize(#129)UInt::bitaccessor methods (#122)
Fixed
- Constant-time behaviour for
ct_reduce/ct_div_rem(#117)
0.4.8 (2022-06-30)
Added
Wordas a replacement forLimbUInt(#88)WideWordas a replacement forWideLimbUInt(#88)UInt::*_wordsas a replacement forUInt::*_uint_array(#88)
Changed
- Deprecated
*LimbUIntandUInt::*_uint_array(#88)
0.4.7 (2022-06-12)
Added
Encodingtests (#93)
Changed
- Use const generic impls of
*Modtraits (#98)
0.4.6 (2022-06-12)
Added
- Impl
ArrayEncodingforU576(#96)
0.4.5 (2022-06-12)
Added
0.4.4 (2022-06-02)
Added
UInt::as_uint_array(#91)
0.4.3 (2022-05-31)
Added
- Impl
AsRef/AsMut<[LimbUInt]>forUInt(#89)
0.4.2 (2022-05-18)
Added
UInt::inv_mod2k(#86)
Fixed
- Wrong results for remainder (#84)
0.4.1 (2022-05-10)
Fixed
- Bug in
from_le_slice(#82)
0.4.0 (2022-05-08) [YANKED]
NOTE: this release was yanked due to #82.
Added
Changed
Fixed
- Pad limbs with zeros when displaying hexadecimal representation (#74)
0.3.2 (2021-11-17)
Added
Output = Selfto all bitwise ops onIntegertrait (#53)
0.3.1 (2021-11-17)
Added
- Bitwise ops to
Integertrait (#51)
0.3.0 (2021-11-14) [YANKED]
Added
- Bitwise
Xor/Notoperations (#27) Zerotrait (#35)Checked*traits (#41)preludemodule (#45)saturating_*ops (#47)
Changed
- Rust 2021 edition upgrade; MSRV 1.56 (#33)
- Reverse ordering of
UInt::mul_widereturn tuple (#34) - Have
DivandRemimpls always takeNonZeroargs (#39) - Rename
limb::InnertoLimbUInt(#40) - Make
limbmodule private (#40) - Use
Zero/Integertraits foris_zero,is_odd, andis_even(#46)
Fixed
Removed
- Deprecated
LIMB_BYTESconstant (#43)
0.2.11 (2021-10-16)
Added
0.2.10 (2021-09-21)
Added
0.2.9 (2021-09-16)
Added
UInt::sqrt(#9)
Changed
- Make
UIntdivision similar to other interfaces (#8)
0.2.8 (2021-09-14) [YANKED]
Added
- Implement constant-time division and modulo operations
Changed
- Moved from RustCrypto/utils to RustCrypto/crypto-bigint repo (#2)
0.2.7 (2021-09-12)
Added
UInt::shl_vartime
Fixed
add_modoverflow handling
0.2.6 (2021-09-08)
Added
IntegertraitShrAssignimpl forUInt- Recursive Length Prefix (RLP) encoding support for
UInt
0.2.5 (2021-09-02)
Fixed
ConditionallySelectableimpl forUInt
0.2.4 (2021-08-23) [YANKED]
Added
- Expose
limbmodule [limb::Inner; LIMBS]conversions forUInt- Bitwise right shift support for
UInt([#586], [#590])
0.2.3 (2021-08-16) [YANKED]
Fixed
UInt::wrapping_mul
Added
- Implement the
Hashtrait forUIntandLimb
0.2.2 (2021-06-26) [YANKED]
Added
Limb::is_oddandUInt::is_oddUInt::newrandfeature
Changed
- Deprecate
LIMB_BYTESconstant - Make
Limb'sInnervalue public
0.2.1 (2021-06-21) [YANKED]
Added
Limbnewtype- Target-specific rustdocs
0.2.0 (2021-06-07) [YANKED]
Added
ConstantTimeGreater/ConstantTimeLessimpls for UIntFromconversions betweenUIntand limb arrayszeroizefeature- Additional
ArrayEncoding::ByteSizebounds UInt::into_limbsEncodingtrait
Removed
NumBits/NumBytestraits; useEncodinginstead
0.1.0 (2021-05-30)
- Initial release