Fix: PEM_read_bio_PrivateKey with no-ui / no-stdio
[openssl.git] / doc / crypto / d2i_RSAPublicKey.pod
index 279b29c873c05b0251a69241e1aef839ded73d34..8b6e12d0f7200921d327702475cddb78b9e88c0d 100644 (file)
@@ -3,7 +3,8 @@
 =head1 NAME
 
 d2i_RSAPublicKey, i2d_RSAPublicKey, d2i_RSAPrivateKey, i2d_RSAPrivateKey,
-d2i_RSA_PUBKEY, i2d_RSA_PUBKEY, i2d_Netscape_RSA,
+d2i_RSA_PUBKEY, i2d_RSA_PUBKEY, d2i_RSA_PUBKEY_bio, d2i_RSA_PUBKEY_fp,
+i2d_RSA_PUBKEY_bio, i2d_RSA_PUBKEY_fp, i2d_Netscape_RSA,
 d2i_Netscape_RSA - RSA public and private key encoding functions.
 
 =head1 SYNOPSIS
@@ -11,46 +12,56 @@ d2i_Netscape_RSA - RSA public and private key encoding functions.
  #include <openssl/rsa.h>
  #include <openssl/x509.h>
 
- RSA * d2i_RSAPublicKey(RSA **a, unsigned char **pp, long length);
+ RSA * d2i_RSAPublicKey(RSA **a, const unsigned char **pp, long length);
 
  int i2d_RSAPublicKey(RSA *a, unsigned char **pp);
 
- RSA * d2i_RSA_PUBKEY(RSA **a, unsigned char **pp, long length);
+ RSA * d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length);
 
  int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp);
 
- RSA * d2i_RSAPrivateKey(RSA **a, unsigned char **pp, long length);
+ RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa);
+ RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa);
+
+ int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa);
+ int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa);
+
+ RSA * d2i_RSAPrivateKey(RSA **a, const unsigned char **pp, long length);
 
  int i2d_RSAPrivateKey(RSA *a, unsigned char **pp);
 
  int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)());
 
- RSA * d2i_Netscape_RSA(RSA **a, unsigned char **pp, long length, int (*cb)());
+ RSA * d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, int (*cb)());
 
 =head1 DESCRIPTION
 
-d2i_RSAPublicKey() and i2d_RSAPublicKey() decode and encode a PKCS#1 RSAPublicKey
-structure.
+d2i_RSAPublicKey() and i2d_RSAPublicKey() decode and encode a PKCS#1
+RSAPublicKey structure.
 
 d2i_RSA_PUBKEY() and i2d_RSA_PUBKEY() decode and encode an RSA public key using
 a SubjectPublicKeyInfo (certificate public key) structure.
 
-d2i_RSAPrivateKey(), i2d_RSAPrivateKey() decode and encode a PKCS#1 RSAPrivateKey
-structure.
+d2i_RSA_PUBKEY_bio(), d2i_RSA_PUBKEY_fp(), i2d_RSA_PUBKEY_bio() and
+i2d_RSA_PUBKEY_fp() are similar to d2i_RSA_PUBKEY() and i2d_RSA_PUBKEY()
+except they decode or encode using a B<BIO> or B<FILE> pointer.
+
+d2i_RSAPrivateKey(), i2d_RSAPrivateKey() decode and encode a PKCS#1
+RSAPrivateKey structure.
 
 d2i_Netscape_RSA(), i2d_Netscape_RSA() decode and encode an RSA private key in
 NET format.
 
-The usage of all of these functions is similar to the d2i_X509() and
-i2d_X509() described in the L<d2i_X509(3)|d2i_X509(3)> manual page.
+The usage of all of these functions is similar to the d2i_X509() and i2d_X509()
+described in the L<d2i_X509(3)> manual page.
 
 =head1 NOTES
 
 The B<RSA> structure passed to the private key encoding functions should have
 all the PKCS#1 private key components present.
 
-The data encoded by the private key functions is unencrypted and therefore 
-offers no private key security. 
+The data encoded by the private key functions is unencrypted and therefore
+offers no private key security.
 
 The NET format functions are present to provide compatibility with certain very
 old software. This format has some severe security weaknesses and should be
@@ -58,10 +69,15 @@ avoided if possible.
 
 =head1 SEE ALSO
 
-L<d2i_X509(3)|d2i_X509(3)>
+L<d2i_X509(3)>
+
+=head1 COPYRIGHT
 
-=head1 HISTORY
+Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
 
-TBA
+Licensed under the OpenSSL license (the "License").  You may not use
+this file except in compliance with the License.  You can obtain a copy
+in the file LICENSE in the source distribution or at
+L<https://www.openssl.org/source/license.html>.
 
 =cut