1package org.bouncycastle.asn1.pkcs; 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.X509Name; 13 14public class IssuerAndSerialNumber 15 extends ASN1Object 16{ 17 X500Name name; 18 ASN1Integer certSerialNumber; 19 20 public static IssuerAndSerialNumber getInstance( 21 Object obj) 22 { 23 if (obj instanceof IssuerAndSerialNumber) 24 { 25 return (IssuerAndSerialNumber)obj; 26 } 27 else if (obj instanceof ASN1Sequence) 28 { 29 return new IssuerAndSerialNumber((ASN1Sequence)obj); 30 } 31 32 throw new IllegalArgumentException("unknown object in factory: " + obj.getClass().getName()); 33 } 34 35 public IssuerAndSerialNumber( 36 ASN1Sequence seq) 37 { 38 this.name = X500Name.getInstance(seq.getObjectAt(0)); 39 this.certSerialNumber = (ASN1Integer)seq.getObjectAt(1); 40 } 41 42 public IssuerAndSerialNumber( 43 X509Name name, 44 BigInteger certSerialNumber) 45 { 46 this.name = X500Name.getInstance(name.toASN1Primitive()); 47 this.certSerialNumber = new ASN1Integer(certSerialNumber); 48 } 49 50 public IssuerAndSerialNumber( 51 X509Name name, 52 ASN1Integer certSerialNumber) 53 { 54 this.name = X500Name.getInstance(name.toASN1Primitive()); 55 this.certSerialNumber = certSerialNumber; 56 } 57 58 public IssuerAndSerialNumber( 59 X500Name name, 60 BigInteger certSerialNumber) 61 { 62 this.name = name; 63 this.certSerialNumber = new ASN1Integer(certSerialNumber); 64 } 65 66 public X500Name getName() 67 { 68 return name; 69 } 70 71 public ASN1Integer getCertificateSerialNumber() 72 { 73 return certSerialNumber; 74 } 75 76 public ASN1Primitive toASN1Primitive() 77 { 78 ASN1EncodableVector v = new ASN1EncodableVector(); 79 80 v.add(name); 81 v.add(certSerialNumber); 82 83 return new DERSequence(v); 84 } 85} 86