Home | History | Annotate | Download | only in qualified
      1 package org.bouncycastle.asn1.x509.qualified;
      2 
      3 import org.bouncycastle.asn1.ASN1Choice;
      4 import org.bouncycastle.asn1.ASN1Encodable;
      5 import org.bouncycastle.asn1.DEREncodable;
      6 import org.bouncycastle.asn1.DERInteger;
      7 import org.bouncycastle.asn1.DERObject;
      8 import org.bouncycastle.asn1.DERObjectIdentifier;
      9 
     10 /**
     11  * The TypeOfBiometricData object.
     12  * <pre>
     13  * TypeOfBiometricData ::= CHOICE {
     14  *   predefinedBiometricType   PredefinedBiometricType,
     15  *   biometricDataOid          OBJECT IDENTIFIER }
     16  *
     17  * PredefinedBiometricType ::= INTEGER {
     18  *   picture(0),handwritten-signature(1)}
     19  *   (picture|handwritten-signature)
     20  * </pre>
     21  */
     22 public class TypeOfBiometricData
     23     extends ASN1Encodable
     24     implements ASN1Choice
     25 {
     26     public static final int PICTURE                     = 0;
     27     public static final int HANDWRITTEN_SIGNATURE       = 1;
     28 
     29     DEREncodable      obj;
     30 
     31     public static TypeOfBiometricData getInstance(Object obj)
     32     {
     33         if (obj == null || obj instanceof TypeOfBiometricData)
     34         {
     35             return (TypeOfBiometricData)obj;
     36         }
     37 
     38         if (obj instanceof DERInteger)
     39         {
     40             DERInteger predefinedBiometricTypeObj = DERInteger.getInstance(obj);
     41             int  predefinedBiometricType = predefinedBiometricTypeObj.getValue().intValue();
     42 
     43             return new TypeOfBiometricData(predefinedBiometricType);
     44         }
     45         else if (obj instanceof DERObjectIdentifier)
     46         {
     47             DERObjectIdentifier BiometricDataID = DERObjectIdentifier.getInstance(obj);
     48             return new TypeOfBiometricData(BiometricDataID);
     49         }
     50 
     51         throw new IllegalArgumentException("unknown object in getInstance");
     52     }
     53 
     54     public TypeOfBiometricData(int predefinedBiometricType)
     55     {
     56         if (predefinedBiometricType == PICTURE || predefinedBiometricType == HANDWRITTEN_SIGNATURE)
     57         {
     58                 obj = new DERInteger(predefinedBiometricType);
     59         }
     60         else
     61         {
     62             throw new IllegalArgumentException("unknow PredefinedBiometricType : " + predefinedBiometricType);
     63         }
     64     }
     65 
     66     public TypeOfBiometricData(DERObjectIdentifier BiometricDataID)
     67     {
     68         obj = BiometricDataID;
     69     }
     70 
     71     public boolean isPredefined()
     72     {
     73         return obj instanceof DERInteger;
     74     }
     75 
     76     public int getPredefinedBiometricType()
     77     {
     78         return ((DERInteger)obj).getValue().intValue();
     79     }
     80 
     81     public DERObjectIdentifier getBiometricDataOid()
     82     {
     83         return (DERObjectIdentifier)obj;
     84     }
     85 
     86     public DERObject toASN1Object()
     87     {
     88         return obj.getDERObject();
     89     }
     90 }
     91