package org.bouncycastle.cms;

import java.math.BigInteger;

import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.util.Arrays;
import org.bouncycastle.util.Selector;

a basic index for an originator.
/** * a basic index for an originator. */
class OriginatorId implements Selector { private byte[] subjectKeyId; private X500Name issuer; private BigInteger serialNumber;
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 OriginatorId(byte[] subjectKeyId) { setSubjectKeyID(subjectKeyId); } private void setSubjectKeyID(byte[] subjectKeyId) { this.subjectKeyId = 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 OriginatorId(X500Name issuer, BigInteger serialNumber) { setIssuerAndSerial(issuer, serialNumber); } private void setIssuerAndSerial(X500Name issuer, BigInteger serialNumber) { this.issuer = issuer; this.serialNumber = serialNumber; }
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 OriginatorId(X500Name issuer, BigInteger serialNumber, byte[] subjectKeyId) { setIssuerAndSerial(issuer, serialNumber); setSubjectKeyID(subjectKeyId); } public X500Name getIssuer() { return issuer; } public Object clone() { return new OriginatorId(this.issuer, this.serialNumber, this.subjectKeyId); } public int hashCode() { int code = Arrays.hashCode(subjectKeyId); if (this.serialNumber != null) { code ^= this.serialNumber.hashCode(); } if (this.issuer != null) { code ^= this.issuer.hashCode(); } return code; } public boolean equals( Object o) { if (!(o instanceof OriginatorId)) { return false; } OriginatorId id = (OriginatorId)o; return Arrays.areEqual(subjectKeyId, id.subjectKeyId) && equalsObj(this.serialNumber, id.serialNumber) && equalsObj(this.issuer, id.issuer); } private boolean equalsObj(Object a, Object b) { return (a != null) ? a.equals(b) : b == null; } public boolean match(Object obj) { return false; } }