param = new XMSSKeyGenerationParameters(new XMSSParameters(xmssParams.getHeight(), new SHA256Digest()), random); param = new XMSSKeyGenerationParameters(new XMSSParameters(xmssParams.getHeight(), new SHA512Digest()), random); param = new XMSSKeyGenerationParameters(new XMSSParameters(xmssParams.getHeight(), new SHAKEDigest(128)), random); param = new XMSSKeyGenerationParameters(new XMSSParameters(xmssParams.getHeight(), new SHAKEDigest(256)), random);
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)); } }
AsymmetricKeyParameter getPublicKeyParameters(SubjectPublicKeyInfo keyInfo, Object defaultParams) throws IOException { XMSSKeyParams keyParams = XMSSKeyParams.getInstance(keyInfo.getAlgorithm().getParameters()); ASN1ObjectIdentifier treeDigest = keyParams.getTreeDigest().getAlgorithm(); XMSSPublicKey xmssPublicKey = XMSSPublicKey.getInstance(keyInfo.parsePublicKey()); return new XMSSPublicKeyParameters .Builder(new XMSSParameters(keyParams.getHeight(), Utils.getDigest(treeDigest))) .withPublicSeed(xmssPublicKey.getPublicSeed()) .withRoot(xmssPublicKey.getRoot()).build(); } }
/** * XMSSMT constructor... * * @param height Height of tree. * @param layers Amount of layers. * @param digest Digest to use. */ public XMSSMTParameters(int height, int layers, Digest digest) { super(); this.height = height; this.layers = layers; this.xmssParams = new XMSSParameters(xmssTreeHeight(height, layers), digest); oid = DefaultXMSSMTOid.lookup(getDigest().getAlgorithmName(), getDigestSize(), getWinternitzParameter(), getLen(), getHeight(), layers); /* * if (oid == null) { throw new InvalidParameterException(); } */ }
.Builder(new XMSSParameters(keyParams.getHeight(), Utils.getDigest(treeDigest))) .withIndex(xmssPrivateKey.getIndex()) .withSecretKeySeed(xmssPrivateKey.getSecretKeySeed())