Class: AbstractCryptoEngine
Hierarchy
-
AbstractCryptoEngine
Implements
Constructors
constructor
• new AbstractCryptoEngine(parameters
): AbstractCryptoEngine
Constructor for CryptoEngine class
Parameters
Name | Type |
---|---|
parameters | CryptoEngineParameters |
Returns
Properties
crypto
• crypto: Crypto
Implementation of
name
• name: string
Implementation of
subtle
• subtle: SubtleCrypto
Implementation of
Methods
decrypt
▸ decrypt(algorithm
, key
, data
): Promise
<ArrayBuffer
>
Parameters
Name | Type |
---|---|
algorithm | AesCbcParams | AesCtrParams | AesGcmParams | AlgorithmIdentifier | RsaOaepParams |
key | CryptoKey |
data | BufferSource |
Returns
Promise
<ArrayBuffer
>
Implementation of
decryptEncryptedContentInfo
▸ decryptEncryptedContentInfo(parameters
): Promise
<ArrayBuffer
>
Decrypt data stored in "EncryptedContentInfo" object using parameters
Parameters
Name | Type |
---|---|
parameters | CryptoEngineDecryptParams |
Returns
Promise
<ArrayBuffer
>
Implementation of
ICryptoEngine.decryptEncryptedContentInfo
deriveBits
▸ deriveBits(algorithm
, baseKey
, length
): Promise
<ArrayBuffer
>
Parameters
Name | Type |
---|---|
algorithm | EcdhKeyDeriveParams | AlgorithmIdentifier | HkdfParams | Pbkdf2Params |
baseKey | CryptoKey |
length | number |
Returns
Promise
<ArrayBuffer
>
Implementation of
deriveKey
▸ deriveKey(algorithm
, baseKey
, derivedKeyType
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
algorithm | EcdhKeyDeriveParams | AlgorithmIdentifier | HkdfParams | Pbkdf2Params |
baseKey | CryptoKey |
derivedKeyType | AesDerivedKeyParams | AlgorithmIdentifier | HkdfParams | HmacImportParams | Pbkdf2Params |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKey
>
Implementation of
▸ deriveKey(algorithm
, baseKey
, derivedKeyType
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
algorithm | EcdhKeyDeriveParams | AlgorithmIdentifier | HkdfParams | Pbkdf2Params |
baseKey | CryptoKey |
derivedKeyType | AesDerivedKeyParams | AlgorithmIdentifier | HkdfParams | HmacImportParams | Pbkdf2Params |
extractable | boolean |
keyUsages | Iterable <KeyUsage > |
Returns
Promise
<CryptoKey
>
Implementation of
digest
▸ digest(algorithm
, data
): Promise
<ArrayBuffer
>
Parameters
Name | Type |
---|---|
algorithm | AlgorithmIdentifier |
data | BufferSource |
Returns
Promise
<ArrayBuffer
>
Implementation of
encrypt
▸ encrypt(algorithm
, key
, data
): Promise
<ArrayBuffer
>
Parameters
Name | Type |
---|---|
algorithm | AesCbcParams | AesCtrParams | AesGcmParams | AlgorithmIdentifier | RsaOaepParams |
key | CryptoKey |
data | BufferSource |
Returns
Promise
<ArrayBuffer
>
Implementation of
encryptEncryptedContentInfo
▸ encryptEncryptedContentInfo(parameters
): Promise
<EncryptedContentInfo
>
Specialized function encrypting "EncryptedContentInfo" object using parameters
Parameters
Name | Type |
---|---|
parameters | CryptoEngineEncryptParams |
Returns
Promise
<EncryptedContentInfo
>
Implementation of
ICryptoEngine.encryptEncryptedContentInfo
exportKey
▸ exportKey(format
, key
): Promise
<JsonWebKey
>
Parameters
Name | Type |
---|---|
format | "jwk" |
key | CryptoKey |
Returns
Promise
<JsonWebKey
>
Implementation of
▸ exportKey(format
, key
): Promise
<ArrayBuffer
>
Parameters
Name | Type |
---|---|
format | "raw" | "pkcs8" | "spki" |
key | CryptoKey |
Returns
Promise
<ArrayBuffer
>
Implementation of
generateKey
▸ generateKey(algorithm
, extractable
, keyUsages
): Promise
<CryptoKeyPair
>
Parameters
Name | Type |
---|---|
algorithm | EcKeyGenParams | RsaHashedKeyGenParams |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKeyPair
>
Implementation of
▸ generateKey(algorithm
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
algorithm | AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKey
>
Implementation of
▸ generateKey(algorithm
, extractable
, keyUsages
): Promise
<CryptoKeyPair
| CryptoKey
>
Parameters
Name | Type |
---|---|
algorithm | AlgorithmIdentifier |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKeyPair
| CryptoKey
>
Implementation of
getAlgorithmByOID
▸ getAlgorithmByOID<T
>(oid
, safety?
, target?
): object
| T
Gets WebCrypto algorithm by wel-known OID
Type parameters
Name | Type |
---|---|
T | extends Algorithm = Algorithm |
Parameters
Name | Type | Description |
---|---|---|
oid | string | algorithm identifier |
safety? | boolean | if true throws exception on unknown algorithm identifier |
target? | string | name of the target |
Returns
object
| T
Returns WebCrypto algorithm or an empty object
Implementation of
ICryptoEngine.getAlgorithmByOID
▸ getAlgorithmByOID<T
>(oid
, safety
, target?
): T
Gets WebCrypto algorithm by wel-known OID
Type parameters
Name | Type |
---|---|
T | extends Algorithm = Algorithm |
Parameters
Name | Type | Description |
---|---|---|
oid | string | algorithm identifier |
safety | true | if true throws exception on unknown algorithm identifier |
target? | string | name of the target |
Returns
T
Returns WebCrypto algorithm
Throws
Throws Error exception if unknown algorithm identifier
Implementation of
ICryptoEngine.getAlgorithmByOID
▸ getAlgorithmByOID(oid
, safety?
, target?
): object
Parameters
Name | Type |
---|---|
oid | any |
safety? | any |
target? | any |
Returns
object
Implementation of
type.ICryptoEngine.getAlgorithmByOID
getAlgorithmParameters
▸ getAlgorithmParameters(algorithmName
, operation
): CryptoEngineAlgorithmParams
Get default algorithm parameters for each kind of operation
Parameters
Name | Type | Description |
---|---|---|
algorithmName | string | Algorithm name to get common parameters for |
operation | CryptoEngineAlgorithmOperation | Kind of operation: "sign", "encrypt", "generateKey", "importKey", "exportKey", "verify" |
Returns
Implementation of
ICryptoEngine.getAlgorithmParameters
getHashAlgorithm
▸ getHashAlgorithm(signatureAlgorithm
): string
Getting hash algorithm by signature algorithm
Parameters
Name | Type | Description |
---|---|---|
signatureAlgorithm | AlgorithmIdentifier | Signature algorithm |
Returns
string
Implementation of
ICryptoEngine.getHashAlgorithm
getOIDByAlgorithm
▸ getOIDByAlgorithm(algorithm
, safety?
, target?
): string
Get OID for each specific algorithm
Parameters
Name | Type | Description |
---|---|---|
algorithm | Algorithm | WebCrypto Algorithm |
safety? | boolean | If true throws exception on unknown algorithm. Default is false |
target? | string | Name of the target |
Returns
string
Throws
Throws Error exception if unknown WebCrypto algorithm
Implementation of
ICryptoEngine.getOIDByAlgorithm
getPublicKey
▸ getPublicKey(publicKeyInfo
, signatureAlgorithm
, parameters?
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
publicKeyInfo | PublicKeyInfo |
signatureAlgorithm | AlgorithmIdentifier |
parameters? | CryptoEnginePublicKeyParams |
Returns
Promise
<CryptoKey
>
Implementation of
getRandomValues
▸ getRandomValues<T
>(array
): T
Type parameters
Name | Type |
---|---|
T | extends null | ArrayBufferView |
Parameters
Name | Type |
---|---|
array | T |
Returns
T
Implementation of
getSignatureParameters
▸ getSignatureParameters(privateKey
, hashAlgorithm?
): Promise
<CryptoEngineSignatureParams
>
Get signature parameters by analyzing private key algorithm
Parameters
Name | Type | Description |
---|---|---|
privateKey | CryptoKey | The private key user would like to use |
hashAlgorithm? | string | Hash algorithm user would like to use. Default is SHA-1 |
Returns
Promise
<CryptoEngineSignatureParams
>
Implementation of
ICryptoEngine.getSignatureParameters
importKey
▸ importKey(format
, keyData
, algorithm
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
format | "jwk" |
keyData | JsonWebKey |
algorithm | AesKeyAlgorithm | EcKeyImportParams | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKey
>
Implementation of
▸ importKey(format
, keyData
, algorithm
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
format | "raw" | "pkcs8" | "spki" |
keyData | BufferSource |
algorithm | AesKeyAlgorithm | EcKeyImportParams | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKey
>
Implementation of
▸ importKey(format
, keyData
, algorithm
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
format | "jwk" |
keyData | JsonWebKey |
algorithm | AesKeyAlgorithm | EcKeyImportParams | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKey
>
Implementation of
▸ importKey(format
, keyData
, algorithm
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
format | "raw" | "pkcs8" | "spki" |
keyData | BufferSource |
algorithm | AesKeyAlgorithm | EcKeyImportParams | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams |
extractable | boolean |
keyUsages | Iterable <KeyUsage > |
Returns
Promise
<CryptoKey
>
Implementation of
sign
▸ sign(algorithm
, key
, data
): Promise
<ArrayBuffer
>
Parameters
Name | Type |
---|---|
algorithm | EcdsaParams | AlgorithmIdentifier | RsaPssParams |
key | CryptoKey |
data | BufferSource |
Returns
Promise
<ArrayBuffer
>
Implementation of
signWithPrivateKey
▸ signWithPrivateKey(data
, privateKey
, parameters
): Promise
<ArrayBuffer
>
Sign data with pre-defined private key
Parameters
Name | Type | Description |
---|---|---|
data | BufferSource | Data to be signed |
privateKey | CryptoKey | Private key to use |
parameters | CryptoEngineSignWithPrivateKeyParams | Parameters for used algorithm |
Returns
Promise
<ArrayBuffer
>
Implementation of
ICryptoEngine.signWithPrivateKey
stampDataWithPassword
▸ stampDataWithPassword(parameters
): Promise
<ArrayBuffer
>
Stamping (signing) data using algorithm similar to HMAC
Parameters
Name | Type |
---|---|
parameters | CryptoEngineStampDataWithPasswordParams |
Returns
Promise
<ArrayBuffer
>
Implementation of
ICryptoEngine.stampDataWithPassword
unwrapKey
▸ unwrapKey(format
, wrappedKey
, unwrappingKey
, unwrapAlgorithm
, unwrappedKeyAlgorithm
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
format | KeyFormat |
wrappedKey | BufferSource |
unwrappingKey | CryptoKey |
unwrapAlgorithm | AesCbcParams | AesCtrParams | AesGcmParams | AlgorithmIdentifier | RsaOaepParams |
unwrappedKeyAlgorithm | AesKeyAlgorithm | EcKeyImportParams | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams |
extractable | boolean |
keyUsages | KeyUsage [] |
Returns
Promise
<CryptoKey
>
Implementation of
▸ unwrapKey(format
, wrappedKey
, unwrappingKey
, unwrapAlgorithm
, unwrappedKeyAlgorithm
, extractable
, keyUsages
): Promise
<CryptoKey
>
Parameters
Name | Type |
---|---|
format | KeyFormat |
wrappedKey | BufferSource |
unwrappingKey | CryptoKey |
unwrapAlgorithm | AesCbcParams | AesCtrParams | AesGcmParams | AlgorithmIdentifier | RsaOaepParams |
unwrappedKeyAlgorithm | AesKeyAlgorithm | EcKeyImportParams | AlgorithmIdentifier | HmacImportParams | RsaHashedImportParams |
extractable | boolean |
keyUsages | Iterable <KeyUsage > |
Returns
Promise
<CryptoKey
>
Implementation of
verify
▸ verify(algorithm
, key
, signature
, data
): Promise
<boolean
>
Parameters
Name | Type |
---|---|
algorithm | EcdsaParams | AlgorithmIdentifier | RsaPssParams |
key | CryptoKey |
signature | BufferSource |
data | BufferSource |
Returns
Promise
<boolean
>
Implementation of
verifyDataStampedWithPassword
▸ verifyDataStampedWithPassword(parameters
): Promise
<boolean
>
Parameters
Name | Type |
---|---|
parameters | CryptoEngineVerifyDataStampedWithPasswordParams |
Returns
Promise
<boolean
>
Implementation of
ICryptoEngine.verifyDataStampedWithPassword
verifyWithPublicKey
▸ verifyWithPublicKey(data
, signature
, publicKeyInfo
, signatureAlgorithm
, shaAlgorithm?
): Promise
<boolean
>
Verify data with the public key
Parameters
Name | Type | Description |
---|---|---|
data | BufferSource | Data to be verified |
signature | OctetString | BitString | Signature value |
publicKeyInfo | PublicKeyInfo | Public key information |
signatureAlgorithm | AlgorithmIdentifier | Signature algorithm |
shaAlgorithm? | string | Hash algorithm |
Returns
Promise
<boolean
>
Implementation of
ICryptoEngine.verifyWithPublicKey
wrapKey
▸ wrapKey(format
, key
, wrappingKey
, wrapAlgorithm
): Promise
<ArrayBuffer
>
Parameters
Name | Type |
---|---|
format | KeyFormat |
key | CryptoKey |
wrappingKey | CryptoKey |
wrapAlgorithm | AesCbcParams | AesCtrParams | AesGcmParams | AlgorithmIdentifier | RsaOaepParams |
Returns
Promise
<ArrayBuffer
>