Some additional helpers for ECDSA signing.

This commit is contained in:
2019-02-04 17:23:45 -08:00
parent 2d863c1907
commit 10b70139f2
2 changed files with 28 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ conversion_impls!(U192, U320);
conversion_impls!(U192, U384); conversion_impls!(U192, U384);
conversion_impls!(U192, U448); conversion_impls!(U192, U448);
conversion_impls!(U192, U512); conversion_impls!(U192, U512);
conversion_impls!(U192, U768);
conversion_impls!(U192, U896); conversion_impls!(U192, U896);
conversion_impls!(U192, U1024); conversion_impls!(U192, U1024);
sqrt_impls!(U192); sqrt_impls!(U192);
@@ -40,6 +41,7 @@ conversion_impls!(U256, U384);
conversion_impls!(U256, U448); conversion_impls!(U256, U448);
conversion_impls!(U256, U512); conversion_impls!(U256, U512);
conversion_impls!(U256, U576); conversion_impls!(U256, U576);
conversion_impls!(U256, U1024);
conversion_impls!(U256, U1152); conversion_impls!(U256, U1152);
conversion_impls!(U256, U2048); conversion_impls!(U256, U2048);
conversion_impls!(U256, U3072); conversion_impls!(U256, U3072);
@@ -73,6 +75,7 @@ conversion_impls!(U384, U448);
conversion_impls!(U384, U768); conversion_impls!(U384, U768);
conversion_impls!(U384, U832); conversion_impls!(U384, U832);
conversion_impls!(U384, U1024); conversion_impls!(U384, U1024);
conversion_impls!(U384, U1536);
addition_impls!(U448, U512); addition_impls!(U448, U512);
base_impls!(U448, 7); base_impls!(U448, 7);
random_impls!(U448, UniformU448); random_impls!(U448, UniformU448);
@@ -125,6 +128,7 @@ conversion_impls!(U576, U1024);
conversion_impls!(U576, U1088); conversion_impls!(U576, U1088);
conversion_impls!(U576, U1152); conversion_impls!(U576, U1152);
conversion_impls!(U576, U1216); conversion_impls!(U576, U1216);
conversion_impls!(U576, U2304);
addition_impls!(U640, U704); addition_impls!(U640, U704);
base_impls!(U640, 10); base_impls!(U640, 10);
random_impls!(U640, UniformU640); random_impls!(U640, UniformU640);
@@ -373,7 +377,13 @@ random_impls!(U2240, UniformU2240);
subtraction_impls!(U2240, 35); subtraction_impls!(U2240, 35);
base_impls!(U2304, 36); base_impls!(U2304, 36);
random_impls!(U2304, UniformU2304); random_impls!(U2304, UniformU2304);
div_impls!(U2304, U4608);
multiply_impls!(U2304, U4608);
scale_impls!(U2304, U2368);
subtraction_impls!(U2304, 36); subtraction_impls!(U2304, 36);
conversion_impls!(U2304, U4608);
base_impls!(U2368, 37);
random_impls!(U2368, UniformU2368);
addition_impls!(U2432, U2496); addition_impls!(U2432, U2496);
base_impls!(U2432, 38); base_impls!(U2432, 38);
random_impls!(U2432, UniformU2432); random_impls!(U2432, UniformU2432);
@@ -497,6 +507,9 @@ conversion_impls!(U4224, U8448);
base_impls!(U4288, 67); base_impls!(U4288, 67);
random_impls!(U4288, UniformU4288); random_impls!(U4288, UniformU4288);
subtraction_impls!(U4288, 67); subtraction_impls!(U4288, 67);
base_impls!(U4608, 72);
random_impls!(U4608, UniformU4608);
subtraction_impls!(U4608, 72);
base_impls!(U4864, 76); base_impls!(U4864, 76);
random_impls!(U4864, UniformU4864); random_impls!(U4864, UniformU4864);
subtraction_impls!(U4864, 76); subtraction_impls!(U4864, 76);
@@ -773,6 +786,7 @@ mod tests {
generate_base_tests!(U2176, u2176); generate_base_tests!(U2176, u2176);
generate_base_tests!(U2240, u2240); generate_base_tests!(U2240, u2240);
generate_base_tests!(U2304, u2304); generate_base_tests!(U2304, u2304);
generate_base_tests!(U2368, u2368);
generate_base_tests!(U2432, u2432); generate_base_tests!(U2432, u2432);
generate_base_tests!(U2496, u2496); generate_base_tests!(U2496, u2496);
generate_base_tests!(U2560, u2560); generate_base_tests!(U2560, u2560);
@@ -787,6 +801,7 @@ mod tests {
generate_base_tests!(U4160, u4160); generate_base_tests!(U4160, u4160);
generate_base_tests!(U4224, u4224); generate_base_tests!(U4224, u4224);
generate_base_tests!(U4288, u4288); generate_base_tests!(U4288, u4288);
generate_base_tests!(U4608, u4608);
generate_base_tests!(U4864, u4864); generate_base_tests!(U4864, u4864);
generate_base_tests!(U4992, u4992); generate_base_tests!(U4992, u4992);
generate_base_tests!(U6144, u6144); generate_base_tests!(U6144, u6144);
@@ -855,6 +870,7 @@ mod tests {
generate_conversion_tests!(U2176, u2176); generate_conversion_tests!(U2176, u2176);
generate_conversion_tests!(U2240, u2240); generate_conversion_tests!(U2240, u2240);
generate_conversion_tests!(U2304, u2304); generate_conversion_tests!(U2304, u2304);
generate_conversion_tests!(U2368, u2368);
generate_conversion_tests!(U2432, u2432); generate_conversion_tests!(U2432, u2432);
generate_conversion_tests!(U2496, u2496); generate_conversion_tests!(U2496, u2496);
generate_conversion_tests!(U2560, u2560); generate_conversion_tests!(U2560, u2560);
@@ -869,6 +885,7 @@ mod tests {
generate_conversion_tests!(U4160, u4160); generate_conversion_tests!(U4160, u4160);
generate_conversion_tests!(U4224, u4224); generate_conversion_tests!(U4224, u4224);
generate_conversion_tests!(U4288, u4288); generate_conversion_tests!(U4288, u4288);
generate_conversion_tests!(U4608, u4608);
generate_conversion_tests!(U4864, u4864); generate_conversion_tests!(U4864, u4864);
generate_conversion_tests!(U4992, u4992); generate_conversion_tests!(U4992, u4992);
generate_conversion_tests!(U6144, u6144); generate_conversion_tests!(U6144, u6144);
@@ -937,6 +954,7 @@ mod tests {
generate_codec_tests!(U2176, u2176); generate_codec_tests!(U2176, u2176);
generate_codec_tests!(U2240, u2240); generate_codec_tests!(U2240, u2240);
generate_codec_tests!(U2304, u2304); generate_codec_tests!(U2304, u2304);
generate_codec_tests!(U2368, u2368);
generate_codec_tests!(U2432, u2432); generate_codec_tests!(U2432, u2432);
generate_codec_tests!(U2496, u2496); generate_codec_tests!(U2496, u2496);
generate_codec_tests!(U2560, u2560); generate_codec_tests!(U2560, u2560);
@@ -951,6 +969,7 @@ mod tests {
generate_codec_tests!(U4160, u4160); generate_codec_tests!(U4160, u4160);
generate_codec_tests!(U4224, u4224); generate_codec_tests!(U4224, u4224);
generate_codec_tests!(U4288, u4288); generate_codec_tests!(U4288, u4288);
generate_codec_tests!(U4608, u4608);
generate_codec_tests!(U4864, u4864); generate_codec_tests!(U4864, u4864);
generate_codec_tests!(U4992, u4992); generate_codec_tests!(U4992, u4992);
generate_codec_tests!(U6144, u6144); generate_codec_tests!(U6144, u6144);
@@ -1022,6 +1041,7 @@ mod tests {
generate_cmp_tests!(U2176, u2176); generate_cmp_tests!(U2176, u2176);
generate_cmp_tests!(U2240, u2240); generate_cmp_tests!(U2240, u2240);
generate_cmp_tests!(U2304, u2304); generate_cmp_tests!(U2304, u2304);
generate_cmp_tests!(U2368, u2368);
generate_cmp_tests!(U2432, u2432); generate_cmp_tests!(U2432, u2432);
generate_cmp_tests!(U2496, u2496); generate_cmp_tests!(U2496, u2496);
generate_cmp_tests!(U2560, u2560); generate_cmp_tests!(U2560, u2560);
@@ -1036,6 +1056,7 @@ mod tests {
generate_cmp_tests!(U4160, u4160); generate_cmp_tests!(U4160, u4160);
generate_cmp_tests!(U4224, u4224); generate_cmp_tests!(U4224, u4224);
generate_cmp_tests!(U4288, u4288); generate_cmp_tests!(U4288, u4288);
generate_cmp_tests!(U4608, u4608);
generate_cmp_tests!(U4864, u4864); generate_cmp_tests!(U4864, u4864);
generate_cmp_tests!(U4992, u4992); generate_cmp_tests!(U4992, u4992);
generate_cmp_tests!(U6144, u6144); generate_cmp_tests!(U6144, u6144);
@@ -1121,6 +1142,7 @@ mod tests {
generate_sub_tests!(U4160, u4160); generate_sub_tests!(U4160, u4160);
generate_sub_tests!(U4224, u4224); generate_sub_tests!(U4224, u4224);
generate_sub_tests!(U4288, u4288); generate_sub_tests!(U4288, u4288);
generate_sub_tests!(U4608, u4608);
generate_sub_tests!(U4864, u4864); generate_sub_tests!(U4864, u4864);
generate_sub_tests!(U4992, u4992); generate_sub_tests!(U4992, u4992);
generate_sub_tests!(U6144, u6144); generate_sub_tests!(U6144, u6144);
@@ -1333,6 +1355,7 @@ mod tests {
generate_mul_tests!(U1728, u1728, U3456); generate_mul_tests!(U1728, u1728, U3456);
generate_mul_tests!(U2048, u2048, U4096); generate_mul_tests!(U2048, u2048, U4096);
generate_mul_tests!(U2112, u2112, U4224); generate_mul_tests!(U2112, u2112, U4224);
generate_mul_tests!(U2304, u2304, U4608);
generate_mul_tests!(U2432, u2432, U4864); generate_mul_tests!(U2432, u2432, U4864);
generate_mul_tests!(U2496, u2496, U4992); generate_mul_tests!(U2496, u2496, U4992);
generate_mul_tests!(U3072, u3072, U6144); generate_mul_tests!(U3072, u3072, U6144);
@@ -1382,6 +1405,7 @@ mod tests {
generate_scale_tests!(U1728, u1728, U1792); generate_scale_tests!(U1728, u1728, U1792);
generate_scale_tests!(U2048, u2048, U2112); generate_scale_tests!(U2048, u2048, U2112);
generate_scale_tests!(U2112, u2112, U2176); generate_scale_tests!(U2112, u2112, U2176);
generate_scale_tests!(U2304, u2304, U2368);
generate_scale_tests!(U2432, u2432, U2496); generate_scale_tests!(U2432, u2432, U2496);
generate_scale_tests!(U2496, u2496, U2560); generate_scale_tests!(U2496, u2496, U2560);
generate_scale_tests!(U3072, u3072, U3136); generate_scale_tests!(U3072, u3072, U3136);
@@ -1431,6 +1455,7 @@ mod tests {
generate_div_tests!(U1728, u1728); generate_div_tests!(U1728, u1728);
generate_div_tests!(U2048, u2048); generate_div_tests!(U2048, u2048);
generate_div_tests!(ignore U2112, u2112); generate_div_tests!(ignore U2112, u2112);
generate_div_tests!(ignore U2304, u2304);
generate_div_tests!(ignore U2432, u2432); generate_div_tests!(ignore U2432, u2432);
generate_div_tests!(ignore U2496, u2496); generate_div_tests!(ignore U2496, u2496);
generate_div_tests!(ignore U3072, u3072); generate_div_tests!(ignore U3072, u3072);

View File

@@ -86,7 +86,9 @@ needs = [ Need RSA (\ size -> [Req (size `div` 2) Sub,
Req size (Convert ((size * 2) + 64)), Req size (Convert ((size * 2) + 64)),
Req size (SigConvert ((size * 2) + 64)), Req size (SigConvert ((size * 2) + 64)),
Req (size * 2) (Convert ((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, , Need PrimeGen (\ size -> [Req size Div,
Req size Shifts, Req size Shifts,