public interface SignatureAlgorithmForTransactionRequests
An algorithm that signs transaction requests and verifies such signatures back.
-
Method Summary
Static MethodsModifier and TypeMethodDescriptionstatic io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>ed25519()Yields the ed25519 signature algorithm for transaction requests.static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>Yields a signature algorithm for transaction requests that uses the ed25519 cryptography.static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>empty()Yields an empty signature algorithm that signs all transaction requests with an empty array of bytes.static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>mk(SignatureAlgorithms.TYPES type) Yields the signature algorithm for transaction requests with the given type.static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>Yields the signature algorithm for transaction requests with the given name.static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>qtesla1()Yields the qTESLA-p-I signature algorithm for transaction requests.static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>qtesla3()Yields the qTESLA-p-III signature algorithm for transaction requests.static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest>Yields a signature algorithm for transaction requests that uses the SHA256 hashing algorithm and then the DSA algorithm.
-
Method Details
-
sha256dsa
static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest> sha256dsa() throws NoSuchAlgorithmExceptionYields a signature algorithm for transaction requests that uses the SHA256 hashing algorithm and then the DSA algorithm.- Returns:
- the algorithm
- Throws:
NoSuchAlgorithmException- if the installation of Java does not include the SHA256withDSA algorithm
-
ed25519
static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest> ed25519() throws NoSuchAlgorithmExceptionYields the ed25519 signature algorithm for transaction requests.- Returns:
- the algorithm
- Throws:
NoSuchAlgorithmException- if the installation does not include the ed25519 algorithm
-
ed25519det
static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest> ed25519det() throws NoSuchAlgorithmExceptionYields a signature algorithm for transaction requests that uses the ed25519 cryptography. It generates keys in a deterministic order, hence must NOT be used in production. It is useful instead for testing, since it makes deterministic the sequence of keys of the accounts in the tests and consequently also the gas costs of such accounts when they are put into maps, for instance.- Throws:
NoSuchAlgorithmException
-
qtesla1
static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest> qtesla1() throws NoSuchAlgorithmExceptionYields the qTESLA-p-I signature algorithm for transaction requests.- Returns:
- the algorithm
- Throws:
NoSuchAlgorithmException- if the installation does not include the qTESLA-p-I algorithm
-
qtesla3
static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest> qtesla3() throws NoSuchAlgorithmExceptionYields the qTESLA-p-III signature algorithm for transaction requests.- Returns:
- the algorithm
- Throws:
NoSuchAlgorithmException- if the installation does not include the qTESLA-p-III algorithm
-
empty
Yields an empty signature algorithm that signs all transaction requests with an empty array of bytes.- Returns:
- the algorithm
-
mk
static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest> mk(String name) throws NoSuchAlgorithmException Yields the signature algorithm for transaction requests with the given name. It looks for a factory method with the given name and invokes it.- Parameters:
name- the name of the algorithm, case-insensitive- Returns:
- the algorithm
- Throws:
NoSuchAlgorithmException- if the installation does not include the given algorithm
-
mk
static io.hotmoka.crypto.api.SignatureAlgorithm<SignedTransactionRequest> mk(SignatureAlgorithms.TYPES type) throws NoSuchAlgorithmException Yields the signature algorithm for transaction requests with the given type.- Parameters:
type- the type of the algorithm- Returns:
- the algorithm
- Throws:
NoSuchAlgorithmException- if the installation does not include the given algorithm
-