Skip to content

Commit 9d70ad4

Browse files
committed
coverity warning fixes
1 parent 11f96bb commit 9d70ad4

File tree

1 file changed

+142
-68
lines changed

1 file changed

+142
-68
lines changed

wolfcrypt/src/hmac.c

Lines changed: 142 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -152,71 +152,122 @@ static int HmacKeyInitHash(wc_HmacHash* hash, int type, void* heap, int devId)
152152
{
153153
int ret = 0;
154154

155-
switch (type) {
156-
#ifndef NO_MD5
157-
case WC_MD5:
155+
switch ((enum wc_HashType)type) {
156+
case WC_HASH_TYPE_MD5:
157+
#ifndef NO_MD5
158158
ret = wc_InitMd5_ex(&hash->md5, heap, devId);
159+
#else
160+
ret = BAD_FUNC_ARG;
161+
#endif
159162
break;
160-
#endif /* !NO_MD5 */
161163

162-
#ifndef NO_SHA
163-
case WC_SHA:
164+
case WC_HASH_TYPE_SHA:
165+
#ifndef NO_SHA
164166
ret = wc_InitSha_ex(&hash->sha, heap, devId);
167+
#else
168+
ret = BAD_FUNC_ARG;
169+
#endif
165170
break;
166-
#endif /* !NO_SHA */
167171

168-
#ifdef WOLFSSL_SHA224
169-
case WC_SHA224:
172+
case WC_HASH_TYPE_SHA224:
173+
#ifdef WOLFSSL_SHA224
170174
ret = wc_InitSha224_ex(&hash->sha224, heap, devId);
175+
#else
176+
ret = BAD_FUNC_ARG;
177+
#endif
171178
break;
172-
#endif /* WOLFSSL_SHA224 */
173179

174-
#ifndef NO_SHA256
175-
case WC_SHA256:
180+
case WC_HASH_TYPE_SHA256:
181+
#ifndef NO_SHA256
176182
ret = wc_InitSha256_ex(&hash->sha256, heap, devId);
183+
#else
184+
ret = BAD_FUNC_ARG;
185+
#endif
177186
break;
178-
#endif /* !NO_SHA256 */
179187

180-
#ifdef WOLFSSL_SHA384
181-
case WC_SHA384:
188+
case WC_HASH_TYPE_SHA384:
189+
#ifdef WOLFSSL_SHA384
182190
ret = wc_InitSha384_ex(&hash->sha384, heap, devId);
191+
#else
192+
ret = BAD_FUNC_ARG;
193+
#endif
183194
break;
184-
#endif /* WOLFSSL_SHA384 */
185-
#ifdef WOLFSSL_SHA512
186-
case WC_SHA512:
195+
196+
case WC_HASH_TYPE_SHA512:
197+
#ifdef WOLFSSL_SHA512
187198
ret = wc_InitSha512_ex(&hash->sha512, heap, devId);
199+
#else
200+
ret = BAD_FUNC_ARG;
201+
#endif
188202
break;
189-
#endif /* WOLFSSL_SHA512 */
190203

191-
#ifdef WOLFSSL_SHA3
192-
#ifndef WOLFSSL_NOSHA3_224
193-
case WC_SHA3_224:
204+
case WC_HASH_TYPE_SHA3_224:
205+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_224)
194206
ret = wc_InitSha3_224(&hash->sha3, heap, devId);
207+
#else
208+
ret = BAD_FUNC_ARG;
209+
#endif
195210
break;
196-
#endif
197-
#ifndef WOLFSSL_NOSHA3_256
198-
case WC_SHA3_256:
211+
212+
case WC_HASH_TYPE_SHA3_256:
213+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_256)
199214
ret = wc_InitSha3_256(&hash->sha3, heap, devId);
215+
#else
216+
ret = BAD_FUNC_ARG;
217+
#endif
200218
break;
201-
#endif
202-
#ifndef WOLFSSL_NOSHA3_384
203-
case WC_SHA3_384:
219+
220+
case WC_HASH_TYPE_SHA3_384:
221+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_384)
204222
ret = wc_InitSha3_384(&hash->sha3, heap, devId);
223+
#else
224+
ret = BAD_FUNC_ARG;
225+
#endif
205226
break;
206-
#endif
207-
#ifndef WOLFSSL_NOSHA3_512
208-
case WC_SHA3_512:
227+
228+
case WC_HASH_TYPE_SHA3_512:
229+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_512)
209230
ret = wc_InitSha3_512(&hash->sha3, heap, devId);
231+
#else
232+
ret = BAD_FUNC_ARG;
233+
#endif
210234
break;
211-
#endif
212-
#endif
213235

214236
#ifdef WOLFSSL_SM3
215-
case WC_SM3:
237+
case WC_HASH_TYPE_SM3:
216238
ret = wc_InitSm3(&hash->sm3, heap, devId);
217239
break;
218240
#endif
219241

242+
case WC_HASH_TYPE_NONE:
243+
case WC_HASH_TYPE_MD2:
244+
case WC_HASH_TYPE_MD4:
245+
case WC_HASH_TYPE_MD5_SHA:
246+
case WC_HASH_TYPE_BLAKE2B:
247+
case WC_HASH_TYPE_BLAKE2S:
248+
ret = BAD_FUNC_ARG;
249+
break;
250+
251+
#ifndef WOLFSSL_NOSHA512_224
252+
case WC_HASH_TYPE_SHA512_224:
253+
ret = BAD_FUNC_ARG;
254+
break;
255+
#endif
256+
#ifndef WOLFSSL_NOSHA512_256
257+
case WC_HASH_TYPE_SHA512_256:
258+
ret = BAD_FUNC_ARG;
259+
break;
260+
#endif
261+
#ifdef WOLFSSL_SHAKE128
262+
case WC_HASH_TYPE_SHAKE128:
263+
ret = BAD_FUNC_ARG;
264+
break;
265+
#endif
266+
#ifdef WOLFSSL_SHAKE256
267+
case WC_HASH_TYPE_SHAKE256:
268+
ret = BAD_FUNC_ARG;
269+
break;
270+
#endif
220271
default:
221272
ret = BAD_FUNC_ARG;
222273
break;
@@ -329,70 +380,93 @@ static int HmacKeyHashUpdate(byte macType, wc_HmacHash* hash, byte* pad)
329380
{
330381
int ret = 0;
331382

332-
switch (macType) {
333-
#ifndef NO_MD5
334-
case WC_MD5:
383+
switch ((enum wc_HashType)macType) {
384+
case WC_HASH_TYPE_MD5:
385+
#ifndef NO_MD5
335386
ret = wc_Md5Update(&hash->md5, pad, WC_MD5_BLOCK_SIZE);
387+
#endif
336388
break;
337-
#endif /* !NO_MD5 */
338389

339-
#ifndef NO_SHA
340-
case WC_SHA:
390+
case WC_HASH_TYPE_SHA:
391+
#ifndef NO_SHA
341392
ret = wc_ShaUpdate(&hash->sha, pad, WC_SHA_BLOCK_SIZE);
393+
#endif
342394
break;
343-
#endif /* !NO_SHA */
344395

345-
#ifdef WOLFSSL_SHA224
346-
case WC_SHA224:
396+
case WC_HASH_TYPE_SHA224:
397+
#ifdef WOLFSSL_SHA224
347398
ret = wc_Sha224Update(&hash->sha224, pad, WC_SHA224_BLOCK_SIZE);
399+
#endif
348400
break;
349-
#endif /* WOLFSSL_SHA224 */
350-
#ifndef NO_SHA256
351-
case WC_SHA256:
401+
402+
case WC_HASH_TYPE_SHA256:
403+
#ifndef NO_SHA256
352404
ret = wc_Sha256Update(&hash->sha256, pad, WC_SHA256_BLOCK_SIZE);
405+
#endif
353406
break;
354-
#endif /* !NO_SHA256 */
355407

356-
#ifdef WOLFSSL_SHA384
357-
case WC_SHA384:
408+
case WC_HASH_TYPE_SHA384:
409+
#ifdef WOLFSSL_SHA384
358410
ret = wc_Sha384Update(&hash->sha384, pad, WC_SHA384_BLOCK_SIZE);
411+
#endif
359412
break;
360-
#endif /* WOLFSSL_SHA384 */
361-
#ifdef WOLFSSL_SHA512
362-
case WC_SHA512:
413+
414+
case WC_HASH_TYPE_SHA512:
415+
#ifdef WOLFSSL_SHA512
363416
ret = wc_Sha512Update(&hash->sha512, pad, WC_SHA512_BLOCK_SIZE);
417+
#endif
364418
break;
365-
#endif /* WOLFSSL_SHA512 */
366419

367-
#ifdef WOLFSSL_SHA3
368-
#ifndef WOLFSSL_NOSHA3_224
369-
case WC_SHA3_224:
420+
case WC_HASH_TYPE_SHA3_224:
421+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_224)
370422
ret = wc_Sha3_224_Update(&hash->sha3, pad, WC_SHA3_224_BLOCK_SIZE);
423+
#endif
371424
break;
372-
#endif
373-
#ifndef WOLFSSL_NOSHA3_256
374-
case WC_SHA3_256:
425+
426+
case WC_HASH_TYPE_SHA3_256:
427+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_256)
375428
ret = wc_Sha3_256_Update(&hash->sha3, pad, WC_SHA3_256_BLOCK_SIZE);
429+
#endif
376430
break;
377-
#endif
378-
#ifndef WOLFSSL_NOSHA3_384
379-
case WC_SHA3_384:
431+
432+
case WC_HASH_TYPE_SHA3_384:
433+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_384)
380434
ret = wc_Sha3_384_Update(&hash->sha3, pad, WC_SHA3_384_BLOCK_SIZE);
435+
#endif
381436
break;
382-
#endif
383-
#ifndef WOLFSSL_NOSHA3_512
384-
case WC_SHA3_512:
437+
438+
case WC_HASH_TYPE_SHA3_512:
439+
#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_512)
385440
ret = wc_Sha3_512_Update(&hash->sha3, pad, WC_SHA3_512_BLOCK_SIZE);
441+
#endif
386442
break;
387-
#endif
388-
#endif /* WOLFSSL_SHA3 */
389443

390444
#ifdef WOLFSSL_SM3
391-
case WC_SM3:
445+
case WC_HASH_TYPE_SM3:
392446
ret = wc_Sm3Update(&hash->sm3, pad, WC_SM3_BLOCK_SIZE);
393447
break;
394448
#endif
395449

450+
/* HmacKeyHashUpdate is only ever called with a valid hash type.
451+
* Default to no-op. */
452+
case WC_HASH_TYPE_NONE:
453+
case WC_HASH_TYPE_MD2:
454+
case WC_HASH_TYPE_MD4:
455+
case WC_HASH_TYPE_MD5_SHA:
456+
case WC_HASH_TYPE_BLAKE2B:
457+
case WC_HASH_TYPE_BLAKE2S:
458+
#ifndef WOLFSSL_NOSHA512_224
459+
case WC_HASH_TYPE_SHA512_224:
460+
#endif
461+
#ifndef WOLFSSL_NOSHA512_256
462+
case WC_HASH_TYPE_SHA512_256:
463+
#endif
464+
#ifdef WOLFSSL_SHAKE128
465+
case WC_HASH_TYPE_SHAKE128:
466+
#endif
467+
#ifdef WOLFSSL_SHAKE256
468+
case WC_HASH_TYPE_SHAKE256:
469+
#endif
396470
default:
397471
break;
398472
}

0 commit comments

Comments
 (0)