public void init( KeyGenerationParameters param) { XMSSMTKeyGenerationParameters parameters = (XMSSMTKeyGenerationParameters)param; prng = parameters.getRandom(); this.params = parameters.getParameters(); this.xmssParams = params.getXMSSParameters(); }
/** * Generate a new XMSSMT private key / public key pair. */ public void generateKeys() { XMSSMTKeyPairGenerator kpGen = new XMSSMTKeyPairGenerator(); kpGen.init(new XMSSMTKeyGenerationParameters(getParams(), prng)); AsymmetricCipherKeyPair kp = kpGen.generateKeyPair(); privateKey = (XMSSMTPrivateKeyParameters)kp.getPrivate(); publicKey = (XMSSMTPublicKeyParameters)kp.getPublic(); importState(privateKey, publicKey); }
param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHA256Digest()), random); param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHA512Digest()), random); param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHAKEDigest(128)), random); param = new XMSSMTKeyGenerationParameters(new XMSSMTParameters(xmssParams.getHeight(), xmssParams.getLayers(), new SHAKEDigest(256)), random);
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)); } }