IssuerAndSerialNumber.java revision e6bf3e8dfa2804891a82075cb469b736321b4827
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 public IssuerAndSerialNumber( 38 ASN1Sequence seq) 39 { 40 this.name = X500Name.getInstance(seq.getObjectAt(0)); 41 this.serialNumber = (ASN1Integer)seq.getObjectAt(1); 42 } 43 44 public IssuerAndSerialNumber( 45 Certificate certificate) 46 { 47 this.name = certificate.getIssuer(); 48 this.serialNumber = certificate.getSerialNumber(); 49 } 50 51 public IssuerAndSerialNumber( 52 X509CertificateStructure certificate) 53 { 54 this.name = certificate.getIssuer(); 55 this.serialNumber = certificate.getSerialNumber(); 56 } 57 58 public IssuerAndSerialNumber( 59 X500Name name, 60 BigInteger serialNumber) 61 { 62 this.name = name; 63 this.serialNumber = new ASN1Integer(serialNumber); 64 } 65 66 /** 67 * @deprecated use X500Name constructor 68 */ 69 public IssuerAndSerialNumber( 70 X509Name name, 71 BigInteger serialNumber) 72 { 73 this.name = X500Name.getInstance(name); 74 this.serialNumber = new ASN1Integer(serialNumber); 75 } 76 77 /** 78 * @deprecated use X500Name constructor 79 */ 80 public IssuerAndSerialNumber( 81 X509Name name, 82 ASN1Integer serialNumber) 83 { 84 this.name = X500Name.getInstance(name); 85 this.serialNumber = serialNumber; 86 } 87 88 public X500Name getName() 89 { 90 return name; 91 } 92 93 public ASN1Integer getSerialNumber() 94 { 95 return serialNumber; 96 } 97 98 public ASN1Primitive toASN1Primitive() 99 { 100 ASN1EncodableVector v = new ASN1EncodableVector(); 101 102 v.add(name); 103 v.add(serialNumber); 104 105 return new DERSequence(v); 106 } 107} 108