summaryrefslogtreecommitdiffstats
path: root/vendor/crypto-bigint/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/crypto-bigint/CHANGELOG.md')
-rw-r--r--vendor/crypto-bigint/CHANGELOG.md402
1 files changed, 402 insertions, 0 deletions
diff --git a/vendor/crypto-bigint/CHANGELOG.md b/vendor/crypto-bigint/CHANGELOG.md
new file mode 100644
index 0000000..eaf0772
--- /dev/null
+++ b/vendor/crypto-bigint/CHANGELOG.md
@@ -0,0 +1,402 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## 0.5.3 (2023-09-04)
+### Added
+- `BoxedUint`: heap-allocated fixed-precision integers ([#221])
+- `extra-sizes` feature ([#229])
+- `U4224` and `U4352` ([#233])
+- Zeroizing support for `DynResidue` ([#235])
+- `cmp_vartime`, `ct_cmp` ([#238])
+- Expose Montgomery form in `Residue`/`DynResidue` ([#239])
+- Make `Uint::pow` work with different sized exponents ([#251])
+- Expose `wrapping_neg` ([#252])
+- Make `concat`, `split`, and multiply work with different sized operands ([#253])
+- `U16384` and `U32768` ([#255])
+- `Uint::{inv_mod, inv_mod2k_vartime}` ([#263])
+- `const fn` constructors for `NonZero<Uint>` and `NonZero<Limb>` ([#266])
+- Constant-time `Uint::shr()` and `Uint::shl()` ([#267])
+- Subtle trait impls for `DynResidue` and `DynResidueParams` ([#269])
+
+### Changed
+- Modular inversion improvements ([#263])
+
+### Fixed
+- `serdect` usage ([#222])
+- Enforce valid modulus for `DynResidueParams` ([#240])
+- Enforce valid modulus for `Residue` and associated macros ([#243])
+- Make `Uint::{from_be_hex, from_le_hex}` constant-time ([#254])
+- Remove conditionals in `Uint::saturating_add()` and `saturating_mul()` ([#256])
+- More logical checks in the `Uint::random_mod()` test ([#256])
+- Mark `sqrt` for renaming, to explicitly describe it as vartime ([#256])
+
+[#221]: https://github.com/RustCrypto/crypto-bigint/pull/221
+[#222]: https://github.com/RustCrypto/crypto-bigint/pull/222
+[#229]: https://github.com/RustCrypto/crypto-bigint/pull/229
+[#233]: https://github.com/RustCrypto/crypto-bigint/pull/233
+[#235]: https://github.com/RustCrypto/crypto-bigint/pull/235
+[#238]: https://github.com/RustCrypto/crypto-bigint/pull/238
+[#239]: https://github.com/RustCrypto/crypto-bigint/pull/239
+[#240]: https://github.com/RustCrypto/crypto-bigint/pull/240
+[#243]: https://github.com/RustCrypto/crypto-bigint/pull/243
+[#251]: https://github.com/RustCrypto/crypto-bigint/pull/251
+[#252]: https://github.com/RustCrypto/crypto-bigint/pull/252
+[#253]: https://github.com/RustCrypto/crypto-bigint/pull/253
+[#254]: https://github.com/RustCrypto/crypto-bigint/pull/254
+[#255]: https://github.com/RustCrypto/crypto-bigint/pull/255
+[#256]: https://github.com/RustCrypto/crypto-bigint/pull/256
+[#263]: https://github.com/RustCrypto/crypto-bigint/pull/263
+[#266]: https://github.com/RustCrypto/crypto-bigint/pull/266
+[#267]: https://github.com/RustCrypto/crypto-bigint/pull/267
+[#269]: https://github.com/RustCrypto/crypto-bigint/pull/269
+
+## 0.5.2 (2023-04-26)
+### Added
+- Expose residue params and modulus in `DynResidue` ([#197])
+- Impl `DefaultIsZeroes` for `Residue` ([#210])
+- `div_by_2()` method for integers in Montgomery form ([#211], [#212])
+
+### Changed
+- Montgomery multiplication improvements ([#203])
+
+[#197]: https://github.com/RustCrypto/crypto-bigint/pull/197
+[#203]: https://github.com/RustCrypto/crypto-bigint/pull/203
+[#210]: https://github.com/RustCrypto/crypto-bigint/pull/210
+[#211]: https://github.com/RustCrypto/crypto-bigint/pull/211
+[#212]: https://github.com/RustCrypto/crypto-bigint/pull/212
+
+## 0.5.1 (2023-03-13)
+### Changed
+- Improve `Debug` impls on `Limb` and `Uint` ([#195])
+
+### Fixed
+- `const_residue` macro accessibility bug ([#193])
+
+[#193]: https://github.com/RustCrypto/crypto-bigint/pull/193
+[#195]: https://github.com/RustCrypto/crypto-bigint/pull/195
+
+## 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])
+- `SubResidue` trait and impls for `Residue` and `DynResidue` ([#149])
+- `Pow`, `Invert` and `Square` ([#155])
+- `CtChoice` type ([#159])
+- `BITS`, `BYTES`, and `LIMBS` to `Integer` trait ([#161])
+- Impl `Random` for `Wrapping` ([#168])
+- Support to concat `U320` and `U640` ([#173])
+- Define `U224` and `U544` on 32-bit platforms ([#179], [#180])
+
+### Changed
+- Rename `UInt` -> `Uint` ([#143])
+- Rename `Uint` methods ([#144])
+ - `limbs` -> `as_limbs`
+ - `limbs_mut` -> `as_limbs_mut`
+ - `into_limbs` -> `to_limbs`
+- Faster `random_mod` ([#146])
+- Constant-time `leading_zeros()`, `trailing_zeros()`, `bits()`, and `bit()` for `Uint` ([#153])
+- Rename `BIT_SIZE` -> `BITS`, `BYTE_SIZE` -> `BYTES` ([#157])
+- More efficient squaring operation ([#133])
+- Use `CryptoRngCore` ([#164])
+- Bump `serdect` to 0.2 ([#185])
+- Bump `der` dependency to v0.7; MSRV 1.65 ([#187])
+
+### Fixed
+- Integer overflow in `div2by1()` ([#156])
+- Convert from tuple element ordering ([#183])
+
+[#130]: https://github.com/RustCrypto/crypto-bigint/pull/130
+[#134]: https://github.com/RustCrypto/crypto-bigint/pull/134
+[#141]: https://github.com/RustCrypto/crypto-bigint/pull/141
+[#143]: https://github.com/RustCrypto/crypto-bigint/pull/143
+[#144]: https://github.com/RustCrypto/crypto-bigint/pull/144
+[#146]: https://github.com/RustCrypto/crypto-bigint/pull/146
+[#147]: https://github.com/RustCrypto/crypto-bigint/pull/147
+[#149]: https://github.com/RustCrypto/crypto-bigint/pull/149
+[#153]: https://github.com/RustCrypto/crypto-bigint/pull/153
+[#155]: https://github.com/RustCrypto/crypto-bigint/pull/155
+[#156]: https://github.com/RustCrypto/crypto-bigint/pull/156
+[#157]: https://github.com/RustCrypto/crypto-bigint/pull/157
+[#159]: https://github.com/RustCrypto/crypto-bigint/pull/159
+[#161]: https://github.com/RustCrypto/crypto-bigint/pull/161
+[#164]: https://github.com/RustCrypto/crypto-bigint/pull/164
+[#168]: https://github.com/RustCrypto/crypto-bigint/pull/168
+[#173]: https://github.com/RustCrypto/crypto-bigint/pull/173
+[#179]: https://github.com/RustCrypto/crypto-bigint/pull/179
+[#180]: https://github.com/RustCrypto/crypto-bigint/pull/180
+[#183]: https://github.com/RustCrypto/crypto-bigint/pull/183
+[#185]: https://github.com/RustCrypto/crypto-bigint/pull/185
+[#187]: https://github.com/RustCrypto/crypto-bigint/pull/187
+
+## 0.4.9 (2022-10-11)
+### Added
+- `UInt::from_word` and `::from_wide_word` ([#105])
+- `UInt` modulo operations for special moduli ([#108])
+- Non-const `UInt` decoding from an array ([#110])
+- `const fn` impls of `concat` and `split` ([#111])
+- `Limb` left/right bitshifts ([#112])
+- `UInt::LIMBS` constant ([#114])
+
+### Changed
+- Optimize `UInt::neg_mod` by simply calling `::sub_mod` ([#106])
+- Relax bounds for `UInt::add_mod` and `::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::bit` accessor methods ([#122])
+
+### Fixed
+- Constant-time behaviour for `ct_reduce`/`ct_div_rem` ([#117])
+
+[#104]: https://github.com/RustCrypto/crypto-bigint/pull/104
+[#105]: https://github.com/RustCrypto/crypto-bigint/pull/105
+[#106]: https://github.com/RustCrypto/crypto-bigint/pull/106
+[#108]: https://github.com/RustCrypto/crypto-bigint/pull/108
+[#109]: https://github.com/RustCrypto/crypto-bigint/pull/109
+[#110]: https://github.com/RustCrypto/crypto-bigint/pull/110
+[#111]: https://github.com/RustCrypto/crypto-bigint/pull/111
+[#112]: https://github.com/RustCrypto/crypto-bigint/pull/112
+[#113]: https://github.com/RustCrypto/crypto-bigint/pull/113
+[#114]: https://github.com/RustCrypto/crypto-bigint/pull/114
+[#117]: https://github.com/RustCrypto/crypto-bigint/pull/117
+[#122]: https://github.com/RustCrypto/crypto-bigint/pull/122
+[#127]: https://github.com/RustCrypto/crypto-bigint/pull/127
+[#128]: https://github.com/RustCrypto/crypto-bigint/pull/128
+[#129]: https://github.com/RustCrypto/crypto-bigint/pull/129
+
+## 0.4.8 (2022-06-30)
+### Added
+- `Word` as a replacement for `LimbUInt` ([#88])
+- `WideWord` as a replacement for `WideLimbUInt` ([#88])
+- `UInt::*_words` as a replacement for `UInt::*_uint_array` ([#88])
+
+### Changed
+- Deprecated `*LimbUInt` and `UInt::*_uint_array` ([#88])
+
+[#88]: https://github.com/RustCrypto/crypto-bigint/pull/88
+
+## 0.4.7 (2022-06-12)
+### Added
+- `Encoding` tests ([#93])
+
+### Changed
+- Use const generic impls of `*Mod` traits ([#98])
+
+[#93]: https://github.com/RustCrypto/crypto-bigint/pull/93
+[#98]: https://github.com/RustCrypto/crypto-bigint/pull/98
+
+## 0.4.6 (2022-06-12)
+### Added
+- Impl `ArrayEncoding` for `U576` ([#96])
+
+[#96]: https://github.com/RustCrypto/crypto-bigint/pull/96
+
+## 0.4.5 (2022-06-12)
+### Added
+- `serde` support ([#73])
+- `U576` type alias ([#94])
+
+[#73]: https://github.com/RustCrypto/crypto-bigint/pull/73
+[#94]: https://github.com/RustCrypto/crypto-bigint/pull/94
+
+## 0.4.4 (2022-06-02)
+### Added
+- `UInt::as_uint_array` ([#91])
+
+[#91]: https://github.com/RustCrypto/crypto-bigint/pull/91
+
+## 0.4.3 (2022-05-31)
+### Added
+- Impl `AsRef`/`AsMut<[LimbUInt]>` for `UInt` ([#89])
+
+[#89]: https://github.com/RustCrypto/crypto-bigint/pull/89
+
+## 0.4.2 (2022-05-18)
+### Added
+- `UInt::inv_mod2k` ([#86])
+
+### Fixed
+- Wrong results for remainder ([#84])
+
+[#84]: https://github.com/RustCrypto/crypto-bigint/pull/84
+[#86]: https://github.com/RustCrypto/crypto-bigint/pull/86
+
+## 0.4.1 (2022-05-10)
+### Fixed
+- Bug in `from_le_slice` ([#82])
+
+[#82]: https://github.com/RustCrypto/crypto-bigint/pull/82
+
+## 0.4.0 (2022-05-08) [YANKED]
+
+NOTE: this release was yanked due to [#82].
+
+### Added
+- Const-friendly `NonZero` from `UInt` ([#56])
+- Optional `der` feature ([#61], [#80])
+
+### Changed
+- Use `const_panic`; MSRV 1.57 ([#60])
+- 2021 edition ([#60])
+
+### Fixed
+- Pad limbs with zeros when displaying hexadecimal representation ([#74])
+
+[#56]: https://github.com/RustCrypto/crypto-bigint/pull/56
+[#60]: https://github.com/RustCrypto/crypto-bigint/pull/60
+[#61]: https://github.com/RustCrypto/crypto-bigint/pull/61
+[#74]: https://github.com/RustCrypto/crypto-bigint/pull/74
+[#80]: https://github.com/RustCrypto/crypto-bigint/pull/80
+
+## 0.3.2 (2021-11-17)
+### Added
+- `Output = Self` to all bitwise ops on `Integer` trait ([#53])
+
+[#53]: https://github.com/RustCrypto/crypto-bigint/pull/53
+
+## 0.3.1 (2021-11-17)
+### Added
+- Bitwise ops to `Integer` trait ([#51])
+
+[#51]: https://github.com/RustCrypto/crypto-bigint/pull/51
+
+## 0.3.0 (2021-11-14) [YANKED]
+### Added
+- Bitwise `Xor`/`Not` operations ([#27])
+- `Zero` trait ([#35])
+- `Checked*` traits ([#41])
+- `prelude` module ([#45])
+- `saturating_*` ops ([#47])
+
+### Changed
+- Rust 2021 edition upgrade; MSRV 1.56 ([#33])
+- Reverse ordering of `UInt::mul_wide` return tuple ([#34])
+- Have `Div` and `Rem` impls always take `NonZero` args ([#39])
+- Rename `limb::Inner` to `LimbUInt` ([#40])
+- Make `limb` module private ([#40])
+- Use `Zero`/`Integer` traits for `is_zero`, `is_odd`, and `is_even` ([#46])
+
+### Fixed
+- `random_mod` performance for small moduli ([#36])
+- `NonZero` moduli ([#36])
+
+### Removed
+- Deprecated `LIMB_BYTES` constant ([#43])
+
+[#27]: https://github.com/RustCrypto/crypto-bigint/pull/27
+[#33]: https://github.com/RustCrypto/crypto-bigint/pull/33
+[#34]: https://github.com/RustCrypto/crypto-bigint/pull/34
+[#35]: https://github.com/RustCrypto/crypto-bigint/pull/35
+[#36]: https://github.com/RustCrypto/crypto-bigint/pull/36
+[#39]: https://github.com/RustCrypto/crypto-bigint/pull/39
+[#40]: https://github.com/RustCrypto/crypto-bigint/pull/40
+[#41]: https://github.com/RustCrypto/crypto-bigint/pull/41
+[#43]: https://github.com/RustCrypto/crypto-bigint/pull/43
+[#45]: https://github.com/RustCrypto/crypto-bigint/pull/45
+[#46]: https://github.com/RustCrypto/crypto-bigint/pull/46
+[#47]: https://github.com/RustCrypto/crypto-bigint/pull/47
+
+## 0.2.11 (2021-10-16)
+### Added
+- `AddMod` proptests ([#24])
+- Bitwise `And`/`Or` operations ([#25])
+
+[#24]: https://github.com/RustCrypto/crypto-bigint/pull/24
+[#25]: https://github.com/RustCrypto/crypto-bigint/pull/25
+
+## 0.2.10 (2021-09-21)
+### Added
+- `ArrayDecoding` trait ([#12])
+- `NonZero` wrapper ([#13], [#16])
+- Impl `Div`/`Rem` for `NonZero<UInt>` ([#14])
+
+[#12]: https://github.com/RustCrypto/crypto-bigint/pull/12
+[#13]: https://github.com/RustCrypto/crypto-bigint/pull/13
+[#14]: https://github.com/RustCrypto/crypto-bigint/pull/14
+[#16]: https://github.com/RustCrypto/crypto-bigint/pull/16
+
+## 0.2.9 (2021-09-16)
+### Added
+- `UInt::sqrt` ([#9])
+
+### Changed
+- Make `UInt` division similar to other interfaces ([#8])
+
+[#8]: https://github.com/RustCrypto/crypto-bigint/pull/8
+[#9]: https://github.com/RustCrypto/crypto-bigint/pull/9
+
+## 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])
+
+[#2]: https://github.com/RustCrypto/crypto-bigint/pull/2
+
+## 0.2.7 (2021-09-12)
+### Added
+- `UInt::shl_vartime`
+
+### Fixed
+- `add_mod` overflow handling
+
+## 0.2.6 (2021-09-08)
+### Added
+- `Integer` trait
+- `ShrAssign` impl for `UInt`
+- Recursive Length Prefix (RLP) encoding support for `UInt`
+
+## 0.2.5 (2021-09-02)
+### Fixed
+- `ConditionallySelectable` impl for `UInt`
+
+## 0.2.4 (2021-08-23) [YANKED]
+### Added
+- Expose `limb` module
+- `[limb::Inner; LIMBS]` conversions for `UInt`
+- Bitwise right shift support for `UInt` ([#586], [#590])
+
+## 0.2.3 (2021-08-16) [YANKED]
+### Fixed
+- `UInt::wrapping_mul`
+
+### Added
+- Implement the `Hash` trait for `UInt` and `Limb`
+
+## 0.2.2 (2021-06-26) [YANKED]
+### Added
+- `Limb::is_odd` and `UInt::is_odd`
+- `UInt::new`
+- `rand` feature
+
+### Changed
+- Deprecate `LIMB_BYTES` constant
+- Make `Limb`'s `Inner` value public
+
+## 0.2.1 (2021-06-21) [YANKED]
+### Added
+- `Limb` newtype
+- Target-specific rustdocs
+
+## 0.2.0 (2021-06-07) [YANKED]
+### Added
+- `ConstantTimeGreater`/`ConstantTimeLess` impls for UInt
+- `From` conversions between `UInt` and limb arrays
+- `zeroize` feature
+- Additional `ArrayEncoding::ByteSize` bounds
+- `UInt::into_limbs`
+- `Encoding` trait
+
+### Removed
+- `NumBits`/`NumBytes` traits; use `Encoding` instead
+
+## 0.1.0 (2021-05-30)
+- Initial release