corda / net.corda.core.crypto / SignatureScheme

# SignatureScheme

`data class SignatureScheme`

This class is used to define a digital signature scheme.

### Parameters

`schemeNumberID` - we assign a number ID for more efficient on-wire serialisation. Please ensure uniqueness between schemes.

`schemeCodeName` - code name for this signature scheme (e.g. RSA_SHA256, ECDSA_SECP256K1_SHA256, ECDSA_SECP256R1_SHA256, EDDSA_ED25519_SHA512, SPHINCS-256_SHA512).

`algorithmName` - which signature algorithm is used (e.g. RSA, ECDSA. EdDSA, SPHINCS-256).

`sig` - the Signature class that provides the functionality of a digital signature scheme. eg. Signature.getInstance("SHA256withECDSA", "BC").

`keyFactory` - the KeyFactory for this scheme (e.g. KeyFactory.getInstance("RSA", "BC")).

`keyPairGenerator` - defines the Service Provider Interface (SPI) for the {@code KeyPairGenerator} class. e.g. KeyPairGenerator.getInstance("ECDSA", "BC").

`algSpec` - parameter specs for the underlying algorithm. Note that RSA is defined by the key size rather than algSpec. eg. ECGenParameterSpec("secp256k1").

`keySize` - the private key size (currently used for RSA only).

`desc` - a human-readable description for this scheme.

### Constructors

<init> | `SignatureScheme(schemeNumberID: Int, schemeCodeName: String, algorithmName: String, sig: Signature, keyFactory: KeyFactory, keyPairGenerator: KeyPairGeneratorSpi, algSpec: AlgorithmParameterSpec?, keySize: Int, desc: String)` This class is used to define a digital signature scheme.

### Properties

algSpec | `val algSpec: AlgorithmParameterSpec?`
algorithmName | `val algorithmName: String`
desc | `val desc: String`
keyFactory | `val keyFactory: KeyFactory`
keyPairGenerator | `val keyPairGenerator: KeyPairGeneratorSpi`
keySize | `val keySize: Int`
schemeCodeName | `val schemeCodeName: String`
schemeNumberID | `val schemeNumberID: Int`
sig | `val sig: Signature`