From 46039355e87825a9dce12ebaad0305d20eea3f43 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Fri, 3 Jan 2020 10:37:01 +0100 Subject: basic asn.1 library --- src/net/gcdc/asn1/datatypesimpl/OctetString.java | 46 ++++++++++++++++++++++ .../gcdc/asn1/datatypesimpl/SequenceOfLong.java | 27 +++++++++++++ .../asn1/datatypesimpl/SequenceOfStringIA5.java | 13 ++++++ .../asn1/datatypesimpl/SequenceOfStringUTF8.java | 13 ++++++ .../datatypesimpl/SequenceOfUnrestrictedLong.java | 35 ++++++++++++++++ 5 files changed, 134 insertions(+) create mode 100644 src/net/gcdc/asn1/datatypesimpl/OctetString.java create mode 100644 src/net/gcdc/asn1/datatypesimpl/SequenceOfLong.java create mode 100644 src/net/gcdc/asn1/datatypesimpl/SequenceOfStringIA5.java create mode 100644 src/net/gcdc/asn1/datatypesimpl/SequenceOfStringUTF8.java create mode 100644 src/net/gcdc/asn1/datatypesimpl/SequenceOfUnrestrictedLong.java (limited to 'src/net/gcdc/asn1/datatypesimpl') diff --git a/src/net/gcdc/asn1/datatypesimpl/OctetString.java b/src/net/gcdc/asn1/datatypesimpl/OctetString.java new file mode 100644 index 0000000..e21a098 --- /dev/null +++ b/src/net/gcdc/asn1/datatypesimpl/OctetString.java @@ -0,0 +1,46 @@ +package net.gcdc.asn1.datatypesimpl; + +import java.util.Collection; +import java.util.List; + +import net.gcdc.asn1.datatypes.Asn1SequenceOf; + +/* + * Sequence of Asn1Integer for restricted integers + * + * + */ +public class OctetString extends Asn1SequenceOf { + public OctetString() { super(); } + public OctetString(Collection coll) { super(coll); } + + public OctetString(List numbers) { + super(); + this.addAll(numbers); + } + + public static OctetString getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new OctetString(numList); + } + + + public byte[] toByteArray () { + + byte[] bytes= new byte[this.size()]; + + for (int i = 0; i < this.size(); i++){ + bytes[i] = this.get(i); + } + + return bytes; + } + + public OctetString(byte[] bytes){ + super(); + for (int i= 0;i < bytes.length; i++){ + this.add(bytes[i]); + } + } + +} diff --git a/src/net/gcdc/asn1/datatypesimpl/SequenceOfLong.java b/src/net/gcdc/asn1/datatypesimpl/SequenceOfLong.java new file mode 100644 index 0000000..547ae80 --- /dev/null +++ b/src/net/gcdc/asn1/datatypesimpl/SequenceOfLong.java @@ -0,0 +1,27 @@ +package net.gcdc.asn1.datatypesimpl; + +import java.util.Collection; +import java.util.List; + +import net.gcdc.asn1.datatypes.Asn1SequenceOf; + +/* + * Sequence of Asn1Integer for restricted integers + * + * + */ +public class SequenceOfLong extends Asn1SequenceOf { + public SequenceOfLong() { super(); } + public SequenceOfLong(Collection coll) { super(coll); } + + public SequenceOfLong(List numbers) { + super(); + this.addAll(numbers); + } + + public static SequenceOfLong getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfLong(numList); + } + +} diff --git a/src/net/gcdc/asn1/datatypesimpl/SequenceOfStringIA5.java b/src/net/gcdc/asn1/datatypesimpl/SequenceOfStringIA5.java new file mode 100644 index 0000000..d816261 --- /dev/null +++ b/src/net/gcdc/asn1/datatypesimpl/SequenceOfStringIA5.java @@ -0,0 +1,13 @@ +package net.gcdc.asn1.datatypesimpl; + +import java.util.Collection; + +import net.gcdc.asn1.datatypes.Asn1SequenceOf; +import net.gcdc.asn1.datatypes.CharacterRestriction; +import net.gcdc.asn1.datatypes.RestrictedString; + +@RestrictedString(CharacterRestriction.IA5String) +public class SequenceOfStringIA5 extends Asn1SequenceOf { + public SequenceOfStringIA5() { super(); } + public SequenceOfStringIA5(Collection coll) { super(coll); } +} diff --git a/src/net/gcdc/asn1/datatypesimpl/SequenceOfStringUTF8.java b/src/net/gcdc/asn1/datatypesimpl/SequenceOfStringUTF8.java new file mode 100644 index 0000000..b5ad31c --- /dev/null +++ b/src/net/gcdc/asn1/datatypesimpl/SequenceOfStringUTF8.java @@ -0,0 +1,13 @@ +package net.gcdc.asn1.datatypesimpl; + +import java.util.Collection; + +import net.gcdc.asn1.datatypes.Asn1SequenceOf; +import net.gcdc.asn1.datatypes.CharacterRestriction; +import net.gcdc.asn1.datatypes.RestrictedString; + +@RestrictedString(CharacterRestriction.UTF8String) +public class SequenceOfStringUTF8 extends Asn1SequenceOf { + public SequenceOfStringUTF8() { super(); } + public SequenceOfStringUTF8(Collection coll) { super(coll); } +} diff --git a/src/net/gcdc/asn1/datatypesimpl/SequenceOfUnrestrictedLong.java b/src/net/gcdc/asn1/datatypesimpl/SequenceOfUnrestrictedLong.java new file mode 100644 index 0000000..96f8734 --- /dev/null +++ b/src/net/gcdc/asn1/datatypesimpl/SequenceOfUnrestrictedLong.java @@ -0,0 +1,35 @@ +package net.gcdc.asn1.datatypesimpl; + +import java.util.Collection; +import java.util.List; + +import net.gcdc.asn1.datatypes.Asn1BigInteger; +import net.gcdc.asn1.datatypes.Asn1SequenceOf; + +/* + * Sequence of Asn1Integer for restricted integers + * + */ +public class SequenceOfUnrestrictedLong extends Asn1SequenceOf { + public SequenceOfUnrestrictedLong() { super(); } + public SequenceOfUnrestrictedLong(Collection coll) { super(coll); } + + public void add(Long num) { + add (new Asn1BigInteger(num)); + } + + + public SequenceOfUnrestrictedLong(List numbers) { + super(); + for (Long number: numbers){ + this.add(new Asn1BigInteger(number)); + } + } + + + public static SequenceOfUnrestrictedLong getSequence(List numList) { + if (numList == null || numList.isEmpty()) return null; + return new SequenceOfUnrestrictedLong(numList); + } + +} -- cgit v1.2.3