PEM_read_bio_PrivateKey function

  1. @RecordUse.new()
  2. @Native<Pointer<EVP_PKEY> Function(Pointer<BIO> bio, Pointer<Pointer<EVP_PKEY>> out, Pointer<pem_password_cb> cb, Pointer<Void> userdata)>(ffi.Pointer<BIO>, ffi.Pointer<ffi.Pointer<EVP_PKEY>>, ffi.Pointer<pem_password_cb>, ffi.Pointer<ffi.Void>)>(symbol: 'bssl_dart_PEM_read_bio_PrivateKey')
Pointer<EVP_PKEY> PEM_read_bio_PrivateKey(
  1. Pointer<BIO> bio,
  2. Pointer<Pointer<EVP_PKEY>> out,
  3. Pointer<pem_password_cb> cb,
  4. Pointer<Void> userdata,
)

PEM_read_bio_PrivateKey reads a PEM block containing a private key, as described in PEM_read_bio_SAMPLE. It handles generic PKCS #8 blocks of type "PRIVATE KEY" and "ENCRYPTED PRIVATE KEY", as well as key-specific formats like "RSA PRIVATE KEY", "EC PRIVATE KEY", and "DSA PRIVATE KEY".

cb and userdata are used to look up the password for both PEM-level encryption as well as PKCS #8 encryption, in the case of "ENCRYPTED PRIVATE KEY" blocks.

Implementation

@meta.RecordUse()
@ffi.Native<
  ffi.Pointer<EVP_PKEY> Function(
    ffi.Pointer<BIO>,
    ffi.Pointer<ffi.Pointer<EVP_PKEY>>,
    ffi.Pointer<pem_password_cb>,
    ffi.Pointer<ffi.Void>,
  )
>(symbol: 'bssl_dart_PEM_read_bio_PrivateKey')
external ffi.Pointer<EVP_PKEY> PEM_read_bio_PrivateKey(
  ffi.Pointer<BIO> bio,
  ffi.Pointer<ffi.Pointer<EVP_PKEY>> out,
  ffi.Pointer<pem_password_cb> cb,
  ffi.Pointer<ffi.Void> userdata,
);