public PrivateKey generatePrivate(PrivateKeyInfo keyInfo) throws IOException { return new BCXMSSMTPrivateKey(keyInfo); }
private void writeObject( ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeObject(this.getEncoded()); } }
public BCXMSSMTPrivateKey(PrivateKeyInfo keyInfo) throws IOException { init(keyInfo); }
protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException { if (privateKey instanceof BCXMSSMTPrivateKey) { CipherParameters param = ((BCXMSSMTPrivateKey)privateKey).getKeyParams(); treeDigest = ((BCXMSSMTPrivateKey)privateKey).getTreeDigestOID(); if (random != null) { param = new ParametersWithRandom(param, random); } digest.reset(); signer.init(true, param); } else { throw new InvalidKeyException("unknown private key passed to XMSSMT"); } }
public PrivateKey getUpdatedPrivateKey() { if (treeDigest == null) { throw new IllegalStateException("signature object not in a signing state"); } PrivateKey rKey = new BCXMSSMTPrivateKey(treeDigest, (XMSSMTPrivateKeyParameters)signer.getUpdatedPrivateKey()); treeDigest = null; return rKey; }
private void readObject( ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); byte[] enc = (byte[])in.readObject(); init(PrivateKeyInfo.getInstance(enc)); }
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)); } }