<html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Cryptokit" rel="Chapter" href="Cryptokit.html"><title>Index of values</title> </head> <body> <center><h1>Index of values</h1></center> <table> <tr><td align="left"><br></td></tr> <tr><td><a href="Cryptokit.Padding.html#VAL_8000">_8000</a> [<a href="Cryptokit.Padding.html">Cryptokit.Padding</a>]</td> <td><div class="info"> This padding scheme pads data with one <code class="code">0x80</code> byte, followed by as many <code class="code">0</code> bytes as needed to fill the block. </div> </td></tr> <tr><td align="left"><br>A</td></tr> <tr><td><a href="Cryptokit.MAC.html#VALaes">aes</a> [<a href="Cryptokit.MAC.html">Cryptokit.MAC</a>]</td> <td><div class="info"> <code class="code">aes key</code> returns a MAC based on AES encryption in CBC mode. </div> </td></tr> <tr><td><a href="Cryptokit.Cipher.html#VALaes">aes</a> [<a href="Cryptokit.Cipher.html">Cryptokit.Cipher</a>]</td> <td><div class="info"> AES is the Advanced Encryption Standard, also known as Rijndael. </div> </td></tr> <tr><td><a href="Cryptokit.Cipher.html#VALarcfour">arcfour</a> [<a href="Cryptokit.Cipher.html">Cryptokit.Cipher</a>]</td> <td><div class="info"> ARCfour (``alleged RC4'') is a fast stream cipher that appears to produce equivalent results with the commercial RC4 cipher from RSA Data Security Inc. </div> </td></tr> <tr><td align="left"><br>C</td></tr> <tr><td><a href="Cryptokit.html#VALcompose">compose</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> Compose two transforms, feeding the output of the first transform to the input of the second transform. </div> </td></tr> <tr><td><a href="Cryptokit.Zlib.html#VALcompress">compress</a> [<a href="Cryptokit.Zlib.html">Cryptokit.Zlib</a>]</td> <td><div class="info"> Return a transform that compresses its input. </div> </td></tr> <tr><td align="left"><br>D</td></tr> <tr><td><a href="Cryptokit.Hexa.html#VALdecode">decode</a> [<a href="Cryptokit.Hexa.html">Cryptokit.Hexa</a>]</td> <td><div class="info"> Return a transform that decodes its input from hexadecimal. </div> </td></tr> <tr><td><a href="Cryptokit.Base64.html#VALdecode">decode</a> [<a href="Cryptokit.Base64.html">Cryptokit.Base64</a>]</td> <td><div class="info"> Return a transform that performs base 64 decoding. </div> </td></tr> <tr><td><a href="Cryptokit.RSA.html#VALdecrypt">decrypt</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> <code class="code">decrypt k msg</code> decrypts the ciphertext string <code class="code">msg</code> with the private part of key <code class="code">k</code> (components <code class="code">n</code> and <code class="code">d</code>). </div> </td></tr> <tr><td><a href="Cryptokit.RSA.html#VALdecrypt_CRT">decrypt_CRT</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> <code class="code">decrypt_CRT k msg</code> decrypts the ciphertext string <code class="code">msg</code> with the CRT private part of key <code class="code">k</code> (components <code class="code">n</code>, <code class="code">p</code>, <code class="code">q</code>, <code class="code">dp</code>, <code class="code">dq</code> and <code class="code">qinv</code>). </div> </td></tr> <tr><td><a href="Cryptokit.DH.html#VALderive_key">derive_key</a> [<a href="Cryptokit.DH.html">Cryptokit.DH</a>]</td> <td><div class="info"> <code class="code">derive_key shared_secret numbytes</code> derives a secret string (typically, a key for symmetric encryption) from the given shared secret. </div> </td></tr> <tr><td><a href="Cryptokit.MAC.html#VALdes">des</a> [<a href="Cryptokit.MAC.html">Cryptokit.MAC</a>]</td> <td><div class="info"> <code class="code">des key</code> returns a MAC based on DES encryption in CBC mode. </div> </td></tr> <tr><td><a href="Cryptokit.Cipher.html#VALdes">des</a> [<a href="Cryptokit.Cipher.html">Cryptokit.Cipher</a>]</td> <td><div class="info"> DES is the Data Encryption Standard. </div> </td></tr> <tr><td><a href="Cryptokit.MAC.html#VALdes_final_triple_des">des_final_triple_des</a> [<a href="Cryptokit.MAC.html">Cryptokit.MAC</a>]</td> <td><div class="info"> <code class="code">des_final_triple_des key</code> returns a MAC that uses DES CBC with the first 8 bytes of <code class="code">key</code> as key. </div> </td></tr> <tr><td><a href="Cryptokit.Random.html#VALdevice_rng">device_rng</a> [<a href="Cryptokit.Random.html">Cryptokit.Random</a>]</td> <td><div class="info"> <code class="code">device_rng devicename</code> returns a random number generator that reads from the special file <code class="code">devicename</code>, e.g. </div> </td></tr> <tr><td align="left"><br>E</td></tr> <tr><td><a href="Cryptokit.Random.html#VALegd_rng">egd_rng</a> [<a href="Cryptokit.Random.html">Cryptokit.Random</a>]</td> <td><div class="info"> <code class="code">device_rng egd_socket</code> returns a random number generator that uses the Entropy Gathering Daemon (<code class="code">http://egd.sourceforge.net/</code>). </div> </td></tr> <tr><td><a href="Cryptokit.Hexa.html#VALencode">encode</a> [<a href="Cryptokit.Hexa.html">Cryptokit.Hexa</a>]</td> <td><div class="info"> Return a transform that encodes its input in hexadecimal. </div> </td></tr> <tr><td><a href="Cryptokit.Base64.html#VALencode_compact">encode_compact</a> [<a href="Cryptokit.Base64.html">Cryptokit.Base64</a>]</td> <td><div class="info"> Same as <a href="Cryptokit.Base64.html#VALencode_multiline"><code class="code">Cryptokit.Base64.encode_multiline</code></a>, but the output is not split into lines, and no final padding is added. </div> </td></tr> <tr><td><a href="Cryptokit.Base64.html#VALencode_multiline">encode_multiline</a> [<a href="Cryptokit.Base64.html">Cryptokit.Base64</a>]</td> <td><div class="info"> Return a transform that performs base 64 encoding. </div> </td></tr> <tr><td><a href="Cryptokit.RSA.html#VALencrypt">encrypt</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> <code class="code">encrypt k msg</code> encrypts the string <code class="code">msg</code> with the public part of key <code class="code">k</code> (components <code class="code">n</code> and <code class="code">e</code>). </div> </td></tr> <tr><td align="left"><br>H</td></tr> <tr><td><a href="Cryptokit.html#VALhash_channel">hash_channel</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">hash_channel h ic</code> reads characters from the input channel <code class="code">ic</code>, computes their hash value and returns it. </div> </td></tr> <tr><td><a href="Cryptokit.html#VALhash_string">hash_string</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">hash_string h s</code> runs the string <code class="code">s</code> through the hash function <code class="code">h</code> and returns the hash value of <code class="code">s</code>. </div> </td></tr> <tr><td><a href="Cryptokit.MAC.html#VALhmac_md5">hmac_md5</a> [<a href="Cryptokit.MAC.html">Cryptokit.MAC</a>]</td> <td><div class="info"> <code class="code">hmac_md5 key</code> returns a MAC based on the HMAC construction (RFC2104) applied to MD5. </div> </td></tr> <tr><td><a href="Cryptokit.MAC.html#VALhmac_sha1">hmac_sha1</a> [<a href="Cryptokit.MAC.html">Cryptokit.MAC</a>]</td> <td><div class="info"> <code class="code">hmac_sha1 key</code> returns a MAC based on the HMAC construction (RFC2104) applied to SHA-1. </div> </td></tr> <tr><td align="left"><br>L</td></tr> <tr><td><a href="Cryptokit.Padding.html#VALlength">length</a> [<a href="Cryptokit.Padding.html">Cryptokit.Padding</a>]</td> <td><div class="info"> This padding scheme pads data with <code class="code">n</code> copies of the character having code <code class="code">n</code>. </div> </td></tr> <tr><td align="left"><br>M</td></tr> <tr><td><a href="Cryptokit.Hash.html#VALmd5">md5</a> [<a href="Cryptokit.Hash.html">Cryptokit.Hash</a>]</td> <td><div class="info"> MD5 is an older hash function, producing 128-bit hashes (16 bytes). </div> </td></tr> <tr><td><a href="Cryptokit.DH.html#VALmessage">message</a> [<a href="Cryptokit.DH.html">Cryptokit.DH</a>]</td> <td><div class="info"> Compute the message to be sent to the other party. </div> </td></tr> <tr><td><a href="Cryptokit.html#VALmod_mult">mod_mult</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">mod_mult a b c</code> computes <code class="code">a*b mod c</code>, where the strings <code class="code">a</code>, <code class="code">b</code>, <code class="code">c</code> and the result string are viewed as arbitrary-precision integers in big-endian format. </div> </td></tr> <tr><td><a href="Cryptokit.html#VALmod_power">mod_power</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">mod_power a b c</code> computes <code class="code">a^b mod c</code>, where the strings <code class="code">a</code>, <code class="code">b</code>, <code class="code">c</code> and the result string are viewed as arbitrary-precision integers in big-endian format. </div> </td></tr> <tr><td align="left"><br>N</td></tr> <tr><td><a href="Cryptokit.RSA.html#VALnew_key">new_key</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> Generate a new, random RSA key. </div> </td></tr> <tr><td><a href="Cryptokit.DH.html#VALnew_parameters">new_parameters</a> [<a href="Cryptokit.DH.html">Cryptokit.DH</a>]</td> <td><div class="info"> Generate a new set of Diffie-Hellman parameters. </div> </td></tr> <tr><td align="left"><br>P</td></tr> <tr><td><a href="Cryptokit.DH.html#VALprivate_secret">private_secret</a> [<a href="Cryptokit.DH.html">Cryptokit.DH</a>]</td> <td><div class="info"> Generate a random private secret. </div> </td></tr> <tr><td><a href="Cryptokit.Random.html#VALpseudo_rng">pseudo_rng</a> [<a href="Cryptokit.Random.html">Cryptokit.Random</a>]</td> <td><div class="info"> <code class="code">pseudo_rng seed</code> returns a pseudo-random number generator seeded by the string <code class="code">seed</code>. </div> </td></tr> <tr><td align="left"><br>R</td></tr> <tr><td><a href="Cryptokit.Hash.html#VALripemd160">ripemd160</a> [<a href="Cryptokit.Hash.html">Cryptokit.Hash</a>]</td> <td><div class="info"> RIPEMD-160 produces 160-bit hashes (20 bytes). </div> </td></tr> <tr><td align="left"><br>S</td></tr> <tr><td><a href="Cryptokit.Random.html#VALsecure_rng">secure_rng</a> [<a href="Cryptokit.Random.html">Cryptokit.Random</a>]</td> <td><div class="info"> A high-quality random number generator, using hard-to-predict system data to generate entropy. </div> </td></tr> <tr><td><a href="Cryptokit.Hash.html#VALsha1">sha1</a> [<a href="Cryptokit.Hash.html">Cryptokit.Hash</a>]</td> <td><div class="info"> SHA-1 is the Secure Hash Algorithm revision 1. </div> </td></tr> <tr><td><a href="Cryptokit.Hash.html#VALsha256">sha256</a> [<a href="Cryptokit.Hash.html">Cryptokit.Hash</a>]</td> <td><div class="info"> SHA-256, another NIST standard, is a variant of SHA-1 that produces 256-bit hashes (32 bytes). </div> </td></tr> <tr><td><a href="Cryptokit.DH.html#VALshared_secret">shared_secret</a> [<a href="Cryptokit.DH.html">Cryptokit.DH</a>]</td> <td><div class="info"> Recover the shared secret from the private secret of the present party and the message received from the other party. </div> </td></tr> <tr><td><a href="Cryptokit.RSA.html#VALsign">sign</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> <code class="code">sign k msg</code> encrypts the plaintext string <code class="code">msg</code> with the private part of key <code class="code">k</code> (components <code class="code">n</code> and <code class="code">d</code>), thus performing a digital signature on <code class="code">msg</code>. </div> </td></tr> <tr><td><a href="Cryptokit.RSA.html#VALsign_CRT">sign_CRT</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> <code class="code">sign_CRT k msg</code> encrypts the plaintext string <code class="code">msg</code> with the CRT private part of key <code class="code">k</code> (components <code class="code">n</code>, <code class="code">p</code>, <code class="code">q</code>, <code class="code">dp</code>, <code class="code">dq</code> and <code class="code">qinv</code>), thus performing a digital signature on <code class="code">msg</code>. </div> </td></tr> <tr><td><a href="Cryptokit.Random.html#VALstring">string</a> [<a href="Cryptokit.Random.html">Cryptokit.Random</a>]</td> <td><div class="info"> <code class="code">random_string rng len</code> returns a string of <code class="code">len</code> random bytes read from the generator <code class="code">rng</code>. </div> </td></tr> <tr><td><a href="Cryptokit.Random.html#VALsystem_rng">system_rng</a> [<a href="Cryptokit.Random.html">Cryptokit.Random</a>]</td> <td><div class="info"> <code class="code">system_rng ()</code> returns a random number generator derived from the OS-provided RNG. </div> </td></tr> <tr><td align="left"><br>T</td></tr> <tr><td><a href="Cryptokit.html#VALtransform_channel">transform_channel</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">transform_channel t ic oc</code> reads characters from input channel <code class="code">ic</code>, runs them through the transform <code class="code">t</code>, and writes the transformed data to the output channel <code class="code">oc</code>. </div> </td></tr> <tr><td><a href="Cryptokit.html#VALtransform_string">transform_string</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">transform_string t s</code> runs the string <code class="code">s</code> through the transform <code class="code">t</code> and returns the transformed string. </div> </td></tr> <tr><td><a href="Cryptokit.MAC.html#VALtriple_des">triple_des</a> [<a href="Cryptokit.MAC.html">Cryptokit.MAC</a>]</td> <td><div class="info"> <code class="code">des key</code> returns a MAC based on triple DES encryption in CBC mode. </div> </td></tr> <tr><td><a href="Cryptokit.Cipher.html#VALtriple_des">triple_des</a> [<a href="Cryptokit.Cipher.html">Cryptokit.Cipher</a>]</td> <td><div class="info"> Triple DES with two or three DES keys. </div> </td></tr> <tr><td align="left"><br>U</td></tr> <tr><td><a href="Cryptokit.Zlib.html#VALuncompress">uncompress</a> [<a href="Cryptokit.Zlib.html">Cryptokit.Zlib</a>]</td> <td><div class="info"> Return a transform that decompresses its input. </div> </td></tr> <tr><td><a href="Cryptokit.RSA.html#VALunwrap_signature">unwrap_signature</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> <code class="code">unwrap_signature k msg</code> decrypts the ciphertext string <code class="code">msg</code> with the public part of key <code class="code">k</code> (components <code class="code">n</code> and <code class="code">d</code>), thus extracting the plaintext that was signed by the sender. </div> </td></tr> <tr><td align="left"><br>W</td></tr> <tr><td><a href="Cryptokit.RSA.html#VALwipe_key">wipe_key</a> [<a href="Cryptokit.RSA.html">Cryptokit.RSA</a>]</td> <td><div class="info"> Erase all components of a RSA key. </div> </td></tr> <tr><td><a href="Cryptokit.html#VALwipe_string">wipe_string</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">wipe_string s</code> overwrites <code class="code">s</code> with zeroes. </div> </td></tr> <tr><td align="left"><br>X</td></tr> <tr><td><a href="Cryptokit.html#VALxor_string">xor_string</a> [<a href="Cryptokit.html">Cryptokit</a>]</td> <td><div class="info"> <code class="code">xor_string src spos dst dpos len</code> performs the xor (exclusive or) of characters <code class="code">spos, ..., spos + len - 1</code> of <code class="code">src</code> with characters <code class="code">dpos, ..., dpos + len - 1</code> of <code class="code">dst</code>, storing the result in <code class="code">dst</code> starting at position <code class="code">dpos</code>. </div> </td></tr> </table><br> </body> </html>