mirror of
https://github.com/Neo-Desktop/WindowsXPKg
synced 2024-12-22 12:30:17 +02:00
Add BN_mod_sqrt() check outside of generation
This commit is contained in:
parent
04601b7260
commit
78194d7ab9
@ -88,7 +88,7 @@ void print_product_key(uint8_t *pk)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void verify2003(EC_GROUP *ec, EC_POINT *generator, EC_POINT *public_key, char *cdkey)
|
int verify2003(EC_GROUP *ec, EC_POINT *generator, EC_POINT *public_key, char *cdkey)
|
||||||
{
|
{
|
||||||
uint8_t key[25];
|
uint8_t key[25];
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
@ -176,9 +176,6 @@ void verify2003(EC_GROUP *ec, EC_POINT *generator, EC_POINT *public_key, char *c
|
|||||||
h2[0] = (md[0] | (md[1] << 8) | (md[2] << 16) | (md[3] << 24)) & 0x7fffffff;
|
h2[0] = (md[0] | (md[1] << 8) | (md[2] << 16) | (md[3] << 24)) & 0x7fffffff;
|
||||||
printf("Calculated hash: %.8x\n", h2[0]);
|
printf("Calculated hash: %.8x\n", h2[0]);
|
||||||
|
|
||||||
if (h2[0] == hash[0]) printf("Key VALID\n");
|
|
||||||
else printf("Key invalid\n");
|
|
||||||
|
|
||||||
BN_free(s);
|
BN_free(s);
|
||||||
BN_free(h);
|
BN_free(h);
|
||||||
BN_free(x);
|
BN_free(x);
|
||||||
@ -186,6 +183,15 @@ void verify2003(EC_GROUP *ec, EC_POINT *generator, EC_POINT *public_key, char *c
|
|||||||
EC_POINT_free(r);
|
EC_POINT_free(r);
|
||||||
EC_POINT_free(t);
|
EC_POINT_free(t);
|
||||||
BN_CTX_free(ctx);
|
BN_CTX_free(ctx);
|
||||||
|
|
||||||
|
if (h2[0] == hash[0]) {
|
||||||
|
printf("Key VALID\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Key invalid\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void generate2003(uint8_t *pkey, EC_GROUP *ec, EC_POINT *generator, BIGNUM *order, BIGNUM *priv, uint32_t *osfamily, uint32_t *prefix)
|
void generate2003(uint8_t *pkey, EC_GROUP *ec, EC_POINT *generator, BIGNUM *order, BIGNUM *priv, uint32_t *osfamily, uint32_t *prefix)
|
||||||
@ -328,9 +334,12 @@ int main()
|
|||||||
osfamily[0] = 1280;
|
osfamily[0] = 1280;
|
||||||
RAND_pseudo_bytes((uint8_t *)prefix, 4);
|
RAND_pseudo_bytes((uint8_t *)prefix, 4);
|
||||||
prefix[0] &= 0x3ff;
|
prefix[0] &= 0x3ff;
|
||||||
generate2003(pkey, ec, g, n, priv, osfamily, prefix);
|
|
||||||
|
do {
|
||||||
|
generate2003(pkey, ec, g, n, priv, osfamily, prefix);
|
||||||
|
} while (!verify2003(ec, g, pub, (char*)pkey));
|
||||||
|
|
||||||
print_product_key(pkey); printf("\n\n");
|
print_product_key(pkey); printf("\n\n");
|
||||||
verify2003(ec, g, pub, (char*)pkey);
|
|
||||||
|
|
||||||
BN_CTX_free(ctx);
|
BN_CTX_free(ctx);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user