Home | History | Annotate | Download | only in cms
      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