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.
- 2021 edition upgrade; MSRV 1.56 (#869)
- Optional
serdesupport (#780)
- Factor integration tests into
tests/(#771)
- Nightly-only upport for zeroizing ARM64 SIMD registers (#749)
- Deriving
ZeroizeOnDroponDerefMut(#739)
- Ambiguous method for
AssertZeroizeOnDrop(#725)
- Double
mutonAssertZeroizeOnDrop(#719)
Zeroizeimpls forPhantomData,PhantomPinned, and tuples with 0-10 elements (#660)#[zeroize(bound = "T: MyTrait")](#663)ZeroizeOnDroptrait and custom derive (#699, #700, #703)
- Implement
ZeroizeforNonZeroX
- Moved to
RustCrypto/utilsrepository
- Derive
DefaultonZeroizing
- Implement Zeroize for
[MaybeUninit<Z>]
NOTE: This release includes an MSRV bump to Rust 1.51. Please use zeroize = "1.3.0"
if you would like to support older Rust versions.
- Use const generics to impl
Zeroizefor[Z; N]; MSRV 1.51 Zeroizing::clone_fromnow zeroizes the destination before cloning
- impl
ZeroizeforBox<[Z]> - Clear residual space within `Option
- Ensure
OptionisNonewhen zeroized - Bump MSRV to 1.47
Zeroizesupport for x86(_64) SIMD registers
- Simplify
String::zeroize - MSRV 1.44+
- Add
doc_cfg - zeroize entire capacity of
String - zeroize entire capacity of
Vec
- Add
TryZeroizetrait - Add
From<Z: Zeroize>impl forZeroizing<Z> - Remove
bytes-previewfeature
- Initial 1.0 release 🎉
- zeroize_derive: Remove legacy
no_dropattribute support - Rename
bytesfeature tobytes-preview - Further relax
Zeroizetrait bounds forVec - Derive
Clone,Debug, andEqforZeroizing
- Loosen
Vectrait bounds forZeroize
- (Optionally) Impl
ZeroizeforBytesandBytesMut
Barring unforeseen circumstances, this release aims to be the last 0.x
release prior to a zeroize 1.0 release.
- Disable
zeroize_deriveCargo feature by default - Remove
stdfeature in favor ofalloc; MSRV 1.36+ - Deprecate
#[zeroize(no_drop)]attribute - Use 1.0
proc-macro2,quote, andsyncrates
- Improved attribute parser; fixes nightly build
- README.md: add Gitter badges; update image links
- Impl
ZeroizeforOption<Z: Zeroize>
NOTICE: This release changes the default behavior of derive(Zeroize)
to no longer derive a Drop impl. If you wish to derive Drop, you must
now explicitly add a #[zeroize(drop)] attribute on the type for which you
are deriving Zeroize.
- Remove CPU fences
- Remove scary language about undefined behavior
- Bound blanket array impls on
Zeroizeinstead ofDefaultIsZeroes - Require
zeroize(drop)orzeroize(no_drop)attributes when derivingZeroize. - Support stablized 'alloc' crate
- Impl
Dropby default when derivingZeroize
- Use synstructure for custom derive
- Add explicit array impls for
DefaultIsZeroes - Remove
nightlyfeature - Add
Zeroizing<Z>to zeroize values on drop
- Add ZeroizeOnDrop marker trait + custom derive
- Custom derive support for
Zeroize - Rename
ZeroizeWithDefaulttoDefaultIsZeroes
- Add
debug_assert!to ensure string interiors are zeroized
- Avoid re-exporting the whole prelude
This release is a rewrite which replaces FFI bindings to OS-specific APIs with a pure Rust solution.
- Use
core::sync::atomicfences - Test wasm target
- Rewrite using
core::ptr::write_volatile
- Fix ldd scraper for older glibc versions
- Support musl-libc
- Impl
Zeroizetrait on concrete types
- Replace
secure_zero_memorywithZeroize
- Add
Zeroizetrait
- README.md: Fix intrinsic links
- Documentation improvements
- Initial release