2 ''' $RCSfile$$Revision$$Date$
20 .ie \\n(.$>=3 .ne \\$3
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.
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
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
80 .\" If the F register is turned on, we'll generate
81 .\" index entries out stderr for the following things:
86 .\" X<> Xref (embedded
87 .\" Of course, you have to process the output yourself
88 .\" in some meaninful fashion.
91 .tm Index:\\$1\t\\n%\t"\\$2"
96 .TH RAND_set_rand_method 3 "0.9.7d" "2/Sep/2004" "OpenSSL"
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
107 \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
110 .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
111 . \" AM - accent mark definitions
113 . \" fudge factors for nroff and troff
122 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
128 . \" simple accents for nroff and troff
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'
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 \
175 . ds v \h'-1'\o'\(aa\(ga'
191 RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay \- select RAND method
195 \& #include <openssl/rand.h>
198 \& void RAND_set_rand_method(const RAND_METHOD *meth);
201 \& const RAND_METHOD *RAND_get_rand_method(void);
204 \& RAND_METHOD *RAND_SSLeay(void);
207 A \fBRAND_METHOD\fR specifies the functions that OpenSSL uses for random number
208 generation. By modifying the method, alternative implementations such as
209 hardware RNGs may be used. IMPORTANT: See the NOTES section for important
210 information about how these RAND API functions are affected by the use of
211 \fBENGINE\fR API calls.
213 Initially, the default RAND_METHOD is the OpenSSL internal implementation, as
214 returned by \fIRAND_SSLeay()\fR.
216 \fIRAND_set_default_method()\fR makes \fBmeth\fR the method for PRNG use. \fBNB\fR: This is
217 true only whilst no ENGINE has been set as a default for RAND, so this function
218 is no longer recommended.
220 \fIRAND_get_default_method()\fR returns a pointer to the current RAND_METHOD.
221 However, the meaningfulness of this result is dependant on whether the ENGINE
222 API is being used, so this function is no longer recommended.
223 .SH "THE RAND_METHOD STRUCTURE"
226 \& typedef struct rand_meth_st
228 \& void (*seed)(const void *buf, int num);
229 \& int (*bytes)(unsigned char *buf, int num);
230 \& void (*cleanup)(void);
231 \& void (*add)(const void *buf, int num, int entropy);
232 \& int (*pseudorand)(unsigned char *buf, int num);
233 \& int (*status)(void);
236 The components point to the implementation of \fIRAND_seed()\fR,
237 \fIRAND_bytes()\fR, \fIRAND_cleanup()\fR, \fIRAND_add()\fR, \fIRAND_pseudo_rand()\fR
238 and \fIRAND_status()\fR.
239 Each component may be NULL if the function is not implemented.
241 \fIRAND_set_rand_method()\fR returns no value. \fIRAND_get_rand_method()\fR and
242 \fIRAND_SSLeay()\fR return pointers to the respective methods.
244 As of version 0.9.7, RAND_METHOD implementations are grouped together with other
245 algorithmic APIs (eg. RSA_METHOD, EVP_CIPHER, etc) in \fBENGINE\fR modules. If a
246 default ENGINE is specified for RAND functionality using an ENGINE API function,
247 that will override any RAND defaults set using the RAND API (ie.
248 \fIRAND_set_rand_method()\fR). For this reason, the ENGINE API is the recommended way
249 to control default implementations for use in RAND and other cryptographic
254 \fIRAND_set_rand_method()\fR, \fIRAND_get_rand_method()\fR and \fIRAND_SSLeay()\fR are
255 available in all versions of OpenSSL.
257 In the engine version of version 0.9.6, \fIRAND_set_rand_method()\fR was altered to
258 take an ENGINE pointer as its argument. As of version 0.9.7, that has been
259 reverted as the ENGINE API transparently overrides RAND defaults if used,
260 otherwise RAND API functions work as before. \fIRAND_set_rand_engine()\fR was also
261 introduced in version 0.9.7.
264 .IX Title "RAND_set_rand_method 3"
265 .IX Name "RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay - select RAND method"
269 .IX Header "SYNOPSIS"
271 .IX Header "DESCRIPTION"
273 .IX Header "THE RAND_METHOD STRUCTURE"
275 .IX Header "RETURN VALUES"
279 .IX Header "SEE ALSO"