@@ -89,14 +89,19 @@ def test_check_key
8989
9090 # Behavior of EVP_PKEY_public_check changes between OpenSSL 1.1.1 and 3.0
9191 # The public key does not match the private key
92- key4 = OpenSSL :: PKey . read ( <<~EOF )
92+ ec_key_data = <<~EOF
9393 -----BEGIN EC PRIVATE KEY-----
9494 MHcCAQEEIP+TT0V8Fndsnacji9tyf6hmhHywcOWTee9XkiBeJoVloAoGCCqGSM49
9595 AwEHoUQDQgAEBkhhJIU/2/YdPSlY2I1k25xjK4trr5OXSgXvBC21PtY0HQ7lor7A
9696 jzT0giJITqmcd81fwGw5+96zLcdxTF1hVQ==
9797 -----END EC PRIVATE KEY-----
9898 EOF
99- assert_raise ( OpenSSL ::PKey ::ECError ) { key4 . check_key }
99+ if aws_lc? # AWS-LC automatically does key checks on the parsed key.
100+ assert_raise ( OpenSSL ::PKey ::PKeyError ) { OpenSSL ::PKey . read ( ec_key_data ) }
101+ else
102+ key4 = OpenSSL ::PKey . read ( ec_key_data )
103+ assert_raise ( OpenSSL ::PKey ::ECError ) { key4 . check_key }
104+ end
100105
101106 # EC#private_key= is deprecated in 3.0 and won't work on OpenSSL 3.0
102107 if !openssl? ( 3 , 0 , 0 )
@@ -147,19 +152,19 @@ def test_sign_verify_raw
147152 sig = key . dsa_sign_asn1 ( data1 )
148153 assert_equal true , key . dsa_verify_asn1 ( data1 , sig )
149154 assert_equal false , key . dsa_verify_asn1 ( data2 , sig )
150- assert_raise ( OpenSSL :: PKey :: ECError ) { key . dsa_verify_asn1 ( data1 , malformed_sig ) }
155+ assert_sign_verify_false_or_error { key . dsa_verify_asn1 ( data1 , malformed_sig ) }
151156 assert_equal true , key . verify_raw ( nil , sig , data1 )
152157 assert_equal false , key . verify_raw ( nil , sig , data2 )
153- assert_raise ( OpenSSL :: PKey :: PKeyError ) { key . verify_raw ( nil , malformed_sig , data1 ) }
158+ assert_sign_verify_false_or_error { key . verify_raw ( nil , malformed_sig , data1 ) }
154159
155160 # Sign by #sign_raw
156161 sig = key . sign_raw ( nil , data1 )
157162 assert_equal true , key . dsa_verify_asn1 ( data1 , sig )
158163 assert_equal false , key . dsa_verify_asn1 ( data2 , sig )
159- assert_raise ( OpenSSL :: PKey :: ECError ) { key . dsa_verify_asn1 ( data1 , malformed_sig ) }
164+ assert_sign_verify_false_or_error { key . dsa_verify_asn1 ( data1 , malformed_sig ) }
160165 assert_equal true , key . verify_raw ( nil , sig , data1 )
161166 assert_equal false , key . verify_raw ( nil , sig , data2 )
162- assert_raise ( OpenSSL :: PKey :: PKeyError ) { key . verify_raw ( nil , malformed_sig , data1 ) }
167+ assert_sign_verify_false_or_error { key . verify_raw ( nil , malformed_sig , data1 ) }
163168 end
164169
165170 def test_dsa_sign_asn1_FIPS186_3
@@ -304,7 +309,10 @@ def test_ec_group
304309 assert_equal group1 . to_der , group2 . to_der
305310 assert_equal group1 , group2
306311 group2 . asn1_flag ^=OpenSSL ::PKey ::EC ::NAMED_CURVE
307- assert_not_equal group1 . to_der , group2 . to_der
312+ # AWS-LC does not support serializing explicit curves.
313+ unless aws_lc?
314+ assert_not_equal group1 . to_der , group2 . to_der
315+ end
308316 assert_equal group1 , group2
309317
310318 group3 = group1 . dup
0 commit comments