Changelog of @hackage/cryptostore 0.3.1.0

Revision history for cryptostore

0.3.1.0 - 2024-05-05

  • Strict validation of GCM/CCM authentication tag length

0.3.0.1 - 2023-06-25

  • Add optional flag to use crypton instead of cryptonite

0.3.0.0 - 2023-01-14

  • API change in PKCS5, PKCS8 and PKCS12 modules to handle better password-based encryption derived from an empty password. All encryption/decryption functions now expect an opaque ProtectionPassword data type. Conversion functions toProtectionPassword and fromProtectionPassword are provided. Additionnally in the PKCS12 module, the type OptProtected is replaced with OptAuthenticated when dealing with password integrity. Similarly at that level, function recover is to be replaced with recoverAuthenticated.

  • Added support for KMAC (Keccak Message Authentication Code) in CMS authenticated data, through constructors KMAC_SHAKE128 and KMAC_SHAKE256.

  • CMS key agreement now supports derivation with HKDF along with X9.63. Data type KeyAgreementParams is modified to include a KDF instead of simply the digest algorithm. HKDF has assigned OIDs only for standard DH and cannot be used with cofactor DH.

  • Added CMS utility functions to deal with the signingTime attribute.

  • Changed withSignerCertificate validation callback API to include the signingTime value when available.

0.2.3.0 - 2022-11-05

  • Fix RC2 on big-endian architectures

0.2.2.0 - 2022-04-16

  • Fix buffer overrun in pkcs12Derive

0.2.1.0 - 2019-10-13

  • Added CMS fuctions contentInfoToDER and berToContentInfo in order to generate and parse raw ASN.1.

  • Implementation of AES key wrap had some optimizations.

  • SHAKE hash algorithms now allow arbitrary output lengths. Lengths that are very small decrease security. A protection is added so that attempts to use lengths which are too small fail, although the criteria are conservative. Generating and parsing content has no restriction.

0.2.0.0 - 2019-03-24

  • Added functions toNamedCredential and fromNamedCredential to handle PKCS#12 elements with an alias (friendly name).

  • Functions fromCredential and fromNamedCredential now generate PKCS#12 elements with the localKeyId attribute.

  • Function toCredential is now able to locate the leaf certificate and issuers more reliably.

  • Algorithms X25519, X448, Ed25519 and Ed448 are now supported.

  • CMS functions digestVerify and verifySignedData now return an Either instead of a Maybe. Errors DigestMismatch and SignatureNotVerified are added to report failures.

  • CMS types SignedData, DigestedData and AuthenticatedData now retain the encapsulated content in encoded form (with type alias EncapsulatedContent) instead of a decoded and parsed ContentInfo. The ContentInfo is parsed and provided only when successfully unwrapping the encapsulated type.

  • The CMS interface is transformed to support detached content. CMS types now have a type parameter to distinguish between a direct reference to the encapsulated or encrypted content, and the Encap indirection which denotes an attached or detached content. Functions building CMS types do not return the ContentInfo directly anymore, but an intermediate type to be fed into toAttachedCI or toDetachedCI. Reverse transformation is possible with utility functions fromAttached and fromDetached when unwrapping a ContentInfo.

0.1.0.0 - 2018-09-23

  • First version. Released on an unsuspecting world.