Crypto Provider¶
Class Name | CryptoProvider |
---|---|
Extends | CryptoProvider |
Source | crypto-provider.ts |
The CryptoProvider is a container for supported Cryptors and is able to determine, which Cryptor to use for encryption / decryption.
constructor¶
new CryptoProvider(cryptors);
Creates a new CryptoProvider instance.
Returns¶
CryptoProvider
instance
Example¶
const serviceContract = new CryptoProvider({
cryptors: {
aes: new Aes(),
unencrypted: new Unencrypted()
}
});
getCryptorByCryptoAlgo¶
cryptoProvider.getCryptorByCryptoAlgo(cryptoAlgo);
get a Cryptor matching the crypto algorithm
Parameters¶
cryptoAlgo
-string
: crypto algorithm
Returns¶
Cryptor
: matching cryptor.
getCryptorByCryptoInfo¶
cryptoProvider.getCryptorByCryptoInfo(info);
get a Cryptor matching the provided CryptoInfo
Parameters¶
info
-CryptoInfo
: details about en-/decryption
Returns¶
Cryptor
: matching cryptor.
Example¶
const cryptoInfo = {
"public": {
"name": "envelope example"
},
"private": "...",
"cryptoInfo": {
"algorithm": "unencrypted",
"keyLength": 256,
"originator": "0x0000000000000000000000000000000000000001,0x0000000000000000000000000000000000000002",
"block": 123
}
};
const cryptor = runtime.cryptoProvider.getCryptorByCryptoInfo(cryptoInfo);
= Additional Components =¶
Interfaces¶
Cryptor¶
options
-any
: options which will passed to the cryptor to work (like key for encryption)generateKey
-function
: generates a random key for encryption/decryptiongetCryptoInfo
-function
: returns a empty CryptoInfo object for the current Cryptorencrypt
-function
: function to encrypt a given messagedecrypt
-function
: function to decrypt a given message
Envelope¶
algorithm
-string
: algorithm used for encryptionblock
-number
(optional): block number for which related item is encryptedcryptorVersion
-number
(optional): version of the cryptor used. describes the implementation applied during decryption and not the algorithm version.originator
-string
(optional): context for encryption, this can be- a context known to all parties (e.g. key exchange)
- a key exchanged between two accounts (e.g. bmails)
- a key from a sharings info from a contract (e.g. DataContract)
defaults to 0
keyLength
-number
(optional): length of the key used in encryption
CryptoInfo¶
public
-any
(optional): unencrypted part of the data; will stay as is during encryptionprivate
-any
(optional): encrypted part of the data. If encrypting, this part will be encrypted, depending on the encryption. If already encrypted, this will be the encrypted valuecryptoInfo
-CryptoInfo
: describes used encryption