Package org.xrpl.xrpl4j.crypto.signing
Class DerivedKeysSignatureService
- java.lang.Object
-
- org.xrpl.xrpl4j.crypto.signing.DerivedKeysSignatureService
-
- All Implemented Interfaces:
SignatureService
,TransactionSigner
,TransactionVerifier
public class DerivedKeysSignatureService extends Object implements SignatureService
An implementation that uses an in-memory secret key in order to deterministically create a seed value that can then be used to deterministically generate XRPL private keys. Any derived key can then be used for signing XRP transactions. This implementation keeps a cache of instances ofSingleKeySignatureService
that it delegates to based uponKeyMetadata
supplied on each call.WARNING: This implementation stores private seed-generation material in-memory, and is thus only meant for lower-security environments. For higher security deployments, prefer an HSM-based implementation instead.
-
-
Constructor Summary
Constructors Constructor Description DerivedKeysSignatureService(ServerSecretSupplier serverSecretSupplier, VersionType versionType)
Required-args Constructor for use in development mode.DerivedKeysSignatureService(ServerSecretSupplier serverSecretSupplier, VersionType versionType, KeyPairService keyPairService)
Required-args Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SingleKeySignatureService
constructSignatureService(KeyMetadata privateKeyMetadata)
Construct a newSingleKeySignatureService
using the providedprivateKeyMetadata
.PublicKey
getPublicKey(KeyMetadata keyMetadata)
VersionType
getVersionType()
Accessor for the type of this service.KeyStoreType
keyStoreType()
SignedTransaction
sign(KeyMetadata keyMetadata, Transaction transaction)
boolean
verify(KeyMetadata keyMetadata, SignedTransaction transactionWithSignature)
-
-
-
Constructor Detail
-
DerivedKeysSignatureService
public DerivedKeysSignatureService(ServerSecretSupplier serverSecretSupplier, VersionType versionType)
Required-args Constructor for use in development mode.- Parameters:
serverSecretSupplier
- AServerSecretSupplier
that can be used to generate seed values, which can then be used to generate private keys.versionType
- AVersionType
that defines which type of key this signature service uses.
-
DerivedKeysSignatureService
public DerivedKeysSignatureService(ServerSecretSupplier serverSecretSupplier, VersionType versionType, KeyPairService keyPairService)
Required-args Constructor.- Parameters:
serverSecretSupplier
- AServerSecretSupplier
that can be used to generate seed values, which canversionType
- AVersionType
that defines which type of key this signature service uses.keyPairService
- AKeyPairService
.
-
-
Method Detail
-
sign
public SignedTransaction sign(KeyMetadata keyMetadata, Transaction transaction)
- Specified by:
sign
in interfaceTransactionSigner
-
keyStoreType
public KeyStoreType keyStoreType()
- Specified by:
keyStoreType
in interfaceSignatureService
-
getPublicKey
public PublicKey getPublicKey(KeyMetadata keyMetadata)
- Specified by:
getPublicKey
in interfaceSignatureService
-
verify
public boolean verify(KeyMetadata keyMetadata, SignedTransaction transactionWithSignature)
- Specified by:
verify
in interfaceTransactionVerifier
-
constructSignatureService
protected SingleKeySignatureService constructSignatureService(KeyMetadata privateKeyMetadata)
Construct a newSingleKeySignatureService
using the providedprivateKeyMetadata
.- Parameters:
privateKeyMetadata
- AKeyMetadata
with information about a private key.- Returns:
- A
SingleKeySignatureService
.
-
getVersionType
public VersionType getVersionType()
Accessor for the type of this service.- Returns:
- A
VersionType
.
-
-