Home | History | Annotate | Download | only in pkcs
      1 package org.bouncycastle.asn1.pkcs;
      2 
      3 import java.math.BigInteger;
      4 
      5 import org.bouncycastle.asn1.ASN1EncodableVector;
      6 import org.bouncycastle.asn1.ASN1Integer;
      7 import org.bouncycastle.asn1.ASN1Object;
      8 import org.bouncycastle.asn1.ASN1Primitive;
      9 import org.bouncycastle.asn1.ASN1Sequence;
     10 import org.bouncycastle.asn1.DERSequence;
     11 import org.bouncycastle.asn1.x500.X500Name;
     12 import org.bouncycastle.asn1.x509.X509Name;
     13 
     14 public 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 != null)
     28         {
     29             return new IssuerAndSerialNumber(ASN1Sequence.getInstance(obj));
     30         }
     31 
     32         return null;
     33     }
     34 
     35     private 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