### 0.7.7

__Date:__ July 16, 2025.

- Omit fractional seconds in `DateTime` claims on creation ([#200](https://github.com/brycx/pasetors/pull/200), credits: [@Chaoses-Ib](https://github.com/Chaoses-Ib)).
- Add `remove_claim()` to `Claims` ([#201](https://github.com/brycx/pasetors/pull/201), credits: [@Chaoses-Ib](https://github.com/Chaoses-Ib)).

### 0.7.6

__Date:__ June 7, 2025.

- Fixup for "Build serde and serde_derive in parallel" ([#192](https://github.com/brycx/pasetors/pull/192), credits: [@Enselic](https://github.com/Enselic)).

### 0.7.5

__Date:__ June 7, 2025.

- Build serde and serde_derive in parallel (22% faster builds) ([#189](https://github.com/brycx/pasetors/pull/189), credits: [@Enselic](https://github.com/Enselic)).
- Bump MSRV to 1.85.0 (due to `base64-ct`) ([#191](https://github.com/brycx/pasetors/pull/191)).

### 0.7.4

__Date:__ April 12, 2025.

- Add `ClaimsValidationRules::disable_valid_at()` which optionally skips validation of `iat` and `nbf`, that _may_ be present within payload claims [#173](https://github.com/brycx/pasetors/issues/173).

### 0.7.3

__Date:__ April 10, 2025.

- Fix bug that prevented compiling with `serde`-feature enabled.
- Bump MSRV to `1.81.0`.

### 0.7.2

__Date:__ January 27, 2025.

- Bump `getrandom` to `0.3.0`.

### 0.7.1

__Date:__ December 10, 2024.

- Add `serde` `Serialize` and `Deserialize` to `TrustedToken`, `UntrustedToken` and `Claims` ([#150](https://github.com/brycx/pasetors/issues/150), credits: [@tomtom5152](https://github.com/tomtom5152)).

### 0.7.0

__Date:__ August 28, 2024.

- Bump MSRV to `1.80`.
- Updated test vectors for `v3.public`.
- (_BREAKING_) Improved error-handling during claims validation. Added `Error::ClaimValidation(ClaimValidationError)`, where `ClaimValidationError` now further specifies the validation error ([#131](https://github.com/brycx/pasetors/pull/131), credits: @jpramosi).

### 0.6.8

__Date:__ December 12, 2023.

- Bump MSRV to `1.70`.
- Add `Claims::set_expires_in()` ([#107](https://github.com/brycx/pasetors/pull/107), credits: @franklx).

### 0.6.7

__Date:__ June 10, 2023.

__Changelog:__
- Add security policy.
- Add `Claims::new_expires_in()` ([#96](https://github.com/brycx/pasetors/issues/96)).


### 0.6.6

__Date:__ March 4, 2023.

__Changelog:__
- Update license year to 2023.
- Bump `p384` to `0.13.0`
- Bump MSRV to `1.65.0`
- Switch from `actions-rs/tarpaulin` to `cargo-tarpaulin` in CI.


### 0.6.5

__Date:__ December 14, 2022.

__Changelog:__
- `SymmetricKey`, `AsymmetricSecretKey` and `AsymmetricKeyPair` now implement `Clone`.

### 0.6.4

__Date:__ November 17, 2022.

__Changelog:__
- `AsymmetricSecretKey` now re-computes the public key from the secret seed to check if they match. If they don't an error is returned. Because we use `ed25519-compact` crate for Ed25519, if an all-zero seed is used, the creation of `AsymmetricSecretKey` will panic.

### 0.6.3

__Date:__ October 15, 2022.

__Changelog:__
- Add optional `serde` support for keys + PASERK ID, to be de/serialized from/to PASERK strings. Also introducing a new optional feature `serde` (see [#26](https://github.com/brycx/pasetors/issues/26), by [@SanchithHegde](https://github.com/SanchithHegde))
- Clippy improvements to tests (see [#69](https://github.com/brycx/pasetors/pull/69), by [@SanchithHegde](https://github.com/SanchithHegde))
- Update `ed25519-compact` to `2.0.2` (see [#72](https://github.com/brycx/pasetors/pull/72))

### 0.6.2

__Date:__ September 23, 2022.

__Changelog:__
- Fix `ed25519-compact` imports that broke build after the crate bumped to `1.0.13+`

### 0.6.1

__Date:__ September 20, 2022.

__Changelog:__
- Bump MSRV to `1.59.0`
- `clippy` fixes
- Add `rust-version` field to `Cargo.toml`
- Update copyright year to 2022


### 0.6.0

__Date:__ June 20, 2022.

__Changelog:__
- PASERK operations are now implemented for `AsymmetricSecretKey<V2>` and `AsymmetricSecretKey<V4>` instead of `AsymmetricKeyPair<V2>` and `AsymmetricKeyPair<V4>`, respectively
- All `sign()` operations with public tokens now take only the secret key
- `V2` and `V4` token's `AsymmetricSecretKey<>` are now defined to contain both the Ed25519 secret seed and the public key (see https://github.com/MystenLabs/ed25519-unsafe-libs)
- `TryFrom<AsymmetricSecretKey<>> for AsymmetricPublicKey<>` is now provided for `V2` and `V4` as well


### 0.5.0

__Date:__ June 4, 2022.

__Changelog:__
- Bump MSRV to `1.57.0`
- Implement `v3.public` tokens ([#40](https://github.com/brycx/pasetors/issues/40))
- Introduce separate crate-features for each version and one for PASERK: `v2`, `v3`, `v4` and `paserk`. `std`, `v4` and `paserk` are enabled by default
- Add support for the PASERK [ID operation](https://github.com/paseto-standard/paserk/blob/master/operations/ID.md) ([#40](https://github.com/brycx/pasetors/issues/40))
- Stricter permissions for GH Actions workflows ([#43](https://github.com/brycx/pasetors/pull/43))
- Add `Generate` trait and implement this for all key-types, removing also `SymmetricKey::gen()` ([#45](https://github.com/brycx/pasetors/issues/45))
- Switch from `ed25519-dalek` to `ed25519-compact` ([#48](https://github.com/brycx/pasetors/issues/48))
- Add new types `token::UntrustedToken` and `token::TrustedToken` which are now used by `verify()`/`decrypt()` operations.
These allow extracting parts of tokens before and after verification ([#47](https://github.com/brycx/pasetors/issues/47))
- Version structs previously available in `keys::` have been moved to a new `version::` module
- Add `Footer` type that makes it easier to create JSON-encoded footers ([#52](https://github.com/brycx/pasetors/pull/52))
- PASERK deserialization of keys now takes `&str` instead of `String` ([#53](https://github.com/brycx/pasetors/issues/53))
- Rename `Error::Base64Decoding` -> `Error::Base64`

### 0.4.2

__Date:__ November 27, 2021.

__Changelog:__
- Update Orion to `0.17` ([#39](https://github.com/brycx/pasetors/pull/39))
- Bump MSRV to `1.52`

### 0.4.1

__Date:__ November 11, 2021.

__Changelog:__
- Enable `getrandom/js` feature and test `wasm32-unknown-unknown` in CI ([#37](https://github.com/brycx/pasetors/pull/37))

### 0.4.0

__Date:__ October 25, 2021.

__Changelog:__
- [Security fix]: Switched from `chrono` to `time` crate ([#30](https://github.com/brycx/pasetors/pull/30))
- `Error` now implements `std::error::Error` ([#27](https://github.com/brycx/pasetors/pull/27)) (by [@not-my-profile](https://github.com/not-my-profile))
- `Errors` enum has be renamed to `Error` and "error" postfixes have been trimmed from variants ([#33](https://github.com/brycx/pasetors/pull/33))
- `SymmetricKey`, `AsymmetricPublicKey` and `AsymmetricSecretKey` have been made generic over their versions ([#31](https://github.com/brycx/pasetors/pull/31)) (by [@not-my-profile](https://github.com/not-my-profile))
- Add support for `local`, `public` and `secret` PASERK types for keys ([#24](https://github.com/brycx/pasetors/pull/24))

### 0.3.0

__Date:__ September 22, 2021.

__Changelog:__
- Implement version 4 of the PASETO specification
- New `SymmetricKey`, `AsymmetricPublicKey` and `AsymmetricSecretKey` now used throughout the API of both version 2 and 4 ([#14](https://github.com/brycx/pasetors/issues/14))
- Use new test vectors from https://github.com/paseto-standard/test-vectors
- Empty payloads are no longer allowed (see https://github.com/paseto-standard/paseto-spec/issues/17) and `Errors::EmptyPayloadError` has been added
- New `Claims` type to easily define claims for tokens and `ClaimsValidationRules` to validate such claims.
- New `std` feature which is enabled by default. This means, that to be `no_std`, `pasetors` has to be declared without default features.
- New `local`/`public` API which uses the latest version, and automatically handles validation of `Claims`.

### 0.2.0

__Date:__ June 2, 2021.

__Changelog:__
- Remove `Csprng` trait from public API and use `getrandom` instead
- Update Orion to `0.16`


### 0.1.1

__Date:__ March 21, 2021.

__Changelog:__
- Switch from `base64` to `ct-codecs` to provide constant-time Base64 encoding/decoding


### 0.1.0 - Initial release

__Date:__ October 12, 2020.
