package org.bouncycastle.cms;

import java.math.BigInteger;

import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.cert.selector.X509CertificateHolderSelector;
import org.bouncycastle.util.Selector;

a basic index for a signer.
/** * a basic index for a signer. */
public class SignerId implements Selector { private X509CertificateHolderSelector baseSelector; private SignerId(X509CertificateHolderSelector baseSelector) { this.baseSelector = baseSelector; }
Construct a signer ID with the value of a public key's subjectKeyId.
Params:
  • subjectKeyId – a subjectKeyId
/** * Construct a signer ID with the value of a public key's subjectKeyId. * * @param subjectKeyId a subjectKeyId */
public SignerId(byte[] subjectKeyId) { this(null, null, subjectKeyId); }
Construct a signer ID based on the issuer and serial number of the signer's associated certificate.
Params:
  • issuer – the issuer of the signer's associated certificate.
  • serialNumber – the serial number of the signer's associated certificate.
/** * Construct a signer ID based on the issuer and serial number of the signer's associated * certificate. * * @param issuer the issuer of the signer's associated certificate. * @param serialNumber the serial number of the signer's associated certificate. */
public SignerId(X500Name issuer, BigInteger serialNumber) { this(issuer, serialNumber, null); }
Construct a signer ID based on the issuer and serial number of the signer's associated certificate.
Params:
  • issuer – the issuer of the signer's associated certificate.
  • serialNumber – the serial number of the signer's associated certificate.
  • subjectKeyId – the subject key identifier to use to match the signers associated certificate.
/** * Construct a signer ID based on the issuer and serial number of the signer's associated * certificate. * * @param issuer the issuer of the signer's associated certificate. * @param serialNumber the serial number of the signer's associated certificate. * @param subjectKeyId the subject key identifier to use to match the signers associated certificate. */
public SignerId(X500Name issuer, BigInteger serialNumber, byte[] subjectKeyId) { this(new X509CertificateHolderSelector(issuer, serialNumber, subjectKeyId)); } public X500Name getIssuer() { return baseSelector.getIssuer(); } public BigInteger getSerialNumber() { return baseSelector.getSerialNumber(); } public byte[] getSubjectKeyIdentifier() { return baseSelector.getSubjectKeyIdentifier(); } public int hashCode() { return baseSelector.hashCode(); } public boolean equals( Object o) { if (!(o instanceof SignerId)) { return false; } SignerId id = (SignerId)o; return this.baseSelector.equals(id.baseSelector); } public boolean match(Object obj) { if (obj instanceof SignerInformation) { return ((SignerInformation)obj).getSID().equals(this); } return baseSelector.match(obj); } public Object clone() { return new SignerId(this.baseSelector); } }