Crypto.DecryptBuffer
This command decrypts a variable length buffer given in the
Buffer parameter using the SkipJack algorithm. If
KeyIndex is set to 0x00, KeyValue will be
used as encryption key. Otherwise, KeyIndex is
interpreted as the index of the corresponding entry in the
internal key list. KeyIndex = 0x01 denotes
configuration value 0x81, KeyIndex = 0x02 denotes
configuration value 0x82, etc.
The value returned in the InitialVector variable is
necessary for CBC encryption. If large amounts of data must
be encrypted, this command has to be called more than once.
In this case, the returned InitialVector variable
of call i of the command has to be specified as the
InitialVector parameter of call i+1.
Parameters (request frame)
|
Name
|
Type/Size
|
Description
|
|
KeyIndex
|
Integer (8 bits)
|
Index of key to use to decrypt data. KeyIndex
must be set to 0x00 if a user-defined key, specified in
the KeyValue parameter, should be used for
decryption.
|
Optional field, condition:
KeyIndex == 0x0
|
KeyValue
|
Raw data (length 10 Bytes)
|
If KeyIndex is set to 0x00, this value
specifies a user-defined decryption key.
|
|
|
InitialVector
|
Raw data (length 8 Bytes)
|
Initial vector (IV) used for decryption.
|
|
Length of Buffer
|
Integer (8 bits)
|
Length of Buffer in bytes
|
|
Buffer
|
Raw data
|
Data buffer to decrypt.
|
Returned values (response frame)
|
Name
|
Type/Size
|
Description
|
|
NextInitialVector
|
Raw data (length 8 Bytes)
|
Initial vector to be used as InitialVector
parameter in the next call of this command.
|
|
Length of UnencryptedBuffer
|
Integer (8 bits)
|
Length of UnencryptedBuffer in bytes
|
|
UnencryptedBuffer
|
Raw data
|
Unencrypted buffer after decryption.
|