object Crypto
This object controls and provides the available and supported signature schemes for Corda. Any implemented SignatureScheme should be strictly defined here. However, only the schemes returned by {@link #listSupportedSignatureSchemes()} are supported. Note that Corda currently supports the following signature schemes by their code names:
decodePrivateKey |
fun decodePrivateKey(encodedKey: ByteArray): PrivateKey
Decode a PKCS8 encoded key to its PrivateKey object. fun decodePrivateKey(encodedKey: ByteArray, schemeCodeName: String): PrivateKey
Decode a PKCS8 encoded key to its PrivateKey object based on the input scheme code name. This will be used by Kryo deserialisation. |
decodePublicKey |
fun decodePublicKey(encodedKey: ByteArray): PublicKey
Decode an X509 encoded key to its PublicKey object. fun decodePublicKey(encodedKey: ByteArray, schemeCodeName: String): PublicKey
Decode an X509 encoded key to its PrivateKey object based on the input scheme code name. This will be used by Kryo deserialisation. |
doSign |
fun doSign(privateKey: PrivateKey, clearData: ByteArray): ByteArray
Generic way to sign ByteArray data with a PrivateKey. Strategy on on identifying the actual signing scheme is based on the PrivateKey type, but if the schemeCodeName is known, then better use doSign(signatureScheme: String, privateKey: PrivateKey, clearData: ByteArray). fun doSign(schemeCodeName: String, privateKey: PrivateKey, clearData: ByteArray): ByteArray
Generic way to sign ByteArray data with a PrivateKey and a known schemeCodeName String. fun doSign(privateKey: PrivateKey, metaData: MetaData): TransactionSignature
Generic way to sign MetaData objects with a PrivateKey. MetaData is a wrapper over the transaction's Merkle root in order to attach extra information, such as a timestamp or partial and blind signature indicators. |
doVerify |
fun doVerify(schemeCodeName: String, publicKey: PublicKey, signatureData: ByteArray, clearData: ByteArray): Boolean
Utility to simplify the act of verifying a digital signature. It returns true if it succeeds, but it always throws an exception if verification fails. fun doVerify(publicKey: PublicKey, signatureData: ByteArray, clearData: ByteArray): Boolean
Utility to simplify the act of verifying a digital signature by identifying the signature scheme used from the input public key's type. It returns true if it succeeds, but it always throws an exception if verification fails. Strategy on identifying the actual signing scheme is based on the PublicKey type, but if the schemeCodeName is known, then better use doVerify(schemeCodeName: String, publicKey: PublicKey, signatureData: ByteArray, clearData: ByteArray). fun doVerify(publicKey: PublicKey, transactionSignature: TransactionSignature): Boolean
Utility to simplify the act of verifying a TransactionSignature. It returns true if it succeeds, but it always throws an exception if verification fails. |
findSignatureSchemeCodeName |
fun findSignatureSchemeCodeName(key: Key): String
Retrieve the corresponding signature scheme code name based on the type of the input Key. See Crypto for the supported scheme code names. |
generateKeyPair |
fun generateKeyPair(schemeCodeName: String): KeyPair
Utility to simplify the act of generating keys. Normally, we don't expect other errors here, assuming that key generation parameters for every supported signature scheme have been unit-tested. fun generateKeyPair(): KeyPair
Generate a KeyPair using the default signature scheme. |
getDefaultSignatureSchemeCodeName |
fun getDefaultSignatureSchemeCodeName(): String |
isSupportedSignatureScheme |
fun isSupportedSignatureScheme(schemeCodeName: String): Boolean
Check if the requested signature scheme is supported by the system. |
listSupportedSignatureSchemes |
fun listSupportedSignatureSchemes(): List<String> |