public void taggedDecode(Asn1ParseResult parseResult, TaggingOption taggingOption) throws IOException { Tag expectedTaggingTagFlags = taggingOption.getTag(!isPrimitive()); Asn1ParseResult tmpParseResult = parseResult; if (!expectedTaggingTagFlags.equals(parseResult.tag())) { // Primitive but using constructed encoding if (isPrimitive() && !parseResult.isPrimitive()) { Asn1Container container = (Asn1Container) parseResult; tmpParseResult = new Asn1DerivedItem(tag(), container); } else { throw new IOException("Unexpected tag " + parseResult.tag() + ", expecting " + expectedTaggingTagFlags); } } if (taggingOption.isImplicit()) { decodeBody(tmpParseResult); } else { Asn1Container container = (Asn1Container) parseResult; tmpParseResult = container.getChildren().get(0); decode(tmpParseResult); } } }
public void taggedDecode(Asn1ParseResult parseResult, TaggingOption taggingOption) throws IOException { Tag expectedTaggingTagFlags = taggingOption.getTag(!isPrimitive()); Asn1ParseResult tmpParseResult = parseResult; if (!expectedTaggingTagFlags.equals(parseResult.tag())) { // Primitive but using constructed encoding if (isPrimitive() && !parseResult.isPrimitive()) { Asn1Container container = (Asn1Container) parseResult; tmpParseResult = new Asn1DerivedItem(tag(), container); } else { throw new IOException("Unexpected tag " + parseResult.tag() + ", expecting " + expectedTaggingTagFlags); } } if (taggingOption.isImplicit()) { decodeBody(tmpParseResult); } else { Asn1Container container = (Asn1Container) parseResult; tmpParseResult = container.getChildren().get(0); decode(tmpParseResult); } } }
public void decode(Asn1ParseResult parseResult) throws IOException { Asn1ParseResult tmpParseResult = parseResult; if (!tag().equals(parseResult.tag())) { // Primitive but using constructed encoding if (isPrimitive() && !parseResult.isPrimitive()) { Asn1Container container = (Asn1Container) parseResult; tmpParseResult = new Asn1DerivedItem(tag(), container); } else { throw new IOException("Unexpected item " + parseResult.simpleInfo() + ", expecting " + tag()); } } decodeBody(tmpParseResult); }
public void decode(Asn1ParseResult parseResult) throws IOException { Asn1ParseResult tmpParseResult = parseResult; if (!tag().equals(parseResult.tag())) { // Primitive but using constructed encoding if (isPrimitive() && !parseResult.isPrimitive()) { Asn1Container container = (Asn1Container) parseResult; tmpParseResult = new Asn1DerivedItem(tag(), container); } else { throw new IOException("Unexpected item " + parseResult.simpleInfo() + ", expecting " + tag()); } } decodeBody(tmpParseResult); }
@Override public void taggedEncode(ByteBuffer buffer, TaggingOption taggingOption) throws IOException { Tag taggingTag = taggingOption.getTag(!isPrimitive()); Asn1Util.encodeTag(buffer, taggingTag); int taggingBodyLen = taggingOption.isImplicit() ? encodingBodyLength() : encodingLength(); Asn1Util.encodeLength(buffer, taggingBodyLen); if (taggingOption.isImplicit()) { encodeBody(buffer); } else { encode(buffer); } }
@Override public void taggedEncode(ByteBuffer buffer, TaggingOption taggingOption) throws IOException { Tag taggingTag = taggingOption.getTag(!isPrimitive()); Asn1Util.encodeTag(buffer, taggingTag); int taggingBodyLen = taggingOption.isImplicit() ? encodingBodyLength() : encodingLength(); Asn1Util.encodeLength(buffer, taggingBodyLen); if (taggingOption.isImplicit()) { encodeBody(buffer); } else { encode(buffer); } }