use of org.openmuc.jasn1.ber.types.BerInteger in project jasn1 by openmuc.
the class PresentationLayerTest method encodingDecoding.
@Test
public void encodingDecoding() throws IOException {
ReverseByteArrayOutputStream berOS = new ReverseByteArrayOutputStream(1000);
List<TransferSyntaxName> berObjectIdentifierList = new ArrayList<>(1);
berObjectIdentifierList.add(new TransferSyntaxName(new int[] { 2, 1, 1 }));
ContextList.SEQUENCE.TransferSyntaxNameList tsnl = new ContextList.SEQUENCE.TransferSyntaxNameList(berObjectIdentifierList);
ContextList.SEQUENCE context_listSubSeq = new ContextList.SEQUENCE(new PresentationContextIdentifier(1), new AbstractSyntaxName(new int[] { 2, 2, 1, 0, 1 }), tsnl);
ContextList.SEQUENCE context_listSubSeq2 = new ContextList.SEQUENCE(new PresentationContextIdentifier(3), new AbstractSyntaxName(new int[] { 1, 0, 9506, 2, 1 }), tsnl);
List<ContextList.SEQUENCE> context_listSubSeqList = new ArrayList<>(2);
context_listSubSeqList.add(context_listSubSeq);
context_listSubSeqList.add(context_listSubSeq2);
PresentationContextDefinitionList context_list = new PresentationContextDefinitionList(context_listSubSeqList);
PDVList.PresentationDataValues presDataValues = new PDVList.PresentationDataValues(new BerAny(new byte[] { 2, 1, 1 }), null, null);
PDVList pdvList = new PDVList(null, new PresentationContextIdentifier(1), presDataValues);
List<PDVList> pdvListList = new ArrayList<>(1);
pdvListList.add(pdvList);
FullyEncodedData fullyEncodedData = new FullyEncodedData(pdvListList);
UserData userData = new UserData(null, fullyEncodedData);
CPType.NormalModeParameters normalModeParameter = new CPType.NormalModeParameters(null, new CallingPresentationSelector(new byte[] { 0, 0, 0, 1 }), new CalledPresentationSelector(new byte[] { 0, 0, 0, 1 }), context_list, null, null, null, userData);
ModeSelector modeSelector = new ModeSelector(new BerInteger(1));
CPType cpType = new CPType(modeSelector, normalModeParameter);
cpType.encode(berOS, true);
ByteArrayInputStream bais = new ByteArrayInputStream(berOS.getArray());
CPType cpType_decoded = new CPType();
cpType_decoded.decode(bais, true);
Assert.assertEquals("2.2.1.0.1", cpType_decoded.normalModeParameters.presentationContextDefinitionList.seqOf.get(0).abstractSyntaxName.toString());
}
use of org.openmuc.jasn1.ber.types.BerInteger in project jasn1 by openmuc.
the class TaggingTest method explicitlyTaggedSetOfTest.
@Test
public void explicitlyTaggedSetOfTest() throws Exception {
ExplicitlyTaggedSetOf setOf = new ExplicitlyTaggedSetOf();
List<BerInteger> integerList = setOf.getBerInteger();
integerList.add(new BerInteger(3));
integerList.add(new BerInteger(4));
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(1000);
setOf.encode(os);
System.out.println("setOf : " + DatatypeConverter.printHexBinary(os.getArray()));
Assert.assertArrayEquals(DatatypeConverter.parseHexBinary("BF21083106020103020104"), os.getArray());
setOf = new ExplicitlyTaggedSetOf();
setOf.decode(new ByteArrayInputStream(os.getArray()));
}
use of org.openmuc.jasn1.ber.types.BerInteger in project jasn1 by openmuc.
the class TaggingTest method taggedChoiceTest.
@Test
public void taggedChoiceTest() throws Exception {
TaggedChoice choice = new TaggedChoice();
choice.setMyInteger(new BerInteger(1));
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(1000);
choice.encode(os);
Assert.assertArrayEquals(DatatypeConverter.parseHexBinary("BF2203020101"), os.getArray());
choice = new TaggedChoice();
choice.decode(new ByteArrayInputStream(os.getArray()));
Assert.assertNotNull(choice.getMyInteger());
Assert.assertNull(choice.getMyBoolean());
}
use of org.openmuc.jasn1.ber.types.BerInteger in project jasn1 by openmuc.
the class TaggingTest method explicitlyTaggedSequenceTest.
@Test
public void explicitlyTaggedSequenceTest() throws Exception {
ExplicitlyTaggedSequence sequence = new ExplicitlyTaggedSequence();
sequence.setMyInteger(new BerInteger(1));
sequence.setMyBoolean(new BerBoolean(true));
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(1000);
sequence.encode(os);
Assert.assertArrayEquals(DatatypeConverter.parseHexBinary("BF210830060201010101FF"), os.getArray());
sequence = new ExplicitlyTaggedSequence();
sequence.decode(new ByteArrayInputStream(os.getArray()));
Assert.assertNotNull(sequence.getMyInteger());
Assert.assertNotNull(sequence.getMyBoolean());
}
use of org.openmuc.jasn1.ber.types.BerInteger in project jasn1 by openmuc.
the class BerInteger method decode.
public int decode(InputStream is, boolean withTag) throws IOException {
int codeLength = 0;
if (withTag) {
codeLength += tag.decodeAndCheck(is);
}
BerLength length = new BerLength();
codeLength += length.decode(is);
if (length.val < 1) {
throw new IOException("Decoded length of BerInteger is not correct");
}
byte[] byteCode = new byte[length.val];
Util.readFully(is, byteCode);
codeLength += length.val;
value = new BigInteger(byteCode);
return codeLength;
}
Aggregations