The ENCRYPTED_PAYLOAD packet is the concrete type for a value of an encrypted attribute.
typedef struct {
UCHAR Salt[16];
ULONG CheckSum;
UCHAR EncryptedData[];
} ENCRYPTED_PAYLOAD;
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Salt (16 bytes) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
CheckSum |
|||||||||||||||||||||||||||||||
|
EncryptedData (variable) |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
Salt (16 bytes): A 128-bit randomly generated value.
CheckSum (4 bytes): A 32-bit CRC32 checksum of the data that is encrypted along with the data.
EncryptedData (variable): A variable-length byte array that represents the encrypted value.