@@ -202,13 +202,14 @@ impl Credential {
202202fn deserialize_bytes < E : serde:: de:: Error , const N : usize > (
203203 s : & [ u8 ] ,
204204) -> core:: result:: Result < Bytes < N > , E > {
205- Bytes :: from_slice ( s) . map_err ( |_| E :: invalid_length ( s. len ( ) , & "a fixed-size sequence of bytes" ) )
205+ Bytes :: try_from ( s) . map_err ( |_| E :: invalid_length ( s. len ( ) , & "a fixed-size sequence of bytes" ) )
206206}
207207
208208fn deserialize_str < E : serde:: de:: Error , const N : usize > (
209209 s : & str ,
210210) -> core:: result:: Result < String < N > , E > {
211- Ok ( s. into ( ) )
211+ s. try_into ( )
212+ . map_err ( |_| E :: custom ( "Serialized string doesn't fit " ) )
212213}
213214
214215#[ derive( Clone , Copy , Debug , PartialEq ) ]
@@ -794,20 +795,20 @@ mod test {
794795 fn credential_data ( ) -> CredentialData {
795796 CredentialData {
796797 rp : Rp :: new ( PublicKeyCredentialRpEntity {
797- id : String :: from ( "John Doe" ) ,
798+ id : String :: try_from ( "John Doe" ) . unwrap ( ) ,
798799 name : None ,
799800 icon : None ,
800801 } ) ,
801802 user : User :: new ( PublicKeyCredentialUserEntity {
802- id : Bytes :: from_slice ( & [ 1 , 2 , 3 ] ) . unwrap ( ) ,
803+ id : Bytes :: from ( & [ 1 , 2 , 3 ] ) ,
803804 icon : None ,
804805 name : None ,
805806 display_name : None ,
806807 } ) ,
807808 creation_time : 123 ,
808809 use_counter : false ,
809810 algorithm : -7 ,
810- key : Key :: WrappedKey ( Bytes :: from_slice ( & [ 1 , 2 , 3 ] ) . unwrap ( ) ) ,
811+ key : Key :: WrappedKey ( Bytes :: from ( & [ 1 , 2 , 3 ] ) ) ,
811812 hmac_secret : Some ( false ) ,
812813 cred_protect : None ,
813814 use_short_id : Some ( true ) ,
@@ -821,15 +822,15 @@ mod test {
821822 rp : Rp {
822823 format : SerializationFormat :: Long ,
823824 inner : PublicKeyCredentialRpEntity {
824- id : String :: from ( "John Doe" ) ,
825+ id : String :: try_from ( "John Doe" ) . unwrap ( ) ,
825826 name : None ,
826827 icon : None ,
827828 } ,
828829 } ,
829830 user : User {
830831 format : SerializationFormat :: Long ,
831832 inner : PublicKeyCredentialUserEntity {
832- id : Bytes :: from_slice ( & [ 1 , 2 , 3 ] ) . unwrap ( ) ,
833+ id : Bytes :: from ( & [ 1 , 2 , 3 ] ) ,
833834 icon : None ,
834835 name : None ,
835836 display_name : None ,
@@ -838,7 +839,7 @@ mod test {
838839 creation_time : 123 ,
839840 use_counter : false ,
840841 algorithm : -7 ,
841- key : Key :: WrappedKey ( Bytes :: from_slice ( & [ 1 , 2 , 3 ] ) . unwrap ( ) ) ,
842+ key : Key :: WrappedKey ( Bytes :: from ( & [ 1 , 2 , 3 ] ) ) ,
842843 hmac_secret : Some ( false ) ,
843844 cred_protect : None ,
844845 use_short_id : None ,
@@ -865,7 +866,7 @@ mod test {
865866 let between = Uniform :: from ( 0 ..( N + 1 ) ) ;
866867 let n = between. sample ( & mut OsRng ) ;
867868
868- bytes. resize_default ( n) . unwrap ( ) ;
869+ bytes. resize_zero ( n) . unwrap ( ) ;
869870
870871 OsRng . fill_bytes ( & mut bytes) ;
871872 bytes
@@ -1079,7 +1080,7 @@ mod test {
10791080 #[ test]
10801081 fn max_credential_id ( ) {
10811082 let rp_id: String < 256 > = core:: iter:: repeat_n ( '?' , 256 ) . collect ( ) ;
1082- let key = Bytes :: from_slice ( & [ u8:: MAX ; 128 ] ) . unwrap ( ) ;
1083+ let key = Bytes :: from ( & [ u8:: MAX ; 128 ] ) ;
10831084 let credential = StrippedCredential {
10841085 ctap : CtapVersion :: Fido21Pre ,
10851086 creation_time : u32:: MAX ,
@@ -1160,8 +1161,8 @@ mod test {
11601161
11611162 fn inner ( & self ) -> PublicKeyCredentialRpEntity {
11621163 PublicKeyCredentialRpEntity {
1163- id : self . id . into ( ) ,
1164- name : self . name . map ( From :: from ) ,
1164+ id : self . id . try_into ( ) . unwrap ( ) ,
1165+ name : self . name . map ( |n| n . try_into ( ) . unwrap ( ) ) ,
11651166 icon : None ,
11661167 }
11671168 }
@@ -1225,10 +1226,10 @@ mod test {
12251226
12261227 fn inner ( & self ) -> PublicKeyCredentialUserEntity {
12271228 PublicKeyCredentialUserEntity {
1228- id : Bytes :: from_slice ( self . id ) . unwrap ( ) ,
1229- icon : self . icon . map ( From :: from ) ,
1230- name : self . name . map ( From :: from ) ,
1231- display_name : self . display_name . map ( From :: from ) ,
1229+ id : Bytes :: try_from ( self . id ) . unwrap ( ) ,
1230+ icon : self . icon . map ( |v| v . try_into ( ) . unwrap ( ) ) ,
1231+ name : self . name . map ( |v| v . try_into ( ) . unwrap ( ) ) ,
1232+ display_name : self . display_name . map ( |v| v . try_into ( ) . unwrap ( ) ) ,
12321233 }
12331234 }
12341235 }
@@ -1300,7 +1301,7 @@ mod test {
13001301 "
13011302 ) ;
13021303
1303- let credential = FullCredential :: deserialize ( & Bytes :: from_slice ( & data) . unwrap ( ) ) . unwrap ( ) ;
1304+ let credential = FullCredential :: deserialize ( & Bytes :: from ( & data) ) . unwrap ( ) ;
13041305 assert ! ( matches!( credential. ctap, CtapVersion :: Fido21Pre ) ) ;
13051306 assert_eq ! ( credential. nonce, & hex!( "F62CA01ED181A3D03D561FC7" ) ) ;
13061307 assert_eq ! (
@@ -1309,17 +1310,17 @@ mod test {
13091310 rp: Rp {
13101311 format: SerializationFormat :: Long ,
13111312 inner: PublicKeyCredentialRpEntity {
1312- id: "webauthn.io" . into ( ) ,
1313+ id: "webauthn.io" . try_into ( ) . unwrap ( ) ,
13131314 name: None ,
13141315 icon: None ,
13151316 } ,
13161317 } ,
13171318 user: User {
13181319 format: SerializationFormat :: Long ,
13191320 inner: PublicKeyCredentialUserEntity {
1320- id: Bytes :: from_slice ( & hex!( "6447567A644445" ) ) . unwrap ( ) ,
1321+ id: Bytes :: from ( & hex!( "6447567A644445" ) ) ,
13211322 icon: None ,
1322- name: Some ( "test1" . into ( ) ) ,
1323+ name: Some ( "test1" . try_into ( ) . unwrap ( ) ) ,
13231324 display_name: None ,
13241325 } ,
13251326 } ,
0 commit comments