use of com.github.zhenwei.core.pqc.crypto.xmss.XMSSMTKeyGenerationParameters in project LinLong-Java by zhenwei1108.
the class XMSSMTKeyPairGeneratorSpi method generateKeyPair.
public KeyPair generateKeyPair() {
if (!initialised) {
param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(10, 20, new SHA512Digest()), random);
engine.init(param);
initialised = true;
}
AsymmetricCipherKeyPair pair = engine.generateKeyPair();
XMSSMTPublicKeyParameters pub = (XMSSMTPublicKeyParameters) pair.getPublic();
XMSSMTPrivateKeyParameters priv = (XMSSMTPrivateKeyParameters) pair.getPrivate();
return new KeyPair(new BCXMSSMTPublicKey(treeDigest, pub), new BCXMSSMTPrivateKey(treeDigest, priv));
}
use of com.github.zhenwei.core.pqc.crypto.xmss.XMSSMTKeyGenerationParameters in project LinLong-Java by zhenwei1108.
the class XMSSMTKeyPairGeneratorSpi method initialize.
public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException {
if (!(params instanceof XMSSMTParameterSpec)) {
throw new InvalidAlgorithmParameterException("parameter object not a XMSSMTParameterSpec");
}
XMSSMTParameterSpec xmssParams = (XMSSMTParameterSpec) params;
if (xmssParams.getTreeDigest().equals(XMSSParameterSpec.SHA256)) {
treeDigest = NISTObjectIdentifiers.id_sha256;
param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHA256Digest()), random);
} else if (xmssParams.getTreeDigest().equals(XMSSParameterSpec.SHA512)) {
treeDigest = NISTObjectIdentifiers.id_sha512;
param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHA512Digest()), random);
} else if (xmssParams.getTreeDigest().equals(XMSSParameterSpec.SHAKE128)) {
treeDigest = NISTObjectIdentifiers.id_shake128;
param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHAKEDigest(128)), random);
} else if (xmssParams.getTreeDigest().equals(XMSSParameterSpec.SHAKE256)) {
treeDigest = NISTObjectIdentifiers.id_shake256;
param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHAKEDigest(256)), random);
}
engine.init(param);
initialised = true;
}
Aggregations