1010//! Apache License (Version 2.0), and the BSD 1-Clause License;
1111//! users may pick which license to apply.
1212
13+ #[ cfg( not( bp256_backend = "bignum" ) ) ]
1314#[ cfg_attr( target_pointer_width = "32" , path = "scalar/bp256_scalar_32.rs" ) ]
1415#[ cfg_attr( target_pointer_width = "64" , path = "scalar/bp256_scalar_64.rs" ) ]
1516#[ allow(
2122#[ allow( dead_code) ] // TODO(tarcieri): remove this when we can use `const _` to silence warnings
2223mod scalar_impl;
2324
24- use self :: scalar_impl:: * ;
2525use crate :: { BrainpoolP256r1 , BrainpoolP256t1 , FieldBytes , ORDER , ORDER_HEX , U256 } ;
2626use elliptic_curve:: {
2727 bigint:: { ArrayEncoding , Limb } ,
@@ -31,6 +31,9 @@ use elliptic_curve::{
3131 subtle:: { Choice , ConditionallySelectable , ConstantTimeEq , ConstantTimeGreater , CtOption } ,
3232} ;
3333
34+ #[ cfg( not( bp256_backend = "bignum" ) ) ]
35+ use self :: scalar_impl:: * ;
36+
3437#[ cfg( doc) ]
3538use core:: ops:: { Add , Mul , Sub } ;
3639
@@ -50,6 +53,14 @@ primefield::monty_field_element! {
5053 doc: "Element in the brainpoolP256 scalar field modulo n"
5154}
5255
56+ #[ cfg( bp256_backend = "bignum" ) ]
57+ primefield:: monty_field_arithmetic! {
58+ name: Scalar ,
59+ params: ScalarParams ,
60+ uint: U256
61+ }
62+
63+ #[ cfg( not( bp256_backend = "bignum" ) ) ]
5364primefield:: fiat_monty_field_arithmetic! {
5465 name: Scalar ,
5566 params: ScalarParams ,
@@ -111,12 +122,15 @@ impl Reduce<FieldBytes> for Scalar {
111122#[ cfg( test) ]
112123mod tests {
113124 use super :: { Scalar , U256 } ;
125+ #[ cfg( not( bp256_backend = "bignum" ) ) ]
114126 use super :: {
115127 ScalarParams , fiat_bp256_scalar_montgomery_domain_field_element, fiat_bp256_scalar_msat,
116128 fiat_bp256_scalar_non_montgomery_domain_field_element, fiat_bp256_scalar_to_montgomery,
117129 } ;
118130
119131 primefield:: test_primefield!( Scalar , U256 ) ;
132+
133+ #[ cfg( not( bp256_backend = "bignum" ) ) ]
120134 primefield:: test_fiat_monty_field_arithmetic!(
121135 name: Scalar ,
122136 params: ScalarParams ,
0 commit comments