ltc_cipher_descriptor

cipher descriptor table, last entry has "name == NULL" to mark the end of table

extern (C) nothrow
struct ltc_cipher_descriptor {}

Members

Variables

ID
ubyte ID;

internal ID

accel_cbc_decrypt
int function(const ubyte* ct, ubyte* pt, c_ulong blocks, ubyte* IV, symmetric_key* skey) nothrow accel_cbc_decrypt;

Accelerated CBC decryption @param pt Plaintext @param ct Ciphertext @param blocks The number of complete blocks to process @param IV The initial value (input/output) @param skey The scheduled key context @return CRYPT_OK if successful

accel_cbc_encrypt
int function(const ubyte* pt, ubyte* ct, c_ulong blocks, ubyte* IV, symmetric_key* skey) nothrow accel_cbc_encrypt;

Accelerated CBC encryption @param pt Plaintext @param ct Ciphertext @param blocks The number of complete blocks to process @param IV The initial value (input/output) @param skey The scheduled key context @return CRYPT_OK if successful

accel_ccm_memory
int function(const ubyte* key, c_ulong keylen, symmetric_key* uskey, const ubyte* nonce, c_ulong noncelen, const ubyte* header, c_ulong headerlen, ubyte* pt, c_ulong ptlen, ubyte* ct, ubyte* tag, c_ulong* taglen, int direction) nothrow accel_ccm_memory;

Accelerated CCM packet (one-shot) @param key The secret key to use @param keylen The length of the secret key (octets) @param uskey A previously scheduled key [optional can be NULL] @param nonce The session nonce [use once] @param noncelen The length of the nonce @param header The header for the session @param headerlen The length of the header (octets) @param pt out The plaintext @param ptlen The length of the plaintext (octets) @param ct out The ciphertext @param tag out The destination tag @param taglen [in/out] The max size and resulting size of the authentication tag @param direction Encrypt or Decrypt direction (0 or 1) @return CRYPT_OK if successful

accel_ctr_encrypt
int function(const ubyte* pt, ubyte* ct, c_ulong blocks, ubyte* IV, int mode, symmetric_key* skey) nothrow accel_ctr_encrypt;

Accelerated CTR encryption @param pt Plaintext @param ct Ciphertext @param blocks The number of complete blocks to process @param IV The initial value (input/output) @param mode little or big endian counter (mode=0 or mode=1) @param skey The scheduled key context @return CRYPT_OK if successful

accel_ecb_decrypt
int function(const ubyte* ct, ubyte* pt, c_ulong blocks, symmetric_key* skey) nothrow accel_ecb_decrypt;

Accelerated ECB decryption @param pt Plaintext @param ct Ciphertext @param blocks The number of complete blocks to process @param skey The scheduled key context @return CRYPT_OK if successful

accel_ecb_encrypt
int function(const ubyte* pt, ubyte* ct, c_ulong blocks, symmetric_key* skey) nothrow accel_ecb_encrypt;

Accelerated ECB encryption @param pt Plaintext @param ct Ciphertext @param blocks The number of complete blocks to process @param skey The scheduled key context @return CRYPT_OK if successful

accel_gcm_memory
int function(const ubyte* key, c_ulong keylen, const ubyte* IV, c_ulong IVlen, const ubyte* adata, c_ulong adatalen, ubyte* pt, c_ulong ptlen, ubyte* ct, ubyte* tag, c_ulong* taglen, int direction) nothrow accel_gcm_memory;

Accelerated GCM packet (one shot) @param key The secret key @param keylen The length of the secret key @param IV The initial vector @param IVlen The length of the initial vector @param adata The additional authentication data (header) @param adatalen The length of the adata @param pt The plaintext @param ptlen The length of the plaintext (ciphertext length is the same) @param ct The ciphertext @param tag out The MAC tag @param taglen [in/out] The MAC tag length @param direction Encrypt or Decrypt mode (GCM_ENCRYPT or GCM_DECRYPT) @return CRYPT_OK on success

accel_lrw_decrypt
int function(const ubyte* ct, ubyte* pt, c_ulong blocks, ubyte* IV, const ubyte* tweak, symmetric_key* skey) nothrow accel_lrw_decrypt;

Accelerated LRW @param ct Ciphertext @param pt Plaintext @param blocks The number of complete blocks to process @param IV The initial value (input/output) @param tweak The LRW tweak @param skey The scheduled key context @return CRYPT_OK if successful

accel_lrw_encrypt
int function(const ubyte* pt, ubyte* ct, c_ulong blocks, ubyte* IV, const ubyte* tweak, symmetric_key* skey) nothrow accel_lrw_encrypt;

Accelerated LRW @param pt Plaintext @param ct Ciphertext @param blocks The number of complete blocks to process @param IV The initial value (input/output) @param tweak The LRW tweak @param skey The scheduled key context @return CRYPT_OK if successful

block_length
int block_length;
default_rounds
int default_rounds;

min keysize (octets)

done
void function(symmetric_key* skey) nothrow done;

Terminate the context @param skey The scheduled key

ecb_decrypt
int function(const ubyte* ct, ubyte* pt, symmetric_key* skey) nothrow ecb_decrypt;

Decrypt a block @param ct The ciphertext @param pt out The plaintext @param skey The scheduled key @return CRYPT_OK if successful

ecb_encrypt
int function(const ubyte* pt, ubyte* ct, symmetric_key* skey) nothrow ecb_encrypt;

Encrypt a block @param pt The plaintext @param ct out The ciphertext @param skey The scheduled key @return CRYPT_OK if successful

f9_memory
int function(const ubyte* key, c_ulong keylen, const ubyte* _in, c_ulong inlen, ubyte* _out, c_ulong* outlen) nothrow f9_memory;

Accelerated one shot F9 @param key The secret key @param keylen The key length (octets) @param in The message @param inlen Length of message (octets) @param out out Destination for tag @param outlen [in/out] Initial and final size of out @return CRYPT_OK on success @remark Requires manual padding

keysize
int function(int* keysize) nothrow keysize;

Determine a key size @param keysize [in/out] The size of the key desired and the suggested size @return CRYPT_OK if successful

max_key_length
int max_key_length;

min keysize (octets)

min_key_length
int min_key_length;

min keysize (octets)

name
char* name;

name of cipher

omac_memory
int function(const ubyte* key, c_ulong keylen, const ubyte* _in, c_ulong inlen, ubyte* _out, c_ulong* outlen) nothrow omac_memory;

Accelerated one shot LTC_OMAC @param key The secret key @param keylen The key length (octets) @param in The message @param inlen Length of message (octets) @param out out Destination for tag @param outlen [in/out] Initial and final size of out @return CRYPT_OK on success

setup
int function(const ubyte* key, int keylen, int num_rounds, symmetric_key* skey) nothrow setup;

Setup the cipher @param key The input symmetric key @param keylen The length of the input key (octets) @param num_rounds The requested number of rounds (0==default) @param skey out The destination of the scheduled key @return CRYPT_OK if successful

test
int function() nothrow test;

Test the block cipher @return CRYPT_OK if successful, CRYPT_NOP if self-testing has been disabled

xcbc_memory
int function(const ubyte* key, c_ulong keylen, const ubyte* _in, c_ulong inlen, ubyte* _out, c_ulong* outlen) nothrow xcbc_memory;

Accelerated one shot XCBC @param key The secret key @param keylen The key length (octets) @param in The message @param inlen Length of message (octets) @param out out Destination for tag @param outlen [in/out] Initial and final size of out @return CRYPT_OK on success

Meta