hcrypto: Fix UB
This commit is contained in:
@@ -344,14 +344,14 @@ load(const unsigned char *b, uint32_t v[2])
|
||||
static void
|
||||
store(const uint32_t v[2], unsigned char *b)
|
||||
{
|
||||
b[0] = (v[0] >> 24) & 0xff;
|
||||
b[1] = (v[0] >> 16) & 0xff;
|
||||
b[2] = (v[0] >> 8) & 0xff;
|
||||
b[3] = (v[0] >> 0) & 0xff;
|
||||
b[4] = (v[1] >> 24) & 0xff;
|
||||
b[5] = (v[1] >> 16) & 0xff;
|
||||
b[6] = (v[1] >> 8) & 0xff;
|
||||
b[7] = (v[1] >> 0) & 0xff;
|
||||
b[0] = (v[0] >> 24) & 0xffU;
|
||||
b[1] = (v[0] >> 16) & 0xffU;
|
||||
b[2] = (v[0] >> 8) & 0xffU;
|
||||
b[3] = (v[0] >> 0) & 0xffU;
|
||||
b[4] = (v[1] >> 24) & 0xffU;
|
||||
b[5] = (v[1] >> 16) & 0xffU;
|
||||
b[6] = (v[1] >> 8) & 0xffU;
|
||||
b[7] = (v[1] >> 0) & 0xffU;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -51,9 +51,9 @@ struct hash_foo {
|
||||
const char *name;
|
||||
size_t psize;
|
||||
size_t hsize;
|
||||
void (*init)(void*);
|
||||
void (*update)(void*, const void*, size_t);
|
||||
void (*final)(void*, void*);
|
||||
int (*init)(void*);
|
||||
int (*update)(void*, const void*, size_t);
|
||||
int (*final)(void*, void*);
|
||||
const EVP_MD * (*evp)(void);
|
||||
} md2 = {
|
||||
"MD2",
|
||||
@@ -67,52 +67,52 @@ struct hash_foo {
|
||||
"MD4",
|
||||
sizeof(MD4_CTX),
|
||||
16,
|
||||
(void (*)(void*))MD4_Init,
|
||||
(void (*)(void*,const void*, size_t))MD4_Update,
|
||||
(void (*)(void*, void*))MD4_Final,
|
||||
(int (*)(void*))MD4_Init,
|
||||
(int (*)(void*,const void*, size_t))MD4_Update,
|
||||
(int (*)(void*, void*))MD4_Final,
|
||||
EVP_md4
|
||||
}, md5 = {
|
||||
"MD5",
|
||||
sizeof(MD5_CTX),
|
||||
16,
|
||||
(void (*)(void*))MD5_Init,
|
||||
(void (*)(void*,const void*, size_t))MD5_Update,
|
||||
(void (*)(void*, void*))MD5_Final,
|
||||
(int (*)(void*))MD5_Init,
|
||||
(int (*)(void*,const void*, size_t))MD5_Update,
|
||||
(int (*)(void*, void*))MD5_Final,
|
||||
EVP_md5
|
||||
}, sha1 = {
|
||||
"SHA-1",
|
||||
sizeof(struct sha),
|
||||
20,
|
||||
(void (*)(void*))SHA1_Init,
|
||||
(void (*)(void*,const void*, size_t))SHA1_Update,
|
||||
(void (*)(void*, void*))SHA1_Final,
|
||||
(int (*)(void*))SHA1_Init,
|
||||
(int (*)(void*,const void*, size_t))SHA1_Update,
|
||||
(int (*)(void*, void*))SHA1_Final,
|
||||
EVP_sha1
|
||||
};
|
||||
struct hash_foo sha256 = {
|
||||
"SHA-256",
|
||||
sizeof(SHA256_CTX),
|
||||
32,
|
||||
(void (*)(void*))SHA256_Init,
|
||||
(void (*)(void*,const void*, size_t))SHA256_Update,
|
||||
(void (*)(void*, void*))SHA256_Final,
|
||||
(int (*)(void*))SHA256_Init,
|
||||
(int (*)(void*,const void*, size_t))SHA256_Update,
|
||||
(int (*)(void*, void*))SHA256_Final,
|
||||
EVP_sha256
|
||||
};
|
||||
struct hash_foo sha384 = {
|
||||
"SHA-384",
|
||||
sizeof(SHA384_CTX),
|
||||
48,
|
||||
(void (*)(void*))SHA384_Init,
|
||||
(void (*)(void*,const void*, size_t))SHA384_Update,
|
||||
(void (*)(void*, void*))SHA384_Final,
|
||||
(int (*)(void*))SHA384_Init,
|
||||
(int (*)(void*,const void*, size_t))SHA384_Update,
|
||||
(int (*)(void*, void*))SHA384_Final,
|
||||
EVP_sha384
|
||||
};
|
||||
struct hash_foo sha512 = {
|
||||
"SHA-512",
|
||||
sizeof(SHA512_CTX),
|
||||
64,
|
||||
(void (*)(void*))SHA512_Init,
|
||||
(void (*)(void*,const void*, size_t))SHA512_Update,
|
||||
(void (*)(void*, void*))SHA512_Final,
|
||||
(int (*)(void*))SHA512_Init,
|
||||
(int (*)(void*,const void*, size_t))SHA512_Update,
|
||||
(int (*)(void*, void*))SHA512_Final,
|
||||
EVP_sha512
|
||||
};
|
||||
|
||||
|
@@ -85,7 +85,8 @@ PKCS5_PBKDF2_HMAC(const void * password, size_t password_len,
|
||||
|
||||
data = &tmpcksum[checksumsize];
|
||||
|
||||
memcpy(data, salt, salt_len);
|
||||
if (salt_len)
|
||||
memcpy(data, salt, salt_len);
|
||||
|
||||
keypart = 1;
|
||||
leftofkey = keylen;
|
||||
|
Reference in New Issue
Block a user