Add modular multiplication suppor for U384 and U576.
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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
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
6006
testdata/modmul/00576.test
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user