d2i_DHparams,
d2i_DHparams_bio,
d2i_DHparams_fp,
-d2i_ECPKParameters,
d2i_ECParameters,
d2i_ECPrivateKey,
d2i_ECPrivateKey_bio,
i2d_DHparams,
i2d_DHparams_bio,
i2d_DHparams_fp,
-i2d_ECPKParameters,
+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,
=for openssl generic
-Deprecated since OpenSSL 3.0, can be hidden entirely by defining
-B<OPENSSL_API_COMPAT> with a suitable version value, see
-L<openssl_user_macros(7)>:
+The following functions have been deprecated since OpenSSL 3.0, and can be
+hidden entirely by defining B<OPENSSL_API_COMPAT> with a suitable version value,
+see L<openssl_user_macros(7)>:
TYPE *d2i_TYPEPrivateKey(TYPE **a, const unsigned char **ppin, long length);
TYPE *d2i_TYPEPrivateKey_bio(BIO *bp, TYPE **a);
=item *
Replace
-b<d2i_I<TYPE>PrivateKey()> with L<d2i_PrivateKey(3)>,
-b<d2i_I<TYPE>PublicKey()> with L<d2i_PublicKey(3)>,
-b<d2i_I<TYPE>params()> with L<d2i_KeyParams(3)>,
-b<d2i_I<TYPE>_PUBKEY()> with L<d2i_PUBKEY(3)>,
-b<i2d_I<TYPE>PrivateKey()> with L<i2d_PrivateKey(3)>,
-b<i2d_I<TYPE>PublicKey()> with L<i2d_PublicKey(3)>,
-b<i2d_I<TYPE>params()> with L<i2d_KeyParams(3)>,
+b<d2i_I<TYPE>PrivateKey()> with L<d2i_PrivateKey(3)>,
+b<d2i_I<TYPE>PublicKey()> with L<d2i_PublicKey(3)>,
+b<d2i_I<TYPE>params()> with L<d2i_KeyParams(3)>,
+b<d2i_I<TYPE>_PUBKEY()> with L<d2i_PUBKEY(3)>,
+b<i2d_I<TYPE>PrivateKey()> with L<i2d_PrivateKey(3)>,
+b<i2d_I<TYPE>PublicKey()> with L<i2d_PublicKey(3)>,
+b<i2d_I<TYPE>params()> with L<i2d_KeyParams(3)>,
b<i2d_I<TYPE>_PUBKEY()> with L<i2d_PUBKEY(3)>.
A caveat is that L<i2d_PrivateKey(3)> may output a DER encoded PKCS#8
outermost structure instead of the type specific structure, and that
=item B<i2d_I<TYPE>PrivateKey>() translates into:
- int selection = EVP_PKEY_PRIVATE_KEY;
+ int selection = EVP_PKEY_KEYPAIR;
const char *structure = "type-specific";
=item B<i2d_I<TYPE>PublicKey>() translates into:
of the encoded structure.
The ways that I<*ppin> and I<*ppout> are incremented after the operation
-can trap the unwary. See the B<WARNINGS> section for some common
-errors.
+can trap the unwary. See the B<WARNINGS> section in L<d2i_X509(3)> for some
+common errors.
The reason for this-auto increment behaviour is to reflect a typical
usage of ASN1 functions: after one structure is encoded or decoded
another will be processed after it.
=head1 COPYRIGHT
-Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy