Index: mozilla/security/nss/lib/freebl/ecl/ecl.c |
=================================================================== |
--- mozilla/security/nss/lib/freebl/ecl/ecl.c (revision 177437) |
+++ mozilla/security/nss/lib/freebl/ecl/ecl.c (working copy) |
@@ -215,8 +215,8 @@ |
/* determine which optimizations (if any) to use */ |
if (params->field == ECField_GFp) { |
+ switch (name) { |
#ifdef NSS_ECC_MORE_THAN_SUITE_B |
- switch (name) { |
#ifdef ECL_USE_FP |
case ECCurve_SECG_PRIME_160R1: |
group = |
@@ -256,29 +256,32 @@ |
MP_CHECKOK(ec_group_set_gfp224(group, name)); |
#endif |
break; |
- case ECCurve_SECG_PRIME_256R1: |
+ case ECCurve_SECG_PRIME_521R1: |
group = |
ECGroup_consGFp(&irr, &curvea, &curveb, &genx, &geny, |
&order, params->cofactor); |
if (group == NULL) { res = MP_UNDEF; goto CLEANUP; } |
- MP_CHECKOK(ec_group_set_gfp256(group, name)); |
+ MP_CHECKOK(ec_group_set_gfp521(group, name)); |
break; |
- case ECCurve_SECG_PRIME_521R1: |
+#endif /* NSS_ECC_MORE_THAN_SUITE_B */ |
+ case ECCurve_SECG_PRIME_256R1: |
group = |
ECGroup_consGFp(&irr, &curvea, &curveb, &genx, &geny, |
&order, params->cofactor); |
if (group == NULL) { res = MP_UNDEF; goto CLEANUP; } |
- MP_CHECKOK(ec_group_set_gfp521(group, name)); |
+#ifdef NSS_ECC_MORE_THAN_SUITE_B |
+ MP_CHECKOK(ec_group_set_gfp256(group, name)); |
+#endif |
+ MP_CHECKOK(ec_group_set_gfp256_32(group, name)); |
break; |
default: |
/* use generic arithmetic */ |
-#endif |
group = |
ECGroup_consGFp_mont(&irr, &curvea, &curveb, &genx, &geny, |
&order, params->cofactor); |
if (group == NULL) { res = MP_UNDEF; goto CLEANUP; } |
+ } |
#ifdef NSS_ECC_MORE_THAN_SUITE_B |
- } |
} else if (params->field == ECField_GF2m) { |
group = ECGroup_consGF2m(&irr, NULL, &curvea, &curveb, &genx, &geny, &order, params->cofactor); |
if (group == NULL) { res = MP_UNDEF; goto CLEANUP; } |