/** * Sign message. * * @param message Message to sign. * @return XMSSMT signature on digest of message. */ public byte[] sign(byte[] message) { if (message == null) { throw new NullPointerException("message == null"); } XMSSMTSigner signer = new XMSSMTSigner(); signer.init(true, privateKey); byte[] signature = signer.generateSignature(message); privateKey = (XMSSMTPrivateKeyParameters)signer.getUpdatedPrivateKey(); importState(privateKey, publicKey); return signature; }
/** * 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); }