Signature.java
- package com.syntifi.casper.sdk.model.key;
- import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
- import com.syntifi.casper.sdk.jackson.deserializer.SignatureDeserializer;
- import com.syntifi.crypto.key.AbstractPrivateKey;
- import com.syntifi.crypto.key.Secp256k1PrivateKey;
- import lombok.Builder;
- import lombok.NoArgsConstructor;
- import java.security.GeneralSecurityException;
- /**
- * Hex-encoded cryptographic public key, including the algorithm tag prefix.
- *
- * @author Alexandre Carvalho
- * @author Andre Bertolace
- * @since 0.0.1
- */
- @JsonDeserialize(using = SignatureDeserializer.class)
- @NoArgsConstructor
- @Builder
- public class Signature extends AbstractSerializedKeyTaggedHex<AlgorithmTag> {
- public static Signature sign(AbstractPrivateKey key, byte[] msg) throws GeneralSecurityException {
- byte[] signatureBytes = key.sign(msg);
- Signature signature = new Signature();
- signature.setKey(signatureBytes);
- signature.setTag((key instanceof Secp256k1PrivateKey)
- ? AlgorithmTag.SECP256K1
- : AlgorithmTag.ED25519);
- return signature;
- }
- }