JsonWebKey class

JSON Web Key (JWK) represents a cryptographic key

Constructors

JsonWebKey.fromCryptoKeys({PublicKey? publicKey, PrivateKey? privateKey, String? keyId})
Creates a JsonWebKey from a PublicKey and/or PrivateKey
factory
JsonWebKey.fromKeyPair({required KeyPair keyPair, required Map<String, dynamic> json})
JsonWebKey.fromPem(String pem, {String? keyId})
Parses a PEM encoded public or private key
factory
JsonWebKey.generate(String? algorithm, {int? keyBitLength})
Generates a random key suitable for the specified algorithm
factory

Properties

algorithm → String?
The algorithm intended for use with the key.
no setter
cryptoKeyPair → KeyPair
no setter
hashCode → int
The hash code for this object.
no setterinherited
keyId → String?
Key ID used to match a specific key.
no setter
keyOperations → Set<String>?
The operation(s) that the key is intended to be used for.
no setter
keyType → String
The cryptographic algorithm family used with the key, such as RSA or EC.
no setter
publicKeyUse → String?
The intended use of the public key.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
x509CertificateChain → List<X509Certificate>?
A chain of one or more PKIX certificates.
no setter
x509CertificateSha256Thumbprint → String?
A base64url encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate.
no setter
x509CertificateThumbprint → String?
A base64url encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate.
no setter
x509Url → Uri?
A resource for an X.509 public key certificate or certificate chain.
no setter

Methods

algorithmForOperation(String operation) → String?
Returns a JSON Web Algorithm name that can be used with this key for operation
decrypt(List<int> data, {List<int>? initializationVector, List<int>? authenticationTag, List<int>? additionalAuthenticatedData, String? algorithm}) → List<int>
Decrypt content and validate decryption, if applicable
encrypt(List<int> data, {List<int>? initializationVector, List<int>? additionalAuthenticatedData, String? algorithm}) → EncryptionResult
Encrypt content
getTyped<T>(String key, {T factory(dynamic v)?}) → T?
Returns the property key as a typed object
inherited
getTypedList<T>(String key, {T factory(dynamic v)?}) → List<T>?
Returns the property key as a typed list
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
sign(List<int> data, {String? algorithm}) → List<int>
Compute digital signature or MAC
toBase64EncodedString() → String
Returns the base64 representation
inherited
toBytes() → List<int>
Returns the bytes representing the encoded JSON
inherited
toJson() → Map<String, dynamic>
Returns a JSON representation
inherited
toString() → String
A string representation of this object.
inherited
unwrapKey(List<int> data, {String? algorithm}) → JsonWebKey
Decrypt key and validate decryption, if applicable
usableForAlgorithm(String algorithm) → bool
Returns true if this key can be used with the JSON Web Algorithm identified by algorithm
usableForOperation(String operation) → bool
Returns true if this key can be used for the operation
verify(List<int> data, List<int> signature, {String? algorithm}) → bool
Verify digital signature or MAC
wrapKey(JsonWebKey key, {String? algorithm}) → List<int>
Encrypt key

Operators

operator ==(Object other) → bool
The equality operator.
inherited
operator [](String key) → dynamic
Returns the property key as a core dart value
inherited

Static Methods

ec({required String curve, BigInt? xCoordinate, BigInt? yCoordinate, BigInt? privateKey, String? keyId, String? algorithm}) → JsonWebKey
Creates a JsonWebKey of type EC
fromJson(Map<String, dynamic> json) → JsonWebKey?
Constructs a JsonWebKey from its JSON representation
rsa({required BigInt modulus, BigInt? exponent, BigInt? privateExponent, BigInt? firstPrimeFactor, BigInt? secondPrimeFactor, String? keyId, String? algorithm}) → JsonWebKey
Creates a JsonWebKey of type RSA
symmetric({required BigInt key, String? keyId}) → JsonWebKey
Creates a JsonWebKey of type oct