D2I_RSAPRIVATEKEY(3ssl) OpenSSL D2I_RSAPRIVATEKEY(3ssl) d2i_DSAPrivateKey, d2i_DSAPrivateKey_bio, d2i_DSAPrivateKey_fp, d2i_DSAPublicKey, d2i_DSA_PUBKEY, d2i_DSA_PUBKEY_bio, d2i_DSA_PUBKEY_fp, d2i_DSAparams, d2i_RSAPrivateKey, d2i_RSAPrivateKey_bio, d2i_RSAPrivateKey_fp, d2i_RSAPublicKey, d2i_RSAPublicKey_bio, d2i_RSAPublicKey_fp, d2i_RSA_PUBKEY, d2i_RSA_PUBKEY_bio, d2i_RSA_PUBKEY_fp, d2i_DHparams, d2i_DHparams_bio, d2i_DHparams_fp, d2i_ECParameters, d2i_ECPrivateKey, d2i_ECPrivateKey_bio, d2i_ECPrivateKey_fp, d2i_EC_PUBKEY, d2i_EC_PUBKEY_bio, d2i_EC_PUBKEY_fp, i2d_RSAPrivateKey, i2d_RSAPrivateKey_bio, i2d_RSAPrivateKey_fp, i2d_RSAPublicKey, i2d_RSAPublicKey_bio, i2d_RSAPublicKey_fp, i2d_RSA_PUBKEY, i2d_RSA_PUBKEY_bio, i2d_RSA_PUBKEY_fp, i2d_DHparams, i2d_DHparams_bio, i2d_DHparams_fp, i2d_DSAPrivateKey, i2d_DSAPrivateKey_bio, i2d_DSAPrivateKey_fp, i2d_DSAPublicKey, i2d_DSA_PUBKEY, i2d_DSA_PUBKEY_bio, i2d_DSA_PUBKEY_fp, i2d_DSAparams, i2d_ECParameters, i2d_ECPrivateKey, i2d_ECPrivateKey_bio, i2d_ECPrivateKey_fp, i2d_EC_PUBKEY, i2d_EC_PUBKEY_bio, i2d_EC_PUBKEY_fp - OpenSSL 3.0 OPENSSL_API_COMPAT openssl_user_macros(7): TYPE *d2i_TYPEPrivateKey(TYPE **a, const unsigned char **ppin, long length); TYPE *d2i_TYPEPrivateKey_bio(BIO *bp, TYPE **a); TYPE *d2i_TYPEPrivateKey_fp(FILE *fp, TYPE **a); TYPE *d2i_TYPEPublicKey(TYPE **a, const unsigned char **ppin, long length); TYPE *d2i_TYPEPublicKey_bio(BIO *bp, TYPE **a); TYPE *d2i_TYPEPublicKey_fp(FILE *fp, TYPE **a); TYPE *d2i_TYPEparams(TYPE **a, const unsigned char **ppin, long length); TYPE *d2i_TYPEparams_bio(BIO *bp, TYPE **a); TYPE *d2i_TYPEparams_fp(FILE *fp, TYPE **a); TYPE *d2i_TYPE_PUBKEY(TYPE **a, const unsigned char **ppin, long length); TYPE *d2i_TYPE_PUBKEY_bio(BIO *bp, TYPE **a); TYPE *d2i_TYPE_PUBKEY_fp(FILE *fp, TYPE **a); int i2d_TYPEPrivateKey(const TYPE *a, unsigned char **ppout); int i2d_TYPEPrivateKey(TYPE *a, unsigned char **ppout); int i2d_TYPEPrivateKey_fp(FILE *fp, const TYPE *a); int i2d_TYPEPrivateKey_fp(FILE *fp, TYPE *a); int i2d_TYPEPrivateKey_bio(BIO *bp, const TYPE *a); int i2d_TYPEPrivateKey_bio(BIO *bp, TYPE *a); int i2d_TYPEPublicKey(const TYPE *a, unsigned char **ppout); int i2d_TYPEPublicKey(TYPE *a, unsigned char **ppout); int i2d_TYPEPublicKey_fp(FILE *fp, const TYPE *a); int i2d_TYPEPublicKey_fp(FILE *fp, TYPE *a); int i2d_TYPEPublicKey_bio(BIO *bp, const TYPE *a); int i2d_TYPEPublicKey_bio(BIO *bp, TYPE *a); int i2d_TYPEparams(const TYPE *a, unsigned char **ppout); int i2d_TYPEparams(TYPE *a, unsigned char **ppout); int i2d_TYPEparams_fp(FILE *fp, const TYPE *a); int i2d_TYPEparams_fp(FILE *fp, TYPE *a); int i2d_TYPEparams_bio(BIO *bp, const TYPE *a); int i2d_TYPEparams_bio(BIO *bp, TYPE *a); int i2d_TYPE_PUBKEY(const TYPE *a, unsigned char **ppout); int i2d_TYPE_PUBKEY(TYPE *a, unsigned char **ppout); int i2d_TYPE_PUBKEY_fp(FILE *fp, const TYPE *a); int i2d_TYPE_PUBKEY_fp(FILE *fp, TYPE *a); int i2d_TYPE_PUBKEY_bio(BIO *bp, const TYPE *a); int i2d_TYPE_PUBKEY_bio(BIO *bp, TYPE *a); . OSSL_DECODER(3) d2i OSSL_ENCODER(3) i2d. "" . TYPE OpenSSL RSA. ppin ppout pp in out. d2i_X509(3). . d2i_RSAparams() i2d_RSAparams() RSA PKCS#1 . d2i_TYPEPrivateKey() DER TYPE . d2i_TYPEPublicKey() DER TYPE . d2i_TYPEparams() DER TYPE . d2i_TYPE_PUBKEY() DER TYPE SubjectPublicKeyInfo. i2d_TYPEPrivateKey() TYPE DER . i2d_TYPEPublicKey() TYPE DER . i2d_TYPEparams() TYPE DER . i2d_TYPE_PUBKEY() TYPE SubjectPublicKeyInfo DER. d2i_RSAPrivateKey() d2i_RSAPublicKey() PKCS#1. i2d_RSAPrivateKey() i2d_RSAPublicKey() DER PKCS#1. TYPEs OpenSSL . TYPEs EVP_PKEY. . : o d2i_TYPEPrivateKey() d2i_PrivateKey(3) d2i_TYPEPublicKey() d2i_PublicKey(3) d2i_TYPEparams() d2i_KeyParams(3) d2i_TYPE_PUBKEY() d2i_PUBKEY(3) i2d_TYPEPrivateKey() i2d_PrivateKey(3) i2d_TYPEPublicKey() i2d_PublicKey(3) i2d_TYPEparams() i2d_KeyParams(3) i2d_TYPE_PUBKEY() i2d_PUBKEY(3). i2d_PrivateKey(3) PKCS#8 DER d2i_PrivateKey(3) PKCS#8 . o OSSL_DECODER(3) OSSL_ENCODER(3). . pkey. i2d OSSL_ENCODER OSSL_ENCODER(3) . DER EVP_PKEY . i2d selection structure : i2d_TYPEPrivateKey() : int selection = EVP_PKEY_KEYPAIR; const char *structure = "type-specific"; i2d_TYPEPublicKey() : int selection = EVP_PKEY_PUBLIC_KEY; const char *structure = "type-specific"; i2d_TYPEparams() : int selection = EVP_PKEY_PARAMETERS; const char *structure = "type-specific"; i2d_TYPE_PUBKEY() : int selection = EVP_PKEY_PUBLIC_KEY; const char *structure = "SubjectPublicKeyInfo"; : unsigned char *p = buffer; /* |buffer| is supplied by the caller */ size_t len = buffer_size; /* assumed be the size of |buffer| */ OSSL_ENCODER_CTX *ctx = OSSL_ENCODER_CTX_new_for_pkey(pkey, selection, "DER", structure, NULL, NULL); if (ctx == NULL) { /* fatal error handling */ } if (OSSL_ENCODER_CTX_get_num_encoders(ctx) == 0) { OSSL_ENCODER_CTX_free(ctx); /* non-fatal error handling */ } if (!OSSL_ENCODER_to_data(ctx, &p, &len)) { OSSL_ENCODER_CTX_free(ctx); /* error handling */ } OSSL_ENCODER_CTX_free(ctx); i d i2d_TYPE() "internal" ( C ) "DER" . i2d_TYPE() DER. BER. TYPE i2d_TYPE() TYPE -- TYPE_new(). . (FILE pointers) BIOs . strlen() . *ppin *ppout . WARNINGS d2i_X509(3) . ASN1: . : DSA_PUBKEY DSA SubjectPublicKeyInfo. DSAPublicKey DSAPrivateKey OpenSSL DSA_PUBKEY PEM_write_PrivateKey(3) . d2i_TYPE() d2i_TYPE_bio() d2i_TYPE_fp() TYPE NULL . " " a *a NULL. i2d_TYPE() . i2d_TYPE_bio() i2d_TYPE_fp() 1 0 . OSSL_ENCODER(3) OSSL_DECODER(3) d2i_PrivateKey(3) d2i_PublicKey(3) d2i_KeyParams(3) d2i_PUBKEY(3) i2d_PrivateKey(3) i2d_PublicKey(3) i2d_KeyParams(3) i2d_PUBKEY(3) 2020-2025 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 D2I_RSAPRIVATEKEY(3ssl)