mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-13 09:35:23 -04:00
And don't forget memcmp
This commit is contained in:
parent
3a66c9b359
commit
359643af24
13
third_party/bearssl/bearssl_stdlib.h
vendored
13
third_party/bearssl/bearssl_stdlib.h
vendored
@ -7,6 +7,19 @@ static size_t br_strlen(const char* a) {
|
||||
return i;
|
||||
}
|
||||
|
||||
static size_t br_memcmp(const void* a, const void* b, size_t len) {
|
||||
unsigned char* p1 = (unsigned char*)a;
|
||||
unsigned char* p2 = (unsigned char*)b;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
if (p1[i] < p2[i]) return -1;
|
||||
if (p1[i] > p2[i]) return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CC_BUILD_NOSTDLIB
|
||||
extern void* Mem_Copy(void* dst, const void* src, unsigned size);
|
||||
extern void* Mem_Move(void* dst, const void* src, unsigned size);
|
||||
|
4
third_party/bearssl/rsa_pkcs1_sig_unpad.c
vendored
4
third_party/bearssl/rsa_pkcs1_sig_unpad.c
vendored
@ -71,7 +71,7 @@ br_rsa_pkcs1_sig_unpad(const unsigned char *sig, size_t sig_len,
|
||||
* The comparison is valid because we made sure that the signature
|
||||
* is at least 11 bytes long.
|
||||
*/
|
||||
if (memcmp(sig, pad1, sizeof pad1) != 0) {
|
||||
if (br_memcmp(sig, pad1, sizeof pad1) != 0) {
|
||||
return 0;
|
||||
}
|
||||
for (u = sizeof pad1; u < sig_len; u ++) {
|
||||
@ -112,7 +112,7 @@ br_rsa_pkcs1_sig_unpad(const unsigned char *sig, size_t sig_len,
|
||||
br_memcpy(pad2 + 6, hash_oid, x3 + 1);
|
||||
pad2[pad_len - 2] = 0x04;
|
||||
pad2[pad_len - 1] = hash_len;
|
||||
if (memcmp(pad2, sig + u, pad_len) != 0) {
|
||||
if (br_memcmp(pad2, sig + u, pad_len) != 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
8
third_party/bearssl/ssl_hs_client.c
vendored
8
third_party/bearssl/ssl_hs_client.c
vendored
@ -241,7 +241,7 @@ verify_SKE_sig(br_ssl_client_context *ctx,
|
||||
}
|
||||
if (!ctx->eng.irsavrfy(ctx->eng.pad, sig_len,
|
||||
hash_oid, hv_len, &pk->key.rsa, tmp)
|
||||
|| memcmp(tmp, hv, hv_len) != 0)
|
||||
|| br_memcmp(tmp, hv, hv_len) != 0)
|
||||
{
|
||||
return BR_ERR_BAD_SIGNATURE;
|
||||
}
|
||||
@ -1438,12 +1438,12 @@ br_ssl_hs_client_run(void *t0ctx)
|
||||
}
|
||||
break;
|
||||
case 48: {
|
||||
/* memcmp */
|
||||
/* br_memcmp */
|
||||
|
||||
size_t len = (size_t)T0_POP();
|
||||
void *addr2 = (unsigned char *)ENG + (size_t)T0_POP();
|
||||
void *addr1 = (unsigned char *)ENG + (size_t)T0_POP();
|
||||
int x = memcmp(addr1, addr2, len);
|
||||
int x = br_memcmp(addr1, addr2, len);
|
||||
T0_PUSH((uint32_t)-(x == 0));
|
||||
|
||||
}
|
||||
@ -1766,7 +1766,7 @@ br_ssl_hs_client_run(void *t0ctx)
|
||||
const char *name;
|
||||
|
||||
name = ENG->protocol_names[u];
|
||||
if (len == br_strlen(name) && memcmp(ENG->pad, name, len) == 0) {
|
||||
if (len == br_strlen(name) && br_memcmp(ENG->pad, name, len) == 0) {
|
||||
T0_PUSH(u);
|
||||
T0_RET();
|
||||
}
|
||||
|
16
third_party/bearssl/x509_minimal.c
vendored
16
third_party/bearssl/x509_minimal.c
vendored
@ -372,7 +372,7 @@ eqbigint(const unsigned char *b1, size_t len1,
|
||||
if (len1 != len2) {
|
||||
return 0;
|
||||
}
|
||||
return memcmp(b1, b2, len1) == 0;
|
||||
return br_memcmp(b1, b2, len1) == 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -1118,7 +1118,7 @@ br_x509_minimal_run(void *t0ctx)
|
||||
continue;
|
||||
}
|
||||
hash_dn(CTX, ta->dn.data, ta->dn.len, hashed_DN);
|
||||
if (memcmp(hashed_DN, CTX->current_dn_hash, DNHASH_LEN)) {
|
||||
if (br_memcmp(hashed_DN, CTX->current_dn_hash, DNHASH_LEN)) {
|
||||
continue;
|
||||
}
|
||||
kt = CTX->pkey.key_type;
|
||||
@ -1144,7 +1144,7 @@ br_x509_minimal_run(void *t0ctx)
|
||||
case BR_KEYTYPE_EC:
|
||||
if (CTX->pkey.key.ec.curve != ta->pkey.key.ec.curve
|
||||
|| CTX->pkey.key.ec.qlen != ta->pkey.key.ec.qlen
|
||||
|| memcmp(CTX->pkey.key.ec.q,
|
||||
|| br_memcmp(CTX->pkey.key.ec.q,
|
||||
ta->pkey.key.ec.q,
|
||||
ta->pkey.key.ec.qlen) != 0)
|
||||
{
|
||||
@ -1179,7 +1179,7 @@ br_x509_minimal_run(void *t0ctx)
|
||||
continue;
|
||||
}
|
||||
hash_dn(CTX, ta->dn.data, ta->dn.len, hashed_DN);
|
||||
if (memcmp(hashed_DN, CTX->saved_dn_hash, DNHASH_LEN)) {
|
||||
if (br_memcmp(hashed_DN, CTX->saved_dn_hash, DNHASH_LEN)) {
|
||||
continue;
|
||||
}
|
||||
if (verify_signature(CTX, &ta->pkey) == 0) {
|
||||
@ -1389,7 +1389,7 @@ br_x509_minimal_run(void *t0ctx)
|
||||
size_t len = a1[0];
|
||||
int x;
|
||||
if (len == a2[0]) {
|
||||
x = -(memcmp(a1 + 1, a2 + 1, len) == 0);
|
||||
x = -(br_memcmp(a1 + 1, a2 + 1, len) == 0);
|
||||
} else {
|
||||
x = 0;
|
||||
}
|
||||
@ -1403,7 +1403,7 @@ br_x509_minimal_run(void *t0ctx)
|
||||
size_t len = T0_POP();
|
||||
const unsigned char *a2 = (const unsigned char *)CTX + T0_POP();
|
||||
const unsigned char *a1 = (const unsigned char *)CTX + T0_POP();
|
||||
T0_PUSHi(-(memcmp(a1, a2, len) == 0));
|
||||
T0_PUSHi(-(br_memcmp(a1, a2, len) == 0));
|
||||
|
||||
}
|
||||
break;
|
||||
@ -1496,7 +1496,7 @@ br_x509_minimal_run(void *t0ctx)
|
||||
}
|
||||
len = oid[off];
|
||||
if (len != 0 && len == CTX->pad[0]
|
||||
&& memcmp(oid + off + 1,
|
||||
&& br_memcmp(oid + off + 1,
|
||||
CTX->pad + 1, len) == 0)
|
||||
{
|
||||
T0_PUSH(u);
|
||||
@ -1672,7 +1672,7 @@ verify_signature(br_x509_minimal_context *ctx, const br_x509_pkey *pk)
|
||||
{
|
||||
return BR_ERR_X509_BAD_SIGNATURE;
|
||||
}
|
||||
if (memcmp(ctx->tbs_hash, tmp, ctx->cert_sig_hash_len) != 0) {
|
||||
if (br_memcmp(ctx->tbs_hash, tmp, ctx->cert_sig_hash_len) != 0) {
|
||||
return BR_ERR_X509_BAD_SIGNATURE;
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user