1package org.bouncycastle.asn1.cms; 2 3import java.math.BigInteger; 4 5import org.bouncycastle.asn1.ASN1EncodableVector; 6import org.bouncycastle.asn1.ASN1Integer; 7import org.bouncycastle.asn1.ASN1Object; 8import org.bouncycastle.asn1.ASN1Primitive; 9import org.bouncycastle.asn1.ASN1Sequence; 10import org.bouncycastle.asn1.DERSequence; 11import org.bouncycastle.asn1.x500.X500Name; 12import org.bouncycastle.asn1.x509.Certificate; 13import org.bouncycastle.asn1.x509.X509CertificateStructure; 14import org.bouncycastle.asn1.x509.X509Name; 15 16public class IssuerAndSerialNumber 17 extends ASN1Object 18{ 19 private X500Name name; 20 private ASN1Integer serialNumber; 21 22 public static IssuerAndSerialNumber getInstance( 23 Object obj) 24 { 25 if (obj instanceof IssuerAndSerialNumber) 26 { 27 return (IssuerAndSerialNumber)obj; 28 } 29 else if (obj != null) 30 { 31 return new IssuerAndSerialNumber(ASN1Sequence.getInstance(obj)); 32 } 33 34 return null; 35 } 36 37 /** 38 * @deprecated use getInstance() method. 39 * @param seq 40 */ 41 public IssuerAndSerialNumber( 42 ASN1Sequence seq) 43 { 44 this.name = X500Name.getInstance(seq.getObjectAt(0)); 45 this.serialNumber = (ASN1Integer)seq.getObjectAt(1); 46 } 47 48 public IssuerAndSerialNumber( 49 Certificate certificate) 50 { 51 this.name = certificate.getIssuer(); 52 this.serialNumber = certificate.getSerialNumber(); 53 } 54 55 public IssuerAndSerialNumber( 56 X509CertificateStructure certificate) 57 { 58 this.name = certificate.getIssuer(); 59 this.serialNumber = certificate.getSerialNumber(); 60 } 61 62 public IssuerAndSerialNumber( 63 X500Name name, 64 BigInteger serialNumber) 65 { 66 this.name = name; 67 this.serialNumber = new ASN1Integer(serialNumber); 68 } 69 70 /** 71 * @deprecated use X500Name constructor 72 */ 73 public IssuerAndSerialNumber( 74 X509Name name, 75 BigInteger serialNumber) 76 { 77 this.name = X500Name.getInstance(name); 78 this.serialNumber = new ASN1Integer(serialNumber); 79 } 80 81 /** 82 * @deprecated use X500Name constructor 83 */ 84 public IssuerAndSerialNumber( 85 X509Name name, 86 ASN1Integer serialNumber) 87 { 88 this.name = X500Name.getInstance(name); 89 this.serialNumber = serialNumber; 90 } 91 92 public X500Name getName() 93 { 94 return name; 95 } 96 97 public ASN1Integer getSerialNumber() 98 { 99 return serialNumber; 100 } 101 102 public ASN1Primitive toASN1Primitive() 103 { 104 ASN1EncodableVector v = new ASN1EncodableVector(); 105 106 v.add(name); 107 v.add(serialNumber); 108 109 return new DERSequence(v); 110 } 111} 112