|
Java Card v2.2.2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavacardx.framework.tlv.BERTLV
javacardx.framework.tlv.PrimitiveBERTLV
public class PrimitiveBERTLV
The 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 Summary | |
---|---|
PrimitiveBERTLV(short numValueBytes)
Constructor creates an empty PrimitiveBERTLV object capable of encapsulating
a Primitive BER TLV structure. |
Method Summary | |
---|---|
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. |
Methods inherited from class javacardx.framework.tlv.BERTLV |
---|
getInstance, getLength, getLength, getTag, getTag, size, toBytes, verifyFormat |
Methods inherited from class java.lang.Object |
---|
equals |
Constructor Detail |
---|
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 allocate
TLVException
- with the following reason codes:TLVException.INVALID_PARAM
if numValueBytes parameter is negative
or larger than the maximum capacity supported by the implementation.
Method Detail |
---|
public short init(byte[] bArray, short bOff, short bLen) throws TLVException
this
PrimitiveBERTLV
using the input byte data.
If this
primitive TLV object is empty, the initial capacity of this
PrimitiveBERTLV
is set 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 data
this
TLV if represented in bytes
ArrayIndexOutOfBoundsException
- if accessing the input array
would cause access of data outside array bounds, or if the array offset or
array length parameter is negative
NullPointerException
- 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 bytes
ArrayIndexOutOfBoundsException
- if accessing the input array
would cause access of data outside array bounds, or if the array offset or
array length parameter is negative
NullPointerException
- 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 bytes
ArrayIndexOutOfBoundsException
- if accessing the input array
would cause access of data outside array bounds, or if the array offset or length
parameter is negative
NullPointerException
- 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 bytes
ArrayIndexOutOfBoundsException
- if accessing the input array
would cause access of data outside array bounds, or if the array offset or length
parameter is negative
NullPointerException
- 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 array
tlvValue
- the output byte arraytOff
- offset within the tlvValue
byte array where output data begins
ArrayIndexOutOfBoundsException
- if accessing the output array
would cause access of data outside array bounds, or if the array offset
parameter is negative
NullPointerException
- 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 data
ArrayIndexOutOfBoundsException
- if accessing the input array
would cause access of data outside array bounds, or if the array offset
parameter is negative
NullPointerException
- 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 begins
ArrayIndexOutOfBoundsException
- 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 negative
NullPointerException
- 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 bytes
ArrayIndexOutOfBoundsException
- 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 negative
NullPointerException
- 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
|
Java Card v2.2.2 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |