Update files for OpenSSL-1.0.1c import.
[dragonfly.git] / secure / lib / libcrypto / man / RSA_padding_add_PKCS1_type_1.3
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.19)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
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
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
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'
96 .\}
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 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "RSA_padding_add_PKCS1_type_1 3"
127 .TH RSA_padding_add_PKCS1_type_1 3 "2012-05-10" "1.0.1c" "OpenSSL"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 RSA_padding_add_PKCS1_type_1, RSA_padding_check_PKCS1_type_1,
134 RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2,
135 RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP,
136 RSA_padding_add_SSLv23, RSA_padding_check_SSLv23,
137 RSA_padding_add_none, RSA_padding_check_none \- asymmetric encryption
138 padding
139 .SH "SYNOPSIS"
140 .IX Header "SYNOPSIS"
141 .Vb 1
142 \& #include <openssl/rsa.h>
143 \&
144 \& int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen,
145 \&    unsigned char *f, int fl);
146 \&
147 \& int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen,
148 \&    unsigned char *f, int fl, int rsa_len);
149 \&
150 \& int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen,
151 \&    unsigned char *f, int fl);
152 \&
153 \& int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen,
154 \&    unsigned char *f, int fl, int rsa_len);
155 \&
156 \& int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen,
157 \&    unsigned char *f, int fl, unsigned char *p, int pl);
158 \&
159 \& int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen,
160 \&    unsigned char *f, int fl, int rsa_len, unsigned char *p, int pl);
161 \&
162 \& int RSA_padding_add_SSLv23(unsigned char *to, int tlen,
163 \&    unsigned char *f, int fl);
164 \&
165 \& int RSA_padding_check_SSLv23(unsigned char *to, int tlen,
166 \&    unsigned char *f, int fl, int rsa_len);
167 \&
168 \& int RSA_padding_add_none(unsigned char *to, int tlen,
169 \&    unsigned char *f, int fl);
170 \&
171 \& int RSA_padding_check_none(unsigned char *to, int tlen,
172 \&    unsigned char *f, int fl, int rsa_len);
173 .Ve
174 .SH "DESCRIPTION"
175 .IX Header "DESCRIPTION"
176 The \fIRSA_padding_xxx_xxx()\fR functions are called from the \s-1RSA\s0 encrypt,
177 decrypt, sign and verify functions. Normally they should not be called
178 from application programs.
179 .PP
180 However, they can also be called directly to implement padding for other
181 asymmetric ciphers. \fIRSA_padding_add_PKCS1_OAEP()\fR and
182 \&\fIRSA_padding_check_PKCS1_OAEP()\fR may be used in an application combined
183 with \fB\s-1RSA_NO_PADDING\s0\fR in order to implement \s-1OAEP\s0 with an encoding
184 parameter.
185 .PP
186 \&\fIRSA_padding_add_xxx()\fR encodes \fBfl\fR bytes from \fBf\fR so as to fit into
187 \&\fBtlen\fR bytes and stores the result at \fBto\fR. An error occurs if \fBfl\fR
188 does not meet the size requirements of the encoding method.
189 .PP
190 The following encoding methods are implemented:
191 .IP "PKCS1_type_1" 4
192 .IX Item "PKCS1_type_1"
193 \&\s-1PKCS\s0 #1 v2.0 EMSA\-PKCS1\-v1_5 (\s-1PKCS\s0 #1 v1.5 block type 1); used for signatures
194 .IP "PKCS1_type_2" 4
195 .IX Item "PKCS1_type_2"
196 \&\s-1PKCS\s0 #1 v2.0 EME\-PKCS1\-v1_5 (\s-1PKCS\s0 #1 v1.5 block type 2)
197 .IP "\s-1PKCS1_OAEP\s0" 4
198 .IX Item "PKCS1_OAEP"
199 \&\s-1PKCS\s0 #1 v2.0 EME-OAEP
200 .IP "SSLv23" 4
201 .IX Item "SSLv23"
202 \&\s-1PKCS\s0 #1 EME\-PKCS1\-v1_5 with SSL-specific modification
203 .IP "none" 4
204 .IX Item "none"
205 simply copy the data
206 .PP
207 The random number generator must be seeded prior to calling
208 \&\fIRSA_padding_add_xxx()\fR.
209 .PP
210 \&\fIRSA_padding_check_xxx()\fR verifies that the \fBfl\fR bytes at \fBf\fR contain
211 a valid encoding for a \fBrsa_len\fR byte \s-1RSA\s0 key in the respective
212 encoding method and stores the recovered data of at most \fBtlen\fR bytes
213 (for \fB\s-1RSA_NO_PADDING\s0\fR: of size \fBtlen\fR)
214 at \fBto\fR.
215 .PP
216 For \fIRSA_padding_xxx_OAEP()\fR, \fBp\fR points to the encoding parameter
217 of length \fBpl\fR. \fBp\fR may be \fB\s-1NULL\s0\fR if \fBpl\fR is 0.
218 .SH "RETURN VALUES"
219 .IX Header "RETURN VALUES"
220 The \fIRSA_padding_add_xxx()\fR functions return 1 on success, 0 on error.
221 The \fIRSA_padding_check_xxx()\fR functions return the length of the
222 recovered data, \-1 on error. Error codes can be obtained by calling
223 \&\fIERR_get_error\fR\|(3).
224 .SH "SEE ALSO"
225 .IX Header "SEE ALSO"
226 \&\fIRSA_public_encrypt\fR\|(3),
227 \&\fIRSA_private_decrypt\fR\|(3),
228 \&\fIRSA_sign\fR\|(3), \fIRSA_verify\fR\|(3)
229 .SH "HISTORY"
230 .IX Header "HISTORY"
231 \&\fIRSA_padding_add_PKCS1_type_1()\fR, \fIRSA_padding_check_PKCS1_type_1()\fR,
232 \&\fIRSA_padding_add_PKCS1_type_2()\fR, \fIRSA_padding_check_PKCS1_type_2()\fR,
233 \&\fIRSA_padding_add_SSLv23()\fR, \fIRSA_padding_check_SSLv23()\fR,
234 \&\fIRSA_padding_add_none()\fR and \fIRSA_padding_check_none()\fR appeared in
235 SSLeay 0.9.0.
236 .PP
237 \&\fIRSA_padding_add_PKCS1_OAEP()\fR and \fIRSA_padding_check_PKCS1_OAEP()\fR were
238 added in OpenSSL 0.9.2b.