@@ -50,24 +50,13 @@ pub fn parse_pcie_identifiers(vid: String, dev_id: String) -> Result<(u16, u16),
5050///
5151/// The corresponding libspdm value for the version, None if not found.
5252pub fn parse_spdm_responder_version ( spdm_ver : Option < String > ) -> Option < u8 > {
53- if let Some ( ver) = spdm_ver {
54- match ver. as_str ( ) {
55- "1.0" => {
56- return Some ( u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_10 ) . unwrap ( ) )
57- }
58- "1.1" => {
59- return Some ( u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_11 ) . unwrap ( ) )
60- }
61- "1.2" => {
62- return Some ( u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_12 ) . unwrap ( ) )
63- }
64- "1.3" => {
65- return Some ( u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_13 ) . unwrap ( ) )
66- }
67- _ => return None ,
68- }
69- }
70- None
53+ spdm_ver. and_then ( |ver| match ver. as_str ( ) {
54+ "1.0" => u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_10 ) . ok ( ) ,
55+ "1.1" => u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_11 ) . ok ( ) ,
56+ "1.2" => u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_12 ) . ok ( ) ,
57+ "1.3" => u8:: try_from ( libspdm:: libspdm_rs:: SPDM_MESSAGE_VERSION_13 ) . ok ( ) ,
58+ _ => None ,
59+ } )
7160}
7261
7362/// # Summary
@@ -100,19 +89,33 @@ pub fn parse_aead_cipher_suite(aead_cipher_suites: Option<String>) -> Result<u16
10089 match suite. as_str ( ) {
10190 "AES_128_GCM" => {
10291 libspdm_aead_cipher_suites |=
103- u16:: try_from ( SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_128_GCM ) . unwrap ( ) ;
92+ u16:: try_from ( SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_128_GCM ) . map_err ( |e| {
93+ error ! ( "AEAD type conversion error: {e}" ) ;
94+ ( )
95+ } ) ?;
10496 }
10597 "AES_256_GCM" => {
10698 libspdm_aead_cipher_suites |=
107- u16:: try_from ( SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_256_GCM ) . unwrap ( ) ;
99+ u16:: try_from ( SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AES_256_GCM ) . map_err ( |e| {
100+ error ! ( "AEAD type conversion error: {e}" ) ;
101+ ( )
102+ } ) ?;
108103 }
109104 "CHACHA20_POLY1305" => {
110- libspdm_aead_cipher_suites |=
111- u16:: try_from ( SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_CHACHA20_POLY1305 ) . unwrap ( ) ;
105+ libspdm_aead_cipher_suites |= u16:: try_from (
106+ SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_CHACHA20_POLY1305 ,
107+ )
108+ . map_err ( |e| {
109+ error ! ( "AEAD type conversion error: {e}" ) ;
110+ ( )
111+ } ) ?;
112112 }
113113 "AEAD_SM4_GCM" => {
114114 libspdm_aead_cipher_suites |=
115- u16:: try_from ( SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AEAD_SM4_GCM ) . unwrap ( ) ;
115+ u16:: try_from ( SPDM_ALGORITHMS_AEAD_CIPHER_SUITE_AEAD_SM4_GCM ) . map_err ( |e| {
116+ error ! ( "AEAD type conversion error: {e}" ) ;
117+ ( )
118+ } ) ?;
116119 }
117120 _ => {
118121 error ! ( "Unsupported AEAD Cipher Suite ({})" , suite) ;
@@ -160,32 +163,53 @@ pub fn parse_dhe_named_groups(dhe_groups: Option<String>) -> Result<u16, ()> {
160163 for group in groups {
161164 match group. as_str ( ) {
162165 "FFDHE_2048" => {
163- libspdm_dhe_groups |=
164- u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_2048 ) . unwrap ( ) ;
166+ libspdm_dhe_groups |= u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_2048 )
167+ . map_err ( |e| {
168+ error ! ( "DHE type conversion error: {e}" ) ;
169+ ( )
170+ } ) ?;
165171 }
166172 "FFDHE_3072" => {
167- libspdm_dhe_groups |=
168- u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_3072 ) . unwrap ( ) ;
173+ libspdm_dhe_groups |= u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_3072 )
174+ . map_err ( |e| {
175+ error ! ( "DHE type conversion error: {e}" ) ;
176+ ( )
177+ } ) ?;
169178 }
170179 "FFDHE_4096" => {
171- libspdm_dhe_groups |=
172- u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_4096 ) . unwrap ( ) ;
180+ libspdm_dhe_groups |= u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_FFDHE_4096 )
181+ . map_err ( |e| {
182+ error ! ( "DHE type conversion error: {e}" ) ;
183+ ( )
184+ } ) ?;
173185 }
174186 "SECP_256_R1" => {
175- libspdm_dhe_groups |=
176- u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_256_R1 ) . unwrap ( ) ;
187+ libspdm_dhe_groups |= u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_256_R1 )
188+ . map_err ( |e| {
189+ error ! ( "DHE type conversion error: {e}" ) ;
190+ ( )
191+ } ) ?;
177192 }
178193 "SECP_384_R1" => {
179- libspdm_dhe_groups |=
180- u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_384_R1 ) . unwrap ( ) ;
194+ libspdm_dhe_groups |= u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_384_R1 )
195+ . map_err ( |e| {
196+ error ! ( "DHE type conversion error: {e}" ) ;
197+ ( )
198+ } ) ?;
181199 }
182200 "SECP_521_R1" => {
183- libspdm_dhe_groups |=
184- u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_521_R1 ) . unwrap ( ) ;
201+ libspdm_dhe_groups |= u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SECP_521_R1 )
202+ . map_err ( |e| {
203+ error ! ( "DHE type conversion error: {e}" ) ;
204+ ( )
205+ } ) ?;
185206 }
186207 "SM2_P256" => {
187- libspdm_dhe_groups |=
188- u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SM2_P256 ) . unwrap ( ) ;
208+ libspdm_dhe_groups |= u16:: try_from ( SPDM_ALGORITHMS_DHE_NAMED_GROUP_SM2_P256 )
209+ . map_err ( |e| {
210+ error ! ( "DHE type conversion error: {e}" ) ;
211+ ( )
212+ } ) ?;
189213 }
190214 _ => {
191215 error ! ( "Unsupported DHE group ({})" , group) ;
0 commit comments