From 10b70139f2b36d84c1e210905ce7c2036f047732 Mon Sep 17 00:00:00 2001 From: Adam Wick Date: Mon, 4 Feb 2019 17:23:45 -0800 Subject: [PATCH] Some additional helpers for ECDSA signing. --- src/unsigned/invoc.rs | 25 +++++++++++++++++++++++++ test-generator/Requirements.hs | 4 +++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/unsigned/invoc.rs b/src/unsigned/invoc.rs index d1a2a6f..12dc9df 100644 --- a/src/unsigned/invoc.rs +++ b/src/unsigned/invoc.rs @@ -17,6 +17,7 @@ conversion_impls!(U192, U320); conversion_impls!(U192, U384); conversion_impls!(U192, U448); conversion_impls!(U192, U512); +conversion_impls!(U192, U768); conversion_impls!(U192, U896); conversion_impls!(U192, U1024); sqrt_impls!(U192); @@ -40,6 +41,7 @@ conversion_impls!(U256, U384); conversion_impls!(U256, U448); conversion_impls!(U256, U512); conversion_impls!(U256, U576); +conversion_impls!(U256, U1024); conversion_impls!(U256, U1152); conversion_impls!(U256, U2048); conversion_impls!(U256, U3072); @@ -73,6 +75,7 @@ conversion_impls!(U384, U448); conversion_impls!(U384, U768); conversion_impls!(U384, U832); conversion_impls!(U384, U1024); +conversion_impls!(U384, U1536); addition_impls!(U448, U512); base_impls!(U448, 7); random_impls!(U448, UniformU448); @@ -125,6 +128,7 @@ conversion_impls!(U576, U1024); conversion_impls!(U576, U1088); conversion_impls!(U576, U1152); conversion_impls!(U576, U1216); +conversion_impls!(U576, U2304); addition_impls!(U640, U704); base_impls!(U640, 10); random_impls!(U640, UniformU640); @@ -373,7 +377,13 @@ random_impls!(U2240, UniformU2240); subtraction_impls!(U2240, 35); base_impls!(U2304, 36); random_impls!(U2304, UniformU2304); +div_impls!(U2304, U4608); +multiply_impls!(U2304, U4608); +scale_impls!(U2304, U2368); subtraction_impls!(U2304, 36); +conversion_impls!(U2304, U4608); +base_impls!(U2368, 37); +random_impls!(U2368, UniformU2368); addition_impls!(U2432, U2496); base_impls!(U2432, 38); random_impls!(U2432, UniformU2432); @@ -497,6 +507,9 @@ conversion_impls!(U4224, U8448); base_impls!(U4288, 67); random_impls!(U4288, UniformU4288); subtraction_impls!(U4288, 67); +base_impls!(U4608, 72); +random_impls!(U4608, UniformU4608); +subtraction_impls!(U4608, 72); base_impls!(U4864, 76); random_impls!(U4864, UniformU4864); subtraction_impls!(U4864, 76); @@ -773,6 +786,7 @@ mod tests { generate_base_tests!(U2176, u2176); generate_base_tests!(U2240, u2240); generate_base_tests!(U2304, u2304); + generate_base_tests!(U2368, u2368); generate_base_tests!(U2432, u2432); generate_base_tests!(U2496, u2496); generate_base_tests!(U2560, u2560); @@ -787,6 +801,7 @@ mod tests { generate_base_tests!(U4160, u4160); generate_base_tests!(U4224, u4224); generate_base_tests!(U4288, u4288); + generate_base_tests!(U4608, u4608); generate_base_tests!(U4864, u4864); generate_base_tests!(U4992, u4992); generate_base_tests!(U6144, u6144); @@ -855,6 +870,7 @@ mod tests { generate_conversion_tests!(U2176, u2176); generate_conversion_tests!(U2240, u2240); generate_conversion_tests!(U2304, u2304); + generate_conversion_tests!(U2368, u2368); generate_conversion_tests!(U2432, u2432); generate_conversion_tests!(U2496, u2496); generate_conversion_tests!(U2560, u2560); @@ -869,6 +885,7 @@ mod tests { generate_conversion_tests!(U4160, u4160); generate_conversion_tests!(U4224, u4224); generate_conversion_tests!(U4288, u4288); + generate_conversion_tests!(U4608, u4608); generate_conversion_tests!(U4864, u4864); generate_conversion_tests!(U4992, u4992); generate_conversion_tests!(U6144, u6144); @@ -937,6 +954,7 @@ mod tests { generate_codec_tests!(U2176, u2176); generate_codec_tests!(U2240, u2240); generate_codec_tests!(U2304, u2304); + generate_codec_tests!(U2368, u2368); generate_codec_tests!(U2432, u2432); generate_codec_tests!(U2496, u2496); generate_codec_tests!(U2560, u2560); @@ -951,6 +969,7 @@ mod tests { generate_codec_tests!(U4160, u4160); generate_codec_tests!(U4224, u4224); generate_codec_tests!(U4288, u4288); + generate_codec_tests!(U4608, u4608); generate_codec_tests!(U4864, u4864); generate_codec_tests!(U4992, u4992); generate_codec_tests!(U6144, u6144); @@ -1022,6 +1041,7 @@ mod tests { generate_cmp_tests!(U2176, u2176); generate_cmp_tests!(U2240, u2240); generate_cmp_tests!(U2304, u2304); + generate_cmp_tests!(U2368, u2368); generate_cmp_tests!(U2432, u2432); generate_cmp_tests!(U2496, u2496); generate_cmp_tests!(U2560, u2560); @@ -1036,6 +1056,7 @@ mod tests { generate_cmp_tests!(U4160, u4160); generate_cmp_tests!(U4224, u4224); generate_cmp_tests!(U4288, u4288); + generate_cmp_tests!(U4608, u4608); generate_cmp_tests!(U4864, u4864); generate_cmp_tests!(U4992, u4992); generate_cmp_tests!(U6144, u6144); @@ -1121,6 +1142,7 @@ mod tests { generate_sub_tests!(U4160, u4160); generate_sub_tests!(U4224, u4224); generate_sub_tests!(U4288, u4288); + generate_sub_tests!(U4608, u4608); generate_sub_tests!(U4864, u4864); generate_sub_tests!(U4992, u4992); generate_sub_tests!(U6144, u6144); @@ -1333,6 +1355,7 @@ mod tests { generate_mul_tests!(U1728, u1728, U3456); generate_mul_tests!(U2048, u2048, U4096); generate_mul_tests!(U2112, u2112, U4224); + generate_mul_tests!(U2304, u2304, U4608); generate_mul_tests!(U2432, u2432, U4864); generate_mul_tests!(U2496, u2496, U4992); generate_mul_tests!(U3072, u3072, U6144); @@ -1382,6 +1405,7 @@ mod tests { generate_scale_tests!(U1728, u1728, U1792); generate_scale_tests!(U2048, u2048, U2112); generate_scale_tests!(U2112, u2112, U2176); + generate_scale_tests!(U2304, u2304, U2368); generate_scale_tests!(U2432, u2432, U2496); generate_scale_tests!(U2496, u2496, U2560); generate_scale_tests!(U3072, u3072, U3136); @@ -1431,6 +1455,7 @@ mod tests { generate_div_tests!(U1728, u1728); generate_div_tests!(U2048, u2048); generate_div_tests!(ignore U2112, u2112); + generate_div_tests!(ignore U2304, u2304); generate_div_tests!(ignore U2432, u2432); generate_div_tests!(ignore U2496, u2496); generate_div_tests!(ignore U3072, u3072); diff --git a/test-generator/Requirements.hs b/test-generator/Requirements.hs index f79abdc..5ea16e7 100644 --- a/test-generator/Requirements.hs +++ b/test-generator/Requirements.hs @@ -86,7 +86,9 @@ needs = [ Need RSA (\ size -> [Req (size `div` 2) Sub, Req size (Convert ((size * 2) + 64)), Req size (SigConvert ((size * 2) + 64)), Req (size * 2) (Convert ((size * 2) + 64)), - Req (size * 2) (SigConvert ((size * 2) + 64)) + Req (size * 2) (SigConvert ((size * 2) + 64)), + Req size (Convert (size * 4)), + Req (size * 4) Div ]) , Need PrimeGen (\ size -> [Req size Div, Req size Shifts,