public class BerEncoder extends java.lang.Object implements AsnEncoder
Modifier and Type | Field and Description |
---|---|
private static byte |
CONSTRUCTOR
Defines the BER constructor id
|
private static byte |
EXTENSION_ID
Defines the BER extension "value" that is used
to mark an extension type.
|
private static byte |
HIGH_BIT
Defines the "high bit" that is the sign extension
bit for a 8-bit signed value.
|
private static byte |
LONG_LENGTH
Defines the ASN.1 long length marker for the
Basic Encoding Rule (BER)
|
Constructor and Description |
---|
BerEncoder() |
Modifier and Type | Method and Description |
---|---|
int |
buildHeader(byte[] buf,
int startOffset,
byte asnType,
int asnLength)
The buildHeader() method is used to encode an ASN.1 header
into the specified byte buffer.
|
int |
buildInteger32(byte[] buf,
int startOffset,
byte asnType,
int asnInt32)
The buildInteger32() method is used to encode an ASN.1 32-bit signed
integer into the specified byte buffer.
|
int |
buildLength(byte[] buf,
int startOffset,
int asnLength)
The buildLength() method is used to encode an ASN.1 length
into the specified byte buffer.
|
int |
buildNull(byte[] buf,
int startOffset,
byte asnType)
The buildNull() method is used to encode an ASN.1 NULL value
into the specified byte buffer.
|
int |
buildObjectId(byte[] buf,
int startOffset,
byte asnType,
int[] oids)
The buildObjectId() method is used to encode an ASN.1 object id value
into the specified byte buffer.
|
int |
buildString(byte[] buf,
int startOffset,
byte asnType,
byte[] opaque)
The buildString() method is used to encode an ASN.1 string value
into the specified byte buffer.
|
int |
buildUInteger32(byte[] buf,
int startOffset,
byte asnType,
long asnUInt32)
The buildUInteger32() method is used to encode an ASN.1 32-bit unsigned
integer into the specified byte buffer.
|
int |
buildUInteger64(byte[] buf,
int startOffset,
byte asnType,
java.math.BigInteger asnUInt64)
The buildUInteger64() method is used to encode an ASN.1 64-bit unsigned
integer into the specified byte buffer.
|
protected static int |
byteToInt(byte b)
Converts a primitive byte to a primitive long
using "unsigned" logic.
|
protected static long |
byteToLong(byte b)
Converts a primitive byte to a primitive long.
|
protected static boolean |
isConstructor(byte b)
Used to determine if the ASN.1 type is a constructor.
|
protected static boolean |
isExtensionId(byte b)
Used to test if the ASN.1 type is an extension.
|
java.lang.Object[] |
parseHeader(byte[] buf,
int startOffset)
The parseHeader() method is used to decode an ASN.1 header
from the specified buffer.
|
java.lang.Object[] |
parseInteger32(byte[] buf,
int startOffset)
The parseInteger32() method is used to decode an ASN.1 32-bit signed
integer from the specified buffer.
|
java.lang.Object[] |
parseLength(byte[] buf,
int startOffset)
The parseLength() method is used to decode an ASN.1 length
from the specified buffer.
|
java.lang.Object[] |
parseNull(byte[] buf,
int startOffset)
The parseNull() method is used to decode an ASN.1 Null value
from the specified buffer.
|
java.lang.Object[] |
parseObjectId(byte[] buf,
int startOffset)
The parseObjectId() method is used to decode an ASN.1 Object Identifer
from the specified buffer.
|
java.lang.Object[] |
parseString(byte[] buf,
int startOffset)
The parseString() method is used to decode an ASN.1 opaque string
from the specified buffer.
|
java.lang.Object[] |
parseUInteger32(byte[] buf,
int startOffset)
The parseUInteger32() method is used to decode an ASN.1 32-bit unsigned
integer from the specified buffer.
|
java.lang.Object[] |
parseUInteger64(byte[] buf,
int startOffset)
The parseUInteger64() method is used to decode an ASN.1 64-bit unsigned
integer from the specified buffer.
|
protected static void |
rotate(byte[] buf,
int begin,
int pivot,
int end)
Rotates a give buffer area marked by begin, pivot, and end.
|
private static final byte LONG_LENGTH
private static final byte HIGH_BIT
private static final byte EXTENSION_ID
private static final byte CONSTRUCTOR
protected static int byteToInt(byte b)
b
- The 8-bit value to convertprotected static long byteToLong(byte b)
b
- The 8-bit value to convertprotected static boolean isConstructor(byte b)
b
- The ASN.1 typeprotected static boolean isExtensionId(byte b)
b
- The ASN.1 type.protected static void rotate(byte[] buf, int begin, int pivot, int end) throws java.lang.ArrayIndexOutOfBoundsException
buf
- The buffer containing the data to rotatebegin
- The start of the rotationpivot
- The pivot point for the rotationend
- The end of the rotational bufferjava.lang.ArrayIndexOutOfBoundsException
- Thrown if an access exception occurspublic int buildLength(byte[] buf, int startOffset, int asnLength) throws AsnEncodingException
buildLength
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnLength
- The length to be encoded.AsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseLength(byte[] buf, int startOffset) throws AsnDecodingException
parseLength
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.public int buildHeader(byte[] buf, int startOffset, byte asnType, int asnLength) throws AsnEncodingException
buildHeader
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnType
- The ASN.1 type to place in the bufferasnLength
- The length to be encoded.AsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseHeader(byte[] buf, int startOffset) throws AsnDecodingException
parseHeader
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.public int buildInteger32(byte[] buf, int startOffset, byte asnType, int asnInt32) throws AsnEncodingException
buildInteger32
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnType
- The ASN.1 type to place in the bufferasnInt32
- The 32-bit signed integer to encode.AsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseInteger32(byte[] buf, int startOffset) throws AsnDecodingException
parseInteger32
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.public int buildUInteger32(byte[] buf, int startOffset, byte asnType, long asnUInt32) throws AsnEncodingException
buildUInteger32
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnType
- The ASN.1 type to place in the bufferasnUInt32
- The 32-bit unsigned integer to encode.AsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseUInteger32(byte[] buf, int startOffset) throws AsnDecodingException
parseUInteger32
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.public int buildUInteger64(byte[] buf, int startOffset, byte asnType, java.math.BigInteger asnUInt64) throws AsnEncodingException
buildUInteger64
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnType
- The ASN.1 type to place in the bufferasnUInt64
- The 64-bit unsigned integer to encode.AsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseUInteger64(byte[] buf, int startOffset) throws AsnDecodingException
parseUInteger64
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.public int buildNull(byte[] buf, int startOffset, byte asnType) throws AsnEncodingException
buildNull
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnType
- The ASN.1 type to place in the bufferAsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseNull(byte[] buf, int startOffset) throws AsnDecodingException
parseNull
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.public int buildString(byte[] buf, int startOffset, byte asnType, byte[] opaque) throws AsnEncodingException
buildString
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnType
- The ASN.1 type to place in the bufferopaque
- An array of bytes to encode into the string.AsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseString(byte[] buf, int startOffset) throws AsnDecodingException
parseString
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.public int buildObjectId(byte[] buf, int startOffset, byte asnType, int[] oids) throws AsnEncodingException
buildObjectId
in interface AsnEncoder
buf
- The output buffer of encoded bytes.startOffset
- The offset from the start of the buffer where the
method should start writing the encoded data.asnType
- The ASN.1 type to place in the bufferoids
- An array of integers to encode.AsnEncodingException
- Thrown if an error occurs encoding
the datatype.public java.lang.Object[] parseObjectId(byte[] buf, int startOffset) throws AsnDecodingException
parseObjectId
in interface AsnEncoder
buf
- The input bufferstartOffset
- The offset to start decoding in the bufferAsnDecodingException
- Thrown if an error occurs decoding
the buffer.Generated by iurt on 2015.