blob: d43e1bf2d02c9c562064f9a95a4bd44e78055351 [file] [log] [blame]
package org.bouncycastle.pqc.crypto.test;
import junit.framework.TestCase;
import org.bouncycastle.crypto.digests.SHA256Digest;
import org.bouncycastle.crypto.digests.SHA512Digest;
import org.bouncycastle.pqc.crypto.xmss.XMSS;
import org.bouncycastle.pqc.crypto.xmss.XMSSParameters;
import org.bouncycastle.pqc.crypto.xmss.XMSSSignature;
import org.bouncycastle.util.Arrays;
/**
* Test cases for XMSSSignature class.
*/
public class XMSSSignatureTest
extends TestCase
{
public void testSignatureParsingSHA256()
{
XMSSParameters params = new XMSSParameters(10, new SHA256Digest());
XMSS xmss = new XMSS(params, new NullPRNG());
xmss.generateKeys();
byte[] message = new byte[1024];
byte[] sig1 = xmss.sign(message);
XMSSSignature sig2 = new XMSSSignature.Builder(params).withSignature(sig1).build();
byte[] sig3 = sig2.toByteArray();
assertEquals(true, Arrays.areEqual(sig1, sig3));
}
public void testSignatureParsingSHA512()
{
XMSSParameters params = new XMSSParameters(10, new SHA512Digest());
XMSS xmss = new XMSS(params, new NullPRNG());
xmss.generateKeys();
byte[] message = new byte[1024];
byte[] sig1 = xmss.sign(message);
XMSSSignature sig2 = new XMSSSignature.Builder(params).withSignature(sig1).build();
byte[] sig3 = sig2.toByteArray();
assertEquals(true, Arrays.areEqual(sig1, sig3));
}
public void testConstructor()
{
XMSSParameters params = new XMSSParameters(10, new SHA256Digest());
XMSSSignature sig = new XMSSSignature.Builder(params).build();
byte[] sigByte = sig.toByteArray();
/* check everything is 0 */
for (int i = 0; i < sigByte.length; i++)
{
assertEquals(0x00, sigByte[i]);
}
}
}