$NetBSD: patch-nss_cmd_fipstest_fipstest.c,v 1.1 2022/04/07 19:08:40 riastradh Exp $ Fix ctype(3) abuse: https://bugzilla.mozilla.org/show_bug.cgi?id=1246768 --- nss/cmd/fipstest/fipstest.c.orig 2022-03-03 10:18:53.000000000 +0000 +++ nss/cmd/fipstest/fipstest.c @@ -128,7 +128,7 @@ from_hex_str(unsigned char *buf, unsigne /* count the hex digits */ nxdigit = 0; - for (nxdigit = 0; isxdigit(str[nxdigit]); nxdigit++) { + for (nxdigit = 0; isxdigit((unsigned char)str[nxdigit]); nxdigit++) { /* empty body */ } if (nxdigit == 0) { @@ -336,7 +336,7 @@ tdea_kat_mmt(char *reqfn) /* NumKeys */ if (strncmp(&buf[0], "NumKeys", 7) == 0) { i = 7; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } numKeys = buf[i]; @@ -360,10 +360,10 @@ tdea_kat_mmt(char *reqfn) if (numKeys == 0) { if (strncmp(buf, "KEYs", 4) == 0) { i = 4; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); key[j + 8] = key[j]; key[j + 16] = key[j]; @@ -375,10 +375,10 @@ tdea_kat_mmt(char *reqfn) /* KEY1 = ... */ if (strncmp(buf, "KEY1", 4) == 0) { i = 4; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } fputs(buf, resp); @@ -387,10 +387,10 @@ tdea_kat_mmt(char *reqfn) /* KEY2 = ... */ if (strncmp(buf, "KEY2", 4) == 0) { i = 4; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 8; isxdigit(buf[i]); i += 2, j++) { + for (j = 8; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } fputs(buf, resp); @@ -399,10 +399,10 @@ tdea_kat_mmt(char *reqfn) /* KEY3 = ... */ if (strncmp(buf, "KEY3", 4) == 0) { i = 4; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 16; isxdigit(buf[i]); i += 2, j++) { + for (j = 16; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } fputs(buf, resp); @@ -414,7 +414,7 @@ tdea_kat_mmt(char *reqfn) if (strncmp(buf, "IV", 2) == 0) { mode = NSS_DES_EDE3_CBC; i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof iv; i += 2, j++) { @@ -431,10 +431,10 @@ tdea_kat_mmt(char *reqfn) goto loser; } i = 9; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &plaintext[j]); } plaintextlen = j; @@ -461,10 +461,10 @@ tdea_kat_mmt(char *reqfn) } i = 10; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &ciphertext[j]); } ciphertextlen = j; @@ -779,7 +779,7 @@ tdea_mct(int mode, char *reqfn) /* NumKeys */ if (strncmp(&buf[0], "NumKeys", 7) == 0) { i = 7; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } numKeys = atoi(&buf[i]); @@ -788,10 +788,10 @@ tdea_mct(int mode, char *reqfn) /* KEY1 = ... */ if (strncmp(buf, "KEY1", 4) == 0) { i = 4; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } continue; @@ -799,10 +799,10 @@ tdea_mct(int mode, char *reqfn) /* KEY2 = ... */ if (strncmp(buf, "KEY2", 4) == 0) { i = 4; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 8; isxdigit(buf[i]); i += 2, j++) { + for (j = 8; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } continue; @@ -810,10 +810,10 @@ tdea_mct(int mode, char *reqfn) /* KEY3 = ... */ if (strncmp(buf, "KEY3", 4) == 0) { i = 4; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 16; isxdigit(buf[i]); i += 2, j++) { + for (j = 16; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } continue; @@ -822,7 +822,7 @@ tdea_mct(int mode, char *reqfn) /* IV = ... */ if (strncmp(buf, "IV", 2) == 0) { i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof iv; i += 2, j++) { @@ -840,7 +840,7 @@ tdea_mct(int mode, char *reqfn) } /* PT[0] = PT */ i = 9; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof plaintext; i += 2, j++) { @@ -863,10 +863,10 @@ tdea_mct(int mode, char *reqfn) } /* CT[0] = CT */ i = 10; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &ciphertext[j]); } @@ -1071,10 +1071,10 @@ aes_gcm(char *reqfn, int encrypt) /* KEY = ... */ if (strncmp(buf, "Key", 3) == 0) { i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } keysize = j; @@ -1084,7 +1084,7 @@ aes_gcm(char *reqfn, int encrypt) /* IV = ... */ if (strncmp(buf, "IV", 2) == 0) { i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof iv; i += 2, j++) { @@ -1101,10 +1101,10 @@ aes_gcm(char *reqfn, int encrypt) } i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &plaintext[j]); } plaintextlen = j; @@ -1119,10 +1119,10 @@ aes_gcm(char *reqfn, int encrypt) } i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &ciphertext[j]); } ciphertextlen = j; @@ -1131,10 +1131,10 @@ aes_gcm(char *reqfn, int encrypt) } if (strncmp(buf, "AAD", 3) == 0) { i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &aad[j]); } aadlen = j; @@ -1183,10 +1183,10 @@ aes_gcm(char *reqfn, int encrypt) } i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &ciphertext[j + ciphertextlen]); } ciphertextlen += j; @@ -1282,10 +1282,10 @@ aes_kat_mmt(char *reqfn) /* KEY = ... */ if (strncmp(buf, "KEY", 3) == 0) { i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } keysize = j; @@ -1296,7 +1296,7 @@ aes_kat_mmt(char *reqfn) if (strncmp(buf, "IV", 2) == 0) { mode = NSS_AES_CBC; i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof iv; i += 2, j++) { @@ -1313,10 +1313,10 @@ aes_kat_mmt(char *reqfn) } i = 9; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &plaintext[j]); } plaintextlen = j; @@ -1347,10 +1347,10 @@ aes_kat_mmt(char *reqfn) } i = 10; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &ciphertext[j]); } ciphertextlen = j; @@ -1486,10 +1486,10 @@ aes_ecb_mct(char *reqfn) if (strncmp(buf, "KEY", 3) == 0) { /* Key[0] = Key */ i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } keysize = j; @@ -1503,7 +1503,7 @@ aes_ecb_mct(char *reqfn) } /* PT[0] = PT */ i = 9; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof plaintext; i += 2, j++) { @@ -1601,10 +1601,10 @@ aes_ecb_mct(char *reqfn) } /* CT[0] = CT */ i = 10; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &ciphertext[j]); } @@ -1771,10 +1771,10 @@ aes_cbc_mct(char *reqfn) if (strncmp(buf, "KEY", 3) == 0) { /* Key[0] = Key */ i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &key[j]); } keysize = j; @@ -1784,7 +1784,7 @@ aes_cbc_mct(char *reqfn) if (strncmp(buf, "IV", 2) == 0) { /* IV[0] = IV */ i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof iv; i += 2, j++) { @@ -1800,7 +1800,7 @@ aes_cbc_mct(char *reqfn) } /* PT[0] = PT */ i = 9; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < sizeof plaintext; i += 2, j++) { @@ -1912,10 +1912,10 @@ aes_cbc_mct(char *reqfn) } /* CT[0] = CT */ i = 10; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &ciphertext[j]); } @@ -2417,7 +2417,7 @@ ecdsa_keypair_test(char *reqfn) src = &buf[1]; dst = &curve[4]; - *dst++ = tolower(*src); + *dst++ = tolower((unsigned char)*src); src += 2; /* skip the hyphen */ *dst++ = *src++; *dst++ = *src++; @@ -2528,7 +2528,7 @@ ecdsa_pkv_test(char *reqfn) src = &buf[1]; dst = &curve[4]; - *dst++ = tolower(*src); + *dst++ = tolower((unsigned char)*src); src += 2; /* skip the hyphen */ *dst++ = *src++; *dst++ = *src++; @@ -2565,7 +2565,7 @@ ecdsa_pkv_test(char *reqfn) if (strncmp(buf, "Qx", 2) == 0) { fputs(buf, ecdsaresp); i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } keyvalid = from_hex_str(&pubkey.data[1], len, &buf[i]); @@ -2579,7 +2579,7 @@ ecdsa_pkv_test(char *reqfn) continue; } i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } keyvalid = from_hex_str(&pubkey.data[1 + len], len, &buf[i]); @@ -2653,7 +2653,7 @@ ecdsa_siggen_test(char *reqfn) src = &buf[1]; dst = &curve[4]; - *dst++ = tolower(*src); + *dst++ = tolower((unsigned char)*src); src += 2; /* skip the hyphen */ *dst++ = *src++; *dst++ = *src++; @@ -2688,10 +2688,10 @@ ecdsa_siggen_test(char *reqfn) ECPrivateKey *ecpriv; i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &msg[j]); } msglen = j; @@ -2814,7 +2814,7 @@ ecdsa_sigver_test(char *reqfn) src = &buf[1]; dst = &curve[4]; - *dst++ = tolower(*src); + *dst++ = tolower((unsigned char)*src); src += 2; /* skip the hyphen */ *dst++ = *src++; *dst++ = *src++; @@ -2869,10 +2869,10 @@ ecdsa_sigver_test(char *reqfn) /* Msg = ... */ if (strncmp(buf, "Msg", 3) == 0) { i = 3; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { + for (j = 0; isxdigit((unsigned char)buf[i]); i += 2, j++) { hex_to_byteval(&buf[i], &msg[j]); } msglen = j; @@ -2897,7 +2897,7 @@ ecdsa_sigver_test(char *reqfn) if (strncmp(buf, "Qx", 2) == 0) { fputs(buf, ecdsaresp); i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } keyvalid = from_hex_str(&ecpub.publicValue.data[1], flen, @@ -2911,7 +2911,7 @@ ecdsa_sigver_test(char *reqfn) continue; } i = 2; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } keyvalid = from_hex_str(&ecpub.publicValue.data[1 + flen], flen, @@ -2933,7 +2933,7 @@ ecdsa_sigver_test(char *reqfn) if (buf[0] == 'R') { fputs(buf, ecdsaresp); i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } sigvalid = from_hex_str(sig, olen, &buf[i]); @@ -2943,7 +2943,7 @@ ecdsa_sigver_test(char *reqfn) if (buf[0] == 'S') { fputs(buf, ecdsaresp); i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } if (sigvalid) { @@ -3043,7 +3043,7 @@ ecdh_functional(char *reqfn, PRBool resp while (*src && *src == ' ') src++; dst = &curve[4]; - *dst++ = tolower(*src); + *dst++ = tolower((unsigned char)*src); src += 2; /* skip the hyphen */ *dst++ = *src++; *dst++ = *src++; @@ -3128,7 +3128,7 @@ ecdh_functional(char *reqfn, PRBool resp if (strncmp(buf, "QeCAVSx", 7) == 0) { fputs(buf, ecdhresp); i = 7; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(&pubkey.data[1], len, &buf[i]); @@ -3138,7 +3138,7 @@ ecdh_functional(char *reqfn, PRBool resp if (strncmp(buf, "QeCAVSy", 7) == 0) { fputs(buf, ecdhresp); i = 7; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(&pubkey.data[1 + len], len, &buf[i]); @@ -3296,7 +3296,7 @@ ecdh_verify(char *reqfn, PRBool response while (*src && *src == ' ') src++; dst = &curve[4]; - *dst++ = tolower(*src); + *dst++ = tolower((unsigned char)*src); src += 2; /* skip the hyphen */ *dst++ = *src++; *dst++ = *src++; @@ -3381,7 +3381,7 @@ ecdh_verify(char *reqfn, PRBool response if (strncmp(buf, "QeCAVSx", 7) == 0) { fputs(buf, ecdhresp); i = 7; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(&pubkey.data[1], len, &buf[i]); @@ -3391,7 +3391,7 @@ ecdh_verify(char *reqfn, PRBool response if (strncmp(buf, "QeCAVSy", 7) == 0) { fputs(buf, ecdhresp); i = 7; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(&pubkey.data[1 + len], len, &buf[i]); @@ -3400,7 +3400,7 @@ ecdh_verify(char *reqfn, PRBool response if (strncmp(buf, "deIUT", 5) == 0) { fputs(buf, ecdhresp); i = 5; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(private_data, len, &buf[i]); @@ -3420,7 +3420,7 @@ ecdh_verify(char *reqfn, PRBool response (strncmp(buf, "HashZZ", 6) == 0)) { fputs(buf, ecdhresp); i = (buf[0] == 'C') ? 10 : 6; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(cavsHashBuf, fips_hashLen(hash), &buf[i]); @@ -3577,11 +3577,11 @@ dh_functional(char *reqfn, PRBool respon } if (buf[0] == 'P') { i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < pqg.prime.len; i += 2, j++) { - if (!isxdigit(buf[i])) { + if (!isxdigit((unsigned char)buf[i])) { pqg.prime.len = j; break; } @@ -3595,11 +3595,11 @@ dh_functional(char *reqfn, PRBool respon /* Q = ... */ if (buf[0] == 'Q') { i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < pqg.subPrime.len; i += 2, j++) { - if (!isxdigit(buf[i])) { + if (!isxdigit((unsigned char)buf[i])) { pqg.subPrime.len = j; break; } @@ -3613,11 +3613,11 @@ dh_functional(char *reqfn, PRBool respon /* G = ... */ if (buf[0] == 'G') { i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < pqg.base.len; i += 2, j++) { - if (!isxdigit(buf[i])) { + if (!isxdigit((unsigned char)buf[i])) { pqg.base.len = j; break; } @@ -3638,7 +3638,7 @@ dh_functional(char *reqfn, PRBool respon if (strncmp(buf, "YephemCAVS", 10) == 0) { fputs(buf, dhresp); i = 10; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(pubkeydata, pqg.prime.len, &buf[i]); @@ -3771,11 +3771,11 @@ dh_verify(char *reqfn, PRBool response) } if (buf[0] == 'P') { i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < pqg.prime.len; i += 2, j++) { - if (!isxdigit(buf[i])) { + if (!isxdigit((unsigned char)buf[i])) { pqg.prime.len = j; break; } @@ -3789,11 +3789,11 @@ dh_verify(char *reqfn, PRBool response) /* Q = ... */ if (buf[0] == 'Q') { i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < pqg.subPrime.len; i += 2, j++) { - if (!isxdigit(buf[i])) { + if (!isxdigit((unsigned char)buf[i])) { pqg.subPrime.len = j; break; } @@ -3807,11 +3807,11 @@ dh_verify(char *reqfn, PRBool response) /* G = ... */ if (buf[0] == 'G') { i = 1; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } for (j = 0; j < pqg.base.len; i += 2, j++) { - if (!isxdigit(buf[i])) { + if (!isxdigit((unsigned char)buf[i])) { pqg.base.len = j; break; } @@ -3832,7 +3832,7 @@ dh_verify(char *reqfn, PRBool response) if (strncmp(buf, "YephemCAVS", 10) == 0) { fputs(buf, dhresp); i = 10; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(pubkeydata, pqg.prime.len, &buf[i]); @@ -3844,7 +3844,7 @@ dh_verify(char *reqfn, PRBool response) if (strncmp(buf, "XephemIUT", 9) == 0) { fputs(buf, dhresp); i = 9; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(privkeydata, pqg.subPrime.len, &buf[i]); @@ -3862,7 +3862,7 @@ dh_verify(char *reqfn, PRBool response) (strncmp(buf, "HashZZ", 6) == 0)) { fputs(buf, dhresp); i = buf[0] == 'C' ? 10 : 6; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } from_hex_str(cavsHashBuf, fips_hashLen(hash), &buf[i]); @@ -3908,7 +3908,7 @@ loser: PRBool isblankline(char *b) { - while (isspace(*b)) + while (isspace((unsigned char)*b)) b++; if ((*b == '\n') || (*b == 0)) { return PR_TRUE; @@ -4067,7 +4067,7 @@ drbg(char *reqfn) if (strncmp(buf, "[PredictionResistance", 21) == 0) { #ifdef HANDLE_PREDICTION_RESISTANCE i = 21; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } if (strncmp(buf, "False", 5) == 0) { @@ -4200,11 +4200,11 @@ drbg(char *reqfn) if (entropyInput) { memset(entropyInput, 0, entropyInputLen); i = 18; - while (isspace(buf[i]) || buf[i] == '=') { + while (isspace((unsigned char)buf[i]) || buf[i] == '=') { i++; } - for (j = 0; isxdigit(buf[i]); i += 2, j++) { /*j