secrecy 0.10.3

Wrapper types and traits for secret management which help ensure they aren't accidentally copied, logged, or otherwise exposed (as much as possible), and also ensure secrets are securely wiped from memory when dropped.
Documentation
# 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.10.3 (2024-10-09)
### Added
- Make integer primitive `SecretSlice`s cloneable ([#1236])
- Impl `From<&str>` for `SecretString` ([#1237])

[#1236]: https://github.com/iqlusioninc/crates/pull/1236
[#1237]: https://github.com/iqlusioninc/crates/pull/1237

## 0.10.2 (2024-09-20)
### Added
- Impl `Deserialize` for `SecretString` ([#1220])

[#1220]: https://github.com/iqlusioninc/crates/pull/1220

## 0.10.1 (2024-09-18)
### Added
- Impl `Clone` for `SecretString` ([#1217])

[#1217]: https://github.com/iqlusioninc/crates/pull/1217

## 0.10.0 (2024-09-17)

This release represents a significant redesign of the `secrecy` crate. We will update this section
with upgrade instructions based on feedback from people upgrading, as it's been a long time since
the previous release, and this release includes a number of breaking changes.

The most notable change is the generic `Secret<T>` type has been removed: instead use `SecretBox<T>`
which stores secrets on the heap instead of the stack. Many of the other changes fall out of this
change and things which were previously type aliases of `Secret<T>` are now type aliases of
`SecretBox<T>`.

This unfortunately means this crate no longer has support for "heapless" `no_std` targets. We don't
have a good solution for these targets, which was a motivation for this change in the first place.

### Added
- `SecretBox::{init_with, try_init_with}` ([#1212])
- `SecretBox::init_with_mut` ([#1213])
- `?Sized` bounds for `SecretBox` ([#1213])
- `SecretSlice<T>` ([#1214])

### Changed
- Rust 2021 edition upgrade ([#889])
- MSRV 1.60 ([#1105])
- `SecretBox<T>` is now a newtype rather than a type alias of `Secret<Box<T>> ([#1140])
- `SecretString` is now a type alias for `SecretBox<str>` ([#1213])
- Disable `serde` default features ([#1194])

### Removed
- `alloc` feature: now a hard dependency ([#1140])
- `bytes` crate integration: no replacement ([#1140])
- `DebugSecret` trait: no replacement ([#1140])
- `Secret<T>`: use `SecretBox<T>` instead ([#1140])

[#889]: https://github.com/iqlusioninc/crates/pull/889
[#1105]: https://github.com/iqlusioninc/crates/pull/1105
[#1140]: https://github.com/iqlusioninc/crates/pull/1140
[#1194]: https://github.com/iqlusioninc/crates/pull/1194
[#1212]: https://github.com/iqlusioninc/crates/pull/1212
[#1213]: https://github.com/iqlusioninc/crates/pull/1213
[#1214]: https://github.com/iqlusioninc/crates/pull/1214

## 0.9.0 (Skipped)

## 0.8.0 (2021-07-18)

NOTE: This release includes an MSRV bump to Rust 1.56. Please use `secrecy = "0.7.0"`
if you would like to support older Rust versions.

### Added
- impl `From<T>` for `Secret` ([#482])

### Changed
- Bump `bytes` to v1.0 ([#592])
- Switch to `resolver = "2"`; MSRV 1.56 ([#755])

[#482]: https://github.com/iqlusioninc/crates/pull/482
[#592]: https://github.com/iqlusioninc/crates/pull/592
[#755]: https://github.com/iqlusioninc/crates/pull/755

## 0.7.0 (2020-07-08)
### Added
- Re-export zeroize ([#466])
- `rustdoc` improvements ([#464], [#465])

### Changed
- Have `DebugSecret` take a formatter ([#467])
- Make `FromStr` impl for `SecretString` be `Infallible` ([#323])

### Fixed
- Use `SerializableSecret` in `Serialize` bounds ([#463])

[#467]: https://github.com/iqlusioninc/crates/pull/467
[#466]: https://github.com/iqlusioninc/crates/pull/466
[#465]: https://github.com/iqlusioninc/crates/pull/465
[#464]: https://github.com/iqlusioninc/crates/pull/464
[#463]: https://github.com/iqlusioninc/crates/pull/463
[#323]: https://github.com/iqlusioninc/crates/pull/323

## 0.6.0 (2019-12-12)

- Impl `CloneableSecret` for `Secret<[T; N]>` where `T: Clone` ([#311])
- Impl `DebugSecret` for `[T; N]` where `N` <= 64 ([#310])
- Impl `FromStr` for `SecretString` ([#309])
- Upgrade to `bytes` v0.5 ([#301], [#308], [#312])

[#312]: https://github.com/iqlusioninc/crates/pull/312
[#311]: https://github.com/iqlusioninc/crates/pull/311
[#310]: https://github.com/iqlusioninc/crates/pull/310
[#309]: https://github.com/iqlusioninc/crates/pull/309
[#308]: https://github.com/iqlusioninc/crates/pull/308
[#301]: https://github.com/iqlusioninc/crates/pull/301

## 0.5.2 (2019-12-18)

- Backport Impl `FromStr` for `SecretString` ([#309])

[#309]: https://github.com/iqlusioninc/crates/pull/309

## 0.5.1 (2019-11-30)

- Change default `DebugSecret` string to `[REDACTED]` ([#290])

[#290]: https://github.com/iqlusioninc/crates/pull/290

## 0.5.0 (2019-10-13)

- Upgrade to `zeroize` v1.0.0 ([#279])

[#279]: https://github.com/iqlusioninc/crates/pull/279

## 0.4.1 (2019-10-13)

- Upgrade to `zeroize` v1.0.0-pre ([#268])

[#268]: https://github.com/iqlusioninc/crates/pull/268

## 0.4.0 (2019-09-03)

- Add `SerializableSecret` ([#262])
- Add (optional) concrete `SecretBytes` type ([#258], [#259], [#260], [#261])

[#262]: https://github.com/iqlusioninc/crates/pull/262
[#261]: https://github.com/iqlusioninc/crates/pull/261
[#260]: https://github.com/iqlusioninc/crates/pull/260
[#259]: https://github.com/iqlusioninc/crates/pull/259
[#258]: https://github.com/iqlusioninc/crates/pull/258

## 0.3.1 (2019-08-26)

- Impl `CloneableSecret` for `String` ([#256])

[#256]: https://github.com/iqlusioninc/crates/pull/256

## 0.3.0 (2019-08-20)

- Add support for `alloc` types ([#253])
- `zeroize` v0.10.0 ([#248])
- Add a default impl for `DebugSecret` trait ([#241])

[#253]: https://github.com/iqlusioninc/crates/pull/253
[#248]: https://github.com/iqlusioninc/crates/pull/248
[#241]: https://github.com/iqlusioninc/crates/pull/241

## 0.2.2 (2019-06-28)

- README.md: add Gitter badges; update image links ([#221])

[#221]: https://github.com/iqlusioninc/crates/pull/221

## 0.2.1 (2019-06-04)

- `zeroize` v0.9.0 ([#215])

[#215]: https://github.com/iqlusioninc/crates/pull/215

## 0.2.0 (2019-05-29)

- Add `CloneableSecret` marker trait ([#210])

[#210]: https://github.com/iqlusioninc/crates/pull/210

## 0.1.0 (2019-05-23)

- Initial release