public XMSSMTPublicKeyParameters build() { return new XMSSMTPublicKeyParameters(this); } }
public int getHeight() { return keyParams.getParameters().getHeight(); }
/** * Export XMSSMT public key. * * @return XMSSMT public key. */ public byte[] exportPublicKey() { return publicKey.toByteArray(); }
AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(PQCObjectIdentifiers.xmss_mt, new XMSSMTKeyParams(keyParams.getParameters().getHeight(), keyParams.getParameters().getLayers(), Utils.xmssLookupTreeAlgID(keyParams.getTreeDigest()))); return new SubjectPublicKeyInfo(algorithmIdentifier, new XMSSMTPublicKey(keyParams.getPublicSeed(), keyParams.getRoot()));
XMSSMTPublicKeyParameters xmssMTPublicKey = new XMSSMTPublicKeyParameters.Builder(params) .withPublicKey(publicKey).build(); if (!Arrays.areEqual(xmssMTPrivateKey.getRoot(), xmssMTPublicKey.getRoot())) if (!Arrays.areEqual(xmssMTPrivateKey.getPublicSeed(), xmssMTPublicKey.getPublicSeed()))
byte[] concatenated = Arrays.concatenate(sig.getRandom(), publicKey.getRoot(), XMSSUtil.toBytesBigEndian(sig.getIndex(), params.getDigestSize())); byte[] messageDigest = wotsPlus.getKhf().HMsg(concatenated, message); wotsPlus.importKeys(new byte[params.getDigestSize()], publicKey.getPublicSeed()); return Arrays.constantTimeAreEqual(rootNode.getValue(), publicKey.getRoot());
public int getLayers() { return keyParams.getParameters().getLayers(); }
public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof BCXMSSMTPublicKey) { BCXMSSMTPublicKey otherKey = (BCXMSSMTPublicKey)o; return treeDigest.equals(otherKey.treeDigest) && Arrays.areEqual(keyParams.toByteArray(), otherKey.keyParams.toByteArray()); } return false; }
public void init(boolean forSigning, CipherParameters param) { if (forSigning) { initSign = true; hasGenerated = false; privateKey = (XMSSMTPrivateKeyParameters)param; nextKeyGenerator = privateKey; params = privateKey.getParameters(); xmssParams = params.getXMSSParameters(); } else { initSign = false; publicKey = (XMSSMTPublicKeyParameters)param; params = publicKey.getParameters(); xmssParams = params.getXMSSParameters(); } wotsPlus = new WOTSPlus(new WOTSPlusParameters(params.getDigest())); }
public int hashCode() { return treeDigest.hashCode() + 37 * Arrays.hashCode(keyParams.toByteArray()); }