@@ -407,38 +407,35 @@ impl<T> Clone for PKey<T> {
407
407
408
408
impl < T > PKey < T > {
409
409
/// Creates a new `PKey` containing an RSA key.
410
- #[ corresponds( EVP_PKEY_assign_RSA ) ]
410
+ #[ corresponds( EVP_PKEY_set1_RSA ) ]
411
411
pub fn from_rsa ( rsa : Rsa < T > ) -> Result < PKey < T > , ErrorStack > {
412
412
unsafe {
413
413
let evp = cvt_p ( ffi:: EVP_PKEY_new ( ) ) ?;
414
414
let pkey = PKey :: from_ptr ( evp) ;
415
- cvt ( ffi:: EVP_PKEY_assign_RSA ( pkey. 0 , rsa. as_ptr ( ) ) ) ?;
416
- mem:: forget ( rsa) ;
415
+ cvt ( ffi:: EVP_PKEY_set1_RSA ( pkey. 0 , rsa. as_ptr ( ) ) ) ?;
417
416
Ok ( pkey)
418
417
}
419
418
}
420
419
421
420
/// Creates a new `PKey` containing a DSA key.
422
- #[ corresponds( EVP_PKEY_assign_DSA ) ]
421
+ #[ corresponds( EVP_PKEY_set1_DSA ) ]
423
422
pub fn from_dsa ( dsa : Dsa < T > ) -> Result < PKey < T > , ErrorStack > {
424
423
unsafe {
425
424
let evp = cvt_p ( ffi:: EVP_PKEY_new ( ) ) ?;
426
425
let pkey = PKey :: from_ptr ( evp) ;
427
- cvt ( ffi:: EVP_PKEY_assign_DSA ( pkey. 0 , dsa. as_ptr ( ) ) ) ?;
428
- mem:: forget ( dsa) ;
426
+ cvt ( ffi:: EVP_PKEY_set1_DSA ( pkey. 0 , dsa. as_ptr ( ) ) ) ?;
429
427
Ok ( pkey)
430
428
}
431
429
}
432
430
433
431
/// Creates a new `PKey` containing a Diffie-Hellman key.
434
- #[ corresponds( EVP_PKEY_assign_DH ) ]
432
+ #[ corresponds( EVP_PKEY_set1_DH ) ]
435
433
#[ cfg( not( boringssl) ) ]
436
434
pub fn from_dh ( dh : Dh < T > ) -> Result < PKey < T > , ErrorStack > {
437
435
unsafe {
438
436
let evp = cvt_p ( ffi:: EVP_PKEY_new ( ) ) ?;
439
437
let pkey = PKey :: from_ptr ( evp) ;
440
- cvt ( ffi:: EVP_PKEY_assign_DH ( pkey. 0 , dh. as_ptr ( ) ) ) ?;
441
- mem:: forget ( dh) ;
438
+ cvt ( ffi:: EVP_PKEY_set1_DH ( pkey. 0 , dh. as_ptr ( ) ) ) ?;
442
439
Ok ( pkey)
443
440
}
444
441
}
@@ -460,13 +457,12 @@ impl<T> PKey<T> {
460
457
}
461
458
462
459
/// Creates a new `PKey` containing an elliptic curve key.
463
- #[ corresponds( EVP_PKEY_assign_EC_KEY ) ]
460
+ #[ corresponds( EVP_PKEY_set1_EC_KEY ) ]
464
461
pub fn from_ec_key ( ec_key : EcKey < T > ) -> Result < PKey < T > , ErrorStack > {
465
462
unsafe {
466
463
let evp = cvt_p ( ffi:: EVP_PKEY_new ( ) ) ?;
467
464
let pkey = PKey :: from_ptr ( evp) ;
468
- cvt ( ffi:: EVP_PKEY_assign_EC_KEY ( pkey. 0 , ec_key. as_ptr ( ) ) ) ?;
469
- mem:: forget ( ec_key) ;
465
+ cvt ( ffi:: EVP_PKEY_set1_EC_KEY ( pkey. 0 , ec_key. as_ptr ( ) ) ) ?;
470
466
Ok ( pkey)
471
467
}
472
468
}
0 commit comments