use of com.beanit.asn1bean.ber.types.string.BerVisibleString in project jasn1 by openmuc.
the class ModulesTest method encodingDecoding.
@Test
public void encodingDecoding() throws IOException {
ReverseByteArrayOutputStream berOS = new ReverseByteArrayOutputStream(1000);
MyDate1 dateOfHire = new MyDate1();
dateOfHire.value = "19710917".getBytes(UTF_8);
dateOfHire.encode(berOS, true);
MyInt2 myInt2Encode = new MyInt2(2);
berOS.reset();
myInt2Encode.encode(berOS, true);
MyInt2 myInt2Decode = new MyInt2();
byte[] code = HexString.toBytes("a303020102");
InputStream is = new ByteArrayInputStream(code);
myInt2Decode.decode(is, true);
assertEquals(myInt2Decode.value.intValue(), 2);
PersonnelRecord pr = new PersonnelRecord();
Name name = new Name();
name.setGivenName(new BerVisibleString("givenName".getBytes(UTF_8)));
name.setFamilyName(new BerVisibleString("familyName".getBytes(UTF_8)));
name.setInitial(new BerVisibleString("initial".getBytes(UTF_8)));
pr.setName(name);
pr.setTitle(new BerVisibleString("title".getBytes(UTF_8)));
pr.setNumber(new EmployeeNumberZ(1));
pr.setDateOfHire(new Date("23121981".getBytes(UTF_8)));
pr.setNameOfSpouse(name);
ChildInformation child = new ChildInformation();
child.setName(new Name("child name".getBytes(UTF_8)));
child.setDateOfBirth(new Date("12121912".getBytes(UTF_8)));
PersonnelRecord.Children children = new PersonnelRecord.Children();
List<ChildInformation> childInformation = children.getChildInformation();
childInformation.add(child);
childInformation.add(child);
pr.setTestBitString(new MyBitString(new byte[] { (byte) 0x80, (byte) 0xff }, 10));
pr.setTest(new MyInt(3));
TestChoice testChoice = new TestChoice();
testChoice.setChoiceElement1(child);
pr.setTest2(testChoice);
pr.setTest3(testChoice);
pr.setTest4(testChoice);
pr.setTest5(testChoice);
pr.setTest6(testChoice);
TestSequenceOf testSequenceOf = new TestSequenceOf();
List<BerInteger> berIntegers = testSequenceOf.getBerInteger();
for (int i = 0; i < 10; i++) {
berIntegers.add(new BerInteger(i));
}
pr.setTestSequenceOf(testSequenceOf);
PersonnelRecord.TestSequenceOf2 testSequenceOf2 = new PersonnelRecord.TestSequenceOf2();
List<PersonnelRecord.TestSequenceOf2.SEQUENCE> sequences = testSequenceOf2.getSEQUENCE();
for (int i = 0; i < 10; i++) {
PersonnelRecord.TestSequenceOf2.SEQUENCE sequence = new PersonnelRecord.TestSequenceOf2.SEQUENCE();
sequence.setTest1(new BerInteger(i++));
sequence.setTest2(new BerInteger(i));
sequences.add(sequence);
}
pr.setTestSequenceOf2(testSequenceOf2);
BerEmbeddedPdv berEmbeddedPdv = new BerEmbeddedPdv();
pr.setEmbeddedPdv(berEmbeddedPdv);
}
use of com.beanit.asn1bean.ber.types.string.BerVisibleString in project jasn1 by openmuc.
the class X690BerExampleTest method encodingDecoding.
@Test
public void encodingDecoding() throws IOException {
ReverseByteArrayOutputStream berOS = new ReverseByteArrayOutputStream(1000);
// Name name = new Name(new BerVisibleString("John"), new
// BerVisibleString("P"), new BerVisibleString("Smith"));
Name name = new Name(HexString.toBytes("101A044a6f686e1A01501A05536d697468"));
BerVisibleString title = new BerVisibleString("Director".getBytes(UTF_8));
// EmployeeNumber number = new EmployeeNumber(51);
EmployeeNumber number = new EmployeeNumber(new byte[] { 0x01, 0x33 });
Date dateOfHire = new Date("19710917".getBytes(UTF_8));
Name nameOfSpouse = new Name();
nameOfSpouse.setGivenName(new BerVisibleString("Mary"));
nameOfSpouse.setInitial(new BerVisibleString("T"));
nameOfSpouse.setFamilyName(new BerVisibleString("Smith"));
Name child1Name = new Name();
child1Name.setGivenName(new BerVisibleString("Ralph"));
child1Name.setInitial(new BerVisibleString("T"));
child1Name.setFamilyName(new BerVisibleString("Smith"));
ChildInformation child1 = new ChildInformation();
child1.setName(child1Name);
child1.setDateOfBirth(new Date("19571111".getBytes(UTF_8)));
child1.encodeAndSave(80);
Name child2Name = new Name();
child2Name.setGivenName(new BerVisibleString("Susan"));
child2Name.setInitial(new BerVisibleString("B"));
child2Name.setFamilyName(new BerVisibleString("Jones"));
ChildInformation child2 = new ChildInformation();
child2.setName(child2Name);
child2.setDateOfBirth(new Date("19590717".getBytes(UTF_8)));
PersonnelRecord.Children childrenSeq = new PersonnelRecord.Children();
List<ChildInformation> childList = childrenSeq.getChildInformation();
childList.add(child1);
childList.add(child2);
PersonnelRecord personnelRecord = new PersonnelRecord();
personnelRecord.setName(name);
personnelRecord.setTitle(title);
personnelRecord.setNumber(number);
personnelRecord.setDateOfHire(dateOfHire);
personnelRecord.setNameOfSpouse(nameOfSpouse);
personnelRecord.setChildren(childrenSeq);
personnelRecord.encode(berOS, true);
byte[] expectedBytes = HexString.toBytes("60818561101A044a6f686e1A01501A05536d697468a00a1A084469726563746f72420133a10a43083139373130393137a21261101A044d6172791A01541A05536d697468a342311f61111A0552616c70681A01541A05536d697468a00a43083139353731313131311f61111A05537573616e1A01421A054a6f6e6573a00a43083139353930373137");
assertArrayEquals(expectedBytes, berOS.getArray());
ByteBuffer byteBuffer = berOS.getByteBuffer();
assertEquals((byte) 0x60, byteBuffer.get());
assertEquals((byte) 0x37, byteBuffer.get(byteBuffer.limit() - 1));
ByteArrayInputStream bais = new ByteArrayInputStream(berOS.getArray());
PersonnelRecord personnelRecord_decoded = new PersonnelRecord();
personnelRecord_decoded.decode(bais, true);
assertEquals("John", new String(personnelRecord_decoded.getName().getGivenName().value, UTF_8));
}
use of com.beanit.asn1bean.ber.types.string.BerVisibleString in project jasn1 by openmuc.
the class ExtensibilityImpliedTest method setExtensionBytes.
@Test
void setExtensionBytes() throws IOException {
NonExtensibleSequence nonExtensibleSequence = new NonExtensibleSequence();
nonExtensibleSequence.setAge(new BerInteger(5));
ExtensibleAccessSequence extensibleSequence = new ExtensibleAccessSequence();
extensibleSequence.setAge(new BerInteger(5));
extensibleSequence.setExtensionBytes(extensionCode);
ExtensibleAccessSequenceAndMore extensibleSequenceAndMore = new ExtensibleAccessSequenceAndMore();
extensibleSequenceAndMore.setExtensibleSequence(extensibleSequence);
extensibleSequenceAndMore.setMore(new BerVisibleString("more"));
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(100, true);
extensibleSequenceAndMore.encode(os);
Assertions.assertArrayEquals(extendedSequenceAndMoreCode, os.getArray());
}
use of com.beanit.asn1bean.ber.types.string.BerVisibleString in project jasn1 by openmuc.
the class ExtensibilityImpliedTest method computeCode.
@BeforeAll
static void computeCode() throws IOException {
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(100, true);
NonExtensibleSequence nonExtensibleSequence = new NonExtensibleSequence();
nonExtensibleSequence.setAge(new BerInteger(5));
os.reset();
nonExtensibleSequence.encode(os);
byte[] nonExtensibleSequenceCode = os.getArray();
ExtendedSequence extendedSequence = new ExtendedSequence();
extendedSequence.setAge(new BerInteger(5));
extendedSequence.setName(new BerVisibleString("name"));
extendedSequence.setSubAge(nonExtensibleSequence);
os.reset();
extendedSequence.encode(os);
byte[] extendedSequenceCode = os.getArray();
extensionCode = Arrays.copyOfRange(extendedSequenceCode, nonExtensibleSequenceCode.length, extendedSequenceCode.length);
ExtendedSequenceAndMore extendedSequenceAndMore = new ExtendedSequenceAndMore();
extendedSequenceAndMore.setExtendedSequence(extendedSequence);
extendedSequenceAndMore.setMore(new BerVisibleString("more"));
os.reset();
extendedSequenceAndMore.encode(os);
extendedSequenceAndMoreCode = os.getArray();
}
use of com.beanit.asn1bean.ber.types.string.BerVisibleString in project jasn1 by openmuc.
the class ASN1beanSample method main.
public static void main(String[] args) throws IOException {
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(1000);
// Name name = new Name(new BerVisibleString("John"), new
// BerVisibleString("P"), new BerVisibleString("Smith"));
// instead of creating the Name object as in previous statement you can
// assign the byte code directly as in the following statement. The
// encode function of the name object will then simply insert this byte
// array in the OutputStream. This can speed up things if the code
// for certain structures is known and does not change.
Name name = new Name(HexString.toBytes("101A044a6f686e1A01501A05536d697468"));
BerVisibleString title = new BerVisibleString("Director".getBytes(UTF_8));
EmployeeNumber number = new EmployeeNumber(51);
Date dateOfHire = new Date("19710917".getBytes(UTF_8));
Name nameOfSpouse = new Name();
nameOfSpouse.setGivenName(new BerVisibleString("Mary"));
nameOfSpouse.setInitial(new BerVisibleString("T"));
nameOfSpouse.setFamilyName(new BerVisibleString("Smith"));
Name child1Name = new Name();
child1Name.setGivenName(new BerVisibleString("Ralph"));
child1Name.setInitial(new BerVisibleString("T"));
child1Name.setFamilyName(new BerVisibleString("Smith"));
ChildInformation child1 = new ChildInformation();
child1.setName(child1Name);
child1.setDateOfBirth(new Date("19571111".getBytes(UTF_8)));
// encodeAndSave will start the encoding and save the result in
// child1.code. This is useful if the same structure will have to be
// encoded several times as part of different structures. Using this
// function will make sure that the real encoding is only done once.
child1.encodeAndSave(80);
Name child2Name = new Name();
child2Name.setGivenName(new BerVisibleString("Susan"));
child2Name.setInitial(new BerVisibleString("B"));
child2Name.setFamilyName(new BerVisibleString("Jones"));
ChildInformation child2 = new ChildInformation();
child2.setName(child2Name);
child2.setDateOfBirth(new Date("19590717".getBytes(UTF_8)));
PersonnelRecord.Children childrenSeq = new PersonnelRecord.Children();
List<ChildInformation> childList = childrenSeq.getChildInformation();
childList.add(child1);
childList.add(child2);
PersonnelRecord personnelRecord = new PersonnelRecord();
personnelRecord.setName(name);
personnelRecord.setTitle(title);
personnelRecord.setNumber(number);
personnelRecord.setDateOfHire(dateOfHire);
personnelRecord.setNameOfSpouse(nameOfSpouse);
personnelRecord.setChildren(childrenSeq);
personnelRecord.encode(os);
System.out.println("Encoded bytes:");
System.out.println(HexString.fromBytes(os.getArray()));
byte[] encodedBytes = os.getArray();
InputStream is = new ByteArrayInputStream(encodedBytes);
PersonnelRecord personnelRecord_decoded = new PersonnelRecord();
personnelRecord_decoded.decode(is);
System.out.println("\nDecoded structure:");
System.out.println(personnelRecord_decoded);
System.out.println("Given name = " + personnelRecord_decoded.getName().getGivenName());
}
Aggregations