mirror of
https://github.com/corda/corda.git
synced 2025-06-18 07:08:15 +00:00
Allowing multiple signature algorithms (#250)
Basic crypto API to support 5 signature schemes and MetaData-ed signatures. Supported schemes: (1) RSA_SHA256, (2) ECDSA_SECP256K1_SHA256, (3) ECDSA_SECP256R1_SHA256, (4) EDDSA_ED25519_SHA512, (5) SPHINCS-256_SHA512. To sign a transaction, a signer should create a MetaData wrapper that contains transaction's merkle root and some extra information, such as signer's public key, timestamp and visibleInputs. Actually, MetaData is utilised to support a practical partial, blind and extra-data attached signature model. When a MetaData object is signed, the signer sends a TransactionSignature object that contains the signed output and the corresponding MetaData object. Remarks: This is an temporary solution for signature algorithmic agility. Further development is required for a robust and extensible Crypto Manager/Provider PKI that will support certificate creation, key generation, signing/verifying, deterministic key derivation, encoding formats, SGX/HSM support, identity and key management, versioning, revocation, asynchronicity, metadata, partial sig. policies etc.
This commit is contained in:
committed by
GitHub
parent
dc8c6747d3
commit
4a9ff84fc7
@ -46,6 +46,7 @@ class DefaultWhitelist : CordaPluginRegistry() {
|
||||
addToWhitelist(BigDecimal::class.java)
|
||||
addToWhitelist(LocalDate::class.java)
|
||||
addToWhitelist(Period::class.java)
|
||||
addToWhitelist(BitSet::class.java)
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
Reference in New Issue
Block a user