package org.bouncycastle.asn1.x509.qualified; import org.bouncycastle.asn1.ASN1Choice; import org.bouncycastle.asn1.ASN1Encodable; import org.bouncycastle.asn1.DEREncodable; import org.bouncycastle.asn1.DERInteger; import org.bouncycastle.asn1.DERObject; import org.bouncycastle.asn1.DERObjectIdentifier; /** * The TypeOfBiometricData object. * <pre> * TypeOfBiometricData ::= CHOICE { * predefinedBiometricType PredefinedBiometricType, * biometricDataOid OBJECT IDENTIFIER } * * PredefinedBiometricType ::= INTEGER { * picture(0),handwritten-signature(1)} * (picture|handwritten-signature) * </pre> */ public class TypeOfBiometricData extends ASN1Encodable implements ASN1Choice { public static final int PICTURE = 0; public static final int HANDWRITTEN_SIGNATURE = 1; DEREncodable obj; public static TypeOfBiometricData getInstance(Object obj) { if (obj == null || obj instanceof TypeOfBiometricData) { return (TypeOfBiometricData)obj; } if (obj instanceof DERInteger) { DERInteger predefinedBiometricTypeObj = DERInteger.getInstance(obj); int predefinedBiometricType = predefinedBiometricTypeObj.getValue().intValue(); return new TypeOfBiometricData(predefinedBiometricType); } else if (obj instanceof DERObjectIdentifier) { DERObjectIdentifier BiometricDataID = DERObjectIdentifier.getInstance(obj); return new TypeOfBiometricData(BiometricDataID); } throw new IllegalArgumentException("unknown object in getInstance"); } public TypeOfBiometricData(int predefinedBiometricType) { if (predefinedBiometricType == PICTURE || predefinedBiometricType == HANDWRITTEN_SIGNATURE) { obj = new DERInteger(predefinedBiometricType); } else { throw new IllegalArgumentException("unknow PredefinedBiometricType : " + predefinedBiometricType); } } public TypeOfBiometricData(DERObjectIdentifier BiometricDataID) { obj = BiometricDataID; } public boolean isPredefined() { return obj instanceof DERInteger; } public int getPredefinedBiometricType() { return ((DERInteger)obj).getValue().intValue(); } public DERObjectIdentifier getBiometricDataOid() { return (DERObjectIdentifier)obj; } public DERObject toASN1Object() { return obj.getDERObject(); } }