001package org.apache.commons.ssl.org.bouncycastle.asn1.icao; 002 003import java.util.Enumeration; 004 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1OctetString; 009import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 010import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 011import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 012 013/** 014 * The DataGroupHash object. 015 * <pre> 016 * DataGroupHash ::= SEQUENCE { 017 * dataGroupNumber DataGroupNumber, 018 * dataGroupHashValue OCTET STRING } 019 * 020 * DataGroupNumber ::= INTEGER { 021 * dataGroup1 (1), 022 * dataGroup1 (2), 023 * dataGroup1 (3), 024 * dataGroup1 (4), 025 * dataGroup1 (5), 026 * dataGroup1 (6), 027 * dataGroup1 (7), 028 * dataGroup1 (8), 029 * dataGroup1 (9), 030 * dataGroup1 (10), 031 * dataGroup1 (11), 032 * dataGroup1 (12), 033 * dataGroup1 (13), 034 * dataGroup1 (14), 035 * dataGroup1 (15), 036 * dataGroup1 (16) } 037 * 038 * </pre> 039 */ 040public class DataGroupHash 041 extends ASN1Object 042{ 043 ASN1Integer dataGroupNumber; 044 ASN1OctetString dataGroupHashValue; 045 046 public static DataGroupHash getInstance( 047 Object obj) 048 { 049 if (obj instanceof DataGroupHash) 050 { 051 return (DataGroupHash)obj; 052 } 053 else if (obj != null) 054 { 055 return new DataGroupHash(ASN1Sequence.getInstance(obj)); 056 } 057 058 return null; 059 } 060 061 private DataGroupHash(ASN1Sequence seq) 062 { 063 Enumeration e = seq.getObjects(); 064 065 // dataGroupNumber 066 dataGroupNumber = ASN1Integer.getInstance(e.nextElement()); 067 // dataGroupHashValue 068 dataGroupHashValue = ASN1OctetString.getInstance(e.nextElement()); 069 } 070 071 public DataGroupHash( 072 int dataGroupNumber, 073 ASN1OctetString dataGroupHashValue) 074 { 075 this.dataGroupNumber = new ASN1Integer(dataGroupNumber); 076 this.dataGroupHashValue = dataGroupHashValue; 077 } 078 079 public int getDataGroupNumber() 080 { 081 return dataGroupNumber.getValue().intValue(); 082 } 083 084 public ASN1OctetString getDataGroupHashValue() 085 { 086 return dataGroupHashValue; 087 } 088 089 public ASN1Primitive toASN1Primitive() 090 { 091 ASN1EncodableVector seq = new ASN1EncodableVector(); 092 seq.add(dataGroupNumber); 093 seq.add(dataGroupHashValue); 094 095 return new DERSequence(seq); 096 } 097}