1c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrompackage org.bouncycastle.asn1; 2c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 3c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstromimport java.io.IOException; 4c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 5c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrompublic class DERSetParser 6c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom implements ASN1SetParser 7c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom{ 8c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom private ASN1StreamParser _parser; 9c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 10c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom DERSetParser(ASN1StreamParser parser) 11c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 12c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom this._parser = parser; 13c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 14c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public ASN1Encodable readObject() 16c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom throws IOException 17c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 18c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom return _parser.readObject(); 19c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 20c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom 214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public ASN1Primitive getLoadedObject() 226e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom throws IOException 236e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom { 246e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return new DERSet(_parser.readVector(), false); 256e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom } 266e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom 274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom public ASN1Primitive toASN1Primitive() 28c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 29c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom try 30c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 316e736056d64d0e33b26cf9f7c4e351b496241fdeBrian Carlstrom return getLoadedObject(); 32c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 33c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom catch (IOException e) 34c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom { 35c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom throw new ASN1ParsingException(e.getMessage(), e); 36c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 37c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom } 38c37f4a04ef89e73a39a59f3c5a179af8c8ab5974Brian Carlstrom} 39