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: EVP generic 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>EVP generic 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">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g769121c112a501748233bda8345cb47a">EVP_wincrypt_des_ede3_cbc</a> (void)</td></tr> 26 27<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g2decf06c0d9b08e364e9c4c8f4d3a7a3">EVP_hcrypto_aes_128_cbc</a> (void)</td></tr> 28 29<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g16b21d9262c4af37121b0e85cc83b555">EVP_hcrypto_aes_192_cbc</a> (void)</td></tr> 30 31<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g49b683aa07c039ad31d7e498c87ad95f">EVP_hcrypto_aes_256_cbc</a> (void)</td></tr> 32 33<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g44eb080ab987799883eae8e64970be6c">EVP_hcrypto_aes_128_cfb8</a> (void)</td></tr> 34 35<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g532a6f5c56334ccf8615791bfaef041d">EVP_hcrypto_aes_192_cfb8</a> (void)</td></tr> 36 37<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g4f7c34086cea5e4da92f56d543ec24bf">EVP_hcrypto_aes_256_cfb8</a> (void)</td></tr> 38 39<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g12b7608ec40d059f5539fd24277baae0">EVP_hcrypto_sha256</a> (void)</td></tr> 40 41<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gc002bcb2cc8ee9bb58b5924ab0bc3533">EVP_hcrypto_sha384</a> (void)</td></tr> 42 43<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gef3c401b9d2e696f89f27335f4b261e2">EVP_hcrypto_sha512</a> (void)</td></tr> 44 45<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g5dc409fc540bad0751b96b3f74185477">EVP_hcrypto_sha1</a> (void)</td></tr> 46 47<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g3c7a8676a690817ec03d71568a7deb1b">EVP_hcrypto_md5</a> (void)</td></tr> 48 49<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g4456dfa7c2f23830fa32b99969720719">EVP_hcrypto_md4</a> (void)</td></tr> 50 51<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g89d756ccb4919c5102481da488b86aaa">EVP_hcrypto_md2</a> (void)</td></tr> 52 53<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g0cc4edf9d19ebf7198e33ac0c8138f04">EVP_hcrypto_des_cbc</a> (void)</td></tr> 54 55<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g1c0e19f28dc594d929f089721e737237">EVP_hcrypto_des_ede3_cbc</a> (void)</td></tr> 56 57<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gc238450b802f4e0c78752ef1ba1198e9">EVP_hcrypto_rc2_cbc</a> (void)</td></tr> 58 59<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g35d681a86e0ed71b505b53e5fc199ed5">EVP_hcrypto_rc2_40_cbc</a> (void)</td></tr> 60 61<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gb7534f69db09cd76e4c36703a9340212">EVP_hcrypto_rc2_64_cbc</a> (void)</td></tr> 62 63<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g68deec0ffc93c0dcd83db0478e72d5b8">EVP_hcrypto_camellia_128_cbc</a> (void)</td></tr> 64 65<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gfd6acecc697a1f9516909ca228cb54e5">EVP_hcrypto_camellia_192_cbc</a> (void)</td></tr> 66 67<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g211f7122bdeeb3551dcd02c37a7a11e6">EVP_hcrypto_camellia_256_cbc</a> (void)</td></tr> 68 69<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gbea28e9ccb98329a7a76c95e8699221c">EVP_MD_size</a> (const EVP_MD *md)</td></tr> 70 71<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g48ccb698903828660dc1722d31311420">EVP_MD_block_size</a> (const EVP_MD *md)</td></tr> 72 73<tr><td class="memItemLeft" nowrap align="right" valign="top">EVP_MD_CTX * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g54bfa0296db2c131ef69e3a18c445357">EVP_MD_CTX_create</a> (void)</td></tr> 74 75<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g3fd216754cf705b7d4980744b1508410">EVP_MD_CTX_init</a> (EVP_MD_CTX *ctx) HC_DEPRECATED</td></tr> 76 77<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#ge105ea6e5626f521fbe8cad0a85cbe46">EVP_MD_CTX_destroy</a> (EVP_MD_CTX *ctx)</td></tr> 78 79<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g34dea52c788c741fdb4f8fb051be3308">EVP_MD_CTX_cleanup</a> (EVP_MD_CTX *ctx) HC_DEPRECATED</td></tr> 80 81<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#ged3480025ecf31d0afcb62174d6acc24">EVP_MD_CTX_md</a> (EVP_MD_CTX *ctx)</td></tr> 82 83<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g25a51444f0586be1494f78e4e17e65f8">EVP_MD_CTX_size</a> (EVP_MD_CTX *ctx)</td></tr> 84 85<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gb35a28f548e64c74dbfd7198c04dad5d">EVP_MD_CTX_block_size</a> (EVP_MD_CTX *ctx)</td></tr> 86 87<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gb6b800ba80b850cba223723b28fc9a44">EVP_DigestInit_ex</a> (EVP_MD_CTX *ctx, const EVP_MD *md, ENGINE *engine)</td></tr> 88 89<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g12039fea1f371ef39a489d450f564338">EVP_DigestUpdate</a> (EVP_MD_CTX *ctx, const void *data, size_t size)</td></tr> 90 91<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g5103bec19556f264e1f442c6ffc3bddc">EVP_DigestFinal_ex</a> (EVP_MD_CTX *ctx, void *hash, unsigned int *size)</td></tr> 92 93<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gb785fa9dd0a45be223a0d576af062c4b">EVP_Digest</a> (const void *data, size_t dsize, void *hash, unsigned int *hsize, const EVP_MD *md, ENGINE *engine)</td></tr> 94 95<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gfe55e56742a9b9ecffdaef7e95a6707a">EVP_sha256</a> (void)</td></tr> 96 97<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g031405a10c84711b9a9699fadc8dbf2a">EVP_sha384</a> (void)</td></tr> 98 99<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gceda0d5da59b56159d2e3515039a46ce">EVP_sha512</a> (void)</td></tr> 100 101<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#ga090d659a494a10525e38d272efb01ae">EVP_sha1</a> (void)</td></tr> 102 103<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gee62cb107a208bd6984dd767f9feb8c0">EVP_sha</a> (void)</td></tr> 104 105<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g3ccaad2c97f5cf27adb461b1b50aeabb">EVP_md5</a> (void)</td></tr> 106 107<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gd232ca5dcef4ec58b182cb967f519999">EVP_md4</a> (void)</td></tr> 108 109<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g4b583f3de5fc66b04f675428da25efd0">EVP_md2</a> (void)</td></tr> 110 111<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_MD * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g5183830cf039ea4d9a2c1bd3c539e9af">EVP_md_null</a> (void)</td></tr> 112 113<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g3123ff4b426783dd972538249b9e9d4d">EVP_CIPHER_block_size</a> (const EVP_CIPHER *c)</td></tr> 114 115<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g4793a9e130da86ac42c497b19395b748">EVP_CIPHER_key_length</a> (const EVP_CIPHER *c)</td></tr> 116 117<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g7edebe76d19dee11686a6698d24f19f5">EVP_CIPHER_iv_length</a> (const EVP_CIPHER *c)</td></tr> 118 119<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g13d0ff0e87312566cb6b3591157f9754">EVP_CIPHER_CTX_init</a> (EVP_CIPHER_CTX *c)</td></tr> 120 121<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gc16dd3987cd90c8bcdbad5290c558359">EVP_CIPHER_CTX_cleanup</a> (EVP_CIPHER_CTX *c)</td></tr> 122 123<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gc4d29d4bc3473f2499cfa83f0201386c">EVP_CIPHER_CTX_set_key_length</a> (EVP_CIPHER_CTX *c, int length)</td></tr> 124 125<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g4018621241b76f106903263614967aff">EVP_CIPHER_CTX_cipher</a> (EVP_CIPHER_CTX *ctx)</td></tr> 126 127<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g9eaa8ae82fd5550771c4dfed92d82d5b">EVP_CIPHER_CTX_block_size</a> (const EVP_CIPHER_CTX *ctx)</td></tr> 128 129<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gd9a4a54b9b5d0b6035c7522ca461a9db">EVP_CIPHER_CTX_key_length</a> (const EVP_CIPHER_CTX *ctx)</td></tr> 130 131<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#ge160dd334fea8b844a4ef8a2ed5fbb0b">EVP_CIPHER_CTX_iv_length</a> (const EVP_CIPHER_CTX *ctx)</td></tr> 132 133<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g6f8b7130068dbc4f03fb2cf65cee02bf">EVP_CIPHER_CTX_flags</a> (const EVP_CIPHER_CTX *ctx)</td></tr> 134 135<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gc8013ca93e9b1ed25df3f535eb633f1a">EVP_CIPHER_CTX_mode</a> (const EVP_CIPHER_CTX *ctx)</td></tr> 136 137<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g0f78fd8ac0fa0765245e373d42fc90e3">EVP_CIPHER_CTX_get_app_data</a> (EVP_CIPHER_CTX *ctx)</td></tr> 138 139<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g4fa322f7c3fe5fc570b8343d4d64fc52">EVP_CIPHER_CTX_set_app_data</a> (EVP_CIPHER_CTX *ctx, void *data)</td></tr> 140 141<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g98da5a5c1aa25d9cb2e4717fa11314bd">EVP_CipherInit_ex</a> (EVP_CIPHER_CTX *ctx, const EVP_CIPHER *c, ENGINE *engine, const void *key, const void *iv, int encp)</td></tr> 142 143<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g863349e1001b36cfd6c4afedddd12862">EVP_CipherUpdate</a> (EVP_CIPHER_CTX *ctx, void *out, int *outlen, void *in, size_t inlen)</td></tr> 144 145<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g714eef7d737fd68171d852043a4995de">EVP_CipherFinal_ex</a> (EVP_CIPHER_CTX *ctx, void *out, int *outlen)</td></tr> 146 147<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g70a05495ee115c6eb26d958a5ac75c8b">EVP_enc_null</a> (void)</td></tr> 148 149<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gc7d0f7590921dde70bebeebadd2fec36">EVP_rc2_cbc</a> (void)</td></tr> 150 151<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g104bcd969bcc30dc3e7e77d63a38a87e">EVP_rc2_40_cbc</a> (void)</td></tr> 152 153<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g09cd194a211931839f1e7bb8e578099e">EVP_rc2_64_cbc</a> (void)</td></tr> 154 155<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g9cb683240f384ddbd0f3279960af93ba">EVP_rc4</a> (void)</td></tr> 156 157<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#ge5cbdfcb5012a07fec8df1d6b9c5d772">EVP_rc4_40</a> (void)</td></tr> 158 159<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g8ba85e78fac7521ad71cb29ef62beab9">EVP_des_cbc</a> (void)</td></tr> 160 161<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g191c1d946437661ee23de2ad9b3383e3">EVP_des_ede3_cbc</a> (void)</td></tr> 162 163<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g2747bac943db15c97167ac37fdc2af43">EVP_aes_128_cbc</a> (void)</td></tr> 164 165<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g06625e6b350dcb0d99e05bde8d813867">EVP_aes_192_cbc</a> (void)</td></tr> 166 167<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g597a638984cfe169f5b794a01076d289">EVP_aes_256_cbc</a> (void)</td></tr> 168 169<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g95457efd23f815aaa9d54a39f71bd4f6">EVP_aes_128_cfb8</a> (void)</td></tr> 170 171<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g6c566f0f7831881bd835db251372790b">EVP_aes_192_cfb8</a> (void)</td></tr> 172 173<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g4bf9f0274a43b3964f1c880900c80ded">EVP_aes_256_cfb8</a> (void)</td></tr> 174 175<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g204d1d59a0ec740ed29ec0ebcc2d9c97">EVP_camellia_128_cbc</a> (void)</td></tr> 176 177<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g40e2b8cba4baa4ec4aa467bbd1defeb7">EVP_camellia_192_cbc</a> (void)</td></tr> 178 179<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g6de35c364f330f1decfb3444c4c6fa3c">EVP_camellia_256_cbc</a> (void)</td></tr> 180 181<tr><td class="memItemLeft" nowrap align="right" valign="top">const EVP_CIPHER * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#gead9b446ac5ebd90dc7be0dbe6aba2b0">EVP_get_cipherbyname</a> (const char *name)</td></tr> 182 183<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hcrypto__evp.html#g25d3fb64e10e2c494858de14fc5d79b3">EVP_BytesToKey</a> (const EVP_CIPHER *type, const EVP_MD *md, const void *salt, const void *data, size_t datalen, unsigned int count, void *keydata, void *ivdata)</td></tr> 184 185</table> 186<hr><a name="_details"></a><h2>Detailed Description</h2> 187See the <a class="el" href="page_evp.html">EVP - generic crypto interface</a> for description and examples. <hr><h2>Function Documentation</h2> 188<a class="anchor" name="g2747bac943db15c97167ac37fdc2af43"></a><!-- doxytag: member="evp.c::EVP_aes_128_cbc" ref="g2747bac943db15c97167ac37fdc2af43" args="(void)" --> 189<div class="memitem"> 190<div class="memproto"> 191 <table class="memname"> 192 <tr> 193 <td class="memname">const EVP_CIPHER* EVP_aes_128_cbc </td> 194 <td>(</td> 195 <td class="paramtype">void </td> 196 <td class="paramname"> </td> 197 <td> ) </td> 198 <td></td> 199 </tr> 200 </table> 201</div> 202<div class="memdoc"> 203 204<p> 205The AES-128 cipher type<p> 206<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-128 EVP_CIPHER pointer. </dd></dl> 207<dl compact><dt><b>Examples: </b></dt><dd> 208<a class="el" href="example__evp__cipher_8c-example.html#a0">example_evp_cipher.c</a>.</dl> 209</div> 210</div><p> 211<a class="anchor" name="g95457efd23f815aaa9d54a39f71bd4f6"></a><!-- doxytag: member="evp.c::EVP_aes_128_cfb8" ref="g95457efd23f815aaa9d54a39f71bd4f6" args="(void)" --> 212<div class="memitem"> 213<div class="memproto"> 214 <table class="memname"> 215 <tr> 216 <td class="memname">const EVP_CIPHER* EVP_aes_128_cfb8 </td> 217 <td>(</td> 218 <td class="paramtype">void </td> 219 <td class="paramname"> </td> 220 <td> ) </td> 221 <td></td> 222 </tr> 223 </table> 224</div> 225<div class="memdoc"> 226 227<p> 228The AES-128 cipher type<p> 229<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-128 EVP_CIPHER pointer. </dd></dl> 230 231</div> 232</div><p> 233<a class="anchor" name="g06625e6b350dcb0d99e05bde8d813867"></a><!-- doxytag: member="evp.c::EVP_aes_192_cbc" ref="g06625e6b350dcb0d99e05bde8d813867" args="(void)" --> 234<div class="memitem"> 235<div class="memproto"> 236 <table class="memname"> 237 <tr> 238 <td class="memname">const EVP_CIPHER* EVP_aes_192_cbc </td> 239 <td>(</td> 240 <td class="paramtype">void </td> 241 <td class="paramname"> </td> 242 <td> ) </td> 243 <td></td> 244 </tr> 245 </table> 246</div> 247<div class="memdoc"> 248 249<p> 250The AES-192 cipher type<p> 251<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-192 EVP_CIPHER pointer. </dd></dl> 252 253</div> 254</div><p> 255<a class="anchor" name="g6c566f0f7831881bd835db251372790b"></a><!-- doxytag: member="evp.c::EVP_aes_192_cfb8" ref="g6c566f0f7831881bd835db251372790b" args="(void)" --> 256<div class="memitem"> 257<div class="memproto"> 258 <table class="memname"> 259 <tr> 260 <td class="memname">const EVP_CIPHER* EVP_aes_192_cfb8 </td> 261 <td>(</td> 262 <td class="paramtype">void </td> 263 <td class="paramname"> </td> 264 <td> ) </td> 265 <td></td> 266 </tr> 267 </table> 268</div> 269<div class="memdoc"> 270 271<p> 272The AES-192 cipher type<p> 273<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-192 EVP_CIPHER pointer. </dd></dl> 274 275</div> 276</div><p> 277<a class="anchor" name="g597a638984cfe169f5b794a01076d289"></a><!-- doxytag: member="evp.c::EVP_aes_256_cbc" ref="g597a638984cfe169f5b794a01076d289" args="(void)" --> 278<div class="memitem"> 279<div class="memproto"> 280 <table class="memname"> 281 <tr> 282 <td class="memname">const EVP_CIPHER* EVP_aes_256_cbc </td> 283 <td>(</td> 284 <td class="paramtype">void </td> 285 <td class="paramname"> </td> 286 <td> ) </td> 287 <td></td> 288 </tr> 289 </table> 290</div> 291<div class="memdoc"> 292 293<p> 294The AES-256 cipher type<p> 295<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-256 EVP_CIPHER pointer. </dd></dl> 296 297</div> 298</div><p> 299<a class="anchor" name="g4bf9f0274a43b3964f1c880900c80ded"></a><!-- doxytag: member="evp.c::EVP_aes_256_cfb8" ref="g4bf9f0274a43b3964f1c880900c80ded" args="(void)" --> 300<div class="memitem"> 301<div class="memproto"> 302 <table class="memname"> 303 <tr> 304 <td class="memname">const EVP_CIPHER* EVP_aes_256_cfb8 </td> 305 <td>(</td> 306 <td class="paramtype">void </td> 307 <td class="paramname"> </td> 308 <td> ) </td> 309 <td></td> 310 </tr> 311 </table> 312</div> 313<div class="memdoc"> 314 315<p> 316The AES-256 cipher type<p> 317<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-256 EVP_CIPHER pointer. </dd></dl> 318 319</div> 320</div><p> 321<a class="anchor" name="g25d3fb64e10e2c494858de14fc5d79b3"></a><!-- doxytag: member="evp.c::EVP_BytesToKey" ref="g25d3fb64e10e2c494858de14fc5d79b3" args="(const EVP_CIPHER *type, const EVP_MD *md, const void *salt, const void *data, size_t datalen, unsigned int count, void *keydata, void *ivdata)" --> 322<div class="memitem"> 323<div class="memproto"> 324 <table class="memname"> 325 <tr> 326 <td class="memname">int EVP_BytesToKey </td> 327 <td>(</td> 328 <td class="paramtype">const EVP_CIPHER * </td> 329 <td class="paramname"> <em>type</em>, </td> 330 </tr> 331 <tr> 332 <td class="paramkey"></td> 333 <td></td> 334 <td class="paramtype">const EVP_MD * </td> 335 <td class="paramname"> <em>md</em>, </td> 336 </tr> 337 <tr> 338 <td class="paramkey"></td> 339 <td></td> 340 <td class="paramtype">const void * </td> 341 <td class="paramname"> <em>salt</em>, </td> 342 </tr> 343 <tr> 344 <td class="paramkey"></td> 345 <td></td> 346 <td class="paramtype">const void * </td> 347 <td class="paramname"> <em>data</em>, </td> 348 </tr> 349 <tr> 350 <td class="paramkey"></td> 351 <td></td> 352 <td class="paramtype">size_t </td> 353 <td class="paramname"> <em>datalen</em>, </td> 354 </tr> 355 <tr> 356 <td class="paramkey"></td> 357 <td></td> 358 <td class="paramtype">unsigned int </td> 359 <td class="paramname"> <em>count</em>, </td> 360 </tr> 361 <tr> 362 <td class="paramkey"></td> 363 <td></td> 364 <td class="paramtype">void * </td> 365 <td class="paramname"> <em>keydata</em>, </td> 366 </tr> 367 <tr> 368 <td class="paramkey"></td> 369 <td></td> 370 <td class="paramtype">void * </td> 371 <td class="paramname"> <em>ivdata</em></td><td> </td> 372 </tr> 373 <tr> 374 <td></td> 375 <td>)</td> 376 <td></td><td></td><td></td> 377 </tr> 378 </table> 379</div> 380<div class="memdoc"> 381 382<p> 383Provides a legancy string to key function, used in PEM files.<p> 384New protocols should use new string to key functions like NIST SP56-800A or PKCS#5 v2.0 (see <a class="el" href="group__hcrypto__misc.html#gece1627cc5535ef7b5e86e2f5a3eec04">PKCS5_PBKDF2_HMAC_SHA1()</a>).<p> 385<dl compact><dt><b>Parameters:</b></dt><dd> 386 <table border="0" cellspacing="2" cellpadding="0"> 387 <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>type of cipher to use </td></tr> 388 <tr><td valign="top"></td><td valign="top"><em>md</em> </td><td>message digest to use </td></tr> 389 <tr><td valign="top"></td><td valign="top"><em>salt</em> </td><td>salt salt string, should be an binary 8 byte buffer. </td></tr> 390 <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the password/input key string. </td></tr> 391 <tr><td valign="top"></td><td valign="top"><em>datalen</em> </td><td>length of data parameter. </td></tr> 392 <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>iteration counter. </td></tr> 393 <tr><td valign="top"></td><td valign="top"><em>keydata</em> </td><td>output keydata, needs to of the size <a class="el" href="group__hcrypto__evp.html#g4793a9e130da86ac42c497b19395b748">EVP_CIPHER_key_length()</a>. </td></tr> 394 <tr><td valign="top"></td><td valign="top"><em>ivdata</em> </td><td>output ivdata, needs to of the size <a class="el" href="group__hcrypto__evp.html#g3123ff4b426783dd972538249b9e9d4d">EVP_CIPHER_block_size()</a>.</td></tr> 395 </table> 396</dl> 397<dl class="return" compact><dt><b>Returns:</b></dt><dd>the size of derived key. </dd></dl> 398 399</div> 400</div><p> 401<a class="anchor" name="g204d1d59a0ec740ed29ec0ebcc2d9c97"></a><!-- doxytag: member="evp.c::EVP_camellia_128_cbc" ref="g204d1d59a0ec740ed29ec0ebcc2d9c97" args="(void)" --> 402<div class="memitem"> 403<div class="memproto"> 404 <table class="memname"> 405 <tr> 406 <td class="memname">const EVP_CIPHER* EVP_camellia_128_cbc </td> 407 <td>(</td> 408 <td class="paramtype">void </td> 409 <td class="paramname"> </td> 410 <td> ) </td> 411 <td></td> 412 </tr> 413 </table> 414</div> 415<div class="memdoc"> 416 417<p> 418The Camellia-128 cipher type<p> 419<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Camellia-128 EVP_CIPHER pointer. </dd></dl> 420 421</div> 422</div><p> 423<a class="anchor" name="g40e2b8cba4baa4ec4aa467bbd1defeb7"></a><!-- doxytag: member="evp.c::EVP_camellia_192_cbc" ref="g40e2b8cba4baa4ec4aa467bbd1defeb7" args="(void)" --> 424<div class="memitem"> 425<div class="memproto"> 426 <table class="memname"> 427 <tr> 428 <td class="memname">const EVP_CIPHER* EVP_camellia_192_cbc </td> 429 <td>(</td> 430 <td class="paramtype">void </td> 431 <td class="paramname"> </td> 432 <td> ) </td> 433 <td></td> 434 </tr> 435 </table> 436</div> 437<div class="memdoc"> 438 439<p> 440The Camellia-198 cipher type<p> 441<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Camellia-198 EVP_CIPHER pointer. </dd></dl> 442 443</div> 444</div><p> 445<a class="anchor" name="g6de35c364f330f1decfb3444c4c6fa3c"></a><!-- doxytag: member="evp.c::EVP_camellia_256_cbc" ref="g6de35c364f330f1decfb3444c4c6fa3c" args="(void)" --> 446<div class="memitem"> 447<div class="memproto"> 448 <table class="memname"> 449 <tr> 450 <td class="memname">const EVP_CIPHER* EVP_camellia_256_cbc </td> 451 <td>(</td> 452 <td class="paramtype">void </td> 453 <td class="paramname"> </td> 454 <td> ) </td> 455 <td></td> 456 </tr> 457 </table> 458</div> 459<div class="memdoc"> 460 461<p> 462The Camellia-256 cipher type<p> 463<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Camellia-256 EVP_CIPHER pointer. </dd></dl> 464 465</div> 466</div><p> 467<a class="anchor" name="g3123ff4b426783dd972538249b9e9d4d"></a><!-- doxytag: member="evp.c::EVP_CIPHER_block_size" ref="g3123ff4b426783dd972538249b9e9d4d" args="(const EVP_CIPHER *c)" --> 468<div class="memitem"> 469<div class="memproto"> 470 <table class="memname"> 471 <tr> 472 <td class="memname">size_t EVP_CIPHER_block_size </td> 473 <td>(</td> 474 <td class="paramtype">const EVP_CIPHER * </td> 475 <td class="paramname"> <em>c</em> </td> 476 <td> ) </td> 477 <td></td> 478 </tr> 479 </table> 480</div> 481<div class="memdoc"> 482 483<p> 484Return the block size of the cipher.<p> 485<dl compact><dt><b>Parameters:</b></dt><dd> 486 <table border="0" cellspacing="2" cellpadding="0"> 487 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>cipher to get the block size from.</td></tr> 488 </table> 489</dl> 490<dl class="return" compact><dt><b>Returns:</b></dt><dd>the block size of the cipher. </dd></dl> 491<dl compact><dt><b>Examples: </b></dt><dd> 492<a class="el" href="example__evp__cipher_8c-example.html#a3">example_evp_cipher.c</a>.</dl> 493</div> 494</div><p> 495<a class="anchor" name="g9eaa8ae82fd5550771c4dfed92d82d5b"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_block_size" ref="g9eaa8ae82fd5550771c4dfed92d82d5b" args="(const EVP_CIPHER_CTX *ctx)" --> 496<div class="memitem"> 497<div class="memproto"> 498 <table class="memname"> 499 <tr> 500 <td class="memname">size_t EVP_CIPHER_CTX_block_size </td> 501 <td>(</td> 502 <td class="paramtype">const EVP_CIPHER_CTX * </td> 503 <td class="paramname"> <em>ctx</em> </td> 504 <td> ) </td> 505 <td></td> 506 </tr> 507 </table> 508</div> 509<div class="memdoc"> 510 511<p> 512Return the block size of the cipher context.<p> 513<dl compact><dt><b>Parameters:</b></dt><dd> 514 <table border="0" cellspacing="2" cellpadding="0"> 515 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>cipher context to get the block size from.</td></tr> 516 </table> 517</dl> 518<dl class="return" compact><dt><b>Returns:</b></dt><dd>the block size of the cipher context. </dd></dl> 519 520</div> 521</div><p> 522<a class="anchor" name="g4018621241b76f106903263614967aff"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_cipher" ref="g4018621241b76f106903263614967aff" args="(EVP_CIPHER_CTX *ctx)" --> 523<div class="memitem"> 524<div class="memproto"> 525 <table class="memname"> 526 <tr> 527 <td class="memname">const EVP_CIPHER* EVP_CIPHER_CTX_cipher </td> 528 <td>(</td> 529 <td class="paramtype">EVP_CIPHER_CTX * </td> 530 <td class="paramname"> <em>ctx</em> </td> 531 <td> ) </td> 532 <td></td> 533 </tr> 534 </table> 535</div> 536<div class="memdoc"> 537 538<p> 539Return the EVP_CIPHER for a EVP_CIPHER_CTX context.<p> 540<dl compact><dt><b>Parameters:</b></dt><dd> 541 <table border="0" cellspacing="2" cellpadding="0"> 542 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the context to get the cipher type from.</td></tr> 543 </table> 544</dl> 545<dl class="return" compact><dt><b>Returns:</b></dt><dd>the EVP_CIPHER pointer. </dd></dl> 546 547</div> 548</div><p> 549<a class="anchor" name="gc16dd3987cd90c8bcdbad5290c558359"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_cleanup" ref="gc16dd3987cd90c8bcdbad5290c558359" args="(EVP_CIPHER_CTX *c)" --> 550<div class="memitem"> 551<div class="memproto"> 552 <table class="memname"> 553 <tr> 554 <td class="memname">int EVP_CIPHER_CTX_cleanup </td> 555 <td>(</td> 556 <td class="paramtype">EVP_CIPHER_CTX * </td> 557 <td class="paramname"> <em>c</em> </td> 558 <td> ) </td> 559 <td></td> 560 </tr> 561 </table> 562</div> 563<div class="memdoc"> 564 565<p> 566Clean up the EVP_CIPHER_CTX context.<p> 567<dl compact><dt><b>Parameters:</b></dt><dd> 568 <table border="0" cellspacing="2" cellpadding="0"> 569 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>the cipher to clean up.</td></tr> 570 </table> 571</dl> 572<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 573<dl compact><dt><b>Examples: </b></dt><dd> 574<a class="el" href="example__evp__cipher_8c-example.html#a7">example_evp_cipher.c</a>.</dl> 575</div> 576</div><p> 577<a class="anchor" name="g6f8b7130068dbc4f03fb2cf65cee02bf"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_flags" ref="g6f8b7130068dbc4f03fb2cf65cee02bf" args="(const EVP_CIPHER_CTX *ctx)" --> 578<div class="memitem"> 579<div class="memproto"> 580 <table class="memname"> 581 <tr> 582 <td class="memname">unsigned long EVP_CIPHER_CTX_flags </td> 583 <td>(</td> 584 <td class="paramtype">const EVP_CIPHER_CTX * </td> 585 <td class="paramname"> <em>ctx</em> </td> 586 <td> ) </td> 587 <td></td> 588 </tr> 589 </table> 590</div> 591<div class="memdoc"> 592 593<p> 594Get the flags for an EVP_CIPHER_CTX context.<p> 595<dl compact><dt><b>Parameters:</b></dt><dd> 596 <table border="0" cellspacing="2" cellpadding="0"> 597 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the EVP_CIPHER_CTX to get the flags from</td></tr> 598 </table> 599</dl> 600<dl class="return" compact><dt><b>Returns:</b></dt><dd>the flags for an EVP_CIPHER_CTX. </dd></dl> 601 602</div> 603</div><p> 604<a class="anchor" name="g0f78fd8ac0fa0765245e373d42fc90e3"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_get_app_data" ref="g0f78fd8ac0fa0765245e373d42fc90e3" args="(EVP_CIPHER_CTX *ctx)" --> 605<div class="memitem"> 606<div class="memproto"> 607 <table class="memname"> 608 <tr> 609 <td class="memname">void* EVP_CIPHER_CTX_get_app_data </td> 610 <td>(</td> 611 <td class="paramtype">EVP_CIPHER_CTX * </td> 612 <td class="paramname"> <em>ctx</em> </td> 613 <td> ) </td> 614 <td></td> 615 </tr> 616 </table> 617</div> 618<div class="memdoc"> 619 620<p> 621Get the app data for an EVP_CIPHER_CTX context.<p> 622<dl compact><dt><b>Parameters:</b></dt><dd> 623 <table border="0" cellspacing="2" cellpadding="0"> 624 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the EVP_CIPHER_CTX to get the app data from</td></tr> 625 </table> 626</dl> 627<dl class="return" compact><dt><b>Returns:</b></dt><dd>the app data for an EVP_CIPHER_CTX. </dd></dl> 628 629</div> 630</div><p> 631<a class="anchor" name="g13d0ff0e87312566cb6b3591157f9754"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_init" ref="g13d0ff0e87312566cb6b3591157f9754" args="(EVP_CIPHER_CTX *c)" --> 632<div class="memitem"> 633<div class="memproto"> 634 <table class="memname"> 635 <tr> 636 <td class="memname">void EVP_CIPHER_CTX_init </td> 637 <td>(</td> 638 <td class="paramtype">EVP_CIPHER_CTX * </td> 639 <td class="paramname"> <em>c</em> </td> 640 <td> ) </td> 641 <td></td> 642 </tr> 643 </table> 644</div> 645<div class="memdoc"> 646 647<p> 648Initiate a EVP_CIPHER_CTX context. Clean up with <a class="el" href="group__hcrypto__evp.html#gc16dd3987cd90c8bcdbad5290c558359">EVP_CIPHER_CTX_cleanup()</a>.<p> 649<dl compact><dt><b>Parameters:</b></dt><dd> 650 <table border="0" cellspacing="2" cellpadding="0"> 651 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>the cipher initiate. </td></tr> 652 </table> 653</dl> 654<dl compact><dt><b>Examples: </b></dt><dd> 655<a class="el" href="example__evp__cipher_8c-example.html#a4">example_evp_cipher.c</a>.</dl> 656</div> 657</div><p> 658<a class="anchor" name="ge160dd334fea8b844a4ef8a2ed5fbb0b"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_iv_length" ref="ge160dd334fea8b844a4ef8a2ed5fbb0b" args="(const EVP_CIPHER_CTX *ctx)" --> 659<div class="memitem"> 660<div class="memproto"> 661 <table class="memname"> 662 <tr> 663 <td class="memname">size_t EVP_CIPHER_CTX_iv_length </td> 664 <td>(</td> 665 <td class="paramtype">const EVP_CIPHER_CTX * </td> 666 <td class="paramname"> <em>ctx</em> </td> 667 <td> ) </td> 668 <td></td> 669 </tr> 670 </table> 671</div> 672<div class="memdoc"> 673 674<p> 675Return the IV size of the cipher context.<p> 676<dl compact><dt><b>Parameters:</b></dt><dd> 677 <table border="0" cellspacing="2" cellpadding="0"> 678 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>cipher context to get the IV size from.</td></tr> 679 </table> 680</dl> 681<dl class="return" compact><dt><b>Returns:</b></dt><dd>the IV size of the cipher context. </dd></dl> 682 683</div> 684</div><p> 685<a class="anchor" name="gd9a4a54b9b5d0b6035c7522ca461a9db"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_key_length" ref="gd9a4a54b9b5d0b6035c7522ca461a9db" args="(const EVP_CIPHER_CTX *ctx)" --> 686<div class="memitem"> 687<div class="memproto"> 688 <table class="memname"> 689 <tr> 690 <td class="memname">size_t EVP_CIPHER_CTX_key_length </td> 691 <td>(</td> 692 <td class="paramtype">const EVP_CIPHER_CTX * </td> 693 <td class="paramname"> <em>ctx</em> </td> 694 <td> ) </td> 695 <td></td> 696 </tr> 697 </table> 698</div> 699<div class="memdoc"> 700 701<p> 702Return the key size of the cipher context.<p> 703<dl compact><dt><b>Parameters:</b></dt><dd> 704 <table border="0" cellspacing="2" cellpadding="0"> 705 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>cipher context to get the key size from.</td></tr> 706 </table> 707</dl> 708<dl class="return" compact><dt><b>Returns:</b></dt><dd>the key size of the cipher context. </dd></dl> 709 710</div> 711</div><p> 712<a class="anchor" name="gc8013ca93e9b1ed25df3f535eb633f1a"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_mode" ref="gc8013ca93e9b1ed25df3f535eb633f1a" args="(const EVP_CIPHER_CTX *ctx)" --> 713<div class="memitem"> 714<div class="memproto"> 715 <table class="memname"> 716 <tr> 717 <td class="memname">int EVP_CIPHER_CTX_mode </td> 718 <td>(</td> 719 <td class="paramtype">const EVP_CIPHER_CTX * </td> 720 <td class="paramname"> <em>ctx</em> </td> 721 <td> ) </td> 722 <td></td> 723 </tr> 724 </table> 725</div> 726<div class="memdoc"> 727 728<p> 729Get the mode for an EVP_CIPHER_CTX context.<p> 730<dl compact><dt><b>Parameters:</b></dt><dd> 731 <table border="0" cellspacing="2" cellpadding="0"> 732 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the EVP_CIPHER_CTX to get the mode from</td></tr> 733 </table> 734</dl> 735<dl class="return" compact><dt><b>Returns:</b></dt><dd>the mode for an EVP_CIPHER_CTX. </dd></dl> 736 737</div> 738</div><p> 739<a class="anchor" name="g4fa322f7c3fe5fc570b8343d4d64fc52"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_set_app_data" ref="g4fa322f7c3fe5fc570b8343d4d64fc52" args="(EVP_CIPHER_CTX *ctx, void *data)" --> 740<div class="memitem"> 741<div class="memproto"> 742 <table class="memname"> 743 <tr> 744 <td class="memname">void EVP_CIPHER_CTX_set_app_data </td> 745 <td>(</td> 746 <td class="paramtype">EVP_CIPHER_CTX * </td> 747 <td class="paramname"> <em>ctx</em>, </td> 748 </tr> 749 <tr> 750 <td class="paramkey"></td> 751 <td></td> 752 <td class="paramtype">void * </td> 753 <td class="paramname"> <em>data</em></td><td> </td> 754 </tr> 755 <tr> 756 <td></td> 757 <td>)</td> 758 <td></td><td></td><td></td> 759 </tr> 760 </table> 761</div> 762<div class="memdoc"> 763 764<p> 765Set the app data for an EVP_CIPHER_CTX context.<p> 766<dl compact><dt><b>Parameters:</b></dt><dd> 767 <table border="0" cellspacing="2" cellpadding="0"> 768 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the EVP_CIPHER_CTX to set the app data for </td></tr> 769 <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the app data to set for an EVP_CIPHER_CTX. </td></tr> 770 </table> 771</dl> 772 773</div> 774</div><p> 775<a class="anchor" name="gc4d29d4bc3473f2499cfa83f0201386c"></a><!-- doxytag: member="evp.c::EVP_CIPHER_CTX_set_key_length" ref="gc4d29d4bc3473f2499cfa83f0201386c" args="(EVP_CIPHER_CTX *c, int length)" --> 776<div class="memitem"> 777<div class="memproto"> 778 <table class="memname"> 779 <tr> 780 <td class="memname">int EVP_CIPHER_CTX_set_key_length </td> 781 <td>(</td> 782 <td class="paramtype">EVP_CIPHER_CTX * </td> 783 <td class="paramname"> <em>c</em>, </td> 784 </tr> 785 <tr> 786 <td class="paramkey"></td> 787 <td></td> 788 <td class="paramtype">int </td> 789 <td class="paramname"> <em>length</em></td><td> </td> 790 </tr> 791 <tr> 792 <td></td> 793 <td>)</td> 794 <td></td><td></td><td></td> 795 </tr> 796 </table> 797</div> 798<div class="memdoc"> 799 800<p> 801If the cipher type supports it, change the key length<p> 802<dl compact><dt><b>Parameters:</b></dt><dd> 803 <table border="0" cellspacing="2" cellpadding="0"> 804 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>the cipher context to change the key length for </td></tr> 805 <tr><td valign="top"></td><td valign="top"><em>length</em> </td><td>new key length</td></tr> 806 </table> 807</dl> 808<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 809 810</div> 811</div><p> 812<a class="anchor" name="g7edebe76d19dee11686a6698d24f19f5"></a><!-- doxytag: member="evp.c::EVP_CIPHER_iv_length" ref="g7edebe76d19dee11686a6698d24f19f5" args="(const EVP_CIPHER *c)" --> 813<div class="memitem"> 814<div class="memproto"> 815 <table class="memname"> 816 <tr> 817 <td class="memname">size_t EVP_CIPHER_iv_length </td> 818 <td>(</td> 819 <td class="paramtype">const EVP_CIPHER * </td> 820 <td class="paramname"> <em>c</em> </td> 821 <td> ) </td> 822 <td></td> 823 </tr> 824 </table> 825</div> 826<div class="memdoc"> 827 828<p> 829Return the IV size of the cipher.<p> 830<dl compact><dt><b>Parameters:</b></dt><dd> 831 <table border="0" cellspacing="2" cellpadding="0"> 832 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>cipher to get the IV size from.</td></tr> 833 </table> 834</dl> 835<dl class="return" compact><dt><b>Returns:</b></dt><dd>the IV size of the cipher. </dd></dl> 836<dl compact><dt><b>Examples: </b></dt><dd> 837<a class="el" href="example__evp__cipher_8c-example.html#a2">example_evp_cipher.c</a>.</dl> 838</div> 839</div><p> 840<a class="anchor" name="g4793a9e130da86ac42c497b19395b748"></a><!-- doxytag: member="evp.c::EVP_CIPHER_key_length" ref="g4793a9e130da86ac42c497b19395b748" args="(const EVP_CIPHER *c)" --> 841<div class="memitem"> 842<div class="memproto"> 843 <table class="memname"> 844 <tr> 845 <td class="memname">size_t EVP_CIPHER_key_length </td> 846 <td>(</td> 847 <td class="paramtype">const EVP_CIPHER * </td> 848 <td class="paramname"> <em>c</em> </td> 849 <td> ) </td> 850 <td></td> 851 </tr> 852 </table> 853</div> 854<div class="memdoc"> 855 856<p> 857Return the key size of the cipher.<p> 858<dl compact><dt><b>Parameters:</b></dt><dd> 859 <table border="0" cellspacing="2" cellpadding="0"> 860 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>cipher to get the key size from.</td></tr> 861 </table> 862</dl> 863<dl class="return" compact><dt><b>Returns:</b></dt><dd>the key size of the cipher. </dd></dl> 864<dl compact><dt><b>Examples: </b></dt><dd> 865<a class="el" href="example__evp__cipher_8c-example.html#a1">example_evp_cipher.c</a>.</dl> 866</div> 867</div><p> 868<a class="anchor" name="g714eef7d737fd68171d852043a4995de"></a><!-- doxytag: member="evp.c::EVP_CipherFinal_ex" ref="g714eef7d737fd68171d852043a4995de" args="(EVP_CIPHER_CTX *ctx, void *out, int *outlen)" --> 869<div class="memitem"> 870<div class="memproto"> 871 <table class="memname"> 872 <tr> 873 <td class="memname">int EVP_CipherFinal_ex </td> 874 <td>(</td> 875 <td class="paramtype">EVP_CIPHER_CTX * </td> 876 <td class="paramname"> <em>ctx</em>, </td> 877 </tr> 878 <tr> 879 <td class="paramkey"></td> 880 <td></td> 881 <td class="paramtype">void * </td> 882 <td class="paramname"> <em>out</em>, </td> 883 </tr> 884 <tr> 885 <td class="paramkey"></td> 886 <td></td> 887 <td class="paramtype">int * </td> 888 <td class="paramname"> <em>outlen</em></td><td> </td> 889 </tr> 890 <tr> 891 <td></td> 892 <td>)</td> 893 <td></td><td></td><td></td> 894 </tr> 895 </table> 896</div> 897<div class="memdoc"> 898 899<p> 900Encipher/decipher final data<p> 901<dl compact><dt><b>Parameters:</b></dt><dd> 902 <table border="0" cellspacing="2" cellpadding="0"> 903 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the cipher context. </td></tr> 904 <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>output data from the operation. </td></tr> 905 <tr><td valign="top"></td><td valign="top"><em>outlen</em> </td><td>output length</td></tr> 906 </table> 907</dl> 908The input length needs to be at least <a class="el" href="group__hcrypto__evp.html#g3123ff4b426783dd972538249b9e9d4d">EVP_CIPHER_block_size()</a> bytes long.<p> 909See <a class="el" href="page_evp.html#evp_cipher">EVP Cipher</a> for an example how to use this function.<p> 910<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 911<dl compact><dt><b>Examples: </b></dt><dd> 912<a class="el" href="example__evp__cipher_8c-example.html#a8">example_evp_cipher.c</a>.</dl> 913</div> 914</div><p> 915<a class="anchor" name="g98da5a5c1aa25d9cb2e4717fa11314bd"></a><!-- doxytag: member="evp.c::EVP_CipherInit_ex" ref="g98da5a5c1aa25d9cb2e4717fa11314bd" args="(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *c, ENGINE *engine, const void *key, const void *iv, int encp)" --> 916<div class="memitem"> 917<div class="memproto"> 918 <table class="memname"> 919 <tr> 920 <td class="memname">int EVP_CipherInit_ex </td> 921 <td>(</td> 922 <td class="paramtype">EVP_CIPHER_CTX * </td> 923 <td class="paramname"> <em>ctx</em>, </td> 924 </tr> 925 <tr> 926 <td class="paramkey"></td> 927 <td></td> 928 <td class="paramtype">const EVP_CIPHER * </td> 929 <td class="paramname"> <em>c</em>, </td> 930 </tr> 931 <tr> 932 <td class="paramkey"></td> 933 <td></td> 934 <td class="paramtype">ENGINE * </td> 935 <td class="paramname"> <em>engine</em>, </td> 936 </tr> 937 <tr> 938 <td class="paramkey"></td> 939 <td></td> 940 <td class="paramtype">const void * </td> 941 <td class="paramname"> <em>key</em>, </td> 942 </tr> 943 <tr> 944 <td class="paramkey"></td> 945 <td></td> 946 <td class="paramtype">const void * </td> 947 <td class="paramname"> <em>iv</em>, </td> 948 </tr> 949 <tr> 950 <td class="paramkey"></td> 951 <td></td> 952 <td class="paramtype">int </td> 953 <td class="paramname"> <em>encp</em></td><td> </td> 954 </tr> 955 <tr> 956 <td></td> 957 <td>)</td> 958 <td></td><td></td><td></td> 959 </tr> 960 </table> 961</div> 962<div class="memdoc"> 963 964<p> 965Initiate the EVP_CIPHER_CTX context to encrypt or decrypt data. Clean up with <a class="el" href="group__hcrypto__evp.html#gc16dd3987cd90c8bcdbad5290c558359">EVP_CIPHER_CTX_cleanup()</a>.<p> 966<dl compact><dt><b>Parameters:</b></dt><dd> 967 <table border="0" cellspacing="2" cellpadding="0"> 968 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>context to initiate </td></tr> 969 <tr><td valign="top"></td><td valign="top"><em>c</em> </td><td>cipher to use. </td></tr> 970 <tr><td valign="top"></td><td valign="top"><em>engine</em> </td><td>crypto engine to use, NULL to select default. </td></tr> 971 <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>the crypto key to use, NULL will use the previous value. </td></tr> 972 <tr><td valign="top"></td><td valign="top"><em>iv</em> </td><td>the IV to use, NULL will use the previous value. </td></tr> 973 <tr><td valign="top"></td><td valign="top"><em>encp</em> </td><td>non zero will encrypt, -1 use the previous value.</td></tr> 974 </table> 975</dl> 976<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 977<dl compact><dt><b>Examples: </b></dt><dd> 978<a class="el" href="example__evp__cipher_8c-example.html#a5">example_evp_cipher.c</a>.</dl> 979</div> 980</div><p> 981<a class="anchor" name="g863349e1001b36cfd6c4afedddd12862"></a><!-- doxytag: member="evp.c::EVP_CipherUpdate" ref="g863349e1001b36cfd6c4afedddd12862" args="(EVP_CIPHER_CTX *ctx, void *out, int *outlen, void *in, size_t inlen)" --> 982<div class="memitem"> 983<div class="memproto"> 984 <table class="memname"> 985 <tr> 986 <td class="memname">int EVP_CipherUpdate </td> 987 <td>(</td> 988 <td class="paramtype">EVP_CIPHER_CTX * </td> 989 <td class="paramname"> <em>ctx</em>, </td> 990 </tr> 991 <tr> 992 <td class="paramkey"></td> 993 <td></td> 994 <td class="paramtype">void * </td> 995 <td class="paramname"> <em>out</em>, </td> 996 </tr> 997 <tr> 998 <td class="paramkey"></td> 999 <td></td> 1000 <td class="paramtype">int * </td> 1001 <td class="paramname"> <em>outlen</em>, </td> 1002 </tr> 1003 <tr> 1004 <td class="paramkey"></td> 1005 <td></td> 1006 <td class="paramtype">void * </td> 1007 <td class="paramname"> <em>in</em>, </td> 1008 </tr> 1009 <tr> 1010 <td class="paramkey"></td> 1011 <td></td> 1012 <td class="paramtype">size_t </td> 1013 <td class="paramname"> <em>inlen</em></td><td> </td> 1014 </tr> 1015 <tr> 1016 <td></td> 1017 <td>)</td> 1018 <td></td><td></td><td></td> 1019 </tr> 1020 </table> 1021</div> 1022<div class="memdoc"> 1023 1024<p> 1025Encipher/decipher partial data<p> 1026<dl compact><dt><b>Parameters:</b></dt><dd> 1027 <table border="0" cellspacing="2" cellpadding="0"> 1028 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the cipher context. </td></tr> 1029 <tr><td valign="top"></td><td valign="top"><em>out</em> </td><td>output data from the operation. </td></tr> 1030 <tr><td valign="top"></td><td valign="top"><em>outlen</em> </td><td>output length </td></tr> 1031 <tr><td valign="top"></td><td valign="top"><em>in</em> </td><td>input data to the operation. </td></tr> 1032 <tr><td valign="top"></td><td valign="top"><em>inlen</em> </td><td>length of data.</td></tr> 1033 </table> 1034</dl> 1035The output buffer length should at least be <a class="el" href="group__hcrypto__evp.html#g3123ff4b426783dd972538249b9e9d4d">EVP_CIPHER_block_size()</a> byte longer then the input length.<p> 1036See <a class="el" href="page_evp.html#evp_cipher">EVP Cipher</a> for an example how to use this function.<p> 1037<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 1038 1039<p> 1040If there in no spare bytes in the left from last Update and the input length is on the block boundery, the <a class="el" href="group__hcrypto__evp.html#g863349e1001b36cfd6c4afedddd12862">EVP_CipherUpdate()</a> function can take a shortcut (and preformance gain) and directly encrypt the data, otherwise we hav to fix it up and store extra it the EVP_CIPHER_CTX. <dl compact><dt><b>Examples: </b></dt><dd> 1041<a class="el" href="example__evp__cipher_8c-example.html#a6">example_evp_cipher.c</a>.</dl> 1042</div> 1043</div><p> 1044<a class="anchor" name="g8ba85e78fac7521ad71cb29ef62beab9"></a><!-- doxytag: member="evp.c::EVP_des_cbc" ref="g8ba85e78fac7521ad71cb29ef62beab9" args="(void)" --> 1045<div class="memitem"> 1046<div class="memproto"> 1047 <table class="memname"> 1048 <tr> 1049 <td class="memname">const EVP_CIPHER* EVP_des_cbc </td> 1050 <td>(</td> 1051 <td class="paramtype">void </td> 1052 <td class="paramname"> </td> 1053 <td> ) </td> 1054 <td></td> 1055 </tr> 1056 </table> 1057</div> 1058<div class="memdoc"> 1059 1060<p> 1061The DES cipher type<p> 1062<dl class="return" compact><dt><b>Returns:</b></dt><dd>the DES-CBC EVP_CIPHER pointer. </dd></dl> 1063 1064</div> 1065</div><p> 1066<a class="anchor" name="g191c1d946437661ee23de2ad9b3383e3"></a><!-- doxytag: member="evp.c::EVP_des_ede3_cbc" ref="g191c1d946437661ee23de2ad9b3383e3" args="(void)" --> 1067<div class="memitem"> 1068<div class="memproto"> 1069 <table class="memname"> 1070 <tr> 1071 <td class="memname">const EVP_CIPHER* EVP_des_ede3_cbc </td> 1072 <td>(</td> 1073 <td class="paramtype">void </td> 1074 <td class="paramname"> </td> 1075 <td> ) </td> 1076 <td></td> 1077 </tr> 1078 </table> 1079</div> 1080<div class="memdoc"> 1081 1082<p> 1083The tripple DES cipher type<p> 1084<dl class="return" compact><dt><b>Returns:</b></dt><dd>the DES-EDE3-CBC EVP_CIPHER pointer. </dd></dl> 1085 1086</div> 1087</div><p> 1088<a class="anchor" name="gb785fa9dd0a45be223a0d576af062c4b"></a><!-- doxytag: member="evp.c::EVP_Digest" ref="gb785fa9dd0a45be223a0d576af062c4b" args="(const void *data, size_t dsize, void *hash, unsigned int *hsize, const EVP_MD *md, ENGINE *engine)" --> 1089<div class="memitem"> 1090<div class="memproto"> 1091 <table class="memname"> 1092 <tr> 1093 <td class="memname">int EVP_Digest </td> 1094 <td>(</td> 1095 <td class="paramtype">const void * </td> 1096 <td class="paramname"> <em>data</em>, </td> 1097 </tr> 1098 <tr> 1099 <td class="paramkey"></td> 1100 <td></td> 1101 <td class="paramtype">size_t </td> 1102 <td class="paramname"> <em>dsize</em>, </td> 1103 </tr> 1104 <tr> 1105 <td class="paramkey"></td> 1106 <td></td> 1107 <td class="paramtype">void * </td> 1108 <td class="paramname"> <em>hash</em>, </td> 1109 </tr> 1110 <tr> 1111 <td class="paramkey"></td> 1112 <td></td> 1113 <td class="paramtype">unsigned int * </td> 1114 <td class="paramname"> <em>hsize</em>, </td> 1115 </tr> 1116 <tr> 1117 <td class="paramkey"></td> 1118 <td></td> 1119 <td class="paramtype">const EVP_MD * </td> 1120 <td class="paramname"> <em>md</em>, </td> 1121 </tr> 1122 <tr> 1123 <td class="paramkey"></td> 1124 <td></td> 1125 <td class="paramtype">ENGINE * </td> 1126 <td class="paramname"> <em>engine</em></td><td> </td> 1127 </tr> 1128 <tr> 1129 <td></td> 1130 <td>)</td> 1131 <td></td><td></td><td></td> 1132 </tr> 1133 </table> 1134</div> 1135<div class="memdoc"> 1136 1137<p> 1138Do the whole <a class="el" href="group__hcrypto__evp.html#g54bfa0296db2c131ef69e3a18c445357">EVP_MD_CTX_create()</a>, <a class="el" href="group__hcrypto__evp.html#gb6b800ba80b850cba223723b28fc9a44">EVP_DigestInit_ex()</a>, <a class="el" href="group__hcrypto__evp.html#g12039fea1f371ef39a489d450f564338">EVP_DigestUpdate()</a>, <a class="el" href="group__hcrypto__evp.html#g5103bec19556f264e1f442c6ffc3bddc">EVP_DigestFinal_ex()</a>, <a class="el" href="group__hcrypto__evp.html#ge105ea6e5626f521fbe8cad0a85cbe46">EVP_MD_CTX_destroy()</a> dance in one call.<p> 1139<dl compact><dt><b>Parameters:</b></dt><dd> 1140 <table border="0" cellspacing="2" cellpadding="0"> 1141 <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data to update the context with </td></tr> 1142 <tr><td valign="top"></td><td valign="top"><em>dsize</em> </td><td>length of data </td></tr> 1143 <tr><td valign="top"></td><td valign="top"><em>hash</em> </td><td>output data of at least <a class="el" href="group__hcrypto__evp.html#gbea28e9ccb98329a7a76c95e8699221c">EVP_MD_size()</a> length. </td></tr> 1144 <tr><td valign="top"></td><td valign="top"><em>hsize</em> </td><td>output length of hash. </td></tr> 1145 <tr><td valign="top"></td><td valign="top"><em>md</em> </td><td>message digest to use </td></tr> 1146 <tr><td valign="top"></td><td valign="top"><em>engine</em> </td><td>engine to use, NULL for default engine.</td></tr> 1147 </table> 1148</dl> 1149<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 1150 1151</div> 1152</div><p> 1153<a class="anchor" name="g5103bec19556f264e1f442c6ffc3bddc"></a><!-- doxytag: member="evp.c::EVP_DigestFinal_ex" ref="g5103bec19556f264e1f442c6ffc3bddc" args="(EVP_MD_CTX *ctx, void *hash, unsigned int *size)" --> 1154<div class="memitem"> 1155<div class="memproto"> 1156 <table class="memname"> 1157 <tr> 1158 <td class="memname">int EVP_DigestFinal_ex </td> 1159 <td>(</td> 1160 <td class="paramtype">EVP_MD_CTX * </td> 1161 <td class="paramname"> <em>ctx</em>, </td> 1162 </tr> 1163 <tr> 1164 <td class="paramkey"></td> 1165 <td></td> 1166 <td class="paramtype">void * </td> 1167 <td class="paramname"> <em>hash</em>, </td> 1168 </tr> 1169 <tr> 1170 <td class="paramkey"></td> 1171 <td></td> 1172 <td class="paramtype">unsigned int * </td> 1173 <td class="paramname"> <em>size</em></td><td> </td> 1174 </tr> 1175 <tr> 1176 <td></td> 1177 <td>)</td> 1178 <td></td><td></td><td></td> 1179 </tr> 1180 </table> 1181</div> 1182<div class="memdoc"> 1183 1184<p> 1185Complete the message digest.<p> 1186<dl compact><dt><b>Parameters:</b></dt><dd> 1187 <table border="0" cellspacing="2" cellpadding="0"> 1188 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the context to complete. </td></tr> 1189 <tr><td valign="top"></td><td valign="top"><em>hash</em> </td><td>the output of the message digest function. At least <a class="el" href="group__hcrypto__evp.html#gbea28e9ccb98329a7a76c95e8699221c">EVP_MD_size()</a>. </td></tr> 1190 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>the output size of hash.</td></tr> 1191 </table> 1192</dl> 1193<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 1194 1195</div> 1196</div><p> 1197<a class="anchor" name="gb6b800ba80b850cba223723b28fc9a44"></a><!-- doxytag: member="evp.c::EVP_DigestInit_ex" ref="gb6b800ba80b850cba223723b28fc9a44" args="(EVP_MD_CTX *ctx, const EVP_MD *md, ENGINE *engine)" --> 1198<div class="memitem"> 1199<div class="memproto"> 1200 <table class="memname"> 1201 <tr> 1202 <td class="memname">int EVP_DigestInit_ex </td> 1203 <td>(</td> 1204 <td class="paramtype">EVP_MD_CTX * </td> 1205 <td class="paramname"> <em>ctx</em>, </td> 1206 </tr> 1207 <tr> 1208 <td class="paramkey"></td> 1209 <td></td> 1210 <td class="paramtype">const EVP_MD * </td> 1211 <td class="paramname"> <em>md</em>, </td> 1212 </tr> 1213 <tr> 1214 <td class="paramkey"></td> 1215 <td></td> 1216 <td class="paramtype">ENGINE * </td> 1217 <td class="paramname"> <em>engine</em></td><td> </td> 1218 </tr> 1219 <tr> 1220 <td></td> 1221 <td>)</td> 1222 <td></td><td></td><td></td> 1223 </tr> 1224 </table> 1225</div> 1226<div class="memdoc"> 1227 1228<p> 1229Init a EVP_MD_CTX for use a specific message digest and engine.<p> 1230<dl compact><dt><b>Parameters:</b></dt><dd> 1231 <table border="0" cellspacing="2" cellpadding="0"> 1232 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the message digest context to init. </td></tr> 1233 <tr><td valign="top"></td><td valign="top"><em>md</em> </td><td>the message digest to use. </td></tr> 1234 <tr><td valign="top"></td><td valign="top"><em>engine</em> </td><td>the engine to use, NULL to use the default engine.</td></tr> 1235 </table> 1236</dl> 1237<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 1238 1239</div> 1240</div><p> 1241<a class="anchor" name="g12039fea1f371ef39a489d450f564338"></a><!-- doxytag: member="evp.c::EVP_DigestUpdate" ref="g12039fea1f371ef39a489d450f564338" args="(EVP_MD_CTX *ctx, const void *data, size_t size)" --> 1242<div class="memitem"> 1243<div class="memproto"> 1244 <table class="memname"> 1245 <tr> 1246 <td class="memname">int EVP_DigestUpdate </td> 1247 <td>(</td> 1248 <td class="paramtype">EVP_MD_CTX * </td> 1249 <td class="paramname"> <em>ctx</em>, </td> 1250 </tr> 1251 <tr> 1252 <td class="paramkey"></td> 1253 <td></td> 1254 <td class="paramtype">const void * </td> 1255 <td class="paramname"> <em>data</em>, </td> 1256 </tr> 1257 <tr> 1258 <td class="paramkey"></td> 1259 <td></td> 1260 <td class="paramtype">size_t </td> 1261 <td class="paramname"> <em>size</em></td><td> </td> 1262 </tr> 1263 <tr> 1264 <td></td> 1265 <td>)</td> 1266 <td></td><td></td><td></td> 1267 </tr> 1268 </table> 1269</div> 1270<div class="memdoc"> 1271 1272<p> 1273Update the digest with some data.<p> 1274<dl compact><dt><b>Parameters:</b></dt><dd> 1275 <table border="0" cellspacing="2" cellpadding="0"> 1276 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the context to update </td></tr> 1277 <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data to update the context with </td></tr> 1278 <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>length of data</td></tr> 1279 </table> 1280</dl> 1281<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 1282 1283</div> 1284</div><p> 1285<a class="anchor" name="g70a05495ee115c6eb26d958a5ac75c8b"></a><!-- doxytag: member="evp.c::EVP_enc_null" ref="g70a05495ee115c6eb26d958a5ac75c8b" args="(void)" --> 1286<div class="memitem"> 1287<div class="memproto"> 1288 <table class="memname"> 1289 <tr> 1290 <td class="memname">const EVP_CIPHER* EVP_enc_null </td> 1291 <td>(</td> 1292 <td class="paramtype">void </td> 1293 <td class="paramname"> </td> 1294 <td> ) </td> 1295 <td></td> 1296 </tr> 1297 </table> 1298</div> 1299<div class="memdoc"> 1300 1301<p> 1302The NULL cipher type, does no encryption/decryption.<p> 1303<dl class="return" compact><dt><b>Returns:</b></dt><dd>the null EVP_CIPHER pointer. </dd></dl> 1304 1305</div> 1306</div><p> 1307<a class="anchor" name="gead9b446ac5ebd90dc7be0dbe6aba2b0"></a><!-- doxytag: member="evp.c::EVP_get_cipherbyname" ref="gead9b446ac5ebd90dc7be0dbe6aba2b0" args="(const char *name)" --> 1308<div class="memitem"> 1309<div class="memproto"> 1310 <table class="memname"> 1311 <tr> 1312 <td class="memname">const EVP_CIPHER* EVP_get_cipherbyname </td> 1313 <td>(</td> 1314 <td class="paramtype">const char * </td> 1315 <td class="paramname"> <em>name</em> </td> 1316 <td> ) </td> 1317 <td></td> 1318 </tr> 1319 </table> 1320</div> 1321<div class="memdoc"> 1322 1323<p> 1324Get the cipher type using their name.<p> 1325<dl compact><dt><b>Parameters:</b></dt><dd> 1326 <table border="0" cellspacing="2" cellpadding="0"> 1327 <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>the name of the cipher.</td></tr> 1328 </table> 1329</dl> 1330<dl class="return" compact><dt><b>Returns:</b></dt><dd>the selected EVP_CIPHER pointer or NULL if not found. </dd></dl> 1331 1332</div> 1333</div><p> 1334<a class="anchor" name="g2decf06c0d9b08e364e9c4c8f4d3a7a3"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_aes_128_cbc" ref="g2decf06c0d9b08e364e9c4c8f4d3a7a3" args="(void)" --> 1335<div class="memitem"> 1336<div class="memproto"> 1337 <table class="memname"> 1338 <tr> 1339 <td class="memname">const EVP_CIPHER* EVP_hcrypto_aes_128_cbc </td> 1340 <td>(</td> 1341 <td class="paramtype">void </td> 1342 <td class="paramname"> </td> 1343 <td> ) </td> 1344 <td></td> 1345 </tr> 1346 </table> 1347</div> 1348<div class="memdoc"> 1349 1350<p> 1351The AES-128 cipher type (hcrypto)<p> 1352<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-128 EVP_CIPHER pointer. </dd></dl> 1353 1354</div> 1355</div><p> 1356<a class="anchor" name="g44eb080ab987799883eae8e64970be6c"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_aes_128_cfb8" ref="g44eb080ab987799883eae8e64970be6c" args="(void)" --> 1357<div class="memitem"> 1358<div class="memproto"> 1359 <table class="memname"> 1360 <tr> 1361 <td class="memname">const EVP_CIPHER* EVP_hcrypto_aes_128_cfb8 </td> 1362 <td>(</td> 1363 <td class="paramtype">void </td> 1364 <td class="paramname"> </td> 1365 <td> ) </td> 1366 <td></td> 1367 </tr> 1368 </table> 1369</div> 1370<div class="memdoc"> 1371 1372<p> 1373The AES-128 CFB8 cipher type (hcrypto)<p> 1374<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-128 EVP_CIPHER pointer. </dd></dl> 1375 1376</div> 1377</div><p> 1378<a class="anchor" name="g16b21d9262c4af37121b0e85cc83b555"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_aes_192_cbc" ref="g16b21d9262c4af37121b0e85cc83b555" args="(void)" --> 1379<div class="memitem"> 1380<div class="memproto"> 1381 <table class="memname"> 1382 <tr> 1383 <td class="memname">const EVP_CIPHER* EVP_hcrypto_aes_192_cbc </td> 1384 <td>(</td> 1385 <td class="paramtype">void </td> 1386 <td class="paramname"> </td> 1387 <td> ) </td> 1388 <td></td> 1389 </tr> 1390 </table> 1391</div> 1392<div class="memdoc"> 1393 1394<p> 1395The AES-192 cipher type (hcrypto)<p> 1396<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-192 EVP_CIPHER pointer. </dd></dl> 1397 1398</div> 1399</div><p> 1400<a class="anchor" name="g532a6f5c56334ccf8615791bfaef041d"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_aes_192_cfb8" ref="g532a6f5c56334ccf8615791bfaef041d" args="(void)" --> 1401<div class="memitem"> 1402<div class="memproto"> 1403 <table class="memname"> 1404 <tr> 1405 <td class="memname">const EVP_CIPHER* EVP_hcrypto_aes_192_cfb8 </td> 1406 <td>(</td> 1407 <td class="paramtype">void </td> 1408 <td class="paramname"> </td> 1409 <td> ) </td> 1410 <td></td> 1411 </tr> 1412 </table> 1413</div> 1414<div class="memdoc"> 1415 1416<p> 1417The AES-192 CFB8 cipher type (hcrypto)<p> 1418<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-192 EVP_CIPHER pointer. </dd></dl> 1419 1420</div> 1421</div><p> 1422<a class="anchor" name="g49b683aa07c039ad31d7e498c87ad95f"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_aes_256_cbc" ref="g49b683aa07c039ad31d7e498c87ad95f" args="(void)" --> 1423<div class="memitem"> 1424<div class="memproto"> 1425 <table class="memname"> 1426 <tr> 1427 <td class="memname">const EVP_CIPHER* EVP_hcrypto_aes_256_cbc </td> 1428 <td>(</td> 1429 <td class="paramtype">void </td> 1430 <td class="paramname"> </td> 1431 <td> ) </td> 1432 <td></td> 1433 </tr> 1434 </table> 1435</div> 1436<div class="memdoc"> 1437 1438<p> 1439The AES-256 cipher type (hcrypto)<p> 1440<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-256 EVP_CIPHER pointer. </dd></dl> 1441 1442</div> 1443</div><p> 1444<a class="anchor" name="g4f7c34086cea5e4da92f56d543ec24bf"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_aes_256_cfb8" ref="g4f7c34086cea5e4da92f56d543ec24bf" args="(void)" --> 1445<div class="memitem"> 1446<div class="memproto"> 1447 <table class="memname"> 1448 <tr> 1449 <td class="memname">const EVP_CIPHER* EVP_hcrypto_aes_256_cfb8 </td> 1450 <td>(</td> 1451 <td class="paramtype">void </td> 1452 <td class="paramname"> </td> 1453 <td> ) </td> 1454 <td></td> 1455 </tr> 1456 </table> 1457</div> 1458<div class="memdoc"> 1459 1460<p> 1461The AES-256 CFB8 cipher type (hcrypto)<p> 1462<dl class="return" compact><dt><b>Returns:</b></dt><dd>the AES-256 EVP_CIPHER pointer. </dd></dl> 1463 1464</div> 1465</div><p> 1466<a class="anchor" name="g68deec0ffc93c0dcd83db0478e72d5b8"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_camellia_128_cbc" ref="g68deec0ffc93c0dcd83db0478e72d5b8" args="(void)" --> 1467<div class="memitem"> 1468<div class="memproto"> 1469 <table class="memname"> 1470 <tr> 1471 <td class="memname">const EVP_CIPHER* EVP_hcrypto_camellia_128_cbc </td> 1472 <td>(</td> 1473 <td class="paramtype">void </td> 1474 <td class="paramname"> </td> 1475 <td> ) </td> 1476 <td></td> 1477 </tr> 1478 </table> 1479</div> 1480<div class="memdoc"> 1481 1482<p> 1483The Camellia-128 cipher type - hcrypto<p> 1484<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Camellia-128 EVP_CIPHER pointer. </dd></dl> 1485 1486</div> 1487</div><p> 1488<a class="anchor" name="gfd6acecc697a1f9516909ca228cb54e5"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_camellia_192_cbc" ref="gfd6acecc697a1f9516909ca228cb54e5" args="(void)" --> 1489<div class="memitem"> 1490<div class="memproto"> 1491 <table class="memname"> 1492 <tr> 1493 <td class="memname">const EVP_CIPHER* EVP_hcrypto_camellia_192_cbc </td> 1494 <td>(</td> 1495 <td class="paramtype">void </td> 1496 <td class="paramname"> </td> 1497 <td> ) </td> 1498 <td></td> 1499 </tr> 1500 </table> 1501</div> 1502<div class="memdoc"> 1503 1504<p> 1505The Camellia-198 cipher type - hcrypto<p> 1506<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Camellia-198 EVP_CIPHER pointer. </dd></dl> 1507 1508</div> 1509</div><p> 1510<a class="anchor" name="g211f7122bdeeb3551dcd02c37a7a11e6"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_camellia_256_cbc" ref="g211f7122bdeeb3551dcd02c37a7a11e6" args="(void)" --> 1511<div class="memitem"> 1512<div class="memproto"> 1513 <table class="memname"> 1514 <tr> 1515 <td class="memname">const EVP_CIPHER* EVP_hcrypto_camellia_256_cbc </td> 1516 <td>(</td> 1517 <td class="paramtype">void </td> 1518 <td class="paramname"> </td> 1519 <td> ) </td> 1520 <td></td> 1521 </tr> 1522 </table> 1523</div> 1524<div class="memdoc"> 1525 1526<p> 1527The Camellia-256 cipher type - hcrypto<p> 1528<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Camellia-256 EVP_CIPHER pointer. </dd></dl> 1529 1530</div> 1531</div><p> 1532<a class="anchor" name="g0cc4edf9d19ebf7198e33ac0c8138f04"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_des_cbc" ref="g0cc4edf9d19ebf7198e33ac0c8138f04" args="(void)" --> 1533<div class="memitem"> 1534<div class="memproto"> 1535 <table class="memname"> 1536 <tr> 1537 <td class="memname">const EVP_CIPHER* EVP_hcrypto_des_cbc </td> 1538 <td>(</td> 1539 <td class="paramtype">void </td> 1540 <td class="paramname"> </td> 1541 <td> ) </td> 1542 <td></td> 1543 </tr> 1544 </table> 1545</div> 1546<div class="memdoc"> 1547 1548<p> 1549The DES cipher type<p> 1550<dl class="return" compact><dt><b>Returns:</b></dt><dd>the DES-CBC EVP_CIPHER pointer. </dd></dl> 1551 1552</div> 1553</div><p> 1554<a class="anchor" name="g1c0e19f28dc594d929f089721e737237"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_des_ede3_cbc" ref="g1c0e19f28dc594d929f089721e737237" args="(void)" --> 1555<div class="memitem"> 1556<div class="memproto"> 1557 <table class="memname"> 1558 <tr> 1559 <td class="memname">const EVP_CIPHER* EVP_hcrypto_des_ede3_cbc </td> 1560 <td>(</td> 1561 <td class="paramtype">void </td> 1562 <td class="paramname"> </td> 1563 <td> ) </td> 1564 <td></td> 1565 </tr> 1566 </table> 1567</div> 1568<div class="memdoc"> 1569 1570<p> 1571The tripple DES cipher type - hcrypto<p> 1572<dl class="return" compact><dt><b>Returns:</b></dt><dd>the DES-EDE3-CBC EVP_CIPHER pointer. </dd></dl> 1573 1574</div> 1575</div><p> 1576<a class="anchor" name="g89d756ccb4919c5102481da488b86aaa"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_md2" ref="g89d756ccb4919c5102481da488b86aaa" args="(void)" --> 1577<div class="memitem"> 1578<div class="memproto"> 1579 <table class="memname"> 1580 <tr> 1581 <td class="memname">const EVP_MD* EVP_hcrypto_md2 </td> 1582 <td>(</td> 1583 <td class="paramtype">void </td> 1584 <td class="paramname"> </td> 1585 <td> ) </td> 1586 <td></td> 1587 </tr> 1588 </table> 1589</div> 1590<div class="memdoc"> 1591 1592<p> 1593The message digest MD2 - hcrypto<p> 1594<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1595 1596</div> 1597</div><p> 1598<a class="anchor" name="g4456dfa7c2f23830fa32b99969720719"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_md4" ref="g4456dfa7c2f23830fa32b99969720719" args="(void)" --> 1599<div class="memitem"> 1600<div class="memproto"> 1601 <table class="memname"> 1602 <tr> 1603 <td class="memname">const EVP_MD* EVP_hcrypto_md4 </td> 1604 <td>(</td> 1605 <td class="paramtype">void </td> 1606 <td class="paramname"> </td> 1607 <td> ) </td> 1608 <td></td> 1609 </tr> 1610 </table> 1611</div> 1612<div class="memdoc"> 1613 1614<p> 1615The message digest MD4 - hcrypto<p> 1616<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1617 1618</div> 1619</div><p> 1620<a class="anchor" name="g3c7a8676a690817ec03d71568a7deb1b"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_md5" ref="g3c7a8676a690817ec03d71568a7deb1b" args="(void)" --> 1621<div class="memitem"> 1622<div class="memproto"> 1623 <table class="memname"> 1624 <tr> 1625 <td class="memname">const EVP_MD* EVP_hcrypto_md5 </td> 1626 <td>(</td> 1627 <td class="paramtype">void </td> 1628 <td class="paramname"> </td> 1629 <td> ) </td> 1630 <td></td> 1631 </tr> 1632 </table> 1633</div> 1634<div class="memdoc"> 1635 1636<p> 1637The message digest MD5 - hcrypto<p> 1638<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1639 1640</div> 1641</div><p> 1642<a class="anchor" name="g35d681a86e0ed71b505b53e5fc199ed5"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_rc2_40_cbc" ref="g35d681a86e0ed71b505b53e5fc199ed5" args="(void)" --> 1643<div class="memitem"> 1644<div class="memproto"> 1645 <table class="memname"> 1646 <tr> 1647 <td class="memname">const EVP_CIPHER* EVP_hcrypto_rc2_40_cbc </td> 1648 <td>(</td> 1649 <td class="paramtype">void </td> 1650 <td class="paramname"> </td> 1651 <td> ) </td> 1652 <td></td> 1653 </tr> 1654 </table> 1655</div> 1656<div class="memdoc"> 1657 1658<p> 1659The RC2-40 cipher type<p> 1660<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC2-40 EVP_CIPHER pointer. </dd></dl> 1661 1662</div> 1663</div><p> 1664<a class="anchor" name="gb7534f69db09cd76e4c36703a9340212"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_rc2_64_cbc" ref="gb7534f69db09cd76e4c36703a9340212" args="(void)" --> 1665<div class="memitem"> 1666<div class="memproto"> 1667 <table class="memname"> 1668 <tr> 1669 <td class="memname">const EVP_CIPHER* EVP_hcrypto_rc2_64_cbc </td> 1670 <td>(</td> 1671 <td class="paramtype">void </td> 1672 <td class="paramname"> </td> 1673 <td> ) </td> 1674 <td></td> 1675 </tr> 1676 </table> 1677</div> 1678<div class="memdoc"> 1679 1680<p> 1681The RC2-64 cipher type<p> 1682<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC2-64 EVP_CIPHER pointer. </dd></dl> 1683 1684</div> 1685</div><p> 1686<a class="anchor" name="gc238450b802f4e0c78752ef1ba1198e9"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_rc2_cbc" ref="gc238450b802f4e0c78752ef1ba1198e9" args="(void)" --> 1687<div class="memitem"> 1688<div class="memproto"> 1689 <table class="memname"> 1690 <tr> 1691 <td class="memname">const EVP_CIPHER* EVP_hcrypto_rc2_cbc </td> 1692 <td>(</td> 1693 <td class="paramtype">void </td> 1694 <td class="paramname"> </td> 1695 <td> ) </td> 1696 <td></td> 1697 </tr> 1698 </table> 1699</div> 1700<div class="memdoc"> 1701 1702<p> 1703The RC2 cipher type - hcrypto<p> 1704<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC2 EVP_CIPHER pointer. </dd></dl> 1705 1706</div> 1707</div><p> 1708<a class="anchor" name="g5dc409fc540bad0751b96b3f74185477"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_sha1" ref="g5dc409fc540bad0751b96b3f74185477" args="(void)" --> 1709<div class="memitem"> 1710<div class="memproto"> 1711 <table class="memname"> 1712 <tr> 1713 <td class="memname">const EVP_MD* EVP_hcrypto_sha1 </td> 1714 <td>(</td> 1715 <td class="paramtype">void </td> 1716 <td class="paramname"> </td> 1717 <td> ) </td> 1718 <td></td> 1719 </tr> 1720 </table> 1721</div> 1722<div class="memdoc"> 1723 1724<p> 1725The message digest SHA1 - hcrypto<p> 1726<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1727 1728</div> 1729</div><p> 1730<a class="anchor" name="g12b7608ec40d059f5539fd24277baae0"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_sha256" ref="g12b7608ec40d059f5539fd24277baae0" args="(void)" --> 1731<div class="memitem"> 1732<div class="memproto"> 1733 <table class="memname"> 1734 <tr> 1735 <td class="memname">const EVP_MD* EVP_hcrypto_sha256 </td> 1736 <td>(</td> 1737 <td class="paramtype">void </td> 1738 <td class="paramname"> </td> 1739 <td> ) </td> 1740 <td></td> 1741 </tr> 1742 </table> 1743</div> 1744<div class="memdoc"> 1745 1746<p> 1747The message digest SHA256 - hcrypto<p> 1748<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1749 1750</div> 1751</div><p> 1752<a class="anchor" name="gc002bcb2cc8ee9bb58b5924ab0bc3533"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_sha384" ref="gc002bcb2cc8ee9bb58b5924ab0bc3533" args="(void)" --> 1753<div class="memitem"> 1754<div class="memproto"> 1755 <table class="memname"> 1756 <tr> 1757 <td class="memname">const EVP_MD* EVP_hcrypto_sha384 </td> 1758 <td>(</td> 1759 <td class="paramtype">void </td> 1760 <td class="paramname"> </td> 1761 <td> ) </td> 1762 <td></td> 1763 </tr> 1764 </table> 1765</div> 1766<div class="memdoc"> 1767 1768<p> 1769The message digest SHA384 - hcrypto<p> 1770<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1771 1772</div> 1773</div><p> 1774<a class="anchor" name="gef3c401b9d2e696f89f27335f4b261e2"></a><!-- doxytag: member="evp-hcrypto.c::EVP_hcrypto_sha512" ref="gef3c401b9d2e696f89f27335f4b261e2" args="(void)" --> 1775<div class="memitem"> 1776<div class="memproto"> 1777 <table class="memname"> 1778 <tr> 1779 <td class="memname">const EVP_MD* EVP_hcrypto_sha512 </td> 1780 <td>(</td> 1781 <td class="paramtype">void </td> 1782 <td class="paramname"> </td> 1783 <td> ) </td> 1784 <td></td> 1785 </tr> 1786 </table> 1787</div> 1788<div class="memdoc"> 1789 1790<p> 1791The message digest SHA512 - hcrypto<p> 1792<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1793 1794</div> 1795</div><p> 1796<a class="anchor" name="g4b583f3de5fc66b04f675428da25efd0"></a><!-- doxytag: member="evp.c::EVP_md2" ref="g4b583f3de5fc66b04f675428da25efd0" args="(void)" --> 1797<div class="memitem"> 1798<div class="memproto"> 1799 <table class="memname"> 1800 <tr> 1801 <td class="memname">const EVP_MD* EVP_md2 </td> 1802 <td>(</td> 1803 <td class="paramtype">void </td> 1804 <td class="paramname"> </td> 1805 <td> ) </td> 1806 <td></td> 1807 </tr> 1808 </table> 1809</div> 1810<div class="memdoc"> 1811 1812<p> 1813The message digest MD2<p> 1814<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1815 1816</div> 1817</div><p> 1818<a class="anchor" name="gd232ca5dcef4ec58b182cb967f519999"></a><!-- doxytag: member="evp.c::EVP_md4" ref="gd232ca5dcef4ec58b182cb967f519999" args="(void)" --> 1819<div class="memitem"> 1820<div class="memproto"> 1821 <table class="memname"> 1822 <tr> 1823 <td class="memname">const EVP_MD* EVP_md4 </td> 1824 <td>(</td> 1825 <td class="paramtype">void </td> 1826 <td class="paramname"> </td> 1827 <td> ) </td> 1828 <td></td> 1829 </tr> 1830 </table> 1831</div> 1832<div class="memdoc"> 1833 1834<p> 1835The message digest MD4<p> 1836<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1837 1838</div> 1839</div><p> 1840<a class="anchor" name="g3ccaad2c97f5cf27adb461b1b50aeabb"></a><!-- doxytag: member="evp.c::EVP_md5" ref="g3ccaad2c97f5cf27adb461b1b50aeabb" args="(void)" --> 1841<div class="memitem"> 1842<div class="memproto"> 1843 <table class="memname"> 1844 <tr> 1845 <td class="memname">const EVP_MD* EVP_md5 </td> 1846 <td>(</td> 1847 <td class="paramtype">void </td> 1848 <td class="paramname"> </td> 1849 <td> ) </td> 1850 <td></td> 1851 </tr> 1852 </table> 1853</div> 1854<div class="memdoc"> 1855 1856<p> 1857The message digest MD5<p> 1858<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 1859 1860</div> 1861</div><p> 1862<a class="anchor" name="g48ccb698903828660dc1722d31311420"></a><!-- doxytag: member="evp.c::EVP_MD_block_size" ref="g48ccb698903828660dc1722d31311420" args="(const EVP_MD *md)" --> 1863<div class="memitem"> 1864<div class="memproto"> 1865 <table class="memname"> 1866 <tr> 1867 <td class="memname">size_t EVP_MD_block_size </td> 1868 <td>(</td> 1869 <td class="paramtype">const EVP_MD * </td> 1870 <td class="paramname"> <em>md</em> </td> 1871 <td> ) </td> 1872 <td></td> 1873 </tr> 1874 </table> 1875</div> 1876<div class="memdoc"> 1877 1878<p> 1879Return the blocksize of the message digest function.<p> 1880<dl compact><dt><b>Parameters:</b></dt><dd> 1881 <table border="0" cellspacing="2" cellpadding="0"> 1882 <tr><td valign="top"></td><td valign="top"><em>md</em> </td><td>the evp message</td></tr> 1883 </table> 1884</dl> 1885<dl class="return" compact><dt><b>Returns:</b></dt><dd>size size of the message digest block size </dd></dl> 1886 1887</div> 1888</div><p> 1889<a class="anchor" name="gb35a28f548e64c74dbfd7198c04dad5d"></a><!-- doxytag: member="evp.c::EVP_MD_CTX_block_size" ref="gb35a28f548e64c74dbfd7198c04dad5d" args="(EVP_MD_CTX *ctx)" --> 1890<div class="memitem"> 1891<div class="memproto"> 1892 <table class="memname"> 1893 <tr> 1894 <td class="memname">size_t EVP_MD_CTX_block_size </td> 1895 <td>(</td> 1896 <td class="paramtype">EVP_MD_CTX * </td> 1897 <td class="paramname"> <em>ctx</em> </td> 1898 <td> ) </td> 1899 <td></td> 1900 </tr> 1901 </table> 1902</div> 1903<div class="memdoc"> 1904 1905<p> 1906Return the blocksize of the message digest function.<p> 1907<dl compact><dt><b>Parameters:</b></dt><dd> 1908 <table border="0" cellspacing="2" cellpadding="0"> 1909 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the evp message digest context</td></tr> 1910 </table> 1911</dl> 1912<dl class="return" compact><dt><b>Returns:</b></dt><dd>size size of the message digest block size </dd></dl> 1913 1914</div> 1915</div><p> 1916<a class="anchor" name="g34dea52c788c741fdb4f8fb051be3308"></a><!-- doxytag: member="evp.c::EVP_MD_CTX_cleanup" ref="g34dea52c788c741fdb4f8fb051be3308" args="(EVP_MD_CTX *ctx) HC_DEPRECATED" --> 1917<div class="memitem"> 1918<div class="memproto"> 1919 <table class="memname"> 1920 <tr> 1921 <td class="memname">int EVP_MD_CTX_cleanup </td> 1922 <td>(</td> 1923 <td class="paramtype">EVP_MD_CTX * </td> 1924 <td class="paramname"> <em>ctx</em> </td> 1925 <td> ) </td> 1926 <td></td> 1927 </tr> 1928 </table> 1929</div> 1930<div class="memdoc"> 1931 1932<p> 1933Free the resources used by the EVP_MD context.<p> 1934<dl compact><dt><b>Parameters:</b></dt><dd> 1935 <table border="0" cellspacing="2" cellpadding="0"> 1936 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the context to free the resources from.</td></tr> 1937 </table> 1938</dl> 1939<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 on success. </dd></dl> 1940 1941</div> 1942</div><p> 1943<a class="anchor" name="g54bfa0296db2c131ef69e3a18c445357"></a><!-- doxytag: member="evp.c::EVP_MD_CTX_create" ref="g54bfa0296db2c131ef69e3a18c445357" args="(void)" --> 1944<div class="memitem"> 1945<div class="memproto"> 1946 <table class="memname"> 1947 <tr> 1948 <td class="memname">EVP_MD_CTX* EVP_MD_CTX_create </td> 1949 <td>(</td> 1950 <td class="paramtype">void </td> 1951 <td class="paramname"> </td> 1952 <td> ) </td> 1953 <td></td> 1954 </tr> 1955 </table> 1956</div> 1957<div class="memdoc"> 1958 1959<p> 1960Allocate a messsage digest context object. Free with <a class="el" href="group__hcrypto__evp.html#ge105ea6e5626f521fbe8cad0a85cbe46">EVP_MD_CTX_destroy()</a>.<p> 1961<dl class="return" compact><dt><b>Returns:</b></dt><dd>a newly allocated message digest context object. </dd></dl> 1962 1963</div> 1964</div><p> 1965<a class="anchor" name="ge105ea6e5626f521fbe8cad0a85cbe46"></a><!-- doxytag: member="evp.c::EVP_MD_CTX_destroy" ref="ge105ea6e5626f521fbe8cad0a85cbe46" args="(EVP_MD_CTX *ctx)" --> 1966<div class="memitem"> 1967<div class="memproto"> 1968 <table class="memname"> 1969 <tr> 1970 <td class="memname">void EVP_MD_CTX_destroy </td> 1971 <td>(</td> 1972 <td class="paramtype">EVP_MD_CTX * </td> 1973 <td class="paramname"> <em>ctx</em> </td> 1974 <td> ) </td> 1975 <td></td> 1976 </tr> 1977 </table> 1978</div> 1979<div class="memdoc"> 1980 1981<p> 1982Free a messsage digest context object.<p> 1983<dl compact><dt><b>Parameters:</b></dt><dd> 1984 <table border="0" cellspacing="2" cellpadding="0"> 1985 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>context to free. </td></tr> 1986 </table> 1987</dl> 1988 1989</div> 1990</div><p> 1991<a class="anchor" name="g3fd216754cf705b7d4980744b1508410"></a><!-- doxytag: member="evp.c::EVP_MD_CTX_init" ref="g3fd216754cf705b7d4980744b1508410" args="(EVP_MD_CTX *ctx) HC_DEPRECATED" --> 1992<div class="memitem"> 1993<div class="memproto"> 1994 <table class="memname"> 1995 <tr> 1996 <td class="memname">void EVP_MD_CTX_init </td> 1997 <td>(</td> 1998 <td class="paramtype">EVP_MD_CTX * </td> 1999 <td class="paramname"> <em>ctx</em> </td> 2000 <td> ) </td> 2001 <td></td> 2002 </tr> 2003 </table> 2004</div> 2005<div class="memdoc"> 2006 2007<p> 2008Initiate a messsage digest context object. Deallocate with <a class="el" href="group__hcrypto__evp.html#g34dea52c788c741fdb4f8fb051be3308">EVP_MD_CTX_cleanup()</a>. Please use <a class="el" href="group__hcrypto__evp.html#g54bfa0296db2c131ef69e3a18c445357">EVP_MD_CTX_create()</a> instead.<p> 2009<dl compact><dt><b>Parameters:</b></dt><dd> 2010 <table border="0" cellspacing="2" cellpadding="0"> 2011 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>variable to initiate. </td></tr> 2012 </table> 2013</dl> 2014 2015</div> 2016</div><p> 2017<a class="anchor" name="ged3480025ecf31d0afcb62174d6acc24"></a><!-- doxytag: member="evp.c::EVP_MD_CTX_md" ref="ged3480025ecf31d0afcb62174d6acc24" args="(EVP_MD_CTX *ctx)" --> 2018<div class="memitem"> 2019<div class="memproto"> 2020 <table class="memname"> 2021 <tr> 2022 <td class="memname">const EVP_MD* EVP_MD_CTX_md </td> 2023 <td>(</td> 2024 <td class="paramtype">EVP_MD_CTX * </td> 2025 <td class="paramname"> <em>ctx</em> </td> 2026 <td> ) </td> 2027 <td></td> 2028 </tr> 2029 </table> 2030</div> 2031<div class="memdoc"> 2032 2033<p> 2034Get the EVP_MD use for a specified context.<p> 2035<dl compact><dt><b>Parameters:</b></dt><dd> 2036 <table border="0" cellspacing="2" cellpadding="0"> 2037 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the EVP_MD context to get the EVP_MD for.</td></tr> 2038 </table> 2039</dl> 2040<dl class="return" compact><dt><b>Returns:</b></dt><dd>the EVP_MD used for the context. </dd></dl> 2041 2042</div> 2043</div><p> 2044<a class="anchor" name="g25a51444f0586be1494f78e4e17e65f8"></a><!-- doxytag: member="evp.c::EVP_MD_CTX_size" ref="g25a51444f0586be1494f78e4e17e65f8" args="(EVP_MD_CTX *ctx)" --> 2045<div class="memitem"> 2046<div class="memproto"> 2047 <table class="memname"> 2048 <tr> 2049 <td class="memname">size_t EVP_MD_CTX_size </td> 2050 <td>(</td> 2051 <td class="paramtype">EVP_MD_CTX * </td> 2052 <td class="paramname"> <em>ctx</em> </td> 2053 <td> ) </td> 2054 <td></td> 2055 </tr> 2056 </table> 2057</div> 2058<div class="memdoc"> 2059 2060<p> 2061Return the output size of the message digest function.<p> 2062<dl compact><dt><b>Parameters:</b></dt><dd> 2063 <table border="0" cellspacing="2" cellpadding="0"> 2064 <tr><td valign="top"></td><td valign="top"><em>ctx</em> </td><td>the evp message digest context</td></tr> 2065 </table> 2066</dl> 2067<dl class="return" compact><dt><b>Returns:</b></dt><dd>size output size of the message digest function. </dd></dl> 2068 2069</div> 2070</div><p> 2071<a class="anchor" name="g5183830cf039ea4d9a2c1bd3c539e9af"></a><!-- doxytag: member="evp.c::EVP_md_null" ref="g5183830cf039ea4d9a2c1bd3c539e9af" args="(void)" --> 2072<div class="memitem"> 2073<div class="memproto"> 2074 <table class="memname"> 2075 <tr> 2076 <td class="memname">const EVP_MD* EVP_md_null </td> 2077 <td>(</td> 2078 <td class="paramtype">void </td> 2079 <td class="paramname"> </td> 2080 <td> ) </td> 2081 <td></td> 2082 </tr> 2083 </table> 2084</div> 2085<div class="memdoc"> 2086 2087<p> 2088The null message digest<p> 2089<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 2090 2091</div> 2092</div><p> 2093<a class="anchor" name="gbea28e9ccb98329a7a76c95e8699221c"></a><!-- doxytag: member="evp.c::EVP_MD_size" ref="gbea28e9ccb98329a7a76c95e8699221c" args="(const EVP_MD *md)" --> 2094<div class="memitem"> 2095<div class="memproto"> 2096 <table class="memname"> 2097 <tr> 2098 <td class="memname">size_t EVP_MD_size </td> 2099 <td>(</td> 2100 <td class="paramtype">const EVP_MD * </td> 2101 <td class="paramname"> <em>md</em> </td> 2102 <td> ) </td> 2103 <td></td> 2104 </tr> 2105 </table> 2106</div> 2107<div class="memdoc"> 2108 2109<p> 2110Return the output size of the message digest function.<p> 2111<dl compact><dt><b>Parameters:</b></dt><dd> 2112 <table border="0" cellspacing="2" cellpadding="0"> 2113 <tr><td valign="top"></td><td valign="top"><em>md</em> </td><td>the evp message</td></tr> 2114 </table> 2115</dl> 2116<dl class="return" compact><dt><b>Returns:</b></dt><dd>size output size of the message digest function. </dd></dl> 2117 2118</div> 2119</div><p> 2120<a class="anchor" name="g104bcd969bcc30dc3e7e77d63a38a87e"></a><!-- doxytag: member="evp.c::EVP_rc2_40_cbc" ref="g104bcd969bcc30dc3e7e77d63a38a87e" args="(void)" --> 2121<div class="memitem"> 2122<div class="memproto"> 2123 <table class="memname"> 2124 <tr> 2125 <td class="memname">const EVP_CIPHER* EVP_rc2_40_cbc </td> 2126 <td>(</td> 2127 <td class="paramtype">void </td> 2128 <td class="paramname"> </td> 2129 <td> ) </td> 2130 <td></td> 2131 </tr> 2132 </table> 2133</div> 2134<div class="memdoc"> 2135 2136<p> 2137The RC2 cipher type<p> 2138<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC2 EVP_CIPHER pointer. </dd></dl> 2139 2140</div> 2141</div><p> 2142<a class="anchor" name="g09cd194a211931839f1e7bb8e578099e"></a><!-- doxytag: member="evp.c::EVP_rc2_64_cbc" ref="g09cd194a211931839f1e7bb8e578099e" args="(void)" --> 2143<div class="memitem"> 2144<div class="memproto"> 2145 <table class="memname"> 2146 <tr> 2147 <td class="memname">const EVP_CIPHER* EVP_rc2_64_cbc </td> 2148 <td>(</td> 2149 <td class="paramtype">void </td> 2150 <td class="paramname"> </td> 2151 <td> ) </td> 2152 <td></td> 2153 </tr> 2154 </table> 2155</div> 2156<div class="memdoc"> 2157 2158<p> 2159The RC2 cipher type<p> 2160<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC2 EVP_CIPHER pointer. </dd></dl> 2161 2162</div> 2163</div><p> 2164<a class="anchor" name="gc7d0f7590921dde70bebeebadd2fec36"></a><!-- doxytag: member="evp.c::EVP_rc2_cbc" ref="gc7d0f7590921dde70bebeebadd2fec36" args="(void)" --> 2165<div class="memitem"> 2166<div class="memproto"> 2167 <table class="memname"> 2168 <tr> 2169 <td class="memname">const EVP_CIPHER* EVP_rc2_cbc </td> 2170 <td>(</td> 2171 <td class="paramtype">void </td> 2172 <td class="paramname"> </td> 2173 <td> ) </td> 2174 <td></td> 2175 </tr> 2176 </table> 2177</div> 2178<div class="memdoc"> 2179 2180<p> 2181The RC2 cipher type<p> 2182<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC2 EVP_CIPHER pointer. </dd></dl> 2183 2184</div> 2185</div><p> 2186<a class="anchor" name="g9cb683240f384ddbd0f3279960af93ba"></a><!-- doxytag: member="evp.c::EVP_rc4" ref="g9cb683240f384ddbd0f3279960af93ba" args="(void)" --> 2187<div class="memitem"> 2188<div class="memproto"> 2189 <table class="memname"> 2190 <tr> 2191 <td class="memname">const EVP_CIPHER* EVP_rc4 </td> 2192 <td>(</td> 2193 <td class="paramtype">void </td> 2194 <td class="paramname"> </td> 2195 <td> ) </td> 2196 <td></td> 2197 </tr> 2198 </table> 2199</div> 2200<div class="memdoc"> 2201 2202<p> 2203The RC4 cipher type<p> 2204<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC4 EVP_CIPHER pointer. </dd></dl> 2205 2206</div> 2207</div><p> 2208<a class="anchor" name="ge5cbdfcb5012a07fec8df1d6b9c5d772"></a><!-- doxytag: member="evp.c::EVP_rc4_40" ref="ge5cbdfcb5012a07fec8df1d6b9c5d772" args="(void)" --> 2209<div class="memitem"> 2210<div class="memproto"> 2211 <table class="memname"> 2212 <tr> 2213 <td class="memname">const EVP_CIPHER* EVP_rc4_40 </td> 2214 <td>(</td> 2215 <td class="paramtype">void </td> 2216 <td class="paramname"> </td> 2217 <td> ) </td> 2218 <td></td> 2219 </tr> 2220 </table> 2221</div> 2222<div class="memdoc"> 2223 2224<p> 2225The RC4-40 cipher type<p> 2226<dl class="return" compact><dt><b>Returns:</b></dt><dd>the RC4-40 EVP_CIPHER pointer. </dd></dl> 2227 2228</div> 2229</div><p> 2230<a class="anchor" name="gee62cb107a208bd6984dd767f9feb8c0"></a><!-- doxytag: member="evp.c::EVP_sha" ref="gee62cb107a208bd6984dd767f9feb8c0" args="(void)" --> 2231<div class="memitem"> 2232<div class="memproto"> 2233 <table class="memname"> 2234 <tr> 2235 <td class="memname">const EVP_MD* EVP_sha </td> 2236 <td>(</td> 2237 <td class="paramtype">void </td> 2238 <td class="paramname"> </td> 2239 <td> ) </td> 2240 <td></td> 2241 </tr> 2242 </table> 2243</div> 2244<div class="memdoc"> 2245 2246<p> 2247The message digest SHA1<p> 2248<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 2249 2250</div> 2251</div><p> 2252<a class="anchor" name="ga090d659a494a10525e38d272efb01ae"></a><!-- doxytag: member="evp.c::EVP_sha1" ref="ga090d659a494a10525e38d272efb01ae" args="(void)" --> 2253<div class="memitem"> 2254<div class="memproto"> 2255 <table class="memname"> 2256 <tr> 2257 <td class="memname">const EVP_MD* EVP_sha1 </td> 2258 <td>(</td> 2259 <td class="paramtype">void </td> 2260 <td class="paramname"> </td> 2261 <td> ) </td> 2262 <td></td> 2263 </tr> 2264 </table> 2265</div> 2266<div class="memdoc"> 2267 2268<p> 2269The message digest SHA1<p> 2270<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 2271 2272</div> 2273</div><p> 2274<a class="anchor" name="gfe55e56742a9b9ecffdaef7e95a6707a"></a><!-- doxytag: member="evp.c::EVP_sha256" ref="gfe55e56742a9b9ecffdaef7e95a6707a" args="(void)" --> 2275<div class="memitem"> 2276<div class="memproto"> 2277 <table class="memname"> 2278 <tr> 2279 <td class="memname">const EVP_MD* EVP_sha256 </td> 2280 <td>(</td> 2281 <td class="paramtype">void </td> 2282 <td class="paramname"> </td> 2283 <td> ) </td> 2284 <td></td> 2285 </tr> 2286 </table> 2287</div> 2288<div class="memdoc"> 2289 2290<p> 2291The message digest SHA256<p> 2292<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 2293 2294</div> 2295</div><p> 2296<a class="anchor" name="g031405a10c84711b9a9699fadc8dbf2a"></a><!-- doxytag: member="evp.c::EVP_sha384" ref="g031405a10c84711b9a9699fadc8dbf2a" args="(void)" --> 2297<div class="memitem"> 2298<div class="memproto"> 2299 <table class="memname"> 2300 <tr> 2301 <td class="memname">const EVP_MD* EVP_sha384 </td> 2302 <td>(</td> 2303 <td class="paramtype">void </td> 2304 <td class="paramname"> </td> 2305 <td> ) </td> 2306 <td></td> 2307 </tr> 2308 </table> 2309</div> 2310<div class="memdoc"> 2311 2312<p> 2313The message digest SHA384<p> 2314<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 2315 2316</div> 2317</div><p> 2318<a class="anchor" name="gceda0d5da59b56159d2e3515039a46ce"></a><!-- doxytag: member="evp.c::EVP_sha512" ref="gceda0d5da59b56159d2e3515039a46ce" args="(void)" --> 2319<div class="memitem"> 2320<div class="memproto"> 2321 <table class="memname"> 2322 <tr> 2323 <td class="memname">const EVP_MD* EVP_sha512 </td> 2324 <td>(</td> 2325 <td class="paramtype">void </td> 2326 <td class="paramname"> </td> 2327 <td> ) </td> 2328 <td></td> 2329 </tr> 2330 </table> 2331</div> 2332<div class="memdoc"> 2333 2334<p> 2335The message digest SHA512<p> 2336<dl class="return" compact><dt><b>Returns:</b></dt><dd>the message digest type. </dd></dl> 2337 2338</div> 2339</div><p> 2340<a class="anchor" name="g769121c112a501748233bda8345cb47a"></a><!-- doxytag: member="evp-crypt.c::EVP_wincrypt_des_ede3_cbc" ref="g769121c112a501748233bda8345cb47a" args="(void)" --> 2341<div class="memitem"> 2342<div class="memproto"> 2343 <table class="memname"> 2344 <tr> 2345 <td class="memname">const EVP_CIPHER* EVP_wincrypt_des_ede3_cbc </td> 2346 <td>(</td> 2347 <td class="paramtype">void </td> 2348 <td class="paramname"> </td> 2349 <td> ) </td> 2350 <td></td> 2351 </tr> 2352 </table> 2353</div> 2354<div class="memdoc"> 2355 2356<p> 2357The tripple DES cipher type (Micrsoft crypt provider)<p> 2358<dl class="return" compact><dt><b>Returns:</b></dt><dd>the DES-EDE3-CBC EVP_CIPHER pointer. </dd></dl> 2359 2360</div> 2361</div><p> 2362</div> 2363<hr size="1"><address style="text-align: right;"><small> 2364Generated 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> 2365</body> 2366</html> 2367