Commit manual pages after running 'man-update' and add new manual pages.
[dragonfly.git] / secure / lib / libcrypto / man / RSA_padding_add_PKCS1_type_1.3
1 .rn '' }`
2 ''' $RCSfile$$Revision$$Date$
3 '''
4 ''' $Log$
5 '''
6 .de Sh
7 .br
8 .if t .Sp
9 .ne 5
10 .PP
11 \fB\\$1\fR
12 .PP
13 ..
14 .de Sp
15 .if t .sp .5v
16 .if n .sp
17 ..
18 .de Ip
19 .br
20 .ie \\n(.$>=3 .ne \\$3
21 .el .ne 3
22 .IP "\\$1" \\$2
23 ..
24 .de Vb
25 .ft CW
26 .nf
27 .ne \\$1
28 ..
29 .de Ve
30 .ft R
31
32 .fi
33 ..
34 '''
35 '''
36 '''     Set up \*(-- to give an unbreakable dash;
37 '''     string Tr holds user defined translation string.
38 '''     Bell System Logo is used as a dummy character.
39 '''
40 .tr \(*W-|\(bv\*(Tr
41 .ie n \{\
42 .ds -- \(*W-
43 .ds PI pi
44 .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
45 .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
46 .ds L" ""
47 .ds R" ""
48 '''   \*(M", \*(S", \*(N" and \*(T" are the equivalent of
49 '''   \*(L" and \*(R", except that they are used on ".xx" lines,
50 '''   such as .IP and .SH, which do another additional levels of
51 '''   double-quote interpretation
52 .ds M" """
53 .ds S" """
54 .ds N" """""
55 .ds T" """""
56 .ds L' '
57 .ds R' '
58 .ds M' '
59 .ds S' '
60 .ds N' '
61 .ds T' '
62 'br\}
63 .el\{\
64 .ds -- \(em\|
65 .tr \*(Tr
66 .ds L" ``
67 .ds R" ''
68 .ds M" ``
69 .ds S" ''
70 .ds N" ``
71 .ds T" ''
72 .ds L' `
73 .ds R' '
74 .ds M' `
75 .ds S' '
76 .ds N' `
77 .ds T' '
78 .ds PI \(*p
79 'br\}
80 .\"     If the F register is turned on, we'll generate
81 .\"     index entries out stderr for the following things:
82 .\"             TH      Title 
83 .\"             SH      Header
84 .\"             Sh      Subsection 
85 .\"             Ip      Item
86 .\"             X<>     Xref  (embedded
87 .\"     Of course, you have to process the output yourself
88 .\"     in some meaninful fashion.
89 .if \nF \{
90 .de IX
91 .tm Index:\\$1\t\\n%\t"\\$2"
92 ..
93 .nr % 0
94 .rr F
95 .\}
96 .TH RSA_padding_add_PKCS1_type_1 3 "0.9.7d" "2/Sep/2004" "OpenSSL"
97 .UC
98 .if n .hy 0
99 .if n .na
100 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
101 .de CQ          \" put $1 in typewriter font
102 .ft CW
103 'if n "\c
104 'if t \\&\\$1\c
105 'if n \\&\\$1\c
106 'if n \&"
107 \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
108 '.ft R
109 ..
110 .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
111 .       \" AM - accent mark definitions
112 .bd B 3
113 .       \" fudge factors for nroff and troff
114 .if n \{\
115 .       ds #H 0
116 .       ds #V .8m
117 .       ds #F .3m
118 .       ds #[ \f1
119 .       ds #] \fP
120 .\}
121 .if t \{\
122 .       ds #H ((1u-(\\\\n(.fu%2u))*.13m)
123 .       ds #V .6m
124 .       ds #F 0
125 .       ds #[ \&
126 .       ds #] \&
127 .\}
128 .       \" simple accents for nroff and troff
129 .if n \{\
130 .       ds ' \&
131 .       ds ` \&
132 .       ds ^ \&
133 .       ds , \&
134 .       ds ~ ~
135 .       ds ? ?
136 .       ds ! !
137 .       ds /
138 .       ds q
139 .\}
140 .if t \{\
141 .       ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
142 .       ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
143 .       ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
144 .       ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
145 .       ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
146 .       ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
147 .       ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
148 .       ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
149 .       ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
150 .\}
151 .       \" troff and (daisy-wheel) nroff accents
152 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
153 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
154 .ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
155 .ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
156 .ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
157 .ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
158 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
159 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
160 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
161 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
162 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
163 .ds ae a\h'-(\w'a'u*4/10)'e
164 .ds Ae A\h'-(\w'A'u*4/10)'E
165 .ds oe o\h'-(\w'o'u*4/10)'e
166 .ds Oe O\h'-(\w'O'u*4/10)'E
167 .       \" corrections for vroff
168 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
169 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
170 .       \" for low resolution devices (crt and lpr)
171 .if \n(.H>23 .if \n(.V>19 \
172 \{\
173 .       ds : e
174 .       ds 8 ss
175 .       ds v \h'-1'\o'\(aa\(ga'
176 .       ds _ \h'-1'^
177 .       ds . \h'-1'.
178 .       ds 3 3
179 .       ds o a
180 .       ds d- d\h'-1'\(ga
181 .       ds D- D\h'-1'\(hy
182 .       ds th \o'bp'
183 .       ds Th \o'LP'
184 .       ds ae ae
185 .       ds Ae AE
186 .       ds oe oe
187 .       ds Oe OE
188 .\}
189 .rm #[ #] #H #V #F C
190 .SH "NAME"
191 RSA_padding_add_PKCS1_type_1, RSA_padding_check_PKCS1_type_1,
192 RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2,
193 RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP,
194 RSA_padding_add_SSLv23, RSA_padding_check_SSLv23,
195 RSA_padding_add_none, RSA_padding_check_none \- asymmetric encryption
196 padding
197 .SH "SYNOPSIS"
198 .PP
199 .Vb 1
200 \& #include <openssl/rsa.h>
201 .Ve
202 .Vb 2
203 \& int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen,
204 \&    unsigned char *f, int fl);
205 .Ve
206 .Vb 2
207 \& int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen,
208 \&    unsigned char *f, int fl, int rsa_len);
209 .Ve
210 .Vb 2
211 \& int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen,
212 \&    unsigned char *f, int fl);
213 .Ve
214 .Vb 2
215 \& int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen,
216 \&    unsigned char *f, int fl, int rsa_len);
217 .Ve
218 .Vb 2
219 \& int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen,
220 \&    unsigned char *f, int fl, unsigned char *p, int pl);
221 .Ve
222 .Vb 2
223 \& int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
224 \&    unsigned char *f, int fl, int rsa_len, unsigned char *p, int pl);
225 .Ve
226 .Vb 2
227 \& int RSA_padding_add_SSLv23(unsigned char *to, int tlen,
228 \&    unsigned char *f, int fl);
229 .Ve
230 .Vb 2
231 \& int RSA_padding_check_SSLv23(unsigned char *to, int tlen,
232 \&    unsigned char *f, int fl, int rsa_len);
233 .Ve
234 .Vb 2
235 \& int RSA_padding_add_none(unsigned char *to, int tlen,
236 \&    unsigned char *f, int fl);
237 .Ve
238 .Vb 2
239 \& int RSA_padding_check_none(unsigned char *to, int tlen,
240 \&    unsigned char *f, int fl, int rsa_len);
241 .Ve
242 .SH "DESCRIPTION"
243 The \fIRSA_padding_xxx_xxx()\fR functions are called from the RSA encrypt,
244 decrypt, sign and verify functions. Normally they should not be called
245 from application programs.
246 .PP
247 However, they can also be called directly to implement padding for other
248 asymmetric ciphers. \fIRSA_padding_add_PKCS1_OAEP()\fR and
249 \fIRSA_padding_check_PKCS1_OAEP()\fR may be used in an application combined
250 with \fBRSA_NO_PADDING\fR in order to implement OAEP with an encoding
251 parameter.
252 .PP
253 \fIRSA_padding_add_xxx()\fR encodes \fBfl\fR bytes from \fBf\fR so as to fit into
254 \fBtlen\fR bytes and stores the result at \fBto\fR. An error occurs if \fBfl\fR
255 does not meet the size requirements of the encoding method.
256 .PP
257 The following encoding methods are implemented:
258 .Ip "PKCS1_type_1" 4
259 \s-1PKCS\s0 #1 v2.0 \s-1EMSA\s0\-\s-1PKCS1-\s0v1_5 (\s-1PKCS\s0 #1 v1.5 block type 1); used for signatures
260 .Ip "PKCS1_type_2" 4
261 \s-1PKCS\s0 #1 v2.0 \s-1EME\s0\-\s-1PKCS1-\s0v1_5 (\s-1PKCS\s0 #1 v1.5 block type 2)
262 .Ip "\s-1PKCS1_OAEP\s0" 4
263 \s-1PKCS\s0 #1 v2.0 \s-1EME\s0\-\s-1OAEP\s0
264 .Ip "SSLv23" 4
265 \s-1PKCS\s0 #1 \s-1EME\s0\-\s-1PKCS1-\s0v1_5 with \s-1SSL\s0\-specific modification
266 .Ip "none" 4
267 simply copy the data
268 .PP
269 The random number generator must be seeded prior to calling
270 \fIRSA_padding_add_xxx()\fR.
271 .PP
272 \fIRSA_padding_check_xxx()\fR verifies that the \fBfl\fR bytes at \fBf\fR contain
273 a valid encoding for a \fBrsa_len\fR byte \s-1RSA\s0 key in the respective
274 encoding method and stores the recovered data of at most \fBtlen\fR bytes
275 (for \fB\s-1RSA_NO_PADDING\s0\fR: of size \fBtlen\fR)
276 at \fBto\fR.
277 .PP
278 For \fIRSA_padding_xxx_OAEP()\fR, \fBp\fR points to the encoding parameter
279 of length \fBpl\fR. \fBp\fR may be \fB\s-1NULL\s0\fR if \fBpl\fR is 0.
280 .SH "RETURN VALUES"
281 The \fIRSA_padding_add_xxx()\fR functions return 1 on success, 0 on error.
282 The \fIRSA_padding_check_xxx()\fR functions return the length of the
283 recovered data, \-1 on error. Error codes can be obtained by calling
284 ERR_get_error(3).
285 .SH "SEE ALSO"
286 RSA_public_encrypt(3),
287 RSA_private_decrypt(3),
288 RSA_sign(3), RSA_verify(3)
289 .SH "HISTORY"
290 \fIRSA_padding_add_PKCS1_type_1()\fR, \fIRSA_padding_check_PKCS1_type_1()\fR,
291 \fIRSA_padding_add_PKCS1_type_2()\fR, \fIRSA_padding_check_PKCS1_type_2()\fR,
292 \fIRSA_padding_add_SSLv23()\fR, \fIRSA_padding_check_SSLv23()\fR,
293 \fIRSA_padding_add_none()\fR and \fIRSA_padding_check_none()\fR appeared in
294 SSLeay 0.9.0.
295 .PP
296 \fIRSA_padding_add_PKCS1_OAEP()\fR and \fIRSA_padding_check_PKCS1_OAEP()\fR were
297 added in OpenSSL 0.9.2b.
298
299 .rn }` ''
300 .IX Title "RSA_padding_add_PKCS1_type_1 3"
301 .IX Name "RSA_padding_add_PKCS1_type_1, RSA_padding_check_PKCS1_type_1,
302 RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2,
303 RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP,
304 RSA_padding_add_SSLv23, RSA_padding_check_SSLv23,
305 RSA_padding_add_none, RSA_padding_check_none - asymmetric encryption
306 padding"
307
308 .IX Header "NAME"
309
310 .IX Header "SYNOPSIS"
311
312 .IX Header "DESCRIPTION"
313
314 .IX Item "PKCS1_type_1"
315
316 .IX Item "PKCS1_type_2"
317
318 .IX Item "\s-1PKCS1_OAEP\s0"
319
320 .IX Item "SSLv23"
321
322 .IX Item "none"
323
324 .IX Header "RETURN VALUES"
325
326 .IX Header "SEE ALSO"
327
328 .IX Header "HISTORY"
329