summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjulien.pierre.boogz%sun.com <devnull@localhost>2009-03-26 01:41:13 +0000
committerjulien.pierre.boogz%sun.com <devnull@localhost>2009-03-26 01:41:13 +0000
commit958996bba46647b43d7541c755cf3ab8cfcfd6b1 (patch)
tree0d48736d1d63ec117c45794e225e1d2e407c9eaa
parent12ac0bd7dab70c442453e559459ac10a4ed45617 (diff)
downloadnss-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.c25
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, &params->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 *)&params->rc5;
else
+#endif
skp = &params->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;
}
+