corda/node
Konstantinos Chalkias 4a9ff84fc7 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.
2017-03-08 17:45:23 +00:00
..
bft-smart-config Implement bft-smart notary prototype 2017-02-20 12:08:22 +00:00
capsule Make the corda.jar executable on UNIX. When run in this way, it eliminates the overhead of a second JVM. 2017-03-08 14:56:47 +01:00
src Allowing multiple signature algorithms (#250) 2017-03-08 17:45:23 +00:00
webserver Merge branch 'mike-json-support-module' 2017-03-08 15:06:50 +01:00
build.gradle Simple Attachment Storage implementation using Requery/H2 database 2017-03-07 16:12:38 +01:00