Update OpenSSL version number and regenerate the manual pages.
[dragonfly.git] / secure / lib / libssl / man / SSL_CTX_set_default_passwd_cb.3
1 .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
12 ..
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
16 ..
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
21 ..
22 .de Ve \" End verbatim text
23 .ft R
24 .fi
25 ..
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<>.
32 .tr \(*W-
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 .    ds -- \(*W-
36 .    ds PI pi
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
39 .    ds L" ""
40 .    ds R" ""
41 .    ds C` ""
42 .    ds C' ""
43 'br\}
44 .el\{\
45 .    ds -- \|\(em\|
46 .    ds PI \(*p
47 .    ds L" ``
48 .    ds R" ''
49 'br\}
50 .\"
51 .\" Escape single quotes in literal strings from groff's Unicode transform.
52 .ie \n(.g .ds Aq \(aq
53 .el       .ds Aq '
54 .\"
55 .\" If the F register is turned on, we'll generate index entries on stderr for
56 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
57 .\" entries marked with X<> in POD.  Of course, you'll have to process the
58 .\" output yourself in some meaningful fashion.
59 .ie \nF \{\
60 .    de IX
61 .    tm Index:\\$1\t\\n%\t"\\$2"
62 ..
63 .    nr % 0
64 .    rr F
65 .\}
66 .el \{\
67 .    de IX
68 ..
69 .\}
70 .\"
71 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
72 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
73 .    \" fudge factors for nroff and troff
74 .if n \{\
75 .    ds #H 0
76 .    ds #V .8m
77 .    ds #F .3m
78 .    ds #[ \f1
79 .    ds #] \fP
80 .\}
81 .if t \{\
82 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
83 .    ds #V .6m
84 .    ds #F 0
85 .    ds #[ \&
86 .    ds #] \&
87 .\}
88 .    \" simple accents for nroff and troff
89 .if n \{\
90 .    ds ' \&
91 .    ds ` \&
92 .    ds ^ \&
93 .    ds , \&
94 .    ds ~ ~
95 .    ds /
96 .\}
97 .if t \{\
98 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
99 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
100 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
101 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
102 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
103 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
104 .\}
105 .    \" troff and (daisy-wheel) nroff accents
106 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
107 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
108 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
109 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
110 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
111 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
112 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
113 .ds ae a\h'-(\w'a'u*4/10)'e
114 .ds Ae A\h'-(\w'A'u*4/10)'E
115 .    \" corrections for vroff
116 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
117 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
118 .    \" for low resolution devices (crt and lpr)
119 .if \n(.H>23 .if \n(.V>19 \
120 \{\
121 .    ds : e
122 .    ds 8 ss
123 .    ds o a
124 .    ds d- d\h'-1'\(ga
125 .    ds D- D\h'-1'\(hy
126 .    ds th \o'bp'
127 .    ds Th \o'LP'
128 .    ds ae ae
129 .    ds Ae AE
130 .\}
131 .rm #[ #] #H #V #F C
132 .\" ========================================================================
133 .\"
134 .IX Title "SSL_CTX_set_default_passwd_cb 3"
135 .TH SSL_CTX_set_default_passwd_cb 3 "2009-11-06" "0.9.8l" "OpenSSL"
136 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
137 .\" way too many mistakes in technical documents.
138 .if n .ad l
139 .nh
140 .SH "NAME"
141 SSL_CTX_set_default_passwd_cb, SSL_CTX_set_default_passwd_cb_userdata \- set passwd callback for encrypted PEM file handling
142 .SH "SYNOPSIS"
143 .IX Header "SYNOPSIS"
144 .Vb 1
145 \& #include <openssl/ssl.h>
146 \&
147 \& void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
148 \& void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
149 \&
150 \& int pem_passwd_cb(char *buf, int size, int rwflag, void *userdata);
151 .Ve
152 .SH "DESCRIPTION"
153 .IX Header "DESCRIPTION"
154 \&\fISSL_CTX_set_default_passwd_cb()\fR sets the default password callback called
155 when loading/storing a \s-1PEM\s0 certificate with encryption.
156 .PP
157 \&\fISSL_CTX_set_default_passwd_cb_userdata()\fR sets a pointer to \fBuserdata\fR which
158 will be provided to the password callback on invocation.
159 .PP
160 The \fIpem_passwd_cb()\fR, which must be provided by the application, hands back the
161 password to be used during decryption. On invocation a pointer to \fBuserdata\fR
162 is provided. The pem_passwd_cb must write the password into the provided buffer
163 \&\fBbuf\fR which is of size \fBsize\fR. The actual length of the password must
164 be returned to the calling function. \fBrwflag\fR indicates whether the
165 callback is used for reading/decryption (rwflag=0) or writing/encryption
166 (rwflag=1).
167 .SH "NOTES"
168 .IX Header "NOTES"
169 When loading or storing private keys, a password might be supplied to
170 protect the private key. The way this password can be supplied may depend
171 on the application. If only one private key is handled, it can be practical
172 to have \fIpem_passwd_cb()\fR handle the password dialog interactively. If several
173 keys have to be handled, it can be practical to ask for the password once,
174 then keep it in memory and use it several times. In the last case, the
175 password could be stored into the \fBuserdata\fR storage and the
176 \&\fIpem_passwd_cb()\fR only returns the password already stored.
177 .PP
178 When asking for the password interactively, \fIpem_passwd_cb()\fR can use
179 \&\fBrwflag\fR to check, whether an item shall be encrypted (rwflag=1).
180 In this case the password dialog may ask for the same password twice
181 for comparison in order to catch typos, that would make decryption
182 impossible.
183 .PP
184 Other items in \s-1PEM\s0 formatting (certificates) can also be encrypted, it is
185 however not usual, as certificate information is considered public.
186 .SH "RETURN VALUES"
187 .IX Header "RETURN VALUES"
188 \&\fISSL_CTX_set_default_passwd_cb()\fR and \fISSL_CTX_set_default_passwd_cb_userdata()\fR
189 do not provide diagnostic information.
190 .SH "EXAMPLES"
191 .IX Header "EXAMPLES"
192 The following example returns the password provided as \fBuserdata\fR to the
193 calling function. The password is considered to be a '\e0' terminated
194 string. If the password does not fit into the buffer, the password is
195 truncated.
196 .PP
197 .Vb 6
198 \& int pem_passwd_cb(char *buf, int size, int rwflag, void *password)
199 \& {
200 \&  strncpy(buf, (char *)(password), size);
201 \&  buf[size \- 1] = \*(Aq\e0\*(Aq;
202 \&  return(strlen(buf));
203 \& }
204 .Ve
205 .SH "SEE ALSO"
206 .IX Header "SEE ALSO"
207 \&\fIssl\fR\|(3),
208 \&\fISSL_CTX_use_certificate\fR\|(3)