1 .\" Automatically generated by Pod::Man 2.12 (Pod::Simple 3.05)
4 .\" ========================================================================
5 .de Sh \" Subsection heading
13 .de Sp \" Vertical space (when we can't use .PP)
17 .de Vb \" Begin verbatim text
22 .de Ve \" End verbatim text
26 .\" Set up some character translations and predefined strings. \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
29 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
30 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
31 .\" nothing in troff, for use with C<>.
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
37 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD. Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
57 . tm Index:\\$1\t\\n%\t"\\$2"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
65 . \" fudge factors for nroff and troff
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 . \" simple accents for nroff and troff
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
97 . \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 . \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 . \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
124 .\" ========================================================================
126 .IX Title "RSA_public_encrypt 3"
127 .TH RSA_public_encrypt 3 "2007-10-24" "0.9.8g" "OpenSSL"
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
133 RSA_public_encrypt, RSA_private_decrypt \- RSA public key cryptography
135 .IX Header "SYNOPSIS"
137 \& #include <openssl/rsa.h>
139 \& int RSA_public_encrypt(int flen, unsigned char *from,
140 \& unsigned char *to, RSA *rsa, int padding);
142 \& int RSA_private_decrypt(int flen, unsigned char *from,
143 \& unsigned char *to, RSA *rsa, int padding);
146 .IX Header "DESCRIPTION"
147 \&\fIRSA_public_encrypt()\fR encrypts the \fBflen\fR bytes at \fBfrom\fR (usually a
148 session key) using the public key \fBrsa\fR and stores the ciphertext in
149 \&\fBto\fR. \fBto\fR must point to RSA_size(\fBrsa\fR) bytes of memory.
151 \&\fBpadding\fR denotes one of the following modes:
152 .IP "\s-1RSA_PKCS1_PADDING\s0" 4
153 .IX Item "RSA_PKCS1_PADDING"
154 \&\s-1PKCS\s0 #1 v1.5 padding. This currently is the most widely used mode.
155 .IP "\s-1RSA_PKCS1_OAEP_PADDING\s0" 4
156 .IX Item "RSA_PKCS1_OAEP_PADDING"
157 EME-OAEP as defined in \s-1PKCS\s0 #1 v2.0 with \s-1SHA\-1\s0, \s-1MGF1\s0 and an empty
158 encoding parameter. This mode is recommended for all new applications.
159 .IP "\s-1RSA_SSLV23_PADDING\s0" 4
160 .IX Item "RSA_SSLV23_PADDING"
161 \&\s-1PKCS\s0 #1 v1.5 padding with an SSL-specific modification that denotes
162 that the server is \s-1SSL3\s0 capable.
163 .IP "\s-1RSA_NO_PADDING\s0" 4
164 .IX Item "RSA_NO_PADDING"
165 Raw \s-1RSA\s0 encryption. This mode should \fIonly\fR be used to implement
166 cryptographically sound padding modes in the application code.
167 Encrypting user data directly with \s-1RSA\s0 is insecure.
169 \&\fBflen\fR must be less than RSA_size(\fBrsa\fR) \- 11 for the \s-1PKCS\s0 #1 v1.5
170 based padding modes, less than RSA_size(\fBrsa\fR) \- 41 for
171 \&\s-1RSA_PKCS1_OAEP_PADDING\s0 and exactly RSA_size(\fBrsa\fR) for \s-1RSA_NO_PADDING\s0.
172 The random number generator must be seeded prior to calling
173 \&\fIRSA_public_encrypt()\fR.
175 \&\fIRSA_private_decrypt()\fR decrypts the \fBflen\fR bytes at \fBfrom\fR using the
176 private key \fBrsa\fR and stores the plaintext in \fBto\fR. \fBto\fR must point
177 to a memory section large enough to hold the decrypted data (which is
178 smaller than RSA_size(\fBrsa\fR)). \fBpadding\fR is the padding mode that
179 was used to encrypt the data.
181 .IX Header "RETURN VALUES"
182 \&\fIRSA_public_encrypt()\fR returns the size of the encrypted data (i.e.,
183 RSA_size(\fBrsa\fR)). \fIRSA_private_decrypt()\fR returns the size of the
186 On error, \-1 is returned; the error codes can be
187 obtained by \fIERR_get_error\fR\|(3).
189 .IX Header "CONFORMING TO"
190 \&\s-1SSL\s0, \s-1PKCS\s0 #1 v2.0
192 .IX Header "SEE ALSO"
193 \&\fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \fIrsa\fR\|(3),
194 \&\fIRSA_size\fR\|(3)
197 The \fBpadding\fR argument was added in SSLeay 0.8. \s-1RSA_NO_PADDING\s0 is
198 available since SSLeay 0.9.0, \s-1OAEP\s0 was added in OpenSSL 0.9.2b.