# Index of values

_8000 [Cryptokit.Padding] | This padding scheme pads data with one `0x80` byte, followed by as many `0` bytes as needed to fill the block.
A
aes [Cryptokit.MAC] | `aes key` returns a MAC based on AES encryption in CBC mode.
aes [Cryptokit.Cipher] | AES is the Advanced Encryption Standard, also known as Rijndael.
arcfour [Cryptokit.Cipher] | ARCfour (``alleged RC4'') is a fast stream cipher that appears to produce equivalent results with the commercial RC4 cipher from RSA Data Security Inc.
B
blowfish [Cryptokit.Cipher] | Blowfish is a fast block cipher proposed by B.Schneier in 1994.
C
compose [Cryptokit] | Compose two transforms, feeding the output of the first transform to the input of the second transform.
compress [Cryptokit.Zlib] | Return a transform that compresses its input.
D
decode [Cryptokit.Hexa] | Return a transform that decodes its input from hexadecimal.
decode [Cryptokit.Base64] | Return a transform that performs base 64 decoding.
decrypt [Cryptokit.RSA] | `decrypt k msg` decrypts the ciphertext string `msg` with the private part of key `k` (components `n` and `d`).
decrypt_CRT [Cryptokit.RSA] | `decrypt_CRT k msg` decrypts the ciphertext string `msg` with the CRT private part of key `k` (components `n`, `p`, `q`, `dp`, `dq` and `qinv`).
derive_key [Cryptokit.DH] | `derive_key shared_secret numbytes` derives a secret string (typically, a key for symmetric encryption) from the given shared secret.
des [Cryptokit.MAC] | `des key` returns a MAC based on DES encryption in CBC mode.
des [Cryptokit.Cipher] | DES is the Data Encryption Standard.
des_final_triple_des [Cryptokit.MAC] | `des_final_triple_des key` returns a MAC that uses DES CBC with the first 8 bytes of `key` as key.
device_rng [Cryptokit.Random] | `device_rng devicename` returns a random number generator that reads from the special file `devicename`, e.g.
E
egd_rng [Cryptokit.Random] | `device_rng egd_socket` returns a random number generator that uses the Entropy Gathering Daemon (`http://egd.sourceforge.net/`).
encode [Cryptokit.Hexa] | Return a transform that encodes its input in hexadecimal.
encode_compact [Cryptokit.Base64] | Same as `Cryptokit.Base64.encode_multiline`, but the output is not split into lines, and no final padding is added.
encode_compact_pad [Cryptokit.Base64] | Same as `Cryptokit.Base64.encode_compact`, but the output is padded with `=` characters at the end (if necessary).
encode_multiline [Cryptokit.Base64] | Return a transform that performs base 64 encoding.
encrypt [Cryptokit.RSA] | `encrypt k msg` encrypts the string `msg` with the public part of key `k` (components `n` and `e`).
H
hash_channel [Cryptokit] | `hash_channel h ic` reads characters from the input channel `ic`, computes their hash value and returns it.
hash_string [Cryptokit] | `hash_string h s` runs the string `s` through the hash function `h` and returns the hash value of `s`.
hmac_md5 [Cryptokit.MAC] | `hmac_md5 key` returns a MAC based on the HMAC construction (RFC2104) applied to MD5.
hmac_ripemd160 [Cryptokit.MAC] | `hmac_ripemd160 key` returns a MAC based on the HMAC construction (RFC2104) applied to RIPEMD-160.
hmac_sha1 [Cryptokit.MAC] | `hmac_sha1 key` returns a MAC based on the HMAC construction (RFC2104) applied to SHA-1.
hmac_sha256 [Cryptokit.MAC] | `hmac_sha256 key` returns a MAC based on the HMAC construction (RFC2104) applied to SHA-256.
hmac_sha512 [Cryptokit.MAC] | `hmac_sha512 key` returns a MAC based on the HMAC construction (RFC2104) applied to SHA-512.
L
length [Cryptokit.Padding] | This padding scheme pads data with `n` copies of the character having code `n`.
M
md5 [Cryptokit.Hash] | MD5 is an older hash function, producing 128-bit hashes (16 bytes).
message [Cryptokit.DH] | Compute the message to be sent to the other party.
mod_mult [Cryptokit] | `mod_mult a b c` computes `a*b mod c`, where the strings `a`, `b`, `c` and the result string are viewed as arbitrary-precision integers in big-endian format.
mod_power [Cryptokit] | `mod_power a b c` computes `a^b mod c`, where the strings `a`, `b`, `c` and the result string are viewed as arbitrary-precision integers in big-endian format.
N
new_key [Cryptokit.RSA] | Generate a new, random RSA key.
new_parameters [Cryptokit.DH] | Generate a new set of Diffie-Hellman parameters.
P
private_secret [Cryptokit.DH] | Generate a random private secret.
pseudo_rng [Cryptokit.Random] | `pseudo_rng seed` returns a pseudo-random number generator seeded by the string `seed`.
R
ripemd160 [Cryptokit.Hash] | RIPEMD-160 produces 160-bit hashes (20 bytes).
S
secure_rng [Cryptokit.Random] | A high-quality random number generator, using hard-to-predict system data to generate entropy.
sha1 [Cryptokit.Hash] | SHA-1 is the Secure Hash Algorithm revision 1.
sha2 [Cryptokit.Hash] | SHA-2, another NIST standard for cryptographic hashing, produces hashes of 224, 256, 384, or 512 bits (24, 32, 48 or 64 bytes).
sha224 [Cryptokit.Hash] | SHA-224 is SHA-2 specialized to 224 bit hashes (24 bytes).
sha256 [Cryptokit.Hash] | SHA-256 is SHA-2 specialized to 256 bit hashes (32 bytes).
sha3 [Cryptokit.Hash] | SHA-3, the latest NIST standard for cryptographic hashing, produces hashes of 224, 256, 384 or 512 bits (24, 32, 48 or 64 bytes).
sha384 [Cryptokit.Hash] | SHA-384 is SHA-2 specialized to 384 bit hashes (48 bytes).
sha512 [Cryptokit.Hash] | SHA-512 is SHA-2 specialized to 512 bit hashes (64 bytes).
shared_secret [Cryptokit.DH] | Recover the shared secret from the private secret of the present party and the message received from the other party.
sign [Cryptokit.RSA] | `sign k msg` encrypts the plaintext string `msg` with the private part of key `k` (components `n` and `d`), thus performing a digital signature on `msg`.
sign_CRT [Cryptokit.RSA] | `sign_CRT k msg` encrypts the plaintext string `msg` with the CRT private part of key `k` (components `n`, `p`, `q`, `dp`, `dq` and `qinv`), thus performing a digital signature on `msg`.
string [Cryptokit.Random] | `random_string rng len` returns a string of `len` random bytes read from the generator `rng`.
system_rng [Cryptokit.Random] | `system_rng ()` returns a random number generator derived from the OS-provided RNG.
T
transform_channel [Cryptokit] | `transform_channel t ic oc` reads characters from input channel `ic`, runs them through the transform `t`, and writes the transformed data to the output channel `oc`.
transform_string [Cryptokit] | `transform_string t s` runs the string `s` through the transform `t` and returns the transformed string.
triple_des [Cryptokit.MAC] | `des key` returns a MAC based on triple DES encryption in CBC mode.
triple_des [Cryptokit.Cipher] | Triple DES with two or three DES keys.
U
uncompress [Cryptokit.Zlib] | Return a transform that decompresses its input.
unwrap_signature [Cryptokit.RSA] | `unwrap_signature k msg` decrypts the ciphertext string `msg` with the public part of key `k` (components `n` and `d`), thus extracting the plaintext that was signed by the sender.
W
wipe_key [Cryptokit.RSA] | Erase all components of a RSA key.
wipe_string [Cryptokit] | `wipe_string s` overwrites `s` with zeroes.
X
xor_string [Cryptokit] | `xor_string src spos dst dpos len` performs the xor (exclusive or) of characters `spos, ..., spos + len - 1` of `src` with characters `dpos, ..., dpos + len - 1` of `dst`, storing the result in `dst` starting at position `dpos`.