public class PrimitiveBERTLV extends BERTLV
PrimitiveBERTLV
class encapsulates a primitive BER TLV
structure. It extends the generic BERTLV
class. The rules on
the allowed encoding of the Tag, length and value fields is based on the
ASN.1 BER encoding rules ISO/IEC 8825-1:2002.
The PrimitiveBERTLV
class only supports encoding of the
length(L) octets in definite form. The value(V) field which encodes the
contents octets are merely viewed as a series of bytes.
Every PrimitiveBERTLV
has a capacity which represents the
allocated internal buffer to represent the Value of this
TLV
object. As long as the number of bytes required to represent the Value of the
TLV object does not exceed the capacity, it is not necessary to allocate
additional internal buffer space. If the internal buffer overflows, and the
implementation supports automatic expansion which might require new data
allocation and possibly old data/object deletion, it is automatically made
larger. Otherwise a TLVException
is thrown.
The BERTLV
class and the subclasses
ConstructedBERTLV
and PrimitiveBERTLV
, also
provide static methods to parse or edit a TLV structure representation in a
byte array.
Constructor and Description |
---|
PrimitiveBERTLV(short numValueBytes)
Constructor creates an empty
PrimitiveBERTLV object
capable of encapsulating a Primitive BER TLV structure. |
Modifier and Type | Method and Description |
---|---|
static short |
appendValue(byte[] berTLVArray,
short bTLVOff,
byte[] vArray,
short vOff,
short vLen)
Appends the specified data to the end of the Primitive TLV representation
in the specified byte array.
|
short |
appendValue(byte[] vArray,
short vOff,
short vLen)
Appends the specified data to the end of
this Primitive
BER TLV object. |
short |
getValue(byte[] tlvValue,
short tOff)
Writes the value (V) part of
this Primitive BER TLV object
into the output buffer. |
static short |
getValueOffset(byte[] berTLVArray,
short bTLVOff)
Returns the offset into the specified input byte array of the value (V)
part of the BER TLV structure representation in the input array.
|
short |
init(byte[] bArray,
short bOff,
short bLen)
(Re-)Initializes
this PrimitiveBERTLV using
the input byte data. |
short |
init(PrimitiveBERTag tag,
byte[] vArray,
short vOff,
short vLen)
(Re-)Initializes
this PrimitiveBERTLV
object with the input tag, length and data. |
short |
replaceValue(byte[] vArray,
short vOff,
short vLen)
Replaces the specified data in place of the current value of
this Primitive BER TLV object. |
static short |
toBytes(byte[] berTagArray,
short berTagOff,
byte[] valueArray,
short vOff,
short vLen,
byte[] outBuf,
short bOff)
Writes a primitive TLV representation to the specified byte array using
as input a Primitive BER tag representation in a byte array and a value
representation in another byte array.
|
getInstance, getLength, getLength, getTag, getTag, size, toBytes, verifyFormat
public PrimitiveBERTLV(short numValueBytes)
PrimitiveBERTLV
object
capable of encapsulating a Primitive BER TLV structure.
The initial capacity is specified by the numValueBytes argument.
numValueBytes
- is the number of Value bytes to allocateTLVException
- with the following reason codes:
TLVException.INVALID_PARAM
if
numValueBytes parameter is negative or larger than the
maximum capacity supported by the implementation.
public short init(byte[] bArray, short bOff, short bLen) throws TLVException
this
PrimitiveBERTLV
using
the input byte data.
The capacity of this
PrimitiveBERTLV
is increased,
if required and supported, to
the byte length of the Value represented in the primitive TLV structure
of the input byte array.
Note:
bOff+bLen
is greater than bArray.length
, the length
of the bArray
array, an ArrayIndexOutOfBoundsException
exception is thrown.
init
in class BERTLV
bArray
- input byte arraybOff
- offset within byte array containing the TLV databLen
- byte length of input datathis
TLV if represented in
bytesArrayIndexOutOfBoundsException
- if accessing the input array would cause access of data
outside array bounds, or if the array offset or array
length parameter is negativeNullPointerException
- if bArray
is null
TLVException
- with the following reason codes:
TLVException.INSUFFICIENT_STORAGE
if
the required capacity is not available and the
implementation does not support automatic expansion.
TLVException.MALFORMED_TLV
if the
input data is not a well-formed primitive BER TLV
structure.
public short init(PrimitiveBERTag tag, byte[] vArray, short vOff, short vLen) throws TLVException
this
PrimitiveBERTLV
object with the input tag, length and data. Note that a reference to the
BER Tag object is retained by this
object. A change in the
BER Tag object contents affects this
TLV instance.
If this
primitive TLV object is empty, the initial
capacity of this
PrimitiveBERTLV
is set to
the value of the vLen argument.
Note:
vOff+vLen
is greater than vArray.length
, the length
of the vArray
array, an ArrayIndexOutOfBoundsException
exception is thrown.
tag
- a BERTag
objectvArray
- the byte array containing length bytes of TLV valuevOff
- offset within the vArray
byte array where data
beginsvLen
- byte length of the value data in vArray
this
TLV if represented in
bytesArrayIndexOutOfBoundsException
- if accessing the input array would cause access of data
outside array bounds, or if the array offset or array
length parameter is negativeNullPointerException
- if either tag
or vArray
parameter is null
TLVException
- with the following reason codes:
TLVException.INSUFFICIENT_STORAGE
if
the required capacity is not available and the
implementation does not support automatic expansion.
public short appendValue(byte[] vArray, short vOff, short vLen) throws TLVException
this
Primitive
BER TLV object.
Note:
vOff+vLen
is greater than vArray.length
, the length
of the vArray
array, an ArrayIndexOutOfBoundsException
exception is thrown.
vArray
- the byte array containing length bytes of TLV valuevOff
- offset within the vArray
byte array where data
beginsvLen
- the byte length of the value in the input vArray
this
if represented in bytesArrayIndexOutOfBoundsException
- if accessing the input array would cause access of data
outside array bounds, or if the array offset or length
parameter is negativeNullPointerException
- if vArray
is null
TLVException
- with the following reason codes:
TLVException.INSUFFICIENT_STORAGE
if
the required capacity is not available and the
implementation does not support automatic expansion
TLVException.EMPTY_TLV
if
this
PrimitiveBERTLV
object
is empty.
public short replaceValue(byte[] vArray, short vOff, short vLen) throws TLVException
this
Primitive BER TLV object.
Note:
vOff+vLen
is greater than vArray.length
, the length
of the vArray
array, an ArrayIndexOutOfBoundsException
exception is thrown.
vArray
- the byte array containing length bytes of TLV valuevOff
- offset within the vArray
byte array where data
beginsvLen
- the byte length of the value in the input vArray
this
if represented in bytesArrayIndexOutOfBoundsException
- if accessing the input array would cause access of data
outside array bounds, or if the array offset or length
parameter is negativeNullPointerException
- if vArray
is null
TLVException
- with the following reason codes:
TLVException.INSUFFICIENT_STORAGE
if
the required capacity is not available and the
implementation does not support automatic expansion
TLVException.EMPTY_TLV
if
this
PrimitiveBERTLV
object
is empty.
public short getValue(byte[] tlvValue, short tOff) throws TLVException
this
Primitive BER TLV object
into the output buffer. Returns the length of data written to tlvValue
output arraytlvValue
- the output byte arraytOff
- offset within the tlvValue
byte array where
output data beginsArrayIndexOutOfBoundsException
- if accessing the output array would cause access of data
outside array bounds, or if the array offset parameter is
negativeNullPointerException
- if tlvValue
is null
TLVException
- with the following reason codes:
TLVException.TLV_SIZE_GREATER_THAN_32767
if the size of the Primitive BER TLV is > 32767
TLVException.EMPTY_TLV
if
this
PrimitiveBERTLV
object
is empty.
public static short getValueOffset(byte[] berTLVArray, short bTLVOff) throws TLVException
berTLVArray
- input byte arraybTLVOff
- offset within byte array containing the TLV dataArrayIndexOutOfBoundsException
- if accessing the input array would cause access of data
outside array bounds, or if the array offset parameter is
negativeNullPointerException
- if tlvValue
or berTLVArray
is null
TLVException
- with the following reason codes:
TLVException.TLV_SIZE_GREATER_THAN_32767
if the size of the Primitive BER TLV is > 32767.
TLVException.MALFORMED_TLV
if the TLV
representation in the input byte array is not a
well-formed primitive BER TLV structure.
public static short toBytes(byte[] berTagArray, short berTagOff, byte[] valueArray, short vOff, short vLen, byte[] outBuf, short bOff)
Note:
vOff+vLen
is greater than valueArray.length
, the length
of the valueArray
array, an ArrayIndexOutOfBoundsException
exception is thrown.
berTagArray
- input byte arrayberTagOff
- offset within byte array containing first byte of tagvalueArray
- input byte array containing primitive valuevOff
- offset within byte array containing the first byte of valuevLen
- length in bytes of the value component of the TLVoutBuf
- output byte arraybOff
- offset within byte array output data beginsArrayIndexOutOfBoundsException
- if accessing the input or output arrays would cause access
of data outside array bounds, or if any of the array
offset or array length parameters is negativeNullPointerException
- if berTagArray
or valueArray
or outBuf
is null
TLVException
- with the following reason codes:
TLVException.TLV_SIZE_GREATER_THAN_32767
if the size of the resulting Primitive BER TLV is > 32767.
TLVException.MALFORMED_TAG
if the tag
representation in the byte array is not a well-formed
constructed array tag.
public static short appendValue(byte[] berTLVArray, short bTLVOff, byte[] vArray, short vOff, short vLen) throws TLVException
Note:
vOff+vLen
is greater than vArray.length
, the length
of the vArray
array, an ArrayIndexOutOfBoundsException
exception is thrown.
berTLVArray
- input byte arraybTLVOff
- offset within byte array containing the TLV datavArray
- the byte array containing value to be appendedvOff
- offset within the vArray
byte array where the
data beginsvLen
- the byte length of the value in the input vArray
this
if represented in bytesArrayIndexOutOfBoundsException
- if accessing the input arrays would cause access of data
outside array bounds, or if any of the array offset or
array length parameters is negativeNullPointerException
- if berTLVArray
or vArray
is
null
TLVException
- with the following reason codes:
TLVException.TLV_SIZE_GREATER_THAN_32767
if the size of the resulting Primitive BER TLV is > 32767.
TLVException.MALFORMED_TLV
if the TLV
representation in the input byte array is not a
well-formed primitive BER TLV structure
Copyright © 1998, 2015, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms