~brian-thomason/+junk/bouncycastle

« back to all changes in this revision

Viewing changes to src/org/bouncycastle/asn1/x509/qualified/BiometricData.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.x509.qualified;
 
2
 
 
3
import java.util.Enumeration;
 
4
 
 
5
import org.bouncycastle.asn1.ASN1Encodable;
 
6
import org.bouncycastle.asn1.ASN1OctetString;
 
7
import org.bouncycastle.asn1.ASN1Sequence;
 
8
import org.bouncycastle.asn1.ASN1EncodableVector;
 
9
import org.bouncycastle.asn1.DERIA5String;
 
10
import org.bouncycastle.asn1.DERObject;
 
11
import org.bouncycastle.asn1.DERSequence;
 
12
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
 
13
 
 
14
/**
 
15
 * The BiometricData object.
 
16
 * <pre>
 
17
 * BiometricData  ::=  SEQUENCE {
 
18
 *       typeOfBiometricData  TypeOfBiometricData,
 
19
 *       hashAlgorithm        AlgorithmIdentifier,
 
20
 *       biometricDataHash    OCTET STRING,
 
21
 *       sourceDataUri        IA5String OPTIONAL  }
 
22
 * </pre>
 
23
 */
 
24
public class BiometricData 
 
25
    extends ASN1Encodable
 
26
{
 
27
    TypeOfBiometricData typeOfBiometricData;
 
28
    AlgorithmIdentifier hashAlgorithm;
 
29
    ASN1OctetString     biometricDataHash;
 
30
    DERIA5String        sourceDataUri;    
 
31
    
 
32
    public static BiometricData getInstance(
 
33
        Object obj)
 
34
    {
 
35
        if (obj == null || obj instanceof BiometricData)
 
36
        {
 
37
            return (BiometricData)obj;
 
38
        }
 
39
 
 
40
        if (obj instanceof ASN1Sequence)
 
41
        {
 
42
            return new BiometricData(ASN1Sequence.getInstance(obj));            
 
43
        }
 
44
        else
 
45
        {
 
46
            throw new IllegalArgumentException("unknown object in getInstance");
 
47
        }
 
48
    }                
 
49
            
 
50
    public BiometricData(ASN1Sequence seq)
 
51
    {
 
52
        Enumeration e = seq.getObjects();
 
53
 
 
54
        // typeOfBiometricData
 
55
        typeOfBiometricData = TypeOfBiometricData.getInstance(e.nextElement());
 
56
        // hashAlgorithm
 
57
        hashAlgorithm = AlgorithmIdentifier.getInstance(e.nextElement());
 
58
        // biometricDataHash
 
59
        biometricDataHash = ASN1OctetString.getInstance(e.nextElement());
 
60
        // sourceDataUri
 
61
        if (e.hasMoreElements())
 
62
        {
 
63
            sourceDataUri = DERIA5String.getInstance(e.nextElement());
 
64
        }
 
65
    }
 
66
    
 
67
    public BiometricData(
 
68
        TypeOfBiometricData typeOfBiometricData,
 
69
        AlgorithmIdentifier hashAlgorithm,
 
70
        ASN1OctetString     biometricDataHash,
 
71
        DERIA5String        sourceDataUri)
 
72
    {
 
73
        this.typeOfBiometricData = typeOfBiometricData;
 
74
        this.hashAlgorithm = hashAlgorithm;
 
75
        this.biometricDataHash = biometricDataHash;
 
76
        this.sourceDataUri = sourceDataUri;
 
77
    }
 
78
    
 
79
    public BiometricData(
 
80
        TypeOfBiometricData typeOfBiometricData,
 
81
        AlgorithmIdentifier hashAlgorithm,
 
82
        ASN1OctetString     biometricDataHash)
 
83
    {
 
84
        this.typeOfBiometricData = typeOfBiometricData;
 
85
        this.hashAlgorithm = hashAlgorithm;
 
86
        this.biometricDataHash = biometricDataHash;
 
87
        this.sourceDataUri = null;
 
88
    }
 
89
 
 
90
    public TypeOfBiometricData getTypeOfBiometricData()
 
91
    {
 
92
        return typeOfBiometricData;
 
93
    }
 
94
    
 
95
    public AlgorithmIdentifier getHashAlgorithm()
 
96
    {
 
97
        return hashAlgorithm;
 
98
    }
 
99
    
 
100
    public ASN1OctetString getBiometricDataHash()
 
101
    {
 
102
        return biometricDataHash;
 
103
    }
 
104
    
 
105
    public DERIA5String getSourceDataUri()
 
106
    {
 
107
        return sourceDataUri;
 
108
    }
 
109
    
 
110
    public DERObject toASN1Object() 
 
111
    {
 
112
        ASN1EncodableVector seq = new ASN1EncodableVector();
 
113
        seq.add(typeOfBiometricData);
 
114
        seq.add(hashAlgorithm);
 
115
        seq.add(biometricDataHash); 
 
116
        
 
117
        if (sourceDataUri != null)
 
118
        {
 
119
            seq.add(sourceDataUri);
 
120
        }
 
121
 
 
122
        return new DERSequence(seq);
 
123
    }
 
124
}