|
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 BERTLVbArray - 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 | |||||||||