1 package org.bouncycastle.asn1.cms; 2 3 import java.math.BigInteger; 4 5 import org.bouncycastle.asn1.ASN1Encodable; 6 import org.bouncycastle.asn1.ASN1EncodableVector; 7 import org.bouncycastle.asn1.ASN1Sequence; 8 import org.bouncycastle.asn1.DERInteger; 9 import org.bouncycastle.asn1.DERObject; 10 import org.bouncycastle.asn1.DERSequence; 11 import org.bouncycastle.asn1.x509.X509Name; 12 13 public class IssuerAndSerialNumber 14 extends ASN1Encodable 15 { 16 X509Name name; 17 DERInteger serialNumber; 18 19 public static IssuerAndSerialNumber getInstance( 20 Object obj) 21 { 22 if (obj instanceof IssuerAndSerialNumber) 23 { 24 return (IssuerAndSerialNumber)obj; 25 } 26 else if (obj instanceof ASN1Sequence) 27 { 28 return new IssuerAndSerialNumber((ASN1Sequence)obj); 29 } 30 31 throw new IllegalArgumentException( 32 "Illegal object in IssuerAndSerialNumber: " + obj.getClass().getName()); 33 } 34 35 public IssuerAndSerialNumber( 36 ASN1Sequence seq) 37 { 38 this.name = X509Name.getInstance(seq.getObjectAt(0)); 39 this.serialNumber = (DERInteger)seq.getObjectAt(1); 40 } 41 42 public IssuerAndSerialNumber( 43 X509Name name, 44 BigInteger serialNumber) 45 { 46 this.name = name; 47 this.serialNumber = new DERInteger(serialNumber); 48 } 49 50 public IssuerAndSerialNumber( 51 X509Name name, 52 DERInteger serialNumber) 53 { 54 this.name = name; 55 this.serialNumber = serialNumber; 56 } 57 58 public X509Name getName() 59 { 60 return name; 61 } 62 63 public DERInteger getSerialNumber() 64 { 65 return serialNumber; 66 } 67 68 public DERObject toASN1Object() 69 { 70 ASN1EncodableVector v = new ASN1EncodableVector(); 71 72 v.add(name); 73 v.add(serialNumber); 74 75 return new DERSequence(v); 76 } 77 } 78