org.bouncycastle.pqc.crypto.lms.LMSSigner Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk15to18 Show documentation
Show all versions of bcprov-jdk15to18 Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.
package org.bouncycastle.pqc.crypto.lms;
import java.io.IOException;
import org.bouncycastle.crypto.CipherParameters;
import org.bouncycastle.pqc.crypto.MessageSigner;
public class LMSSigner
implements MessageSigner
{
private LMSPrivateKeyParameters privKey;
private LMSPublicKeyParameters pubKey;
public void init(boolean forSigning, CipherParameters param)
{
if (forSigning)
{
privKey = (LMSPrivateKeyParameters)param;
}
else
{
pubKey = (LMSPublicKeyParameters)param;
}
}
public byte[] generateSignature(byte[] message)
{
try
{
return LMS.generateSign(privKey, message).getEncoded();
}
catch (IOException e)
{
throw new IllegalStateException("unable to encode signature: " + e.getMessage());
}
}
public boolean verifySignature(byte[] message, byte[] signature)
{
try
{
return LMS.verifySignature(pubKey, LMSSignature.getInstance(signature), message);
}
catch (IOException e)
{
throw new IllegalStateException("unable to decode signature: " + e.getMessage());
}
}
}