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>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.9.1 --> 12<script type="text/javascript" src="menudata.js"></script> 13<script type="text/javascript" src="menu.js"></script> 14<script type="text/javascript"> 15/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 16$(function() { 17 initMenu('',false,false,'search.php','Search'); 18}); 19/* @license-end */</script> 20<div id="main-nav"></div> 21</div><!-- top --> 22<div class="header"> 23 <div class="summary"> 24<a href="#func-members">Functions</a> </div> 25 <div class="headertitle"> 26<div class="title">RAND crypto functions</div> </div> 27</div><!--header--> 28<div class="contents"> 29<table class="memberdecls"> 30<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 31Functions</h2></td></tr> 32<tr class="memitem:ga700cd34f79c820f427f95c243befe085"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga700cd34f79c820f427f95c243befe085">RAND_seed</a> (const void *indata, size_t size)</td></tr> 33<tr class="separator:ga700cd34f79c820f427f95c243befe085"><td class="memSeparator" colspan="2"> </td></tr> 34<tr class="memitem:ga957a044ad71e3c915ff7acc564be84a4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga957a044ad71e3c915ff7acc564be84a4">RAND_bytes</a> (void *outdata, size_t size)</td></tr> 35<tr class="separator:ga957a044ad71e3c915ff7acc564be84a4"><td class="memSeparator" colspan="2"> </td></tr> 36<tr class="memitem:gad797e371751dedbcce4e975c3cad1947"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#gad797e371751dedbcce4e975c3cad1947">RAND_cleanup</a> (void)</td></tr> 37<tr class="separator:gad797e371751dedbcce4e975c3cad1947"><td class="memSeparator" colspan="2"> </td></tr> 38<tr class="memitem:ga08927181178dc6329264982f2fb1b39b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga08927181178dc6329264982f2fb1b39b">RAND_add</a> (const void *indata, size_t size, double entropi)</td></tr> 39<tr class="separator:ga08927181178dc6329264982f2fb1b39b"><td class="memSeparator" colspan="2"> </td></tr> 40<tr class="memitem:ga93d10a9ba8647408a3b5306c2cd423f2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga93d10a9ba8647408a3b5306c2cd423f2">RAND_pseudo_bytes</a> (void *outdata, size_t size)</td></tr> 41<tr class="separator:ga93d10a9ba8647408a3b5306c2cd423f2"><td class="memSeparator" colspan="2"> </td></tr> 42<tr class="memitem:ga38d21605e6e777451769a8ee7087933b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga38d21605e6e777451769a8ee7087933b">RAND_status</a> (void)</td></tr> 43<tr class="separator:ga38d21605e6e777451769a8ee7087933b"><td class="memSeparator" colspan="2"> </td></tr> 44<tr class="memitem:ga292ae50ca725d0c529dc077467b40254"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga292ae50ca725d0c529dc077467b40254">RAND_set_rand_method</a> (const RAND_METHOD *meth)</td></tr> 45<tr class="separator:ga292ae50ca725d0c529dc077467b40254"><td class="memSeparator" colspan="2"> </td></tr> 46<tr class="memitem:ga8a8cac7a3262c4527e08f57f07c4c586"><td class="memItemLeft" align="right" valign="top">const RAND_METHOD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga8a8cac7a3262c4527e08f57f07c4c586">RAND_get_rand_method</a> (void)</td></tr> 47<tr class="separator:ga8a8cac7a3262c4527e08f57f07c4c586"><td class="memSeparator" colspan="2"> </td></tr> 48<tr class="memitem:ga6a4f2c2cf723ef63522d4b33c79d5f0f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga6a4f2c2cf723ef63522d4b33c79d5f0f">RAND_set_rand_engine</a> (ENGINE *engine)</td></tr> 49<tr class="separator:ga6a4f2c2cf723ef63522d4b33c79d5f0f"><td class="memSeparator" colspan="2"> </td></tr> 50<tr class="memitem:ga9ca9fe0e799e41e8e745a88e3a60ccfd"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga9ca9fe0e799e41e8e745a88e3a60ccfd">RAND_load_file</a> (const char *filename, size_t size)</td></tr> 51<tr class="separator:ga9ca9fe0e799e41e8e745a88e3a60ccfd"><td class="memSeparator" colspan="2"> </td></tr> 52<tr class="memitem:gab9638d698e0a8ab94a31322693588eba"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#gab9638d698e0a8ab94a31322693588eba">RAND_write_file</a> (const char *filename)</td></tr> 53<tr class="separator:gab9638d698e0a8ab94a31322693588eba"><td class="memSeparator" colspan="2"> </td></tr> 54<tr class="memitem:ga77b2d2555388b5d75a4bab3843fc8f02"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__rand.html#ga77b2d2555388b5d75a4bab3843fc8f02">RAND_file_name</a> (char *filename, size_t size)</td></tr> 55<tr class="separator:ga77b2d2555388b5d75a4bab3843fc8f02"><td class="memSeparator" colspan="2"> </td></tr> 56</table> 57<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 58<p>See the <a class="el" href="page_rand.html">RAND - random number</a> for description and examples. </p> 59<h2 class="groupheader">Function Documentation</h2> 60<a id="ga08927181178dc6329264982f2fb1b39b"></a> 61<h2 class="memtitle"><span class="permalink"><a href="#ga08927181178dc6329264982f2fb1b39b">◆ </a></span>RAND_add()</h2> 62 63<div class="memitem"> 64<div class="memproto"> 65 <table class="memname"> 66 <tr> 67 <td class="memname">void RAND_add </td> 68 <td>(</td> 69 <td class="paramtype">const void * </td> 70 <td class="paramname"><em>indata</em>, </td> 71 </tr> 72 <tr> 73 <td class="paramkey"></td> 74 <td></td> 75 <td class="paramtype">size_t </td> 76 <td class="paramname"><em>size</em>, </td> 77 </tr> 78 <tr> 79 <td class="paramkey"></td> 80 <td></td> 81 <td class="paramtype">double </td> 82 <td class="paramname"><em>entropi</em> </td> 83 </tr> 84 <tr> 85 <td></td> 86 <td>)</td> 87 <td></td><td></td> 88 </tr> 89 </table> 90</div><div class="memdoc"> 91<p>Seed that random number generator. Secret material can securely be feed into the function, they will never be returned.</p> 92<dl class="params"><dt>Parameters</dt><dd> 93 <table class="params"> 94 <tr><td class="paramname">indata</td><td>the input data. </td></tr> 95 <tr><td class="paramname">size</td><td>size of in data. </td></tr> 96 <tr><td class="paramname">entropi</td><td>entropi in data. </td></tr> 97 </table> 98 </dd> 99</dl> 100 101</div> 102</div> 103<a id="ga957a044ad71e3c915ff7acc564be84a4"></a> 104<h2 class="memtitle"><span class="permalink"><a href="#ga957a044ad71e3c915ff7acc564be84a4">◆ </a></span>RAND_bytes()</h2> 105 106<div class="memitem"> 107<div class="memproto"> 108 <table class="memname"> 109 <tr> 110 <td class="memname">int RAND_bytes </td> 111 <td>(</td> 112 <td class="paramtype">void * </td> 113 <td class="paramname"><em>outdata</em>, </td> 114 </tr> 115 <tr> 116 <td class="paramkey"></td> 117 <td></td> 118 <td class="paramtype">size_t </td> 119 <td class="paramname"><em>size</em> </td> 120 </tr> 121 <tr> 122 <td></td> 123 <td>)</td> 124 <td></td><td></td> 125 </tr> 126 </table> 127</div><div class="memdoc"> 128<p>Get a random block from the random generator, can be used for key material.</p> 129<dl class="params"><dt>Parameters</dt><dd> 130 <table class="params"> 131 <tr><td class="paramname">outdata</td><td>random data </td></tr> 132 <tr><td class="paramname">size</td><td>length random data</td></tr> 133 </table> 134 </dd> 135</dl> 136<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure. </dd></dl> 137 138</div> 139</div> 140<a id="gad797e371751dedbcce4e975c3cad1947"></a> 141<h2 class="memtitle"><span class="permalink"><a href="#gad797e371751dedbcce4e975c3cad1947">◆ </a></span>RAND_cleanup()</h2> 142 143<div class="memitem"> 144<div class="memproto"> 145 <table class="memname"> 146 <tr> 147 <td class="memname">void RAND_cleanup </td> 148 <td>(</td> 149 <td class="paramtype">void </td> 150 <td class="paramname"></td><td>)</td> 151 <td></td> 152 </tr> 153 </table> 154</div><div class="memdoc"> 155<p>Reset and free memory used by the random generator. </p> 156 157</div> 158</div> 159<a id="ga77b2d2555388b5d75a4bab3843fc8f02"></a> 160<h2 class="memtitle"><span class="permalink"><a href="#ga77b2d2555388b5d75a4bab3843fc8f02">◆ </a></span>RAND_file_name()</h2> 161 162<div class="memitem"> 163<div class="memproto"> 164 <table class="memname"> 165 <tr> 166 <td class="memname">const char* RAND_file_name </td> 167 <td>(</td> 168 <td class="paramtype">char * </td> 169 <td class="paramname"><em>filename</em>, </td> 170 </tr> 171 <tr> 172 <td class="paramkey"></td> 173 <td></td> 174 <td class="paramtype">size_t </td> 175 <td class="paramname"><em>size</em> </td> 176 </tr> 177 <tr> 178 <td></td> 179 <td>)</td> 180 <td></td><td></td> 181 </tr> 182 </table> 183</div><div class="memdoc"> 184<p>Return the default random state filename for a user to use for <a class="el" href="group__hcrypto__rand.html#ga9ca9fe0e799e41e8e745a88e3a60ccfd">RAND_load_file()</a>, and <a class="el" href="group__hcrypto__rand.html#gab9638d698e0a8ab94a31322693588eba">RAND_write_file()</a>.</p> 185<dl class="params"><dt>Parameters</dt><dd> 186 <table class="params"> 187 <tr><td class="paramname">filename</td><td>buffer to hold file name. </td></tr> 188 <tr><td class="paramname">size</td><td>size of buffer filename.</td></tr> 189 </table> 190 </dd> 191</dl> 192<dl class="section return"><dt>Returns</dt><dd>the buffer filename or NULL on failure. </dd></dl> 193 194</div> 195</div> 196<a id="ga8a8cac7a3262c4527e08f57f07c4c586"></a> 197<h2 class="memtitle"><span class="permalink"><a href="#ga8a8cac7a3262c4527e08f57f07c4c586">◆ </a></span>RAND_get_rand_method()</h2> 198 199<div class="memitem"> 200<div class="memproto"> 201 <table class="memname"> 202 <tr> 203 <td class="memname">const RAND_METHOD* RAND_get_rand_method </td> 204 <td>(</td> 205 <td class="paramtype">void </td> 206 <td class="paramname"></td><td>)</td> 207 <td></td> 208 </tr> 209 </table> 210</div><div class="memdoc"> 211<p>Get the default random method.</p> 212<dl class="section return"><dt>Returns</dt><dd>Returns a RAND_METHOD </dd></dl> 213 214</div> 215</div> 216<a id="ga9ca9fe0e799e41e8e745a88e3a60ccfd"></a> 217<h2 class="memtitle"><span class="permalink"><a href="#ga9ca9fe0e799e41e8e745a88e3a60ccfd">◆ </a></span>RAND_load_file()</h2> 218 219<div class="memitem"> 220<div class="memproto"> 221 <table class="memname"> 222 <tr> 223 <td class="memname">int RAND_load_file </td> 224 <td>(</td> 225 <td class="paramtype">const char * </td> 226 <td class="paramname"><em>filename</em>, </td> 227 </tr> 228 <tr> 229 <td class="paramkey"></td> 230 <td></td> 231 <td class="paramtype">size_t </td> 232 <td class="paramname"><em>size</em> </td> 233 </tr> 234 <tr> 235 <td></td> 236 <td>)</td> 237 <td></td><td></td> 238 </tr> 239 </table> 240</div><div class="memdoc"> 241<p>Load a a file and feed it into <a class="el" href="group__hcrypto__rand.html#ga700cd34f79c820f427f95c243befe085">RAND_seed()</a>.</p> 242<dl class="params"><dt>Parameters</dt><dd> 243 <table class="params"> 244 <tr><td class="paramname">filename</td><td>name of file to read. </td></tr> 245 <tr><td class="paramname">size</td><td>minimum size to read.</td></tr> 246 </table> 247 </dd> 248</dl> 249<dl class="section return"><dt>Returns</dt><dd>Returns the number of seed bytes loaded (0 indicates failure) </dd></dl> 250 251</div> 252</div> 253<a id="ga93d10a9ba8647408a3b5306c2cd423f2"></a> 254<h2 class="memtitle"><span class="permalink"><a href="#ga93d10a9ba8647408a3b5306c2cd423f2">◆ </a></span>RAND_pseudo_bytes()</h2> 255 256<div class="memitem"> 257<div class="memproto"> 258 <table class="memname"> 259 <tr> 260 <td class="memname">int RAND_pseudo_bytes </td> 261 <td>(</td> 262 <td class="paramtype">void * </td> 263 <td class="paramname"><em>outdata</em>, </td> 264 </tr> 265 <tr> 266 <td class="paramkey"></td> 267 <td></td> 268 <td class="paramtype">size_t </td> 269 <td class="paramname"><em>size</em> </td> 270 </tr> 271 <tr> 272 <td></td> 273 <td>)</td> 274 <td></td><td></td> 275 </tr> 276 </table> 277</div><div class="memdoc"> 278<p>Get a random block from the random generator, should NOT be used for key material.</p> 279<dl class="params"><dt>Parameters</dt><dd> 280 <table class="params"> 281 <tr><td class="paramname">outdata</td><td>random data </td></tr> 282 <tr><td class="paramname">size</td><td>length random data</td></tr> 283 </table> 284 </dd> 285</dl> 286<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure. </dd></dl> 287 288</div> 289</div> 290<a id="ga700cd34f79c820f427f95c243befe085"></a> 291<h2 class="memtitle"><span class="permalink"><a href="#ga700cd34f79c820f427f95c243befe085">◆ </a></span>RAND_seed()</h2> 292 293<div class="memitem"> 294<div class="memproto"> 295 <table class="memname"> 296 <tr> 297 <td class="memname">void RAND_seed </td> 298 <td>(</td> 299 <td class="paramtype">const void * </td> 300 <td class="paramname"><em>indata</em>, </td> 301 </tr> 302 <tr> 303 <td class="paramkey"></td> 304 <td></td> 305 <td class="paramtype">size_t </td> 306 <td class="paramname"><em>size</em> </td> 307 </tr> 308 <tr> 309 <td></td> 310 <td>)</td> 311 <td></td><td></td> 312 </tr> 313 </table> 314</div><div class="memdoc"> 315<p>Seed that random number generator. Secret material can securely be feed into the function, they will never be returned.</p> 316<dl class="params"><dt>Parameters</dt><dd> 317 <table class="params"> 318 <tr><td class="paramname">indata</td><td>seed data </td></tr> 319 <tr><td class="paramname">size</td><td>length seed data </td></tr> 320 </table> 321 </dd> 322</dl> 323 324</div> 325</div> 326<a id="ga6a4f2c2cf723ef63522d4b33c79d5f0f"></a> 327<h2 class="memtitle"><span class="permalink"><a href="#ga6a4f2c2cf723ef63522d4b33c79d5f0f">◆ </a></span>RAND_set_rand_engine()</h2> 328 329<div class="memitem"> 330<div class="memproto"> 331 <table class="memname"> 332 <tr> 333 <td class="memname">int RAND_set_rand_engine </td> 334 <td>(</td> 335 <td class="paramtype">ENGINE * </td> 336 <td class="paramname"><em>engine</em></td><td>)</td> 337 <td></td> 338 </tr> 339 </table> 340</div><div class="memdoc"> 341<p>Set the default random method from engine.</p> 342<dl class="params"><dt>Parameters</dt><dd> 343 <table class="params"> 344 <tr><td class="paramname">engine</td><td>use engine, if NULL is passed it, old method and engine is cleared.</td></tr> 345 </table> 346 </dd> 347</dl> 348<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure. </dd></dl> 349 350</div> 351</div> 352<a id="ga292ae50ca725d0c529dc077467b40254"></a> 353<h2 class="memtitle"><span class="permalink"><a href="#ga292ae50ca725d0c529dc077467b40254">◆ </a></span>RAND_set_rand_method()</h2> 354 355<div class="memitem"> 356<div class="memproto"> 357 <table class="memname"> 358 <tr> 359 <td class="memname">int RAND_set_rand_method </td> 360 <td>(</td> 361 <td class="paramtype">const RAND_METHOD * </td> 362 <td class="paramname"><em>meth</em></td><td>)</td> 363 <td></td> 364 </tr> 365 </table> 366</div><div class="memdoc"> 367<p>Set the default random method.</p> 368<dl class="params"><dt>Parameters</dt><dd> 369 <table class="params"> 370 <tr><td class="paramname">meth</td><td>set the new default method.</td></tr> 371 </table> 372 </dd> 373</dl> 374<dl class="section return"><dt>Returns</dt><dd>1 on success. </dd></dl> 375 376</div> 377</div> 378<a id="ga38d21605e6e777451769a8ee7087933b"></a> 379<h2 class="memtitle"><span class="permalink"><a href="#ga38d21605e6e777451769a8ee7087933b">◆ </a></span>RAND_status()</h2> 380 381<div class="memitem"> 382<div class="memproto"> 383 <table class="memname"> 384 <tr> 385 <td class="memname">int RAND_status </td> 386 <td>(</td> 387 <td class="paramtype">void </td> 388 <td class="paramname"></td><td>)</td> 389 <td></td> 390 </tr> 391 </table> 392</div><div class="memdoc"> 393<p>Return status of the random generator</p> 394<dl class="section return"><dt>Returns</dt><dd>1 if the random generator can deliver random data. </dd></dl> 395 396</div> 397</div> 398<a id="gab9638d698e0a8ab94a31322693588eba"></a> 399<h2 class="memtitle"><span class="permalink"><a href="#gab9638d698e0a8ab94a31322693588eba">◆ </a></span>RAND_write_file()</h2> 400 401<div class="memitem"> 402<div class="memproto"> 403 <table class="memname"> 404 <tr> 405 <td class="memname">int RAND_write_file </td> 406 <td>(</td> 407 <td class="paramtype">const char * </td> 408 <td class="paramname"><em>filename</em></td><td>)</td> 409 <td></td> 410 </tr> 411 </table> 412</div><div class="memdoc"> 413<p>Write of random numbers to a file to store for later initiation with <a class="el" href="group__hcrypto__rand.html#ga9ca9fe0e799e41e8e745a88e3a60ccfd">RAND_load_file()</a>.</p> 414<dl class="params"><dt>Parameters</dt><dd> 415 <table class="params"> 416 <tr><td class="paramname">filename</td><td>name of file to write.</td></tr> 417 </table> 418 </dd> 419</dl> 420<dl class="section return"><dt>Returns</dt><dd>1 on success and non-one on failure. </dd></dl> 421 422</div> 423</div> 424</div><!-- contents --> 425<hr size="1"><address style="text-align: right;"><small> 426Generated on Tue Nov 15 2022 14:04:26 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.9.1</small></address> 427</body> 428</html> 429