2.4.4.1 Password Hash Data Structure
The password data structure specifies a password hash and additional random byte data to obfuscate the hash.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Reserved |
GrbitKey |
GrbithashNull |
|
|||||||||||||||||||||||||||||
KeyNoNulls |
|
|||||||||||||||||||||||||||||||
PasswordHashNoNulls |
|
|||||||||||||||||||||||||||||||
… |
|
|||||||||||||||||||||||||||||||
… |
|
|||||||||||||||||||||||||||||||
… |
|
|||||||||||||||||||||||||||||||
… |
|
|||||||||||||||||||||||||||||||
Terminator |
|
|||||||||||||||||||||||||||||||
Reserved (1 byte): MUST be 0xFF. MUST be ignored.
GrbitKey (4 bits): Each bit specifies a corresponding null byte of Key as specified by Encode Nulls (section 2.4.4.2).
GrbitHashNull (20 bits): Each bit specifies a corresponding null byte of PasswordHash as specified by Encode Nulls (section 2.4.4.2).
KeyNoNulls (4 bytes): Specifies the Key for the Password Hash Algorithm (section 2.4.4.4) with null bytes removed as specified by Encode Nulls (section 2.4.4.2). Key is any value.
-
Key is encoded into KeyNoNulls as specified by the following pseudocode:
-
CALL Encode Nulls (section 2.4.4.2) with Key RETURNING GrbitKey and KeyNoNulls
-
Decoding is specified by the following pseudocode:
-
CALL Decode Nulls (section 2.4.4.3) with KeyNoNulls and GrbitKey RETURNING Key
PasswordHashNoNulls (20 bytes): Specifies the PasswordHash result of the Password Hash Algorithm (section 2.4.4.4) with null bytes removed as specified by Encode Nulls (section 2.4.4.2).
-
PasswordHash is the 160-bit cryptographic digest of a password combined with Key as specified by Password Hash Algorithm (section 2.4.4.4).
-
Encoding is specified by the following pseudocode:
-
CALL Encode Nulls (section 2.4.4.2) with PasswordHash RETURNING GrbitHashNull and PasswordHashNoNulls
-
Decoding is specified by the following pseudocode:
-
CALL Decode Nulls (section 2.4.4.3) with PasswordHashNoNulls and GrbitHashNull RETURNING PasswordHash
Terminator (1 byte): MUST be 0x00.