@@ -147,9 +147,14 @@ static VALUE ossl_ec_key_initialize(int argc, VALUE *argv, VALUE self)
147147
148148 rb_scan_args (argc , argv , "02" , & arg , & pass );
149149 if (NIL_P (arg )) {
150+ #ifdef OSSL_HAVE_IMMUTABLE_PKEY
151+ rb_raise (rb_eArgError , "OpenSSL::PKey::EC.new cannot be called " \
152+ "without arguments; pkeys are immutable with OpenSSL 3.0" );
153+ #else
150154 if (!(ec = EC_KEY_new ()))
151155 ossl_raise (eECError , "EC_KEY_new" );
152156 goto legacy ;
157+ #endif
153158 }
154159 else if (rb_obj_is_kind_of (arg , cEC_GROUP )) {
155160 ec = ec_key_new_from_group (arg );
@@ -246,7 +251,7 @@ ossl_ec_key_get_group(VALUE self)
246251static VALUE
247252ossl_ec_key_set_group (VALUE self , VALUE group_v )
248253{
249- #if OSSL_OPENSSL_PREREQ ( 3 , 0 , 0 )
254+ #ifdef OSSL_HAVE_IMMUTABLE_PKEY
250255 rb_raise (ePKeyError , "pkeys are immutable on OpenSSL 3.0" );
251256#else
252257 EC_KEY * ec ;
@@ -288,7 +293,7 @@ static VALUE ossl_ec_key_get_private_key(VALUE self)
288293 */
289294static VALUE ossl_ec_key_set_private_key (VALUE self , VALUE private_key )
290295{
291- #if OSSL_OPENSSL_PREREQ ( 3 , 0 , 0 )
296+ #ifdef OSSL_HAVE_IMMUTABLE_PKEY
292297 rb_raise (ePKeyError , "pkeys are immutable on OpenSSL 3.0" );
293298#else
294299 EC_KEY * ec ;
@@ -339,7 +344,7 @@ static VALUE ossl_ec_key_get_public_key(VALUE self)
339344 */
340345static VALUE ossl_ec_key_set_public_key (VALUE self , VALUE public_key )
341346{
342- #if OSSL_OPENSSL_PREREQ ( 3 , 0 , 0 )
347+ #ifdef OSSL_HAVE_IMMUTABLE_PKEY
343348 rb_raise (ePKeyError , "pkeys are immutable on OpenSSL 3.0" );
344349#else
345350 EC_KEY * ec ;
@@ -511,7 +516,7 @@ ossl_ec_key_to_der(VALUE self)
511516 */
512517static VALUE ossl_ec_key_generate_key (VALUE self )
513518{
514- #if OSSL_OPENSSL_PREREQ ( 3 , 0 , 0 )
519+ #ifdef OSSL_HAVE_IMMUTABLE_PKEY
515520 rb_raise (ePKeyError , "pkeys are immutable on OpenSSL 3.0" );
516521#else
517522 EC_KEY * ec ;
@@ -1368,7 +1373,7 @@ static VALUE ossl_ec_point_make_affine(VALUE self)
13681373 GetECPointGroup (self , group );
13691374
13701375 rb_warn ("OpenSSL::PKey::EC::Point#make_affine! is deprecated" );
1371- #if !OSSL_OPENSSL_PREREQ ( 3 , 0 , 0 ) && !defined(OPENSSL_IS_AWSLC )
1376+ #if !defined( OSSL_HAVE_IMMUTABLE_PKEY ) && !defined(OPENSSL_IS_AWSLC )
13721377 if (EC_POINT_make_affine (group , point , ossl_bn_ctx ) != 1 )
13731378 ossl_raise (eEC_POINT , "EC_POINT_make_affine" );
13741379#endif
0 commit comments