Package org.xrpl.xrpl4j.crypto.signing
Class DerivedKeysSignatureService
java.lang.Object
org.xrpl.xrpl4j.crypto.signing.DerivedKeysSignatureService
- All Implemented Interfaces:
SignatureService
,TransactionSigner
,TransactionVerifier
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 of
SingleKeySignatureService
that it delegates
to based upon KeyMetadata
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
ConstructorDescriptionDerivedKeysSignatureService
(ServerSecretSupplier serverSecretSupplier, VersionType versionType) Required-args Constructor for use in development mode.DerivedKeysSignatureService
(ServerSecretSupplier serverSecretSupplier, VersionType versionType, KeyPairService keyPairService) Required-args Constructor.DerivedKeysSignatureService
(ServerSecretSupplier serverSecretSupplier, VersionType versionType, KeyPairService keyPairService, com.github.benmanes.caffeine.cache.CaffeineSpec caffeineSpec) Required-args Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected SingleKeySignatureService
constructSignatureService
(KeyMetadata privateKeyMetadata) Construct a newSingleKeySignatureService
using the providedprivateKeyMetadata
.getPublicKey
(KeyMetadata keyMetadata) Accessor for the type of this service.<T extends Transaction>
SignedTransaction<T>sign
(KeyMetadata keyMetadata, T transaction) signWithBehavior
(KeyMetadata keyMetadata, Transaction transaction, SigningBehavior behavior) <T extends Transaction>
booleanverify
(KeyMetadata keyMetadata, SignedTransaction<T> transactionWithSignature)
-
Constructor Details
-
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
.
-
DerivedKeysSignatureService
public DerivedKeysSignatureService(ServerSecretSupplier serverSecretSupplier, VersionType versionType, KeyPairService keyPairService, com.github.benmanes.caffeine.cache.CaffeineSpec caffeineSpec) 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
.caffeineSpec
- ACaffeineSpec
that can be initialized externally to configure the Caffeine cache constructed by this service.
-
-
Method Details
-
sign
- Specified by:
sign
in interfaceTransactionSigner
-
signWithBehavior
public Signature signWithBehavior(KeyMetadata keyMetadata, Transaction transaction, SigningBehavior behavior) - Specified by:
signWithBehavior
in interfaceTransactionSigner
-
keyStoreType
- Specified by:
keyStoreType
in interfaceSignatureService
-
getPublicKey
- Specified by:
getPublicKey
in interfaceSignatureService
-
verify
public <T extends Transaction> boolean verify(KeyMetadata keyMetadata, SignedTransaction<T> transactionWithSignature) - Specified by:
verify
in interfaceTransactionVerifier
-
constructSignatureService
Construct a newSingleKeySignatureService
using the providedprivateKeyMetadata
.- Parameters:
privateKeyMetadata
- AKeyMetadata
with information about a private key.- Returns:
- A
SingleKeySignatureService
.
-
getVersionType
Accessor for the type of this service.- Returns:
- A
VersionType
.
-