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