PackageTrack
Sign in Get early access

cryptography

Cryptographic algorithms for encryption, digital signatures, key agreement, authentication, and hashing. AES, Chacha20, ED25519, and more. Cross-platform (mobile, desktop, JS, WASM).

2.9.0 650K downloads/mo #446 most downloaded on pub.dev dint-dev/cryptography

What this package is like to depend on

Last release 9 months ago

21 Nov 2025

Ships unpredictably

gaps range from 8 days to 2.2 years

Nearly every release is documented

notes for 46 of 46 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

49 releases · first in 2019

3 releases in the last 12 months

see the full history below

Release timeline

49 releases · Sep 2019 to Nov 2025
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 49
  1. 2.9.0 21 Nov 2025
    Release notes

    What's Changed

    Open source →
    Release notes
    • Adds support for Web Crypto Ed25519 signatures.
    • Adds support for Web Crypto X25519 key exchange.
    • Bug fixes and refactoring.
    Open source →
  2. 2.8.1 21 Nov 2025
    Release notes

    Merge pull request #207 from dint-dev/fix/various

    Refactoring

    Open source →
    Release notes
    • Bug fixes.
    Open source →
  3. 2.8.0 19 Nov 2025
    Release notes

    Merge pull request #201 from dint-dev/feature/wasm

    Implement dart2wasm support

    Open source →
    Release notes
    • Adds WASM support. BrowserCryptography now uses 'dart:js_interop'.
    Open source →
  4. 2.7.0 21 Sep 2023
    Release notes
    • Adds a cross-platform of Argon2id, a highly recommended algorithm for password hashing.
    • Introduces a dependency on "package:ffi" (a package by Google). A memory allocator in the package is used when the Argon2 implementation distributes computation to multiple isolates.
    • Small backwards-compatible changes in Blake2b and DartBlake2b API.
    Open source →
  5. 2.6.1 21 Sep 2023
    Release notes
    • Fixes incorrect base class constraints.
    Open source →
  6. 2.6.0 02 Sep 2023
    Release notes
    • Improves Blake2b/Blake2s support:
      • Adds support for using as a MAC algorithm
      • Adds support for custom output lengths
      • Improves test coverage
      • Fixes bugs
    • Removes long-deprecated newSink() methods in HashAlgorithm and MacAlgorithm (so Blake2 classes can implement both interfaces).
    • Raises Dart SDK minimum to 3.1.0 and other small changes related to dependency constraints.
    • Improves documentation.
    Open source →
  7. 2.5.0 11 Mar 2023
    Release notes
    • Adds enough DER encoding/decoding support for us to use Apple's CryptoKit ECDH/ECDSA functions.
    • Improves BrowserHmac/etc. parameter checks.
    • Improves documentation.
    Open source →
  8. 2.4.0 06 Mar 2023
    Release notes
    • Fixes many issues found by adding more tests. Also improves documentation.
    • Improves performance of SHA256, HMAC, and PBKDF2 by cutting unnecessary state allocations and futures.
    • Some small API refactoring and new class members that don't really affect the publicly visible API. We plan to address most API design issues (some discussed in the issue tracker) in the next major version (3.x).
    • Adds support for seck256k1 key type (#135).
    Open source →
  9. 2.3.0 04 Mar 2023
    Release notes
    • Fixes some small issues.
      • Improves documentation.
    Open source →
  10. 2.2.0 03 Mar 2023
    Release notes
    • The main changes in the the APIs:
      • Adds new elements and parameters in various classes, especially Dart implementations. This can be a breaking change if you extend those classes.
      • Adds PaddingAlgorithm class and support for padding in AES-CBC.
      • Adds CipherState class for processing long / infinite inputs.
      • Adds CipherWand, KeyExchangeWand, and SignatureWand classes.
      • Adds random number generator parameters to class constructors. You can now have deterministic behavior in tests. For example, you can construct BrowserCryptography(random: myRandom).
      • Adds an alternative random number generator, which is about 100 times faster than Random.secure. Random.secure continues to be the default everywhere.
      • Adds support for overwriting secrets in memory (SecretKeyData, KeyPairData) and eliminates unnecessary wrapping of bytes in unmodifiable lists.
      • Adds output buffer parameter for avoiding copying.
    • The main changes in the Dart implementations:
      • Improves some ciphers such as Chacha20 and AesCtr so that large inputs don't block the main thread. Instead, data will processed in chunks by default and other things can be scheduled in-between two chunks.
      • Significantly improves performance of Chacha20.poly1305.
    • The main changes in the Web Cryptography implementations:
      • Fixes many bugs.
      • Adds support for fallbacks when browsers don't allow Web Cryptography (non-secure browser contexts).
    • Improves documentation.
    Open source →
  11. 2.1.1 17 Feb 2023
    Release notes
    • Fixes small issues.
    • Improves documentation.
    Open source →
  12. 2.1.0 17 Feb 2023
    Release notes
    • Improves performance of Blake2b/Blake2s.
    • Add SecretBoxPaddingError that is thrown when the padding of a secret box is invalid.
    • Adds some additional constructors such as DartAesGcm.with128bits.
    • Fixes various small issues.
    • Improves documentation.
    Open source →
  13. 2.0.5 14 Nov 2021
    Release notes
    • Fixes bugs in Xchacha20.poly1305.
    Open source →
  14. 2.0.4 09 Nov 2021
    Release notes
    • Fixes an import of 'dart:io' that caused issues.
    Open source →
  15. 2.0.3 09 Nov 2021
    Release notes
    • Updates dependency constraints and linting rules.
    Open source →
  16. 2.0.2 17 Jul 2021
    Release notes
    • Fixes an issue in SecretBox.fromConcatenation.
    • Improves documentation.
    Open source →
  17. 2.0.1 03 Mar 2021
    Release notes
    • Documentation fixes.
    Open source →
  18. 2.0.0 03 Mar 2021
    Release notes
    • Finishes null safety migration.
    Open source →
  19. 2.0.0-nullsafety.2 31 Dec 2020 pre-release
    Release notes
    • For ease of use and backwards compatibility with 1.x, adds SecretKey(bytes) factory that just redirects to SecretKeyData(bytes).
    • Renames a few identifiers in package:cryptography for consistency. Adds deprecation warnings to the old identifiers.
    • Some small internal fixes.
    • Improves documentation.
    Open source →
  20. 2.0.0-nullsafety.1 31 Dec 2020 pre-release
    Release notes
    • Re-introduces package:crypto as dependency now that a null-safe version exists.
    • Better documentation.
    Open source →
  21. 2.0.0-nullsafety.0 31 Dec 2020 pre-release
    Release notes
    • BREAKING CHANGES: Many breaking API changes that make the API easier to understand and use.
    • IMPORTANT FIXES: Improves tests and fixes a number of bugs we spotted. We don't plan to support the 1.x API. We highly recommend you migrate to the 2.x API.
    • The first null-safe version.
    Open source →
  22. 1.4.1 09 Jun 2020
    Release notes
    • Improves Web Cryptography support internally.
      • The implementation is now easier to read.
      • In older browsers, the implementation fall back to pure Dart implementation if attempt to use Web Cryptography fails.
      • HMAC and HKDF are now able to use Web Cryptography.
    • Improves documentation.
    Open source →
  23. 1.4.0 08 Jun 2020
    Release notes
    • Adds support for cryptography_flutter, which uses operating system implementations.
    Open source →
  24. 1.3.0 03 Jun 2020
    Release notes
    • Adds PBKDF2 and Blake2b.
    • Some internal refactoring.
    Open source →
  25. 1.2.1 20 May 2020
    Release notes
    • Fixes documentation issues.
    Open source →
  26. 1.2.0 20 May 2020
    Release notes
    • Adds RsaPss and RsaPkcs1v15 (Web Cryptography only).
    • BREAKING CHANGE: Recently added JwkSecretKey is now EcJwkSecretKey.
    • Adds EcJwkSecretKey and EcJwkPublicKey.
    • Adds RsaJwkSecretKey and RsaJwkPublicKey.
    Open source →
  27. 1.1.1 18 May 2020
    Release notes
    • Small fixes to documentation and internal declarations.
    Open source →
  28. 1.1.0 18 May 2020
    Release notes
    • BREAKING CHANGE: Cipher methods encrypt / encryptSync and decrypt / decryptSync now use return type Future<Uint8List> / Uint8List instead of previous Future<List<int>> / List<int>. We return instances of Uint8List anyway and we felt it's good to expose this fact despite despite possibility that the change affects some developers. If you are affected by this, you should see compile-time type warnings.
    • Cipher has new getters nonceLengthMin and nonceLengthMax.
    • AES-GCM is supported in the VM too.
    • AES performance is improved significantly.
    • Adds JwkSecretKey.
    • BREAKING CHANGE: JwkSecretKey (instead of previous unspecified format) becomes the private key storage format for P-256/P-384/P-521. Any attempt to use the previous unspecified format will lead to errors. It's unlikely that anyone is affected by this change so we don't bump the major version.
    • SecretKey and SecretKey now have property Map<Object,Object> cachedValues, which can be used for caching objects needed for cryptographic operations (such as handles to Web Cryptography API objects).
    • Hides utils from developers.
    • Internal refactoring.
    • Better documentation.
    Open source →
  29. 1.0.4 14 May 2020
    Release notes
    • Internal refactoring. Splits a number of large source files (such as Web Cryptography support) into more readable smaller files.
    • Adds VM implementation stubs for algorithms that are only supported in the browser (e.g. ecdhP256). The methods throw UnimplementedError in VM.
    • Improves Poly1305 performance.
    • Adds a few more tests.
    • Improves documentation.
    Open source →
  30. 1.0.3 12 May 2020
    Release notes
    • Improves documentation.
    Open source →
  31. 1.0.2 11 May 2020
    Release notes
    • Implements automatic use of Web Cryptography API when SHA1 or SHA2 is used in browsers. SHA2-512 becomes up to 100 times faster in browsers. ED25519 becomes approximately 30 times faster in browsers with the improved SHA512.
    • Better documentation and benchmarks.
    Open source →
  32. 1.0.1 11 May 2020
    Release notes
    • Implements ed25519.newKeyFromSeed(seed).
    • Significantly improves ED25519 performance.
    • Small fixes in documentation.
    Open source →
  33. 1.0.0 28 Apr 2020
    Release notes
    • A stable API.
    Open source →
  34. 0.3.5 24 Apr 2020
    Release notes
    • Adds Xchacha20 cipher.
    • When authenticated ciphers encounter incorrect MACs, they now throw MacValidationException (instead of returning null, which developers may ignore in some situations).
    Open source →
  35. 0.3.4 24 Apr 2020
    Release notes
    • Fixes a cipher.name issue and improves documentation.
    Open source →
  36. 0.3.3 24 Apr 2020
    Release notes
    • Improves documentation.
    • Improves outputs of cipher.name.
    Open source →
  37. 0.3.2 24 Apr 2020
    Release notes
    • Improves documentation.
    Open source →
  38. 0.3.1 24 Apr 2020
    Release notes
    • Improves documentation.
    • Eliminates AES-CBC and AES-CTR dependencies.
    Open source →
  39. 0.3.0 13 Apr 2020
    Release notes
    • Breaking changes: Removes separate key generator classes. Many API changes designed to reduce chances of developers using the API incorrectly.
    • Adds HKDF and ED25519 support.
    • Adds more assertions and tests.
    • Improves documentation.
    Open source →
  40. 0.2.6 28 Mar 2020
    Release notes
    • Fixed an issue with dependency constraints that conflict with Flutter SDK.
    • SecretKey / SecretKey property bytes is deprecated and replaced with extract() and extractSync() to better support implementations that protect the underlying bytes such as Web Cryptography API.
    • Improves documentation.
    Open source →
  41. 0.2.5 27 Mar 2020
    Release notes
    • Adds AES for non-browser platforms.
    • Fixes various bugs and improves test coverage.
    Open source →
  42. 0.2.4 25 Mar 2020
    Release notes
    • Improves documentation.
    Open source →
  43. 0.2.3 24 Mar 2020
    Release notes
    • Improves documentation, clarity, test coverage.
    Open source →
  44. 0.2.2 23 Mar 2020
    Release notes
    • Improves documentation.
    • Deprecates ConstantTimeBytesEquality in favor of constantTimeBytesEquality.
    Open source →
  45. 0.2.1 09 Mar 2020
    Release notes
    • Improves documentation and stops exporting a few declarations.
    Open source →
  46. 0.2.0 09 Mar 2020
    Release notes
    • Major refactoring and breaking API changes.
    • Improves in documentation.
    • Adds AES, P256/P384/P521, SHA1, Poly1305, and AEAD_Chacha20_Poly1305.
    Open source →
  47. 0.1.2 24 Sep 2019
    Release notes
    • Improved documentation
    Open source →
  48. 0.1.1 24 Sep 2019
    Release notes
    • Fixed example
    Open source →
  49. 0.1.0 24 Sep 2019
    Release notes
    • Initial version
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive