~brian-thomason/+junk/bouncycastle

« back to all changes in this revision

Viewing changes to src/org/bouncycastle/asn1/ess/ESSCertID.java

  • Committer: Brian Thomason
  • Date: 2011-12-20 17:20:32 UTC
  • Revision ID: brian.thomason@canonical.com-20111220172032-rdtm13jgdxtksacr
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.bouncycastle.asn1.ess;
 
2
 
 
3
import org.bouncycastle.asn1.ASN1Encodable;
 
4
import org.bouncycastle.asn1.ASN1EncodableVector;
 
5
import org.bouncycastle.asn1.ASN1OctetString;
 
6
import org.bouncycastle.asn1.ASN1Sequence;
 
7
import org.bouncycastle.asn1.DERObject;
 
8
import org.bouncycastle.asn1.DEROctetString;
 
9
import org.bouncycastle.asn1.DERSequence;
 
10
import org.bouncycastle.asn1.x509.IssuerSerial;
 
11
 
 
12
public class ESSCertID
 
13
    extends ASN1Encodable
 
14
{
 
15
    private ASN1OctetString certHash;
 
16
 
 
17
    private IssuerSerial issuerSerial;
 
18
 
 
19
    public static ESSCertID getInstance(Object o)
 
20
    {
 
21
        if (o == null || o instanceof ESSCertID)
 
22
        {
 
23
            return (ESSCertID)o;
 
24
        }
 
25
        else if (o instanceof ASN1Sequence)
 
26
        {
 
27
            return new ESSCertID((ASN1Sequence)o);
 
28
        }
 
29
 
 
30
        throw new IllegalArgumentException(
 
31
                "unknown object in 'ESSCertID' factory : "
 
32
                        + o.getClass().getName() + ".");
 
33
    }
 
34
 
 
35
    /**
 
36
     * constructor
 
37
     */
 
38
    public ESSCertID(ASN1Sequence seq)
 
39
    {
 
40
        if (seq.size() < 1 || seq.size() > 2)
 
41
        {
 
42
            throw new IllegalArgumentException("Bad sequence size: " + seq.size());
 
43
        }
 
44
 
 
45
        certHash = ASN1OctetString.getInstance(seq.getObjectAt(0));
 
46
 
 
47
        if (seq.size() > 1)
 
48
        {
 
49
            issuerSerial = IssuerSerial.getInstance(seq.getObjectAt(1));
 
50
        }
 
51
    }
 
52
 
 
53
    public ESSCertID(
 
54
        byte[]          hash)
 
55
    {
 
56
        certHash = new DEROctetString(hash);
 
57
    }
 
58
 
 
59
    public ESSCertID(
 
60
        byte[]          hash,
 
61
        IssuerSerial    issuerSerial)
 
62
    {
 
63
        this.certHash = new DEROctetString(hash);
 
64
        this.issuerSerial = issuerSerial;
 
65
    }
 
66
 
 
67
    public byte[] getCertHash()
 
68
    {
 
69
        return certHash.getOctets();
 
70
    }
 
71
 
 
72
    public IssuerSerial getIssuerSerial()
 
73
    {
 
74
        return issuerSerial;
 
75
    }
 
76
 
 
77
    /**
 
78
     * <pre>
 
79
     * ESSCertID ::= SEQUENCE {
 
80
     *     certHash Hash, 
 
81
     *     issuerSerial IssuerSerial OPTIONAL }
 
82
     * </pre>
 
83
     */
 
84
    public DERObject toASN1Object()
 
85
    {
 
86
        ASN1EncodableVector v = new ASN1EncodableVector();
 
87
        
 
88
        v.add(certHash);
 
89
        
 
90
        if (issuerSerial != null)
 
91
        {
 
92
            v.add(issuerSerial);
 
93
        }
 
94
 
 
95
        return new DERSequence(v);
 
96
    }
 
97
}