Add modular multiplication suppor for U384 and U576.

This commit is contained in:
2019-02-11 12:34:59 -08:00
parent 2d70341a58
commit fbee1f2729
4 changed files with 12019 additions and 0 deletions

View File

@@ -66,6 +66,7 @@ base_impls!(U384, 6);
random_impls!(U384, UniformU384); random_impls!(U384, UniformU384);
barrett_impl!(BarrettU384, U384, U448, U768, U832); barrett_impl!(BarrettU384, U384, U448, U768, U832);
div_impls!(U384, U768); div_impls!(U384, U768);
modmul_impls!(U384, U768, BarrettU384);
multiply_impls!(U384, U768); multiply_impls!(U384, U768);
scale_impls!(U384, U448); scale_impls!(U384, U448);
shift_impls!(U384, 6); shift_impls!(U384, 6);
@@ -118,6 +119,7 @@ base_impls!(U576, 9);
random_impls!(U576, UniformU576); random_impls!(U576, UniformU576);
barrett_impl!(BarrettU576, U576, U640, U1152, U1216); barrett_impl!(BarrettU576, U576, U640, U1152, U1216);
div_impls!(U576, U1152); div_impls!(U576, U1152);
modmul_impls!(U576, U1152, BarrettU576);
multiply_impls!(U576, U1152); multiply_impls!(U576, U1152);
scale_impls!(U576, U640); scale_impls!(U576, U640);
shift_impls!(U576, 9); shift_impls!(U576, 9);
@@ -1542,7 +1544,9 @@ mod tests {
generate_modmul_tests!(U192, u192); generate_modmul_tests!(U192, u192);
generate_modmul_tests!(U256, u256); generate_modmul_tests!(U256, u256);
generate_modmul_tests!(U384, u384);
generate_modmul_tests!(U512, u512); generate_modmul_tests!(U512, u512);
generate_modmul_tests!(U576, u576);
generate_modmul_tests!(U1024, u1024); generate_modmul_tests!(U1024, u1024);
generate_modmul_tests!(U1536, u1536); generate_modmul_tests!(U1536, u1536);
generate_modmul_tests!(U2048, u2048); generate_modmul_tests!(U2048, u2048);
@@ -1635,7 +1639,9 @@ mod tests {
generate_barrett_modmul_tests!(U192, u192, U256); generate_barrett_modmul_tests!(U192, u192, U256);
generate_barrett_modmul_tests!(U256, u256, U320); generate_barrett_modmul_tests!(U256, u256, U320);
generate_barrett_modmul_tests!(U384, u384, U448);
generate_barrett_modmul_tests!(U512, u512, U576); generate_barrett_modmul_tests!(U512, u512, U576);
generate_barrett_modmul_tests!(U576, u576, U640);
generate_barrett_modmul_tests!(U1024, u1024, U1088); generate_barrett_modmul_tests!(U1024, u1024, U1088);
generate_barrett_modmul_tests!(U1536, u1536, U1600); generate_barrett_modmul_tests!(U1536, u1536, U1600);
generate_barrett_modmul_tests!(U2048, u2048, U2112); generate_barrett_modmul_tests!(U2048, u2048, U2112);

View File

@@ -69,6 +69,7 @@ needs = [ Need RSA (\ size -> [Req (size `div` 2) Sub,
]) ])
, Need ECDSA (\ size -> [Req size SignedSub, , Need ECDSA (\ size -> [Req size SignedSub,
Req size SignedMul, Req size SignedMul,
Req size ModMul,
Req size ModDiv, Req size ModDiv,
Req (size * 2) BaseOps, Req (size * 2) BaseOps,
Req (size * 2) SignedBase, Req (size * 2) SignedBase,

6006
testdata/modmul/00384.test vendored Normal file

File diff suppressed because it is too large Load Diff

6006
testdata/modmul/00576.test vendored Normal file

File diff suppressed because it is too large Load Diff