public PublicKey generatePublic(SubjectPublicKeyInfo keyInfo) throws IOException { return new BCXMSSPublicKey(keyInfo); } }
private void writeObject( ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeObject(this.getEncoded()); } }
public BCXMSSPublicKey(SubjectPublicKeyInfo keyInfo) throws IOException { init(keyInfo); }
protected void engineInitVerify(PublicKey publicKey) throws InvalidKeyException { if (publicKey instanceof BCXMSSPublicKey) { CipherParameters param = ((BCXMSSPublicKey)publicKey).getKeyParams(); treeDigest = null; digest.reset(); signer.init(false, param); } else { throw new InvalidKeyException("unknown public key passed to XMSS"); } }
public KeyPair generateKeyPair() { if (!initialised) { param = new XMSSKeyGenerationParameters(new XMSSParameters(10, new SHA512Digest()), random); engine.init(param); initialised = true; } AsymmetricCipherKeyPair pair = engine.generateKeyPair(); XMSSPublicKeyParameters pub = (XMSSPublicKeyParameters)pair.getPublic(); XMSSPrivateKeyParameters priv = (XMSSPrivateKeyParameters)pair.getPrivate(); return new KeyPair(new BCXMSSPublicKey(treeDigest, pub), new BCXMSSPrivateKey(treeDigest, priv)); } }
private void readObject( ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); byte[] enc = (byte[])in.readObject(); init(SubjectPublicKeyInfo.getInstance(enc)); }