Class BerValue
- java.lang.Object
-
- org.apache.directory.api.asn1.ber.tlv.BerValue
-
public class BerValue extends Object
This class stores the data decoded from a TLV.- Author:
- Apache Directory Project
-
-
Field Summary
Fields Modifier and Type Field Description static byte
FALSE_VALUE
The encoded byte for a FALSE valuestatic byte
TRUE_VALUE
The encoded byte for a TRUE value
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addData(byte[] array)
Append some bytes to the data buffer.void
addData(ByteBuffer buffer)
Append some bytes to the data buffer.static void
encode(ByteBuffer buffer, boolean bool)
Encode a boolean valuestatic void
encode(ByteBuffer buffer, byte[] bytes)
Encode an OctetString valuestatic void
encode(ByteBuffer buffer, byte tag, int value)
Encode an integer valuestatic void
encode(ByteBuffer buffer, int value)
Encode an integer valuestatic void
encode(ByteBuffer buffer, long value)
Encode a long valuestatic void
encode(ByteBuffer buffer, String string)
Encode a String valuestatic void
encode(ByteBuffer buffer, BitString bitString)
Encode a BIT STRING valuestatic void
encode(ByteBuffer buffer, Oid oid)
Encode an OID valuestatic void
encodeBoolean(Asn1Buffer buffer, boolean bool)
Encode a boolean valuestatic void
encodeBoolean(Asn1Buffer buffer, byte tag, boolean bool)
Encode a boolean valuestatic void
encodeEnumerated(ByteBuffer buffer, int value)
Encode an enumerated valuestatic void
encodeEnumerated(Asn1Buffer buffer, byte tag, int value)
Encode an enumerated valuestatic void
encodeEnumerated(Asn1Buffer buffer, int value)
Encode an enumerated valuestatic void
encodeInteger(Asn1Buffer buffer, byte tag, int value)
Encode an integer value, with a specific tagstatic void
encodeInteger(Asn1Buffer buffer, byte tag, long value)
Encode an integer value, with a specific tagstatic void
encodeInteger(Asn1Buffer buffer, int value)
Encode an integer valuestatic void
encodeInteger(Asn1Buffer buffer, long value)
Encode an integer valuestatic void
encodeOctetString(Asn1Buffer buffer, byte[] data)
Encode an OctetStringstatic void
encodeOctetString(Asn1Buffer buffer, byte tag, byte[] data)
Encode an OctetStringstatic void
encodeOctetString(Asn1Buffer buffer, byte tag, String value)
Encode an OctetStringstatic void
encodeOctetString(Asn1Buffer buffer, String value)
Encode an OctetStringstatic void
encodeSequence(Asn1Buffer buffer)
Encode a Sequencestatic void
encodeSequence(Asn1Buffer buffer, byte tag)
Encode a Sequence, with a specific tagstatic void
encodeSequence(Asn1Buffer buffer, byte tag, int start)
Encode a Sequence, with a specific length and tagstatic void
encodeSequence(Asn1Buffer buffer, int start)
Encode a Sequence, with a specific lengthstatic void
encodeSet(Asn1Buffer buffer)
Encode a Setstatic void
encodeSet(Asn1Buffer buffer, byte tag)
Encode a Set, with a specific tagstatic void
encodeSet(Asn1Buffer buffer, byte tag, int start)
Encode a Set, with a specific length and tagstatic void
encodeSet(Asn1Buffer buffer, int start)
Encode a Set, with a specific lengthstatic byte[]
getBytes(int value)
Utility function that return a byte array representing the Value We must respect the ASN.1 BER encoding scheme :static byte[]
getBytes(long value)
Utility function that return a byte array representing the Value.int
getCurrentLength()
byte[]
getData()
Get the Values'datastatic int
getNbBytes(int value)
Utility function that return the number of bytes necessary to store an integer value.static int
getNbBytes(long value)
Utility function that return the number of bytes necessary to store a long value.void
init(int size)
Initialize the Valuevoid
reset()
Reset the Value so that it can be reusedvoid
setData(byte[] data)
Set a block of bytes in the Valuevoid
setData(ByteBuffer data)
Set a block of bytes in the ValueString
toString()
Return a string representing the Value
-
-
-
Field Detail
-
TRUE_VALUE
public static final byte TRUE_VALUE
The encoded byte for a TRUE value- See Also:
- Constant Field Values
-
FALSE_VALUE
public static final byte FALSE_VALUE
The encoded byte for a FALSE value- See Also:
- Constant Field Values
-
-
Method Detail
-
init
public void init(int size)
Initialize the Value- Parameters:
size
- The data size to allocate.
-
reset
public void reset()
Reset the Value so that it can be reused
-
getData
public byte[] getData()
Get the Values'data- Returns:
- Returns the data.
-
setData
public void setData(ByteBuffer data)
Set a block of bytes in the Value- Parameters:
data
- The data to set.
-
addData
public void addData(ByteBuffer buffer)
Append some bytes to the data buffer.- Parameters:
buffer
- The data to append.
-
setData
public void setData(byte[] data)
Set a block of bytes in the Value- Parameters:
data
- The data to set.
-
addData
public void addData(byte[] array)
Append some bytes to the data buffer.- Parameters:
array
- The data to append.
-
getCurrentLength
public int getCurrentLength()
- Returns:
- The number of bytes actually stored
-
getNbBytes
public static int getNbBytes(int value)
Utility function that return the number of bytes necessary to store an integer value. Note that this value must be in [Integer.MIN_VALUE, Integer.MAX_VALUE].- Parameters:
value
- The value to store in a byte array- Returns:
- The number of bytes necessary to store the value.
-
getNbBytes
public static int getNbBytes(long value)
Utility function that return the number of bytes necessary to store a long value. Note that this value must be in [Long.MIN_VALUE, Long.MAX_VALUE].- Parameters:
value
- The value to store in a byte array- Returns:
- The number of bytes necessary to store the value.
-
getBytes
public static byte[] getBytes(int value)
Utility function that return a byte array representing the Value We must respect the ASN.1 BER encoding scheme :1) positive integer - [0 - 0x7F] : 0xVV - [0x80 - 0xFF] : 0x00 0xVV - [0x0100 - 0x7FFF] : 0xVV 0xVV - [0x8000 - 0xFFFF] : 0x00 0xVV 0xVV - [0x010000 - 0x7FFFFF] : 0xVV 0xVV 0xVV - [0x800000 - 0xFFFFFF] : 0x00 0xVV 0xVV 0xVV - [0x01000000 - 0x7FFFFFFF] : 0xVV 0xVV 0xVV 0xVV 2) Negative number - (~value) + 1
- Parameters:
value
- The value to store in a byte array- Returns:
- The byte array representing the value.
-
getBytes
public static byte[] getBytes(long value)
Utility function that return a byte array representing the Value. We must respect the ASN.1 BER encoding scheme :
1) positive integer - [0 - 0x7F] : 0xVV - [0x80 - 0xFF] : 0x00 0xVV - [0x0100 - 0x7FFF] : 0xVV 0xVV - [0x8000 - 0xFFFF] : 0x00 0xVV 0xVV - [0x010000 - 0x7FFFFF] : 0xVV 0xVV 0xVV - [0x800000 - 0xFFFFFF] : 0x00 0xVV 0xVV 0xVV - [0x01000000 - 0x7FFFFFFF] : 0xVV 0xVV 0xVV 0xVV 2) Negative number - (~value) + 1
They are encoded following the table (the
encode bytes are those enclosed by squared braquets) :
-1 -> FF FF FF FF FF FF FF [FF] -127 -> FF FF FF FF FF FF FF [81] -128 -> FF FF FF FF FF FF FF [80] -129 -> FF FF FF FF FF FF [FF 7F] -255 -> FF FF FF FF FF FF [FF 01] -256 -> FF FF FF FF FF FF [FF 00] -257 -> FF FF FF FF FF FF [FE FF] -32767 -> FF FF FF FF FF FF [80 01] -32768 -> FF FF FF FF FF FF [80 00] -32769 -> FF FF FF FF FF [FF 7F FF] -65535 -> FF FF FF FF FF [FF 00 01] -65536 -> FF FF FF FF FF [FF 00 00] -65537 -> FF FF FF FF FF [FE FF FF] -8388607 -> FF FF FF FF FF [80 00 01] -8388608 -> FF FF FF FF FF [80 00 00] -8388609 -> FF FF FF FF [FF 7F FF FF] -16777215 -> FF FF FF FF [FF 00 00 01] -16777216 -> FF FF FF FF [FF 00 00 00] -16777217 -> FF FF FF FF [FE FF FF FF] -2147483647 -> FF FF FF FF [80 00 00 01] -2147483648 -> FF FF FF FF [80 00 00 00] -2147483649 -> FF FF FF [FF 7F FF FF FF] -4294967295 -> FF FF FF [FF 00 00 00 01] -4294967296 -> FF FF FF [FF 00 00 00 00] -4294967297 -> FF FF FF [FE FF FF FF FF] -549755813887 -> FF FF FF [80 00 00 00 01] -549755813888 -> FF FF FF [80 00 00 00 00] -549755813889 -> FF FF [FF 7F FF FF FF FF] -1099511627775 -> FF FF [FF 00 00 00 00 01] -1099511627776 -> FF FF [FF 00 00 00 00 00] -1099511627777 -> FF FF [FE FF FF FF FF FF] -140737488355327 -> FF FF [80 00 00 00 00 01] -140737488355328 -> FF FF [80 00 00 00 00 00] -140737488355329 -> FF [FF 7F FF FF FF FF FF] -281474976710655 -> FF [FF 00 00 00 00 00 01] -281474976710656 -> FF [FF 00 00 00 00 00 00] -281474976710657 -> FF [FE FF FF FF FF FF FF] -36028797018963967 -> FF [80 00 00 00 00 00 01] -36028797018963968 -> FF [80 00 00 00 00 00 00] -36028797018963969 -> [FF 7F FF FF FF FF FF FF] -72057594037927936 -> [FF 00 00 00 00 00 00 00] -72057594037927937 -> [FE FF FF FF FF FF FF FF] -9223372036854775807 -> [80 00 00 00 00 00 00 01] -9223372036854775808 -> [80 00 00 00 00 00 00 00]
- Parameters:
value
- The value to store in a byte array- Returns:
- The byte array representing the value.
-
encodeBoolean
public static void encodeBoolean(Asn1Buffer buffer, boolean bool)
Encode a boolean value- Parameters:
buffer
- The PDU in which the value will be putbool
- The boolean to be encoded
-
encodeBoolean
public static void encodeBoolean(Asn1Buffer buffer, byte tag, boolean bool)
Encode a boolean value- Parameters:
buffer
- The PDU in which the value will be puttag
- the TAG to usebool
- The boolean to be encoded
-
encodeInteger
public static void encodeInteger(Asn1Buffer buffer, int value)
Encode an integer value- Parameters:
buffer
- The PDU in which the value will be putvalue
- The integer to be encoded
-
encodeInteger
public static void encodeInteger(Asn1Buffer buffer, byte tag, int value)
Encode an integer value, with a specific tag- Parameters:
buffer
- The PDU in which the value will be puttag
- The tag to usevalue
- The integer to be encoded
-
encodeInteger
public static void encodeInteger(Asn1Buffer buffer, long value)
Encode an integer value- Parameters:
buffer
- The PDU in which the value will be putvalue
- The long to be encoded
-
encodeInteger
public static void encodeInteger(Asn1Buffer buffer, byte tag, long value)
Encode an integer value, with a specific tag- Parameters:
buffer
- The PDU in which the value will be puttag
- The tag to usevalue
- The long to be encoded
-
encodeOctetString
public static void encodeOctetString(Asn1Buffer buffer, byte[] data)
Encode an OctetString- Parameters:
buffer
- The PDU in which the value will be putdata
- The byte[] to be encoded
-
encodeOctetString
public static void encodeOctetString(Asn1Buffer buffer, String value)
Encode an OctetString- Parameters:
buffer
- The PDU in which the value will be putvalue
- The String to be encoded
-
encodeOctetString
public static void encodeOctetString(Asn1Buffer buffer, byte tag, byte[] data)
Encode an OctetString- Parameters:
buffer
- The PDU in which the value will be puttag
- The tag to usedata
- The OctetString to be encoded
-
encodeOctetString
public static void encodeOctetString(Asn1Buffer buffer, byte tag, String value)
Encode an OctetString- Parameters:
buffer
- The PDU in which the value will be puttag
- The tag to usevalue
- The OctetString to be encoded
-
encodeSequence
public static void encodeSequence(Asn1Buffer buffer)
Encode a Sequence- Parameters:
buffer
- The PDU in which the Sequence will be put
-
encodeSequence
public static void encodeSequence(Asn1Buffer buffer, int start)
Encode a Sequence, with a specific length- Parameters:
buffer
- The PDU in which the Sequence will be putstart
- The Sequence length
-
encodeSequence
public static void encodeSequence(Asn1Buffer buffer, byte tag)
Encode a Sequence, with a specific tag- Parameters:
buffer
- The PDU in which the Sequence will be puttag
- The tag to use
-
encodeSequence
public static void encodeSequence(Asn1Buffer buffer, byte tag, int start)
Encode a Sequence, with a specific length and tag- Parameters:
buffer
- The PDU in which the Sequence will be puttag
- The tag to usestart
- The position in the buffer this Sequence starts
-
encodeSet
public static void encodeSet(Asn1Buffer buffer)
Encode a Set- Parameters:
buffer
- The PDU in which the Set will be put
-
encodeSet
public static void encodeSet(Asn1Buffer buffer, int start)
Encode a Set, with a specific length- Parameters:
buffer
- The PDU in which the Set will be putstart
- The Set length
-
encodeSet
public static void encodeSet(Asn1Buffer buffer, byte tag)
Encode a Set, with a specific tag- Parameters:
buffer
- The PDU in which the value will be puttag
- The tag to use
-
encodeSet
public static void encodeSet(Asn1Buffer buffer, byte tag, int start)
Encode a Set, with a specific length and tag- Parameters:
buffer
- The PDU in which the set will be puttag
- The tag to usestart
- The position in the buffer this Set starts
-
encode
public static void encode(ByteBuffer buffer, String string) throws EncoderException
Encode a String value- Parameters:
buffer
- The PDU in which the value will be putstring
- The String to be encoded. It is supposed to be UTF-8- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encode
public static void encode(ByteBuffer buffer, BitString bitString) throws EncoderException
Encode a BIT STRING value- Parameters:
buffer
- The PDU in which the value will be putbitString
- The BitString to be encoded.- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encode
public static void encode(ByteBuffer buffer, byte[] bytes) throws EncoderException
Encode an OctetString value- Parameters:
buffer
- The PDU in which the value will be putbytes
- The bytes to be encoded- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encode
public static void encode(ByteBuffer buffer, Oid oid) throws EncoderException
Encode an OID value- Parameters:
buffer
- The PDU in which the value will be putoid
- The OID to be encoded- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encode
public static void encode(ByteBuffer buffer, int value) throws EncoderException
Encode an integer value- Parameters:
buffer
- The PDU in which the value will be putvalue
- The integer to be encoded- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encode
public static void encode(ByteBuffer buffer, long value) throws EncoderException
Encode a long value- Parameters:
buffer
- The PDU in which the value will be putvalue
- The long to be encoded- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encode
public static void encode(ByteBuffer buffer, byte tag, int value) throws EncoderException
Encode an integer value- Parameters:
buffer
- The PDU in which the value will be puttag
- The tag if it's not an UNIVERSAL onevalue
- The integer to be encoded- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encodeEnumerated
public static void encodeEnumerated(Asn1Buffer buffer, int value)
Encode an enumerated value- Parameters:
buffer
- The PDU in which the value will be putvalue
- The integer to be encoded
-
encodeEnumerated
public static void encodeEnumerated(Asn1Buffer buffer, byte tag, int value)
Encode an enumerated value- Parameters:
buffer
- The PDU in which the value will be puttag
- The tag to usevalue
- The integer to be encoded
-
encodeEnumerated
public static void encodeEnumerated(ByteBuffer buffer, int value) throws EncoderException
Encode an enumerated value- Parameters:
buffer
- The PDU in which the value will be putvalue
- The integer to be encoded- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
encode
public static void encode(ByteBuffer buffer, boolean bool) throws EncoderException
Encode a boolean value- Parameters:
buffer
- The PDU in which the value will be putbool
- The boolean to be encoded- Throws:
EncoderException
- if the PDU in which the value should be encoded is two small
-
-