package org.bouncycastle.cert.selector.jcajce;

import java.math.BigInteger;
import java.security.cert.X509Certificate;

import javax.security.auth.x500.X500Principal;

import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.cert.selector.X509CertificateHolderSelector;

public class JcaX509CertificateHolderSelector
    extends X509CertificateHolderSelector
{
    
Construct a signer identifier based on the issuer, serial number and subject key identifier (if present) of the passed in certificate.
Params:
  • certificate – certificate providing the issue and serial number and subject key identifier.
/** * Construct a signer identifier based on the issuer, serial number and subject key identifier (if present) of the passed in * certificate. * * @param certificate certificate providing the issue and serial number and subject key identifier. */
public JcaX509CertificateHolderSelector(X509Certificate certificate) { super(convertPrincipal(certificate.getIssuerX500Principal()), certificate.getSerialNumber(), getSubjectKeyId(certificate)); }
Construct a signer identifier based on the provided issuer and serial number..
Params:
  • issuer – the issuer to use.
  • serialNumber – the serial number to use.
/** * Construct a signer identifier based on the provided issuer and serial number.. * * @param issuer the issuer to use. * @param serialNumber the serial number to use. */
public JcaX509CertificateHolderSelector(X500Principal issuer, BigInteger serialNumber) { super(convertPrincipal(issuer), serialNumber); }
Construct a signer identifier based on the provided issuer, serial number, and subjectKeyId..
Params:
  • issuer – the issuer to use.
  • serialNumber – the serial number to use.
  • subjectKeyId – the subject key ID to use.
/** * Construct a signer identifier based on the provided issuer, serial number, and subjectKeyId.. * * @param issuer the issuer to use. * @param serialNumber the serial number to use. * @param subjectKeyId the subject key ID to use. */
public JcaX509CertificateHolderSelector(X500Principal issuer, BigInteger serialNumber, byte[] subjectKeyId) { super(convertPrincipal(issuer), serialNumber, subjectKeyId); } private static X500Name convertPrincipal(X500Principal issuer) { if (issuer == null) { return null; } return X500Name.getInstance(issuer.getEncoded()); } private static byte[] getSubjectKeyId(X509Certificate cert) { byte[] ext = cert.getExtensionValue(Extension.subjectKeyIdentifier.getId()); if (ext != null) { return ASN1OctetString.getInstance(ASN1OctetString.getInstance(ext).getOctets()).getOctets(); } else { return null; } } }