CryptoKeyManager Class
Properties Methods Events Configuration Settings Errors
The CryptoKeyManager class provides a simple way to load, generate and manage generic crypto keys.
Syntax
CryptoKeyManager
Remarks
CryptoKeyManager allows you to load, save, generate, import, and export low-level crypto keys. One example of such keys are raw RSA keys stored in PKCS1 format or AES256 keys. CryptoKeyManager supports asymmetric, symmetric, and HMAC keys.
CryptoKeyManager is a typical companion for low-level cryptography classes, such as PublicKeyCrypto, SymmetricCrypto, and HashFunction. It can also be used to provide external key material to certificate objects, and to derive cryptographic keys from passwords.
Use ImportBytes or ImportFromFile method to load the key material from a buffer or file. Use ImportFromCert (and remember to assign the certificate object to the Certificate property before calling it) to import a key from an X.509 certificate. Once loaded, the key will be available in the Key property.
To generate a new key or keypair use Generate method. You can export the generated key using ExportBytes or ExportToFile method. You can attach the generated or loaded key to an external certificate object using the ExportToCert method.
Note: CryptoKeyManager can only work with one cryptographic key at a time. Use CryptoKeyStorage to access media containing more than one key.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
CertBytes | Returns raw certificate data in DER format. |
CertCA | Indicates whether the certificate has a CA capability (a setting in BasicConstraints extension). |
CertCAKeyID | A unique identifier (fingerprint) of the CA certificate's private key. |
CertCRLDistributionPoints | Locations of the CRL (Certificate Revocation List) distribution points used to check this certificate's validity. |
CertCurve | Specifies the elliptic curve of the EC public key. |
CertFingerprint | Contains the fingerprint (a hash imprint) of this certificate. |
CertFriendlyName | Contains an associated alias (friendly name) of the certificate. |
CertHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
CertHashAlgorithm | Specifies the hash algorithm to be used in the operations on the certificate (such as key signing) SB_HASH_ALGORITHM_SHA1 SHA1 SB_HASH_ALGORITHM_SHA224 SHA224 SB_HASH_ALGORITHM_SHA256 SHA256 SB_HASH_ALGORITHM_SHA384 SHA384 SB_HASH_ALGORITHM_SHA512 SHA512 SB_HASH_ALGORITHM_MD2 MD2 SB_HASH_ALGORITHM_MD4 MD4 SB_HASH_ALGORITHM_MD5 MD5 SB_HASH_ALGORITHM_RIPEMD160 RIPEMD160 SB_HASH_ALGORITHM_CRC32 CRC32 SB_HASH_ALGORITHM_SSL3 SSL3 SB_HASH_ALGORITHM_GOST_R3411_1994 GOST1994 SB_HASH_ALGORITHM_WHIRLPOOL WHIRLPOOL SB_HASH_ALGORITHM_POLY1305 POLY1305 SB_HASH_ALGORITHM_SHA3_224 SHA3_224 SB_HASH_ALGORITHM_SHA3_256 SHA3_256 SB_HASH_ALGORITHM_SHA3_384 SHA3_384 SB_HASH_ALGORITHM_SHA3_512 SHA3_512 SB_HASH_ALGORITHM_BLAKE2S_128 BLAKE2S_128 SB_HASH_ALGORITHM_BLAKE2S_160 BLAKE2S_160 SB_HASH_ALGORITHM_BLAKE2S_224 BLAKE2S_224 SB_HASH_ALGORITHM_BLAKE2S_256 BLAKE2S_256 SB_HASH_ALGORITHM_BLAKE2B_160 BLAKE2B_160 SB_HASH_ALGORITHM_BLAKE2B_256 BLAKE2B_256 SB_HASH_ALGORITHM_BLAKE2B_384 BLAKE2B_384 SB_HASH_ALGORITHM_BLAKE2B_512 BLAKE2B_512 SB_HASH_ALGORITHM_SHAKE_128 SHAKE_128 SB_HASH_ALGORITHM_SHAKE_256 SHAKE_256 SB_HASH_ALGORITHM_SHAKE_128_LEN SHAKE_128_LEN SB_HASH_ALGORITHM_SHAKE_256_LEN SHAKE_256_LEN . |
CertIssuer | The common name of the certificate issuer (CA), typically a company name. |
CertIssuerRDN | A collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate issuer. |
CertKeyAlgorithm | Specifies the public key algorithm of this certificate. |
CertKeyBits | Returns the length of the public key. |
CertKeyFingerprint | Returns a fingerprint of the public key contained in the certificate. |
CertKeyUsage | Indicates the purposes of the key contained in the certificate, in the form of an OR'ed flag set. |
CertKeyValid | Returns True if the certificate's key is cryptographically valid, and False otherwise. |
CertOCSPLocations | Locations of OCSP (Online Certificate Status Protocol) services that can be used to check this certificate's validity, as recorded by the CA. |
CertOrigin | Returns the origin of this certificate. |
CertPolicyIDs | Contains identifiers (OIDs) of the applicable certificate policies. |
CertPrivateKeyBytes | Contains the certificate's private key. |
CertPrivateKeyExists | Indicates whether the certificate has an associated private key. |
CertPrivateKeyExtractable | Indicates whether the private key is extractable. |
CertPublicKeyBytes | Contains the certificate's public key in DER format. |
CertSelfSigned | Indicates whether the certificate is self-signed (root) or signed by an external CA. |
CertSerialNumber | Returns the certificate's serial number. |
CertSigAlgorithm | Indicates the algorithm that was used by the CA to sign this certificate. |
CertSubject | The common name of the certificate holder, typically an individual's name, a URL, an e-mail address, or a company name. |
CertSubjectKeyID | Contains a unique identifier (fingerprint) of the certificate's private key. |
CertSubjectRDN | A collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate holder (subject). |
CertValidFrom | The time point at which the certificate becomes valid, in UTC. |
CertValidTo | The time point at which the certificate expires, in UTC. |
KeyAlgorithm | The algorithm of the cryptographic key. |
KeyBits | The length of the key in bits. |
KeyExportable | Returns True if the key is exportable (can be serialized into an array of bytes), and False otherwise. |
KeyHandle | Allows to get or set a 'handle', a unique identifier of the underlying property object. |
KeyID | Provides access to a storage-specific key identifier. |
KeyIV | The initialization vector (IV) of a symmetric key. |
KeyKey | The byte array representation of the key. |
KeyNonce | A nonce value associated with a key. |
KeyPrivate | Returns True if the object hosts a private key, and False otherwise. |
KeyPublic | Returns True if the object hosts a public key, and False otherwise. |
KeySubject | Returns the key subject. |
KeySymmetric | Returns True if the object contains a symmetric key, and False otherwise. |
KeyValid | Returns True if this key is valid. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
Config | Sets or retrieves a configuration setting. |
DeriveKey | Generates a strong cryptographic key from a password. |
ExportBytes | Exports the key to a byte array. |
ExportToCert | Exports the key to a certificate. |
ExportToFile | Exports the key to a file. |
Generate | Generates a new crypto key. |
GetKeyParam | Returns an algorithm-specific key parameter. |
GetKeyParamStr | Returns an algorithm-specific key parameter to a string. |
ImportBytes | Loads a key from a byte array. |
ImportFromCert | Loads a key from a certificate. |
ImportFromFile | Loads a key from a file. |
SetKeyParam | Sets an algorithm-specific key parameter. |
SetKeyParamStr | Sets an algorithm-specific key parameter. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
Error | Informs about an error during an operation. |
Notification | This event notifies the application about an underlying control flow event. |
PasswordNeeded | This event is fired when a decryption password is needed. |
Configuration Settings
The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.
Argon2MemoryCost | Sets the memory cost parameter of Argon2 key derivation algorithm. |
Argon2Parallelism | Sets the parallelism parameter of Argon2 key derivation algorithm. |
Curve | The name of the curve of the newly added elliptic cryptography (EC) key. |
DerivationAlgorithm | The algorithm to use for key derivation. |
DeriveIterations | The number of iterations to use as part of key derivation routine. |
HMACAlgorithm | Specifies the HMAC algorithm to use with the key derivation algorithm. |
TempPath | Path for storing temporary files. |
TempPath | Path for storing temporary files. |
CheckKeyIntegrityBeforeUse | Enables or disable private key integrity check before use. |
CookieCaching | Specifies whether a cookie cache should be used for HTTP(S) transports. |
Cookies | Gets or sets local cookies for the class (supported for HTTPClient, RESTClient and SOAPClient only). |
DefDeriveKeyIterations | Specifies the default key derivation algorithm iteration count. |
EnableClientSideSSLFFDHE | Enables or disables finite field DHE key exchange support in TLS clients. |
GlobalCookies | Gets or sets global cookies for all the HTTP transports. |
HttpUserAgent | Specifies the user agent name to be used by all HTTP clients. |
LogDestination | Specifies the debug log destination. |
LogDetails | Specifies the debug log details to dump. |
LogFile | Specifies the debug log filename. |
LogFilters | Specifies the debug log filters. |
LogFlushMode | Specifies the log flush mode. |
LogLevel | Specifies the debug log level. |
LogMaxEventCount | Specifies the maximum number of events to cache before further action is taken. |
LogRotationMode | Specifies the log rotation mode. |
MaxASN1BufferLength | Specifies the maximal allowed length for ASN.1 primitive tag data. |
MaxASN1TreeDepth | Specifies the maximal depth for processed ASN.1 trees. |
OCSPHashAlgorithm | Specifies the hash algorithm to be used to identify certificates in OCSP requests. |
UseOwnDNSResolver | Specifies whether the client classes should use own DNS resolver. |
UseSharedSystemStorages | Specifies whether the validation engine should use a global per-process copy of the system certificate stores. |
UseSystemOAEPAndPSS | Enforces or disables the use of system-driven RSA OAEP and PSS computations. |
UseSystemRandom | Enables or disables the use of the OS PRNG. |