mirror of
https://github.com/Neo-Desktop/WindowsXPKg
synced 2024-12-22 04:20:17 +02:00
Fix BYDWORD (implementation mistake)
This commit is contained in:
parent
04e6362d7e
commit
da7e88b970
@ -49,7 +49,7 @@
|
||||
#define HIBYTES(field, bytes) NEXTSNBITS((QWORD)(field), ((bytes) * 8), ((bytes) * 8))
|
||||
#define LOBYTES(field, bytes) FIRSTNBITS((QWORD)(field), ((bytes) * 8))
|
||||
|
||||
#define BYDWORD(n) (*((n) + 0) | *((n) + 1) << 8 | *((n) + 2) << 16 | *((n) + 3) << 24)
|
||||
#define BYDWORD(n) (DWORD)(*((n) + 0) | *((n) + 1) << 8 | *((n) + 2) << 16 | *((n) + 3) << 24)
|
||||
#define BITMASK(n) ((1ULL << (n)) - 1)
|
||||
|
||||
// Confirmation ID generator constants
|
||||
|
@ -86,15 +86,12 @@ bool verifyServerKey(
|
||||
|
||||
SHA1(msgBuffer, 11, msgDigest);
|
||||
|
||||
DWORD newHash[2]{};
|
||||
|
||||
newHash[0] = BYDWORD(msgDigest);
|
||||
newHash[1] = BYDWORD(&msgDigest[4]) >> 2 & BITMASK(30);
|
||||
QWORD newHash2 = (QWORD)(BYDWORD(&msgDigest[4]) >> 2 & BITMASK(30)) << 32 | BYDWORD(msgDigest);
|
||||
|
||||
BIGNUM *x = BN_new();
|
||||
BIGNUM *y = BN_new();
|
||||
BIGNUM *s = BN_lebin2bn((BYTE *)&pSignature, sizeof(pSignature), nullptr);
|
||||
BIGNUM *e = BN_lebin2bn((BYTE *)&newHash, sizeof(newHash), nullptr);
|
||||
BIGNUM *e = BN_lebin2bn((BYTE *)&newHash2, 8, nullptr);
|
||||
|
||||
EC_POINT *u = EC_POINT_new(eCurve);
|
||||
EC_POINT *v = EC_POINT_new(eCurve);
|
||||
|
@ -186,8 +186,7 @@ void generateXPKey(
|
||||
|
||||
// Translate the byte digest into a 32-bit integer - this is our computed pHash.
|
||||
// Truncate the pHash to 28 bits.
|
||||
pHash = BYDWORD(msgDigest) >> 4;
|
||||
pHash &= BITMASK(28);
|
||||
pHash = BYDWORD(msgDigest) >> 4 & BITMASK(28);
|
||||
|
||||
/*
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user