@@ -104,7 +104,7 @@ ParseKeyResult TryParsePublicKey(EVPKeyPointer* pkey,
104
104
ParseKeyResult ParsePublicKeyPEM (EVPKeyPointer* pkey,
105
105
const char * key_pem,
106
106
int key_pem_len) {
107
- BIOPointer bp ( BIO_new_mem_buf ( const_cast < char *>( key_pem) , key_pem_len) );
107
+ auto bp = BIOPointer::New ( key_pem, key_pem_len);
108
108
if (!bp)
109
109
return ParseKeyResult::kParseKeyFailed ;
110
110
@@ -119,7 +119,7 @@ ParseKeyResult ParsePublicKeyPEM(EVPKeyPointer* pkey,
119
119
return ret;
120
120
121
121
// Maybe it is PKCS#1.
122
- CHECK (BIO_reset ( bp.get () ));
122
+ CHECK (bp.resetBio ( ));
123
123
ret = TryParsePublicKey (pkey, bp, " RSA PUBLIC KEY" ,
124
124
[](const unsigned char ** p, long l) { // NOLINT(runtime/int)
125
125
return d2i_PublicKey (EVP_PKEY_RSA, nullptr , p, l);
@@ -128,7 +128,7 @@ ParseKeyResult ParsePublicKeyPEM(EVPKeyPointer* pkey,
128
128
return ret;
129
129
130
130
// X.509 fallback.
131
- CHECK (BIO_reset ( bp.get () ));
131
+ CHECK (bp.resetBio ( ));
132
132
return TryParsePublicKey (pkey, bp, " CERTIFICATE" ,
133
133
[](const unsigned char ** p, long l) { // NOLINT(runtime/int)
134
134
X509Pointer x509 (d2i_X509 (nullptr , p, l));
@@ -218,7 +218,7 @@ ParseKeyResult ParsePrivateKey(EVPKeyPointer* pkey,
218
218
const ByteSource* passphrase = config.passphrase_ .get ();
219
219
220
220
if (config.format_ == kKeyFormatPEM ) {
221
- BIOPointer bio ( BIO_new_mem_buf ( key, key_len) );
221
+ auto bio = BIOPointer::New ( key, key_len);
222
222
if (!bio)
223
223
return ParseKeyResult::kParseKeyFailed ;
224
224
@@ -233,7 +233,7 @@ ParseKeyResult ParsePrivateKey(EVPKeyPointer* pkey,
233
233
const unsigned char * p = reinterpret_cast <const unsigned char *>(key);
234
234
pkey->reset (d2i_PrivateKey (EVP_PKEY_RSA, nullptr , &p, key_len));
235
235
} else if (config.type_ .ToChecked () == kKeyEncodingPKCS8 ) {
236
- BIOPointer bio ( BIO_new_mem_buf ( key, key_len) );
236
+ auto bio = BIOPointer::New ( key, key_len);
237
237
if (!bio)
238
238
return ParseKeyResult::kParseKeyFailed ;
239
239
@@ -270,12 +270,10 @@ ParseKeyResult ParsePrivateKey(EVPKeyPointer* pkey,
270
270
return ParseKeyResult::kParseKeyFailed ;
271
271
}
272
272
273
- MaybeLocal<Value> BIOToStringOrBuffer (
274
- Environment* env,
275
- BIO* bio,
276
- PKFormatType format) {
277
- BUF_MEM* bptr;
278
- BIO_get_mem_ptr (bio, &bptr);
273
+ MaybeLocal<Value> BIOToStringOrBuffer (Environment* env,
274
+ const BIOPointer& bio,
275
+ PKFormatType format) {
276
+ BUF_MEM* bptr = bio;
279
277
if (format == kKeyFormatPEM ) {
280
278
// PEM is an ASCII format, so we will return it as a string.
281
279
return String::NewFromUtf8 (env->isolate (), bptr->data ,
@@ -292,7 +290,7 @@ MaybeLocal<Value> BIOToStringOrBuffer(
292
290
MaybeLocal<Value> WritePrivateKey (Environment* env,
293
291
OSSL3_CONST EVP_PKEY* pkey,
294
292
const PrivateKeyEncodingConfig& config) {
295
- BIOPointer bio ( BIO_new ( BIO_s_mem ()) );
293
+ auto bio = BIOPointer::NewMem ( );
296
294
CHECK (bio);
297
295
298
296
// If an empty string was passed as the passphrase, the ByteSource might
@@ -388,7 +386,7 @@ MaybeLocal<Value> WritePrivateKey(Environment* env,
388
386
ThrowCryptoError (env, ERR_get_error (), " Failed to encode private key" );
389
387
return MaybeLocal<Value>();
390
388
}
391
- return BIOToStringOrBuffer (env, bio. get () , config.format_ );
389
+ return BIOToStringOrBuffer (env, bio, config.format_ );
392
390
}
393
391
394
392
bool WritePublicKeyInner (OSSL3_CONST EVP_PKEY* pkey,
@@ -422,14 +420,14 @@ bool WritePublicKeyInner(OSSL3_CONST EVP_PKEY* pkey,
422
420
MaybeLocal<Value> WritePublicKey (Environment* env,
423
421
OSSL3_CONST EVP_PKEY* pkey,
424
422
const PublicKeyEncodingConfig& config) {
425
- BIOPointer bio ( BIO_new ( BIO_s_mem ()) );
423
+ auto bio = BIOPointer::NewMem ( );
426
424
CHECK (bio);
427
425
428
426
if (!WritePublicKeyInner (pkey, bio, config)) {
429
427
ThrowCryptoError (env, ERR_get_error (), " Failed to encode public key" );
430
428
return MaybeLocal<Value>();
431
429
}
432
- return BIOToStringOrBuffer (env, bio. get () , config.format_ );
430
+ return BIOToStringOrBuffer (env, bio, config.format_ );
433
431
}
434
432
435
433
Maybe<void > ExportJWKSecretKey (Environment* env,
@@ -1448,7 +1446,7 @@ WebCryptoKeyExportStatus PKEY_SPKI_Export(
1448
1446
CHECK_EQ (key_data->GetKeyType (), kKeyTypePublic );
1449
1447
ManagedEVPPKey m_pkey = key_data->GetAsymmetricKey ();
1450
1448
Mutex::ScopedLock lock (*m_pkey.mutex ());
1451
- BIOPointer bio ( BIO_new ( BIO_s_mem ()) );
1449
+ auto bio = BIOPointer::NewMem ( );
1452
1450
CHECK (bio);
1453
1451
if (!i2d_PUBKEY_bio (bio.get (), m_pkey.get ()))
1454
1452
return WebCryptoKeyExportStatus::FAILED;
@@ -1464,7 +1462,7 @@ WebCryptoKeyExportStatus PKEY_PKCS8_Export(
1464
1462
ManagedEVPPKey m_pkey = key_data->GetAsymmetricKey ();
1465
1463
Mutex::ScopedLock lock (*m_pkey.mutex ());
1466
1464
1467
- BIOPointer bio ( BIO_new ( BIO_s_mem ()) );
1465
+ auto bio = BIOPointer::NewMem ( );
1468
1466
CHECK (bio);
1469
1467
PKCS8Pointer p8inf (EVP_PKEY2PKCS8 (m_pkey.get ()));
1470
1468
if (!i2d_PKCS8_PRIV_KEY_INFO_bio (bio.get (), p8inf.get ()))
0 commit comments