at_chops 3.2.1 copy "at_chops: ^3.2.1" to clipboard
at_chops: ^3.2.1 copied to clipboard

Package for at_protocol cryptographic and hashing operations

3.2.1 #

  • docs: update README to document PQC algorithms (ML-DSA-65, ML-KEM-768, X-Wing, X25519), FFI vs pure-Dart backends, and usage examples

3.2.0 #

  • feat: Add XWingPureDartAlgo — the X-Wing hybrid post-quantum/traditional KEM (draft-connolly-cfrg-xwing-kem-10; X25519 + ML-KEM-768), with AtXWingKeyPair and AtChopsUtil.generateXWingKeyPair(); verified against the draft's test vectors byte-exact
  • feat: Add XWingFfiAlgo — the OpenSSL/FFI X-Wing backend, composing MlKem768FfiAlgo and X25519FfiAlgo (X-Wing has no native OpenSSL primitive). Fully interoperable with XWingPureDartAlgo and verified against the draft vector. Supporting additions: MlKem768FfiAlgo.generateKeyPairFromSeed (FIPS 203 d || z seed import) and X25519FfiAlgo.publicKeyFromPrivate
  • feat: MlKem768PureDartAlgo.encapsulate accepts optional deterministic randomness (FIPS 203 m) for test-vector verification
  • feat: Add AesGcm256EncryptionAlgo — AES-256-GCM authenticated encryption (pure-Dart via cryptography); output ciphertext || tag, explicit 12-byte nonce, tamper detection via AtDecryptionException
  • refactor: consolidate the key classes (AtPublicKey, AtPrivateKey, SymmetricKey, AsymmetricKeyPair) under a single sealed hierarchy in src/key/keys.dart, replacing at_key_pair.dart / at_private_key.dart / at_public_key.dart. The public class names and constructors are unchanged and remain exported from package:at_chops/at_chops.dart; only direct src/-path imports of the removed files are affected.
  • feat: Add ML-DSA-65 digital signature algorithm (pure-Dart via pqcrypto package and OpenSSL FFI backends)
  • feat: Add AtMlDsa65KeyPair key type (public key: 1952 bytes, secret key: 4032 bytes)
  • feat: Add AtChopsUtil.generateMlDsa65KeyPair() utility method
  • feat: Add OpenSSL capability probe (libCryptoSupportsMlDsa65) to skip ML-DSA-65 FFI tests on OpenSSL < 3.3
  • fix: Refactor libCryptoSupportsMlKem768 to share implementation with new libCryptoSupportsMlDsa65
  • fix: Emit warning to stderr when AT_CHOPS_LIBCRYPTO_PATH is set but fails to open
  • chore: Rename example files to follow lower_case_with_underscores convention
  • fix: correct AtMlDsa65KeyPair import path from removed at_key_pair.dart to keys.dart
  • fix(test): FFI tests now call fail() instead of skip() when libcrypto is unavailable or does not support the required algorithm

3.1.0 #

  • feat: Add X25519 key agreement algorithm (pure-Dart via cryptography package and OpenSSL FFI backends)
  • feat: Add ML-KEM-768 key encapsulation algorithm (pure-Dart via pqcrypto package and OpenSSL FFI backends)
  • feat: Introduce AtKemAlgorithm and AtKeyAgreementAlgorithm interfaces for post-quantum cryptography
  • feat: Add AtX25519KeyPair and AtMlKem768KeyPair key types with fromBytes constructors
  • feat: Add OpenSSL capability probe (libCryptoSupportsMlKem768) to skip ML-KEM-768 FFI tests on OpenSSL < 3.3
  • build[deps]: Add pqcrypto and cryptography dependencies for PQC algorithm support

3.0.0 #

  • feat: Faster AES encryption/decryption using better_crypto
  • refactor: bring all keys into the same import underneath a unified sealed class

2.2.0 #

  • feat: Implement "argon2id" hashing algorithm to generate hash from a given passphrase.
  • feat: Add generics to "AtEncryptionAlgorithm" and "AtHashingAlgorithm" to support multiple data types in their implementations.
  • build[deps]: Upgraded the following packages:
    • at_commons to v5.0.2
    • args to v2.6.0
    • lints to v5.0.0
    • test to v1.25.8
    • collection to v1.19.1

2.1.0 #

  • feat: New library available called at_chops_types which provides type definitions for using custom algorithms with at_chops

2.0.1 #

  • fix: throw Exception when input IV is null for decryption(with Symmetric Encryption)
  • build[deps]: Upgraded the following packages:
    • at_commons to v5.0.0
    • at_utils to v3.0.19

2.0.0 #

  • [Breaking Change] fix: removed deprecated methods and members
  • [Breaking Change] feat: Introduced interface for ASymmetricEncryptionAlgorithm and modified DefaultEncryptionAlgorithm
  • build[deps]:
    • changed minimum dart version in pubspec from 2.15.1 to 3.0.0
    • upgraded pointycastle to 3.7.4

1.0.7 #

  • build[deps]: Upgraded the following packages:
    • at_commons to v4.0.0
    • at_utils to v3.0.16
    • crypton to v2.2.1
    • encrypt to v5.0.3
    • crypto to v3.0.3
    • ecdsa to v0.1.0
    • elliptic to v0.3.10
    • pointycastle to v3.7.3
    • dart_periphery to v0.9.5

1.0.6 #

  • fix: Pass optional parameter "keyName" to encryptBytes and decryptBytes
  • fix: Export "at_key_pair.dart" file

1.0.5 #

  • feat: Changes for at_auth package
  • chore: fixed analyzer issues

1.0.4 #

  • feat: Deprecated symmetric key pair in AtChopsKeys and introduced selfEncryptionKey and apkamSymmetricKey
  • chore: Upgrade at_commons to 3.0.53 and at_util to 3.0.15
  • fix: Removed at_onboarding_cli dependency in pubspec

1.0.3 #

  • chore: Changed the Dart SDK version to 2.15.1 from 2.18.3 to support dependent packages

1.0.2 #

  • feat: changes for pkam using private key from secure element.

1.0.1 #

  • feat: Added implementation for different signing algorithms.

1.0.0 #

  • Initial version.