org.bouncycastle.bcpg.sig.IssuerFingerprint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcpg-jdk14 Show documentation
Show all versions of bcpg-jdk14 Show documentation
The Bouncy Castle Java API for handling the OpenPGP protocol. This jar contains the OpenPGP API for JDK 1.4. The APIs can be used in conjunction with a JCE/JCA provider such as the one provided with the Bouncy Castle Cryptography APIs.
The newest version!
package org.bouncycastle.bcpg.sig;
import org.bouncycastle.bcpg.FingerprintUtil;
import org.bouncycastle.bcpg.KeyIdentifier;
import org.bouncycastle.bcpg.PublicKeyPacket;
import org.bouncycastle.bcpg.SignatureSubpacket;
import org.bouncycastle.bcpg.SignatureSubpacketTags;
import org.bouncycastle.util.Arrays;
/**
* Signature Subpacket containing the fingerprint of the issuers signing (sub-) key.
* This packet supersedes the {@link IssuerKeyID} subpacket.
*
* @see
* RFC9580 - Issuer Fingerprint
*/
public class IssuerFingerprint
extends SignatureSubpacket
{
public IssuerFingerprint(
boolean critical,
boolean isLongLength,
byte[] data)
{
super(SignatureSubpacketTags.ISSUER_FINGERPRINT, critical, isLongLength, data);
}
public IssuerFingerprint(
boolean critical,
int keyVersion,
byte[] fingerprint)
{
super(SignatureSubpacketTags.ISSUER_FINGERPRINT, critical, false,
Arrays.prepend(fingerprint, (byte)keyVersion));
}
public int getKeyVersion()
{
return data[0] & 0xff;
}
public byte[] getFingerprint()
{
return Arrays.copyOfRange(data, 1, data.length);
}
public long getKeyID()
{
if (getKeyVersion() == PublicKeyPacket.VERSION_4)
{
return FingerprintUtil.keyIdFromV4Fingerprint(getFingerprint());
}
if (getKeyVersion() == PublicKeyPacket.LIBREPGP_5)
{
return FingerprintUtil.keyIdFromLibrePgpFingerprint(getFingerprint());
}
if (getKeyVersion() == PublicKeyPacket.VERSION_6)
{
return FingerprintUtil.keyIdFromV6Fingerprint(getFingerprint());
}
return 0;
}
public KeyIdentifier getKeyIdentifier()
{
return new KeyIdentifier(getFingerprint());
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy