pointycastle
A Dart library implementing cryptographic algorithms and primitives, modeled on the BouncyCastle library.
4.0.0
3.2M downloads/mo
#191 most downloaded on pub.dev
bcgit/pc-dart
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 10 months
Some releases are documented
notes for 23 of 40 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
51 releases · first in 2016
0 releases in the last 12 months
see the full history below
Release timeline
51 releases · Jan 2016 to Feb 2025Releases
latest 51-
4.0.019 Feb 2025Release notes
Open source →- Add support for utf-16 in ans1_bmp_string.dart
- Add new oid for secp256r1 (PR #249)
- Fix nullsafety error in padded_block_cipher_impl.dart (PR #254)
- Fix ASN1Parser length parsing (PR #250)
- Remove unused js dependency (PR #251)
- Add new oids (PR #240)
- Add new oids for elliptic curves (PR #242)
- Add Blowfish, Camellia, Twofish block cipher engines (PR #246)
- Reformat CHANGELOG.md to match markdown standards
- Add factory for SHA512 in RSA-OAEP (PR #227)
- Add generics to generateKeyPair #191
-
3.9.107 May 2024Release notes
Open source →- Add crypto in topics to pubspec.yaml (PR #237)
- remove unnecessary ! operator from some files (PR #236)
-
3.9.019 Apr 2024 -
3.8.005 Apr 2024 -
3.7.415 Jan 2024Release notes
Open source →- Support the latest version of
package:js. (PR #220) - Require Dart v3.0 (PR #220)
- Support parsing of nested objects with indefinite lengths (PR #215)
- Support the latest version of
-
3.7.314 Apr 2023 -
3.7.223 Mar 2023 -
3.7.121 Mar 2023 -
3.7.016 Mar 2023Release notes
Open source →- Added RC2
- Added RC4
- Added 3DES
- Added PKCS5S1ParameterGenerator
- Added PKCS12ParametersGenerator
- Added new OIDs
- Added new ASN1 models
- EAX
- Linting
- Fix to BasePadding
-
3.6.209 Sep 2022Release notes
Open source →- Added OIDs 2.16.840.1.114412.1.1/digiCertOVCert and
- 2.23.140.1.2.2/organization-validated
-
3.6.119 Jul 2022 -
3.6.027 Apr 2022 -
3.5.207 Mar 2022 -
3.5.108 Feb 2022 -
3.5.030 Dec 2021Release notes
Open source →- RSAES-OAEP with SHA256 or any digest instance.
- Fixed bug in Keccak when updating with single bytes.
-
3.4.009 Nov 2021Release notes
Open source →- Security update, fixed timing leaking in GCM implementation.
- Fixed bug in GCM counter.
- Added constant time gated xor.
- Removed more references to AESFastEngine.
- Security update, AESFastEngine is open to timing attacks, this has been deprecated and replaced with AESEngine.
- validateMac in BaseAEADBlockCipher is now constant time.
-
3.4.0-rc204 Nov 2021 pre-releaseRelease notes
Open source →- Security update, fixed timing leaking in GCM implementation.
- Fixed bug in GCM counter.
- Added constant time gated xor.
- Removed more references to AESFastEngine.
-
3.4.0-rc103 Nov 2021 pre-releaseRelease notes
Open source →- Security update, AESFastEngine is open to timing attacks, this has been deprecated and replaced with AESEngine.
- validateMac in BaseAEADBlockCipher is now constant time.
-
3.3.527 Oct 2021 -
3.3.407 Sep 2021 -
3.3.303 Sep 2021 -
3.3.227 Aug 2021 -
3.3.118 Aug 2021 -
3.3.012 Aug 2021 -
3.2.029 Jul 2021 -
3.2.0-rc005 Jul 2021 pre-releaseRelease notes
Open source →-
Extended platform detection to supply entropy source, this works on nodejs.
-
Critical fix to the examples:
Where,
xxx.nextInt(255)is used.Must be replaced with either
.nextInt(256)or alternatively use:Platform.instance.platformEntropySource().getBytes(_how many_)to provide the seed.
Version 3.1.3 (2021-06-29)
- Add Argon2
- Fix to ASN1 parsing, calculation of start position.
Version 3.1.2 (2021-06-17)
- Critical fixed to Blake2b and additional test vectors see https://github.com/bcgit/pc-dart/pull/108
Version 3.1.1 (2021-06-04)
- Updated pubspec
Version 3.1.0 (2021-05-31)
- SRP support
- Readme correction
- not published
Version 3.0.1 (2021-03-24)
First non-nullable-by-default release
Version 3.0.0-nullsafety.2 (2021-02-05)
- Ports this library to non-nullable-by-default, a new feature in the Dart language
- This is a breaking change: client code (libraries and apps) will have to migrate as well to use new releases of this library.
- This library's existing APIs should not have changed functionally from Version 2.0.1; any such change should be reported at https://github.com/bcgit/pc-dart/issues
- The block cipher modes IGE and CCM were also added in this update.
- More info about migration: https://dart.dev/null-safety/migration-guide
- More info about null safety: https://dart.dev/null-safety
Version 3.0.0-nullsafety.1
- not published
Version 3.0.0-nullsafety.0
- not published
Version 2.0.1 (2021-01-16)
- Bug fix, ASN1Utils
- Removal of 'dart:io'
- RSAPrivateKey calculates the public exponent from the other values.
The previous BigInt handling functions in the util package now treat encoded BigInts as twos compliment numbers, this may cause sudden unexpected failures if a number is suddenly negative. Users are advised to review their use of decodeBigInt and encodeBigInt.
utils.dart:
- decodeBigInt is twos compliment.
- encodeBigInt is twos compliment and adds padding to preserve sign.
- encodeBigIntAsUnsigned writes the magnitude without any padding.
- decodeBigIntWithSign allows the specification of an arbitrary sign.
- Previous uses of decodeBigInt where the expectation is an unsigned integer have been updated with decodeBigIntWithSign(1, magnitude).
Version 2.0.0 (2020-10-02)
- No changes from 2.0.0-rc2
Version 2.0.0-rc2 (2020-09-25)
- Linter Fixes
- Updates to ASN1 API
Version 2.0.0-rc1 (2020-09-11) (Dart SDK version 2.1.1)
- Fixed OAEPEncoding and PKCS1Encoding to use provided output offset value.
- Fixed RSA block length and offset checks in RSAEngine.processBlock.
- Fixed RSASigner.verifySignature to return false when signature is bad.
- Add HKDF support (IETF RFC 5869)
- Add Poly1305, ChaCha20, ChaCha7539, AES-GCM, SHA3, Keccak, RSA/PSS
- Add CSHAKE, SHAKE
- Fixed randomly occurring bug with OAEP decoding.
- Added NormalizedECDSASigner that wraps ECDSASigner to guarantee an ecdsa signature in lower-s form. (Enforcement on verification supported).
- Reduce copies in CBC mode.
- Linter issues fixed.
- FixedSecureRandom to use seed only once.
- ASN1 - BOOLEAN, INTEGER, BIT_STRING, OCTET_STRING, NULL, OBJECT_IDENTIFIER, ENUMERATED, UTF8_STRING, SEQUENCE, SET, PRINTABLE_STRING, IA5_STRING & UTC_TIME
- ASN1 Encoding - DER & BER
- RSA Keys - Private Key carries public key exponent, added publicExponent and privateExponent where necessary and deprecated single variable getters in for those values.
Thanks, Steven
At this release the Point Castle Crypto API has been fully handed over to the Legion of the Bouncy Castle Inc. Steven Roose, it is no small thing to single headedly manage a cryptography API and your effort is rightfully respected by the Pointy Castle user base. We would like to thank you for your trust in us to carry the project forward, and we wish you all the best!
Version 1.0.2 (2019-11-15)
- Add non-Keccak SHA3 support
- Add CMAC support ("AES/CMAC")
- Add ISO7816-4 padding support
- Fixes in CBCBlockCipherMac and CMac
Version 1.0.1 (2019-02-20)
- Add Blake2b support
Version 1.0.0 (2018-12-17) (Dart SDK version 2.0)
- Support Dart 2 and Strong Mode
- Migrate from
package:bignum.BigIntegertodart:core.BigInt - Remove Quiver and fixnum dependency
- OAEP encoding for block ciphers
Version 0.10.0 (2016-02-04) (Dart SDK version 0.14.0)
-
First Pointy Castle release.
-
Reorganised file structure.
-
Completely new Registry implementation that dynamically loads imported implementations using reflection. It is explained in this commit.
-
Migrated from unittest to test package.
cipher releases
Version 0.8.0 (2014-??-??) (Dart SDK version ???)
- [bug 80] PaddedBlockCipher doesn't add padding when data length is a multiple of the block size. This fix introduces a BREAKING CHANGE in PaddedBlockCipher specification. Read its API documentation to know about the changes.
Version 0.7.0 (2014-03-22) (Dart SDK version 1.3.0-dev.5.2)
-
[enh 15] Implement stream cipher benchmarks.
-
[enh 64] Benchmark and optimize digests.
-
[enh 74] Make SHA-3 usable in terms of speed.
-
[bug 67] Removed some unused code.
-
[bug 68] Fix process() method of PaddedBlockCipher.
-
[bug 75] Remove a registry dependency in the Scrypt algorithm.
-
-
3.1.329 Jun 2021Nothing published for this version
-
3.1.217 Jun 2021Nothing published for this version
-
3.1.104 Jun 2021Nothing published for this version
-
3.0.124 Mar 2021Nothing published for this version
-
3.0.0-nullsafety.205 Feb 2021 pre-releaseNothing published for this version
-
2.0.116 Jan 2021Nothing published for this version
-
2.0.002 Oct 2020Nothing published for this version
-
2.0.0-rc225 Sep 2020 pre-releaseNothing published for this version
-
2.0.0-rc112 Sep 2020 pre-releaseNothing published for this version
-
1.0.215 Nov 2019Nothing published for this version
-
1.0.120 Feb 2019Nothing published for this version
-
1.0.017 Dec 2018Nothing published for this version
-
1.0.0-rc404 Oct 2018 pre-releaseNothing published for this version
-
1.0.0-rc314 Sep 2018 pre-releaseNothing published for this version
-
1.0.0-rc221 Jun 2018 pre-releaseNothing published for this version
-
1.0.0-rc128 May 2018 pre-releaseNothing published for this version
-
0.11.128 Jan 2018Nothing published for this version
-
0.11.028 Jan 2018Nothing published for this version
-
0.10.003 Feb 2016Nothing published for this version
-
0.10.0+112 Feb 2016Nothing published for this version
-
0.10.0+207 Dec 2016Nothing published for this version
-
0.10.0+308 Dec 2016Nothing published for this version
-
0.10.0+408 Dec 2016Nothing published for this version
-
0.10.0+508 Dec 2016Nothing published for this version
-
0.10.0-dev26 Jan 2016 pre-releaseNothing published for this version