org.bouncycastle.pqc.jcajce.provider.lms.DigestUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.saml.opensaml.integration Show documentation
Show all versions of com.liferay.saml.opensaml.integration Show documentation
Liferay SAML OpenSAML Integration
package org.bouncycastle.pqc.jcajce.provider.lms;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.nist.NISTObjectIdentifiers;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.Xof;
import org.bouncycastle.pqc.jcajce.spec.XMSSParameterSpec;
class DigestUtil
{
public static byte[] getDigestResult(Digest digest)
{
byte[] hash = new byte[DigestUtil.getDigestSize(digest)];
if (digest instanceof Xof)
{
((Xof)digest).doFinal(hash, 0, hash.length);
}
else
{
digest.doFinal(hash, 0);
}
return hash;
}
public static int getDigestSize(Digest digest)
{
if (digest instanceof Xof)
{
return digest.getDigestSize() * 2;
}
return digest.getDigestSize();
}
public static String getXMSSDigestName(ASN1ObjectIdentifier treeDigest)
{
if (treeDigest.equals(NISTObjectIdentifiers.id_sha256))
{
return XMSSParameterSpec.SHA256;
}
if (treeDigest.equals(NISTObjectIdentifiers.id_sha512))
{
return XMSSParameterSpec.SHA512;
}
if (treeDigest.equals(NISTObjectIdentifiers.id_shake128))
{
return XMSSParameterSpec.SHAKE128;
}
if (treeDigest.equals(NISTObjectIdentifiers.id_shake256))
{
return XMSSParameterSpec.SHAKE256;
}
throw new IllegalArgumentException("unrecognized digest OID: " + treeDigest);
}
}