Skip to content

Commit 2c692df

Browse files
Merge pull request #216 from miyazakh/f-1483_sha1prefix
F 1483 : Fix SHA-1 prefix match overwriting SHA-256/384/512 output
2 parents 1f74ae3 + 77d7867 commit 2c692df

2 files changed

Lines changed: 14 additions & 14 deletions

File tree

src/hash/clu_hash.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,32 +101,32 @@ int wolfCLU_hash(WOLFSSL_BIO* bioIn, WOLFSSL_BIO* bioOut, const char* alg,
101101

102102
/* hashes using accepted algorithm */
103103
#ifndef NO_MD5
104-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "md5", 3) == 0) {
104+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "md5") == 0) {
105105
ret = wc_Md5Hash(input, inputSz, output);
106106
}
107107
#endif
108108
#ifndef NO_SHA256
109-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "sha256", 6) == 0) {
109+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "sha256") == 0) {
110110
ret = wc_Sha256Hash(input, inputSz, output);
111111
}
112112
#endif
113113
#ifdef WOLFSSL_SHA384
114-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "sha384", 6) == 0) {
114+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "sha384") == 0) {
115115
ret = wc_Sha384Hash(input, inputSz, output);
116116
}
117117
#endif
118118
#ifdef WOLFSSL_SHA512
119-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "sha512", 6) == 0) {
119+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "sha512") == 0) {
120120
ret = wc_Sha512Hash(input, inputSz, output);
121121
}
122122
#endif
123123
#ifndef NO_SHA
124-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "sha", 3) == 0) {
124+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "sha") == 0) {
125125
ret = wc_ShaHash(input, inputSz, output);
126126
}
127127
#endif
128128
#ifdef HAVE_BLAKE2
129-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "blake2b", 7) == 0) {
129+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "blake2b") == 0) {
130130
ret = wc_InitBlake2b(&hash, size);
131131
if (ret != 0) return ret;
132132
ret = wc_Blake2bUpdate(&hash, input, inputSz);
@@ -138,11 +138,11 @@ int wolfCLU_hash(WOLFSSL_BIO* bioIn, WOLFSSL_BIO* bioOut, const char* alg,
138138

139139
#ifndef NO_CODING
140140
#ifdef WOLFSSL_BASE64_ENCODE
141-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "base64enc", 9) == 0) {
141+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "base64enc") == 0) {
142142
ret = Base64_Encode(input, inputSz, output, (word32*)&size);
143143
}
144144
#endif /* WOLFSSL_BASE64_ENCODE */
145-
if (ret == WOLFCLU_SUCCESS && XSTRNCMP(alg, "base64dec", 9) == 0) {
145+
if (ret == WOLFCLU_SUCCESS && XSTRCMP(alg, "base64dec") == 0) {
146146
ret = Base64_Decode(input, inputSz, output, (word32*)&size);
147147
}
148148
#endif /* !NO_CODING */

src/hash/clu_hash_setup.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ int wolfCLU_hashSetup(int argc, char** argv)
8181

8282
for (i = 0; i < (int)algsSz; ++i) {
8383
/* checks for acceptable algorithms */
84-
if (XSTRNCMP(argv[2], algs[i], XSTRLEN(algs[i])) == 0) {
84+
if (XSTRCMP(argv[2], algs[i]) == 0) {
8585
alg = argv[2];
8686
algCheck = 1;
8787
}
@@ -135,27 +135,27 @@ int wolfCLU_hashSetup(int argc, char** argv)
135135

136136
/* sets default size of algorithm */
137137
#ifndef NO_MD5
138-
if (XSTRNCMP(alg, "md5", 3) == 0)
138+
if (XSTRCMP(alg, "md5") == 0)
139139
size = WC_MD5_DIGEST_SIZE;
140140
#endif
141141

142142
#ifndef NO_SHA
143-
if (XSTRNCMP(alg, "sha", 3) == 0)
143+
if (XSTRCMP(alg, "sha") == 0)
144144
size = WC_SHA_DIGEST_SIZE;
145145
#endif
146146

147147
#ifndef NO_SHA256
148-
if (XSTRNCMP(alg, "sha256", 6) == 0)
148+
if (XSTRCMP(alg, "sha256") == 0)
149149
size = WC_SHA256_DIGEST_SIZE;
150150
#endif
151151

152152
#ifdef WOLFSSL_SHA384
153-
if (XSTRNCMP(alg, "sha384", 6) == 0)
153+
if (XSTRCMP(alg, "sha384") == 0)
154154
size = WC_SHA384_DIGEST_SIZE;
155155
#endif
156156

157157
#ifdef WOLFSSL_SHA512
158-
if (XSTRNCMP(alg, "sha512", 6) == 0)
158+
if (XSTRCMP(alg, "sha512") == 0)
159159
size = WC_SHA512_DIGEST_SIZE;
160160
#endif
161161

0 commit comments

Comments
 (0)