pointycastle library

This is the main entry point to the cipher library API.

It includes the following libraries:

  • api.dart = comprises the whole API specification
  • impl.dart = defines algorithm implementations and all cipherParameters to be used with them
  • asn1.dart = ASN1 library to encode and decode ASN1 objects

Classes

AEADBlockCipher
A block cipher mode that includes authenticated encryption
AEADCipher
AEADParameters<UnderlyingCipherParameters extends CipherParameters>
Algorithm
All algorithms defined by Pointy Castle inherit from this class.
Argon2Parameters
The Argon2 parameters.
ASN1AlgorithmIdentifier
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL }
ASN1AttributeTypeAndValue
AttributeTypeAndValue ::= SEQUENCE { type AttributeType, value AttributeValue }
ASN1AuthenticatedSafe
Taken from RFC 7292.
ASN1BitString
An ASN1 Bit String object
ASN1BMPString
An ASN1 IA5 String object
ASN1Boolean
An ASN1 Boolean object
ASN1CertBag
CertBag ::= SEQUENCE { certId BAG-TYPE.&id ({CertTypes}), certValue [0] EXPLICIT BAG-TYPE.&Type ({CertTypes}{@certId}) }
ASN1CertificationRequest
CertificationRequest ::= SEQUENCE { certificationRequestInfo CertificationRequestInfo, signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }}, signature BIT STRING }
ASN1CertificationRequestInfo
CertificationRequestInfo ::= SEQUENCE { version INTEGER { v1(0) } (v1,...), subject Name, subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }}, attributes [0] Attributes{{ CRIAttributes }} }
ASN1ContentInfo
ContentInfo ::= SEQUENCE { contentType ContentType, content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
ASN1DigestInfo
DigestInfo ::= SEQUENCE { digestAlgorithm DigestAlgorithmIdentifier, digest Digest } Digest ::= OCTET STRING
ASN1EncryptedContentInfo
EncryptedContentInfo ::= SEQUENCE { contentType ContentType, contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL }
ASN1EncryptedData
EncryptedData ::= SEQUENCE { version Version, encryptedContentInfo EncryptedContentInfo }
ASN1EncryptedPrivateKeyInfo
ASN1Enumerated
An ASN1Enumerated object
ASN1GeneralizedTime
ASN1IA5String
An ASN1 IA5 String object
ASN1Integer
ASN1KeyBag
KeyBag ::= PrivateKeyInfo
ASN1MacData
MacData ::= SEQUENCE { mac DigestInfo, macSalt OCTET STRING, iterations INTEGER DEFAULT 1 }
ASN1Name
Name ::= CHOICE { -- only one possibility for now -- rdnSequence RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
ASN1Null
An ASN1 Null object
ASN1Object
Base model for all ASN1Objects
ASN1ObjectIdentifier
ASN1OctetString
An ASN1 Octed String object
ASN1Parser
The ASN1Parser to parse bytes into ASN1 Objects
ASN1Pfx
PFX ::= SEQUENCE { version INTEGER {v3(3)}(v3,...), authSafe ContentInfo, macData MacData OPTIONAL }
ASN1Pkcs12Attribute
PKCS12Attribute ::= SEQUENCE { attrId ATTRIBUTE.&id ({PKCS12AttrSet}), attrValues SET OF ATTRIBUTE.&Type ({PKCS12AttrSet}{@attrId}) }
ASN1PrintableString
An ASN1 Printable String object
ASN1PrivateKeyInfo
PrivateKeyInfo ::= OneAsymmetricKey OneAsymmetricKey ::= SEQUENCE { version Version, privateKeyAlgorithm PrivateKeyAlgorithmIdentifier, privateKey PrivateKey, attributes [0] Attributes OPTIONAL, ..., [[2: publicKey [1] PublicKey OPTIONAL ]], ... }
ASN1RDN
RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
ASN1SafeBag
SafeBag ::= SEQUENCE { bagId BAG-TYPE.&id ({PKCS12BagSet}) bagValue [0] EXPLICIT BAG-TYPE.&Type({PKCS12BagSet}{@bagId}), bagAttributes SET OF PKCS12Attribute OPTIONAL }
ASN1SafeContents
SafeContents ::= SEQUENCE OF SafeBag
ASN1Sequence
ASN1Set
ASN1SubjectPublicKeyInfo
SubjectPublicKeyInfo { ALGORITHM : IOSet} ::= SEQUENCE { algorithm AlgorithmIdentifier {{IOSet}}, subjectPublicKey BIT STRING }
ASN1Tags
Class holding all ASN1 BER tags, supported by this package
ASN1TeletextString
An ASN1 Octed String object
ASN1UtcTime
An ASN1 Utc Time object
ASN1UTF8String
An ASN1 UTF8 String object
ASN1Utils
Utils class holding different methods to ease the handling of ANS1Objects and their byte representation.
AsymmetricBlockCipher
Asymmetric block cipher engines are expected to conform to this interface.
AsymmetricKey
The interface that asymmetric (public and private) keys conform to.
AsymmetricKeyPair<B extends PublicKey, V extends PrivateKey>
A pair of public and private asymmetric keys.
AsymmetricKeyParameter<T extends AsymmetricKey>
Abstract CipherParameters to hold an asymmetric (public or private) key
BlockCipher
Block cipher engines are expected to conform to this interface.
CipherParameters
All cipher initialization parameters classes implement this.
DESedeParameters
DESParameters
Digest
The interface that a message digest conforms to.
ECAsymmetricKey
Base class for asymmetric keys in ECC
ECCurve
An elliptic curve
ECDecryptor
The decryptor using Elliptic Curve
ECDHAgreement
ECDHBasicAgreement
P1363 7.2.1 ECSVDP-DH
ECDHKDFParameters
ECDomainParameters
Standard ECC curve description
ECEncryptor
The encryptor using Elliptic Curve
ECFieldElement
Type for coordinates of an ECPoint
ECKeyGeneratorParameters
Abstract CipherParameters to init an ECC key generator.
ECPair
A pair of ECPoints.
ECPoint
An elliptic curve point
ECPrivateKey
Private keys in ECC
ECPublicKey
Public keys in ECC
ECSignature
A Signature created with ECC.
HkdfParameters
Generates CipherParameters for HKDF key derivation function.
KeyDerivator
The interface that a symmetric key derivator conforms to.
KeyGenerator
The interface that asymmetric key generators conform to.
KeyGeneratorParameters
Abstract CipherParameters to init an asymmetric key generator.
KeyParameter
CipherParameters consisting of just a key of arbitrary length.
Mac
The interface that a MAC (message authentication code) conforms to.
PaddedBlockCipher
All padded block ciphers conform to this interface.
PaddedBlockCipherParameters<UnderlyingCipherParameters extends CipherParameters?, PaddingCipherParameters extends CipherParameters?>
CipherParameters for PaddedBlockCiphers consisting of two underlying CipherParameters, one for the BlockCipher (of type UnderlyingCipherParameters) and the other for the Padding (of type PaddingCipherParameters).
Padding
The interface that a padding conforms to.
ParametersWithIV<UnderlyingParameters extends CipherParameters?>
CipherParameters consisting of an underlying CipherParameters (of type UnderlyingParameters) and an initialization vector of arbitrary length.
ParametersWithRandom<UnderlyingParameters extends CipherParameters>
CipherParameters consisting of an underlying CipherParameters (of type UnderlyingParameters) and an acompanying SecureRandom.
ParametersWithSalt<UnderlyingParameters extends CipherParameters>
CipherParameters consisting of an underlying CipherParameters (of type UnderlyingParameters) and an acompanying salt of type Uint8List.
ParametersWithSaltConfiguration<UnderlyingParameters extends CipherParameters>
CipherParameters consisting of an underlying CipherParameters (of type UnderlyingParameters), an acompanying SecureRandom, and salt length.
PBEParametersGenerator
Pbkdf2Parameters
CipherParameters used by PBKDF2.
PrivateKey
The interface that asymmetric private keys conform to.
PrivateKeyParameter<T extends PrivateKey>
A CipherParameters to hold an asymmetric private key
PSSSignature
A Signature created with PSS.
PublicKey
The interface that asymmetric public keys conform to.
PublicKeyParameter<T extends PublicKey>
A CipherParameters to hold an asymmetric public key
RC2Parameters
RSAAsymmetricKey
Base class for asymmetric keys in RSA
RSAKeyGeneratorParameters
Abstract CipherParameters to init an RSA key generator.
RSAPrivateKey
Private keys in RSA
RSAPublicKey
Public keys in RSA
RSASignature
A Signature created with RSA.
ScryptParameters
CipherParameters for the scrypt password based key derivation function.
SecureRandom
A synchronous secure random number generator (RNG).
Signature
An interface for signatures created by a Signer
Signer
An interface for DSAs (digital signature algorithms)
SRPClient
SRPServer
Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe. This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
StreamCipher
The interface stream ciphers conform to.
Xof

Functions

cleanPoint(ECCurve c, ECPoint p) ECPoint?

Exceptions / Errors

InvalidCipherTextException
RegistryFactoryException
This kind of exception is thrown when a user tries to create an algorithm or domain parameters that were not correctly registered. This can be because the corresponding class was not imported, or because the algorithm does not exist.
UnsupportedAsn1EncodingRuleException
Exception that indicates that the given ASN1EncodingRule is not supported
UnsupportedASN1TagException
Exception that indicates that the given tag is not supported