1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 3<title>Heimdal crypto library: RAND crypto functions</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5<link href="tabs.css" rel="stylesheet" type="text/css"> 6</head><body> 7<p> 8<a href="http://www.h5l.org/"><img src="http://www.h5l.org/keyhole-heimdal.png" alt="keyhole logo"/></a> 9</p> 10<!-- end of header marker --> 11<!-- Generated by Doxygen 1.5.6 --> 12<div class="navigation" id="top"> 13 <div class="tabs"> 14 <ul> 15 <li><a href="index.html"><span>Main Page</span></a></li> 16 <li><a href="modules.html"><span>Modules</span></a></li> 17 <li><a href="examples.html"><span>Examples</span></a></li> 18 </ul> 19 </div> 20</div> 21<div class="contents"> 22<h1>RAND crypto functions</h1><table border="0" cellpadding="0" cellspacing="0"> 23<tr><td></td></tr> 24<tr><td colspan="2"><br><h2>Functions</h2></td></tr> 25<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g700cd34f79c820f427f95c243befe085">RAND_seed</a> (const void *indata, size_t size)</td></tr> 26 27<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g957a044ad71e3c915ff7acc564be84a4">RAND_bytes</a> (void *outdata, size_t size)</td></tr> 28 29<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#gd797e371751dedbcce4e975c3cad1947">RAND_cleanup</a> (void)</td></tr> 30 31<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g08927181178dc6329264982f2fb1b39b">RAND_add</a> (const void *indata, size_t size, double entropi)</td></tr> 32 33<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g93d10a9ba8647408a3b5306c2cd423f2">RAND_pseudo_bytes</a> (void *outdata, size_t size)</td></tr> 34 35<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g38d21605e6e777451769a8ee7087933b">RAND_status</a> (void)</td></tr> 36 37<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g292ae50ca725d0c529dc077467b40254">RAND_set_rand_method</a> (const RAND_METHOD *meth)</td></tr> 38 39<tr><td class="memItemLeft" nowrap align="right" valign="top">const RAND_METHOD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g8a8cac7a3262c4527e08f57f07c4c586">RAND_get_rand_method</a> (void)</td></tr> 40 41<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g6a4f2c2cf723ef63522d4b33c79d5f0f">RAND_set_rand_engine</a> (ENGINE *engine)</td></tr> 42 43<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g9ca9fe0e799e41e8e745a88e3a60ccfd">RAND_load_file</a> (const char *filename, size_t size)</td></tr> 44 45<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#gb9638d698e0a8ab94a31322693588eba">RAND_write_file</a> (const char *filename)</td></tr> 46 47<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#g77b2d2555388b5d75a4bab3843fc8f02">RAND_file_name</a> (char *filename, size_t size)</td></tr> 48 49</table> 50<hr><a name="_details"></a><h2>Detailed Description</h2> 51See the <a class="el" href="page_rand.html">RAND - random number</a> for description and examples. <hr><h2>Function Documentation</h2> 52<a class="anchor" name="g08927181178dc6329264982f2fb1b39b"></a><!-- doxytag: member="rand.c::RAND_add" ref="g08927181178dc6329264982f2fb1b39b" args="(const void *indata, size_t size, double entropi)" --> 53<div class="memitem"> 54<div class="memproto"> 55 <table class="memname"> 56 <tr> 57 <td class="memname">void RAND_add </td> 58 <td>(</td> 59 <td class="paramtype">const void * </td> 60 <td class="paramname"> <em>indata</em>, </td> 61 </tr> 62 <tr> 63 <td class="paramkey"></td> 64 <td></td> 65 <td class="paramtype">size_t </td> 66 <td class="paramname"> <em>size</em>, </td> 67 </tr> 68 <tr> 69 <td class="paramkey"></td> 70 <td></td> 71 <td class="paramtype">double </td> 72 <td class="paramname"> <em>entropi</em></td><td> </td> 73 </tr> 74 <tr> 75 <td></td> 76 <td>)</td> 77 <td></td><td></td><td></td> 78 </tr> 79 </table> 80</div> 81<div class="memdoc"> 82 83<p> 84Seed that random number generator. Secret material can securely be feed into the function, they will never be returned.<p> 85<dl compact><dt><b>Parameters:</b></dt><dd> 86 <table border="0" cellspacing="2" cellpadding="0"> 87 <tr><td valign="top"></td><td valign="top"><em>indata</em> </td><td>the input data. </td></tr> 88 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>size of in data. </td></tr> 89 <tr><td valign="top"></td><td valign="top"><em>entropi</em> </td><td>entropi in data. </td></tr> 90 </table> 91</dl> 92 93</div> 94</div><p> 95<a class="anchor" name="g957a044ad71e3c915ff7acc564be84a4"></a><!-- doxytag: member="rand.c::RAND_bytes" ref="g957a044ad71e3c915ff7acc564be84a4" args="(void *outdata, size_t size)" --> 96<div class="memitem"> 97<div class="memproto"> 98 <table class="memname"> 99 <tr> 100 <td class="memname">int RAND_bytes </td> 101 <td>(</td> 102 <td class="paramtype">void * </td> 103 <td class="paramname"> <em>outdata</em>, </td> 104 </tr> 105 <tr> 106 <td class="paramkey"></td> 107 <td></td> 108 <td class="paramtype">size_t </td> 109 <td class="paramname"> <em>size</em></td><td> </td> 110 </tr> 111 <tr> 112 <td></td> 113 <td>)</td> 114 <td></td><td></td><td></td> 115 </tr> 116 </table> 117</div> 118<div class="memdoc"> 119 120<p> 121Get a random block from the random generator, can be used for key material.<p> 122<dl compact><dt><b>Parameters:</b></dt><dd> 123 <table border="0" cellspacing="2" cellpadding="0"> 124 <tr><td valign="top"></td><td valign="top"><em>outdata</em> </td><td>random data </td></tr> 125 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>length random data</td></tr> 126 </table> 127</dl> 128<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure. </dd></dl> 129 130</div> 131</div><p> 132<a class="anchor" name="gd797e371751dedbcce4e975c3cad1947"></a><!-- doxytag: member="rand.c::RAND_cleanup" ref="gd797e371751dedbcce4e975c3cad1947" args="(void)" --> 133<div class="memitem"> 134<div class="memproto"> 135 <table class="memname"> 136 <tr> 137 <td class="memname">void RAND_cleanup </td> 138 <td>(</td> 139 <td class="paramtype">void </td> 140 <td class="paramname"> </td> 141 <td> ) </td> 142 <td></td> 143 </tr> 144 </table> 145</div> 146<div class="memdoc"> 147 148<p> 149Reset and free memory used by the random generator. 150</div> 151</div><p> 152<a class="anchor" name="g77b2d2555388b5d75a4bab3843fc8f02"></a><!-- doxytag: member="rand.c::RAND_file_name" ref="g77b2d2555388b5d75a4bab3843fc8f02" args="(char *filename, size_t size)" --> 153<div class="memitem"> 154<div class="memproto"> 155 <table class="memname"> 156 <tr> 157 <td class="memname">const char* RAND_file_name </td> 158 <td>(</td> 159 <td class="paramtype">char * </td> 160 <td class="paramname"> <em>filename</em>, </td> 161 </tr> 162 <tr> 163 <td class="paramkey"></td> 164 <td></td> 165 <td class="paramtype">size_t </td> 166 <td class="paramname"> <em>size</em></td><td> </td> 167 </tr> 168 <tr> 169 <td></td> 170 <td>)</td> 171 <td></td><td></td><td></td> 172 </tr> 173 </table> 174</div> 175<div class="memdoc"> 176 177<p> 178Return the default random state filename for a user to use for <a class="el" href="group__hcrypto__rand.html#g9ca9fe0e799e41e8e745a88e3a60ccfd">RAND_load_file()</a>, and <a class="el" href="group__hcrypto__rand.html#gb9638d698e0a8ab94a31322693588eba">RAND_write_file()</a>.<p> 179<dl compact><dt><b>Parameters:</b></dt><dd> 180 <table border="0" cellspacing="2" cellpadding="0"> 181 <tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>buffer to hold file name. </td></tr> 182 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>size of buffer filename.</td></tr> 183 </table> 184</dl> 185<dl class="return" compact><dt><b>Returns:</b></dt><dd>the buffer filename or NULL on failure. </dd></dl> 186 187</div> 188</div><p> 189<a class="anchor" name="g8a8cac7a3262c4527e08f57f07c4c586"></a><!-- doxytag: member="rand.c::RAND_get_rand_method" ref="g8a8cac7a3262c4527e08f57f07c4c586" args="(void)" --> 190<div class="memitem"> 191<div class="memproto"> 192 <table class="memname"> 193 <tr> 194 <td class="memname">const RAND_METHOD* RAND_get_rand_method </td> 195 <td>(</td> 196 <td class="paramtype">void </td> 197 <td class="paramname"> </td> 198 <td> ) </td> 199 <td></td> 200 </tr> 201 </table> 202</div> 203<div class="memdoc"> 204 205<p> 206Get the default random method. 207</div> 208</div><p> 209<a class="anchor" name="g9ca9fe0e799e41e8e745a88e3a60ccfd"></a><!-- doxytag: member="rand.c::RAND_load_file" ref="g9ca9fe0e799e41e8e745a88e3a60ccfd" args="(const char *filename, size_t size)" --> 210<div class="memitem"> 211<div class="memproto"> 212 <table class="memname"> 213 <tr> 214 <td class="memname">int RAND_load_file </td> 215 <td>(</td> 216 <td class="paramtype">const char * </td> 217 <td class="paramname"> <em>filename</em>, </td> 218 </tr> 219 <tr> 220 <td class="paramkey"></td> 221 <td></td> 222 <td class="paramtype">size_t </td> 223 <td class="paramname"> <em>size</em></td><td> </td> 224 </tr> 225 <tr> 226 <td></td> 227 <td>)</td> 228 <td></td><td></td><td></td> 229 </tr> 230 </table> 231</div> 232<div class="memdoc"> 233 234<p> 235Load a a file and feed it into <a class="el" href="group__hcrypto__rand.html#g700cd34f79c820f427f95c243befe085">RAND_seed()</a>.<p> 236<dl compact><dt><b>Parameters:</b></dt><dd> 237 <table border="0" cellspacing="2" cellpadding="0"> 238 <tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>name of file to read. </td></tr> 239 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>minimum size to read. </td></tr> 240 </table> 241</dl> 242 243</div> 244</div><p> 245<a class="anchor" name="g93d10a9ba8647408a3b5306c2cd423f2"></a><!-- doxytag: member="rand.c::RAND_pseudo_bytes" ref="g93d10a9ba8647408a3b5306c2cd423f2" args="(void *outdata, size_t size)" --> 246<div class="memitem"> 247<div class="memproto"> 248 <table class="memname"> 249 <tr> 250 <td class="memname">int RAND_pseudo_bytes </td> 251 <td>(</td> 252 <td class="paramtype">void * </td> 253 <td class="paramname"> <em>outdata</em>, </td> 254 </tr> 255 <tr> 256 <td class="paramkey"></td> 257 <td></td> 258 <td class="paramtype">size_t </td> 259 <td class="paramname"> <em>size</em></td><td> </td> 260 </tr> 261 <tr> 262 <td></td> 263 <td>)</td> 264 <td></td><td></td><td></td> 265 </tr> 266 </table> 267</div> 268<div class="memdoc"> 269 270<p> 271Get a random block from the random generator, should NOT be used for key material.<p> 272<dl compact><dt><b>Parameters:</b></dt><dd> 273 <table border="0" cellspacing="2" cellpadding="0"> 274 <tr><td valign="top"></td><td valign="top"><em>outdata</em> </td><td>random data </td></tr> 275 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>length random data</td></tr> 276 </table> 277</dl> 278<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure. </dd></dl> 279 280</div> 281</div><p> 282<a class="anchor" name="g700cd34f79c820f427f95c243befe085"></a><!-- doxytag: member="rand.c::RAND_seed" ref="g700cd34f79c820f427f95c243befe085" args="(const void *indata, size_t size)" --> 283<div class="memitem"> 284<div class="memproto"> 285 <table class="memname"> 286 <tr> 287 <td class="memname">void RAND_seed </td> 288 <td>(</td> 289 <td class="paramtype">const void * </td> 290 <td class="paramname"> <em>indata</em>, </td> 291 </tr> 292 <tr> 293 <td class="paramkey"></td> 294 <td></td> 295 <td class="paramtype">size_t </td> 296 <td class="paramname"> <em>size</em></td><td> </td> 297 </tr> 298 <tr> 299 <td></td> 300 <td>)</td> 301 <td></td><td></td><td></td> 302 </tr> 303 </table> 304</div> 305<div class="memdoc"> 306 307<p> 308Seed that random number generator. Secret material can securely be feed into the function, they will never be returned.<p> 309<dl compact><dt><b>Parameters:</b></dt><dd> 310 <table border="0" cellspacing="2" cellpadding="0"> 311 <tr><td valign="top"></td><td valign="top"><em>indata</em> </td><td>seed data </td></tr> 312 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>length seed data </td></tr> 313 </table> 314</dl> 315 316</div> 317</div><p> 318<a class="anchor" name="g6a4f2c2cf723ef63522d4b33c79d5f0f"></a><!-- doxytag: member="rand.c::RAND_set_rand_engine" ref="g6a4f2c2cf723ef63522d4b33c79d5f0f" args="(ENGINE *engine)" --> 319<div class="memitem"> 320<div class="memproto"> 321 <table class="memname"> 322 <tr> 323 <td class="memname">int RAND_set_rand_engine </td> 324 <td>(</td> 325 <td class="paramtype">ENGINE * </td> 326 <td class="paramname"> <em>engine</em> </td> 327 <td> ) </td> 328 <td></td> 329 </tr> 330 </table> 331</div> 332<div class="memdoc"> 333 334<p> 335Set the default random method from engine.<p> 336<dl compact><dt><b>Parameters:</b></dt><dd> 337 <table border="0" cellspacing="2" cellpadding="0"> 338 <tr><td valign="top"></td><td valign="top"><em>engine</em> </td><td>use engine, if NULL is passed it, old method and engine is cleared.</td></tr> 339 </table> 340</dl> 341<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure. </dd></dl> 342 343</div> 344</div><p> 345<a class="anchor" name="g292ae50ca725d0c529dc077467b40254"></a><!-- doxytag: member="rand.c::RAND_set_rand_method" ref="g292ae50ca725d0c529dc077467b40254" args="(const RAND_METHOD *meth)" --> 346<div class="memitem"> 347<div class="memproto"> 348 <table class="memname"> 349 <tr> 350 <td class="memname">int RAND_set_rand_method </td> 351 <td>(</td> 352 <td class="paramtype">const RAND_METHOD * </td> 353 <td class="paramname"> <em>meth</em> </td> 354 <td> ) </td> 355 <td></td> 356 </tr> 357 </table> 358</div> 359<div class="memdoc"> 360 361<p> 362Set the default random method.<p> 363<dl compact><dt><b>Parameters:</b></dt><dd> 364 <table border="0" cellspacing="2" cellpadding="0"> 365 <tr><td valign="top"></td><td valign="top"><em>meth</em> </td><td>set the new default method.</td></tr> 366 </table> 367</dl> 368<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 369 370</div> 371</div><p> 372<a class="anchor" name="g38d21605e6e777451769a8ee7087933b"></a><!-- doxytag: member="rand.c::RAND_status" ref="g38d21605e6e777451769a8ee7087933b" args="(void)" --> 373<div class="memitem"> 374<div class="memproto"> 375 <table class="memname"> 376 <tr> 377 <td class="memname">int RAND_status </td> 378 <td>(</td> 379 <td class="paramtype">void </td> 380 <td class="paramname"> </td> 381 <td> ) </td> 382 <td></td> 383 </tr> 384 </table> 385</div> 386<div class="memdoc"> 387 388<p> 389Return status of the random generator<p> 390<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the random generator can deliver random data. </dd></dl> 391 392</div> 393</div><p> 394<a class="anchor" name="gb9638d698e0a8ab94a31322693588eba"></a><!-- doxytag: member="rand.c::RAND_write_file" ref="gb9638d698e0a8ab94a31322693588eba" args="(const char *filename)" --> 395<div class="memitem"> 396<div class="memproto"> 397 <table class="memname"> 398 <tr> 399 <td class="memname">int RAND_write_file </td> 400 <td>(</td> 401 <td class="paramtype">const char * </td> 402 <td class="paramname"> <em>filename</em> </td> 403 <td> ) </td> 404 <td></td> 405 </tr> 406 </table> 407</div> 408<div class="memdoc"> 409 410<p> 411Write of random numbers to a file to store for later initiation with <a class="el" href="group__hcrypto__rand.html#g9ca9fe0e799e41e8e745a88e3a60ccfd">RAND_load_file()</a>.<p> 412<dl compact><dt><b>Parameters:</b></dt><dd> 413 <table border="0" cellspacing="2" cellpadding="0"> 414 <tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>name of file to write.</td></tr> 415 </table> 416</dl> 417<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success and non-one on failure. </dd></dl> 418 419</div> 420</div><p> 421</div> 422<hr size="1"><address style="text-align: right;"><small> 423Generated on Wed Jan 11 14:07:38 2012 for Heimdal crypto library by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address> 424</body> 425</html> 426