@@ -25,11 +25,10 @@ use num_integer::Integer;
25
25
use num_traits:: { One , ToPrimitive , Zero } ;
26
26
use once_cell:: unsync:: Lazy ;
27
27
use p256_:: elliptic_curve:: group:: prime:: PrimeCurveAffine ;
28
- use p256_:: elliptic_curve:: group:: GroupEncoding ;
29
28
use p256_:: elliptic_curve:: ops:: Reduce ;
30
29
use p256_:: elliptic_curve:: sec1:: { FromEncodedPoint , ToEncodedPoint } ;
31
30
use p256_:: elliptic_curve:: Field ;
32
- use p256_:: { AffinePoint , EncodedPoint , NistP256 , ProjectivePoint , Scalar , SecretKey } ;
31
+ use p256_:: { AffinePoint , EncodedPoint , NistP256 , ProjectivePoint , PublicKey , Scalar , SecretKey } ;
33
32
use rand_core:: { CryptoRng , RngCore } ;
34
33
use subtle:: { Choice , ConditionallySelectable } ;
35
34
@@ -162,10 +161,10 @@ impl Group for NistP256 {
162
161
Option :: from ( scalar. invert ( ) ) . unwrap ( )
163
162
}
164
163
165
- fn from_element_slice_unchecked (
166
- element_bits : & GenericArray < u8 , Self :: ElemLen > ,
167
- ) -> Result < Self :: Elem > {
168
- Option :: from ( ProjectivePoint :: from_bytes ( element_bits ) ) . ok_or ( Error :: PointError )
164
+ fn deserialize_element ( element_bits : & GenericArray < u8 , Self :: ElemLen > ) -> Result < Self :: Elem > {
165
+ PublicKey :: from_sec1_bytes ( element_bits )
166
+ . map ( |public_key| public_key . to_projective ( ) )
167
+ . map_err ( |_| Error :: PointError )
169
168
}
170
169
171
170
fn to_arr ( elem : Self :: Elem ) -> GenericArray < u8 , Self :: ElemLen > {
0 commit comments