diff options
author | julien.pierre.boogz%sun.com <devnull@localhost> | 2009-03-26 01:41:13 +0000 |
---|---|---|
committer | julien.pierre.boogz%sun.com <devnull@localhost> | 2009-03-26 01:41:13 +0000 |
commit | 958996bba46647b43d7541c755cf3ab8cfcfd6b1 (patch) | |
tree | 0d48736d1d63ec117c45794e225e1d2e407c9eaa | |
parent | 12ac0bd7dab70c442453e559459ac10a4ed45617 (diff) | |
download | nss-hg-958996bba46647b43d7541c755cf3ab8cfcfd6b1.tar.gz |
Fix for bug 485127 . bltest crashed when attempting rc5_cbc or rc5_ecb . r=nelson
-rw-r--r-- | security/nss/cmd/bltest/blapitest.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/security/nss/cmd/bltest/blapitest.c b/security/nss/cmd/bltest/blapitest.c index 5f8b673c6..0b156d716 100644 --- a/security/nss/cmd/bltest/blapitest.c +++ b/security/nss/cmd/bltest/blapitest.c @@ -667,8 +667,10 @@ typedef enum { bltestRC2_ECB, /* . */ bltestRC2_CBC, /* . */ bltestRC4, /* . */ +#ifdef NSS_SOFTOKEN_DOES_RC5 bltestRC5_ECB, /* . */ bltestRC5_CBC, /* . */ +#endif bltestAES_ECB, /* . */ bltestAES_CBC, /* . */ bltestCAMELLIA_ECB, /* . */ @@ -698,8 +700,10 @@ static char *mode_strings[] = "rc2_ecb", "rc2_cbc", "rc4", +#ifdef NSS_SOFTOKEN_DOES_RC5 "rc5_ecb", "rc5_cbc", +#endif "aes_ecb", "aes_cbc", "camellia_ecb", @@ -862,7 +866,10 @@ cipher_requires_IV(bltestCipherMode mode) { /* change as needed! */ if (mode == bltestDES_CBC || mode == bltestDES_EDE_CBC || - mode == bltestRC2_CBC || mode == bltestRC5_CBC || + mode == bltestRC2_CBC || +#ifdef NSS_SOFTOKEN_DOES_RC5 + mode == bltestRC5_CBC || +#endif mode == bltestAES_CBC || mode == bltestCAMELLIA_CBC|| mode == bltestSEED_CBC) return PR_TRUE; @@ -1288,7 +1295,7 @@ bltest_rc4_init(bltestCipherInfo *cipherInfo, PRBool encrypt) SECStatus bltest_rc5_init(bltestCipherInfo *cipherInfo, PRBool encrypt) { -#if NSS_SOFTOKEN_DOES_RC5 +#ifdef NSS_SOFTOKEN_DOES_RC5 PRIntervalTime time1, time2; bltestRC5Params *rc5p = &cipherInfo->params.rc5; int minorMode; @@ -1979,9 +1986,9 @@ cipherInit(bltestCipherInfo *cipherInfo, PRBool encrypt) cipherInfo->input.pBuf.len); return bltest_rc4_init(cipherInfo, encrypt); break; +#ifdef NSS_SOFTOKEN_DOES_RC5 case bltestRC5_ECB: case bltestRC5_CBC: -#if NSS_SOFTOKEN_DOES_RC5 SECITEM_AllocItem(cipherInfo->arena, &cipherInfo->output.buf, cipherInfo->input.pBuf.len); #endif @@ -2470,7 +2477,7 @@ cipherFinish(bltestCipherInfo *cipherInfo) case bltestRC4: RC4_DestroyContext((RC4Context *)cipherInfo->cx, PR_TRUE); break; -#if NSS_SOFTOKEN_DOES_RC5 +#ifdef NSS_SOFTOKEN_DOES_RC5 case bltestRC5_ECB: case bltestRC5_CBC: RC5_DestroyContext((RC5Context *)cipherInfo->cx, PR_TRUE); @@ -2623,7 +2630,7 @@ print_td: else fprintf(stdout, "%8d", 8*info->params.sk.key.buf.len); break; -#if NSS_SOFTOKEN_DOES_RC5 +#ifdef NSS_SOFTOKEN_DOES_RC5 case bltestRC5_ECB: case bltestRC5_CBC: if (info->params.sk.key.buf.len > 0) @@ -2747,7 +2754,7 @@ get_params(PRArenaPool *arena, bltestParams *params, { char filename[256]; char *modestr = mode_strings[mode]; -#if NSS_SOFTOKEN_DOES_RC5 +#ifdef NSS_SOFTOKEN_DOES_RC5 FILE *file; char *mark, *param, *val; int index = 0; @@ -2771,7 +2778,7 @@ get_params(PRArenaPool *arena, bltestParams *params, sprintf(filename, "%s/tests/%s/%s%d", testdir, modestr, "key", j); load_file_data(arena, ¶ms->sk.key, filename, bltestBinary); break; -#if NSS_SOFTOKEN_DOES_RC5 +#ifdef NSS_SOFTOKEN_DOES_RC5 case bltestRC5_ECB: case bltestRC5_CBC: sprintf(filename, "%s/tests/%s/%s%d", testdir, modestr, "iv", j); @@ -2918,7 +2925,6 @@ blapi_selftest(bltestCipherMode *modes, int numModes, int inoff, int outoff, finished = PR_FALSE; nummodes = (numModes == 0) ? NUMMODES : numModes; for (i=0; i < nummodes && !finished; i++) { - if (i == bltestRC5_ECB || i == bltestRC5_CBC) continue; if (numModes > 0) mode = modes[i]; else @@ -3542,9 +3548,11 @@ int main(int argc, char **argv) char *ivstr = NULL; bltestSymmKeyParams *skp; file = NULL; +#ifdef NSS_SOFTOKEN_DOES_RC5 if (cipherInfo->mode == bltestRC5_CBC) skp = (bltestSymmKeyParams *)¶ms->rc5; else +#endif skp = ¶ms->sk; if (bltest.options[opt_IV].activated) { if (bltest.options[opt_CmdLine].activated) { @@ -3734,3 +3742,4 @@ int main(int argc, char **argv) return SECSuccess; } + |