]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/DH_set_method.3
This commit was generated by cvs2svn to compensate for changes in r99060,
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / DH_set_method.3
1 .\" Automatically generated by Pod::Man version 1.15
2 .\" Thu May  9 13:17:01 2002
3 .\"
4 .\" Standard preamble:
5 .\" ======================================================================
6 .de Sh \" Subsection heading
7 .br
8 .if t .Sp
9 .ne 5
10 .PP
11 \fB\\$1\fR
12 .PP
13 ..
14 .de Sp \" Vertical space (when we can't use .PP)
15 .if t .sp .5v
16 .if n .sp
17 ..
18 .de Ip \" List item
19 .br
20 .ie \\n(.$>=3 .ne \\$3
21 .el .ne 3
22 .IP "\\$1" \\$2
23 ..
24 .de Vb \" Begin verbatim text
25 .ft CW
26 .nf
27 .ne \\$1
28 ..
29 .de Ve \" End verbatim text
30 .ft R
31
32 .fi
33 ..
34 .\" Set up some character translations and predefined strings.  \*(-- will
35 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
36 .\" double quote, and \*(R" will give a right double quote.  | will give a
37 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used
38 .\" to do unbreakable dashes and therefore won't be available.  \*(C` and
39 .\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
40 .tr \(*W-|\(bv\*(Tr
41 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
42 .ie n \{\
43 .    ds -- \(*W-
44 .    ds PI pi
45 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
46 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
47 .    ds L" ""
48 .    ds R" ""
49 .    ds C` ""
50 .    ds C' ""
51 'br\}
52 .el\{\
53 .    ds -- \|\(em\|
54 .    ds PI \(*p
55 .    ds L" ``
56 .    ds R" ''
57 'br\}
58 .\"
59 .\" If the F register is turned on, we'll generate index entries on stderr
60 .\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
61 .\" index entries marked with X<> in POD.  Of course, you'll have to process
62 .\" the output yourself in some meaningful fashion.
63 .if \nF \{\
64 .    de IX
65 .    tm Index:\\$1\t\\n%\t"\\$2"
66 ..
67 .    nr % 0
68 .    rr F
69 .\}
70 .\"
71 .\" For nroff, turn off justification.  Always turn off hyphenation; it
72 .\" makes way too many mistakes in technical documents.
73 .hy 0
74 .if n .na
75 .\"
76 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
77 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
78 .bd B 3
79 .    \" fudge factors for nroff and troff
80 .if n \{\
81 .    ds #H 0
82 .    ds #V .8m
83 .    ds #F .3m
84 .    ds #[ \f1
85 .    ds #] \fP
86 .\}
87 .if t \{\
88 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
89 .    ds #V .6m
90 .    ds #F 0
91 .    ds #[ \&
92 .    ds #] \&
93 .\}
94 .    \" simple accents for nroff and troff
95 .if n \{\
96 .    ds ' \&
97 .    ds ` \&
98 .    ds ^ \&
99 .    ds , \&
100 .    ds ~ ~
101 .    ds /
102 .\}
103 .if t \{\
104 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
105 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
106 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
107 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
108 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
109 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
110 .\}
111 .    \" troff and (daisy-wheel) nroff accents
112 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
113 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
114 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
115 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
116 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
117 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
118 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
119 .ds ae a\h'-(\w'a'u*4/10)'e
120 .ds Ae A\h'-(\w'A'u*4/10)'E
121 .    \" corrections for vroff
122 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
123 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
124 .    \" for low resolution devices (crt and lpr)
125 .if \n(.H>23 .if \n(.V>19 \
126 \{\
127 .    ds : e
128 .    ds 8 ss
129 .    ds o a
130 .    ds d- d\h'-1'\(ga
131 .    ds D- D\h'-1'\(hy
132 .    ds th \o'bp'
133 .    ds Th \o'LP'
134 .    ds ae ae
135 .    ds Ae AE
136 .\}
137 .rm #[ #] #H #V #F C
138 .\" ======================================================================
139 .\"
140 .IX Title "DH_SET_METHOD 1"
141 .TH DH_SET_METHOD 1 "perl v5.6.1" "2000-11-13" "User Contributed Perl Documentation"
142 .UC
143 .SH "NAME"
144 DH_set_default_method, DH_get_default_method, DH_set_method,
145 DH_new_method, DH_OpenSSL \- select \s-1DH\s0 method
146 .SH "SYNOPSIS"
147 .IX Header "SYNOPSIS"
148 .Vb 1
149 \& #include <openssl/dh.h>
150 .Ve
151 .Vb 1
152 \& void DH_set_default_method(DH_METHOD *meth);
153 .Ve
154 .Vb 1
155 \& DH_METHOD *DH_get_default_method(void);
156 .Ve
157 .Vb 1
158 \& DH_METHOD *DH_set_method(DH *dh, DH_METHOD *meth);
159 .Ve
160 .Vb 1
161 \& DH *DH_new_method(DH_METHOD *meth);
162 .Ve
163 .Vb 1
164 \& DH_METHOD *DH_OpenSSL(void);
165 .Ve
166 .SH "DESCRIPTION"
167 .IX Header "DESCRIPTION"
168 A \fB\s-1DH_METHOD\s0\fR specifies the functions that OpenSSL uses for Diffie-Hellman
169 operations. By modifying the method, alternative implementations
170 such as hardware accelerators may be used.
171 .PP
172 Initially, the default is to use the OpenSSL internal implementation.
173 \&\fIDH_OpenSSL()\fR returns a pointer to that method.
174 .PP
175 \&\fIDH_set_default_method()\fR makes \fBmeth\fR the default method for all \fB\s-1DH\s0\fR
176 structures created later.
177 .PP
178 \&\fIDH_get_default_method()\fR returns a pointer to the current default
179 method.
180 .PP
181 \&\fIDH_set_method()\fR selects \fBmeth\fR for all operations using the structure \fBdh\fR.
182 .PP
183 \&\fIDH_new_method()\fR allocates and initializes a \fB\s-1DH\s0\fR structure so that
184 \&\fBmethod\fR will be used for the \s-1DH\s0 operations. If \fBmethod\fR is \fB\s-1NULL\s0\fR,
185 the default method is used.
186 .SH "THE DH_METHOD STRUCTURE"
187 .IX Header "THE DH_METHOD STRUCTURE"
188 .Vb 4
189 \& typedef struct dh_meth_st
190 \& {
191 \&     /* name of the implementation */
192 \&        const char *name;
193 .Ve
194 .Vb 2
195 \&     /* generate private and public DH values for key agreement */
196 \&        int (*generate_key)(DH *dh);
197 .Ve
198 .Vb 2
199 \&     /* compute shared secret */
200 \&        int (*compute_key)(unsigned char *key, BIGNUM *pub_key, DH *dh);
201 .Ve
202 .Vb 4
203 \&     /* compute r = a ^ p mod m (May be NULL for some implementations) */
204 \&        int (*bn_mod_exp)(DH *dh, BIGNUM *r, BIGNUM *a, const BIGNUM *p,
205 \&                                const BIGNUM *m, BN_CTX *ctx,
206 \&                                BN_MONT_CTX *m_ctx);
207 .Ve
208 .Vb 2
209 \&     /* called at DH_new */
210 \&        int (*init)(DH *dh);
211 .Ve
212 .Vb 2
213 \&     /* called at DH_free */
214 \&        int (*finish)(DH *dh);
215 .Ve
216 .Vb 1
217 \&        int flags;
218 .Ve
219 .Vb 1
220 \&        char *app_data; /* ?? */
221 .Ve
222 .Vb 1
223 \& } DH_METHOD;
224 .Ve
225 .SH "RETURN VALUES"
226 .IX Header "RETURN VALUES"
227 \&\fIDH_OpenSSL()\fR and \fIDH_get_default_method()\fR return pointers to the respective
228 \&\fB\s-1DH_METHOD\s0\fRs.
229 .PP
230 \&\fIDH_set_default_method()\fR returns no value.
231 .PP
232 \&\fIDH_set_method()\fR returns a pointer to the \fB\s-1DH_METHOD\s0\fR previously
233 associated with \fBdh\fR.
234 .PP
235 \&\fIDH_new_method()\fR returns \fB\s-1NULL\s0\fR and sets an error code that can be
236 obtained by ERR_get_error(3) if the allocation fails. Otherwise it
237 returns a pointer to the newly allocated structure.
238 .SH "SEE ALSO"
239 .IX Header "SEE ALSO"
240 dh(3), DH_new(3)
241 .SH "HISTORY"
242 .IX Header "HISTORY"
243 \&\fIDH_set_default_method()\fR, \fIDH_get_default_method()\fR, \fIDH_set_method()\fR,
244 \&\fIDH_new_method()\fR and \fIDH_OpenSSL()\fR were added in OpenSSL 0.9.4.