summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/man/RSA_new.3
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/man/RSA_new.3')
-rw-r--r--src/lib/libcrypto/man/RSA_new.391
1 files changed, 85 insertions, 6 deletions
diff --git a/src/lib/libcrypto/man/RSA_new.3 b/src/lib/libcrypto/man/RSA_new.3
index 4ec89d259e..9e43f03f1d 100644
--- a/src/lib/libcrypto/man/RSA_new.3
+++ b/src/lib/libcrypto/man/RSA_new.3
@@ -1,8 +1,9 @@
1.\" $OpenBSD: RSA_new.3,v 1.3 2016/11/29 16:41:44 schwarze Exp $ 1.\" $OpenBSD: RSA_new.3,v 1.4 2016/12/11 12:52:28 schwarze Exp $
2.\" OpenSSL 99d63d46 Oct 26 13:56:48 2016 -0400 2.\" OpenSSL doc/man3/RSA_new.pod 99d63d46 Oct 26 13:56:48 2016 -0400
3.\" OpenSSL doc/crypto/rsa.pod 35d2e327 Jun 3 16:19:49 2016 -0400
3.\" 4.\"
4.\" This file was written by Ulf Moeller <ulf@openssl.org>. 5.\" This file was written by Ulf Moeller <ulf@openssl.org>.
5.\" Copyright (c) 2000, 2002 The OpenSSL Project. All rights reserved. 6.\" Copyright (c) 2000, 2002, 2016 The OpenSSL Project. All rights reserved.
6.\" 7.\"
7.\" Redistribution and use in source and binary forms, with or without 8.\" Redistribution and use in source and binary forms, with or without
8.\" modification, are permitted provided that the following conditions 9.\" modification, are permitted provided that the following conditions
@@ -48,7 +49,7 @@
48.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 49.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
49.\" OF THE POSSIBILITY OF SUCH DAMAGE. 50.\" OF THE POSSIBILITY OF SUCH DAMAGE.
50.\" 51.\"
51.Dd $Mdocdate: November 29 2016 $ 52.Dd $Mdocdate: December 11 2016 $
52.Dt RSA_NEW 3 53.Dt RSA_NEW 3
53.Os 54.Os
54.Sh NAME 55.Sh NAME
@@ -64,6 +65,9 @@
64.Fa "RSA *rsa" 65.Fa "RSA *rsa"
65.Fc 66.Fc
66.Sh DESCRIPTION 67.Sh DESCRIPTION
68The RSA functions implement RSA public key encryption and signatures
69as defined in PKCS #1 v2.0 (RFC 2437).
70.Pp
67.Fn RSA_new 71.Fn RSA_new
68allocates and initializes an 72allocates and initializes an
69.Vt RSA 73.Vt RSA
@@ -81,6 +85,62 @@ If
81is a 85is a
82.Dv NULL 86.Dv NULL
83pointer, no action occurs. 87pointer, no action occurs.
88.Pp
89The
90.Vt RSA
91structure consists of several
92.Vt BIGNUM
93components.
94It can contain public as well as private RSA keys:
95.Bd -literal
96typdef struct {
97 BIGNUM *n; // public modulus
98 BIGNUM *e; // public exponent
99 BIGNUM *d; // private exponent
100 BIGNUM *p; // secret prime factor
101 BIGNUM *q; // secret prime factor
102 BIGNUM *dmp1; // d mod (p-1)
103 BIGNUM *dmq1; // d mod (q-1)
104 BIGNUM *iqmp; // q^-1 mod p
105 // ...
106} RSA;
107.Ed
108.Pp
109In public keys, the private exponent
110.Fa d
111and the related secret values
112.Fa p , q , dmp1 , dmp2 ,
113and
114.Fa iqmp
115are
116.Dv NULL .
117.Pp
118.Fa p ,
119.Fa q ,
120.Fa dmp1 ,
121.Fa dmq1 ,
122and
123.Fa iqmp
124may be
125.Dv NULL
126in private keys, but the RSA operations are much faster when these
127values are available.
128.Pp
129Note that RSA keys may use non-standard
130.Vt RSA_METHOD
131implementations, either directly or by the use of
132.Vt ENGINE
133modules.
134In some cases (e.g. an
135.Vt ENGINE
136providing support for hardware-embedded keys), these
137.Vt BIGNUM
138values will not be used by the implementation or may be used for
139alternative data storage.
140For this reason, applications should generally avoid using
141.Vt RSA
142structure elements directly and instead use API functions to query
143or modify keys.
84.Sh RETURN VALUES 144.Sh RETURN VALUES
85If the allocation fails, 145If the allocation fails,
86.Fn RSA_new 146.Fn RSA_new
@@ -90,10 +150,29 @@ and sets an error code that can be obtained by
90.Xr ERR_get_error 3 . 150.Xr ERR_get_error 3 .
91Otherwise it returns a pointer to the newly allocated structure. 151Otherwise it returns a pointer to the newly allocated structure.
92.Sh SEE ALSO 152.Sh SEE ALSO
153.Xr BN_new 3 ,
154.Xr d2i_RSAPublicKey 3 ,
155.Xr DH_new 3 ,
156.Xr DSA_new 3 ,
157.Xr engine 3 ,
93.Xr ERR_get_error 3 , 158.Xr ERR_get_error 3 ,
94.Xr rsa 3 , 159.Xr EVP_PKEY_set1_RSA 3 ,
160.Xr RSA_blinding_on 3 ,
161.Xr RSA_check_key 3 ,
95.Xr RSA_generate_key 3 , 162.Xr RSA_generate_key 3 ,
96.Xr RSA_new_method 3 163.Xr RSA_get_ex_new_index 3 ,
164.Xr RSA_padding_add_PKCS1_type_1 3 ,
165.Xr RSA_print 3 ,
166.Xr RSA_private_encrypt 3 ,
167.Xr RSA_public_encrypt 3 ,
168.Xr RSA_set_method 3 ,
169.Xr RSA_sign 3 ,
170.Xr RSA_sign_ASN1_OCTET_STRING 3 ,
171.Xr RSA_size 3
172.Sh STANDARDS
173SSL, PKCS #1 v2.0
174.Pp
175RSA was covered by a US patent which expired in September 2000.
97.Sh HISTORY 176.Sh HISTORY
98.Fn RSA_new 177.Fn RSA_new
99and 178and