wpa_supplicant / hostapd
2.5
|
WPA Supplicant / wrapper functions for libgcrypt. More...
Data Structures | |
struct | crypto_cipher |
Functions | |
int | md4_vector (size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) |
MD4 hash for data vector. More... | |
void | des_encrypt (const u8 *clear, const u8 *key, u8 *cypher) |
Encrypt one block with DES. More... | |
int | md5_vector (size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) |
MD5 hash for data vector. More... | |
int | sha1_vector (size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac) |
SHA-1 hash for data vector. More... | |
void * | aes_encrypt_init (const u8 *key, size_t len) |
Initialize AES for encryption. More... | |
void | aes_encrypt (void *ctx, const u8 *plain, u8 *crypt) |
Encrypt one AES block. More... | |
void | aes_encrypt_deinit (void *ctx) |
Deinitialize AES encryption. More... | |
void * | aes_decrypt_init (const u8 *key, size_t len) |
Initialize AES for decryption. More... | |
void | aes_decrypt (void *ctx, const u8 *crypt, u8 *plain) |
Decrypt one AES block. More... | |
void | aes_decrypt_deinit (void *ctx) |
Deinitialize AES decryption. More... | |
int | crypto_mod_exp (const u8 *base, size_t base_len, const u8 *power, size_t power_len, const u8 *modulus, size_t modulus_len, u8 *result, size_t *result_len) |
Modular exponentiation of large integers. More... | |
struct crypto_cipher * | crypto_cipher_init (enum crypto_cipher_alg alg, const u8 *iv, const u8 *key, size_t key_len) |
Initialize block/stream cipher function. More... | |
int | crypto_cipher_encrypt (struct crypto_cipher *ctx, const u8 *plain, u8 *crypt, size_t len) |
Cipher encrypt. More... | |
int | crypto_cipher_decrypt (struct crypto_cipher *ctx, const u8 *crypt, u8 *plain, size_t len) |
Cipher decrypt. More... | |
void | crypto_cipher_deinit (struct crypto_cipher *ctx) |
Free cipher context. More... | |
WPA Supplicant / wrapper functions for libgcrypt.
void aes_decrypt | ( | void * | ctx, |
const u8 * | crypt, | ||
u8 * | plain | ||
) |
Decrypt one AES block.
ctx | Context pointer from aes_encrypt_init() |
crypt | Encrypted data (16 bytes) |
plain | Buffer for the decrypted data (16 bytes) |
void aes_decrypt_deinit | ( | void * | ctx | ) |
Deinitialize AES decryption.
ctx | Context pointer from aes_encrypt_init() |
void* aes_decrypt_init | ( | const u8 * | key, |
size_t | len | ||
) |
Initialize AES for decryption.
key | Decryption key |
len | Key length in bytes (usually 16, i.e., 128 bits) |
void aes_encrypt | ( | void * | ctx, |
const u8 * | plain, | ||
u8 * | crypt | ||
) |
Encrypt one AES block.
ctx | Context pointer from aes_encrypt_init() |
plain | Plaintext data to be encrypted (16 bytes) |
crypt | Buffer for the encrypted data (16 bytes) |
void aes_encrypt_deinit | ( | void * | ctx | ) |
Deinitialize AES encryption.
ctx | Context pointer from aes_encrypt_init() |
void* aes_encrypt_init | ( | const u8 * | key, |
size_t | len | ||
) |
Initialize AES for encryption.
key | Encryption key |
len | Key length in bytes (usually 16, i.e., 128 bits) |
int crypto_cipher_decrypt | ( | struct crypto_cipher * | ctx, |
const u8 * | crypt, | ||
u8 * | plain, | ||
size_t | len | ||
) |
Cipher decrypt.
ctx | Context pointer from crypto_cipher_init() |
crypt | Ciphertext to decrypt |
plain | Resulting plaintext |
len | Length of the cipher text |
This function is only used with internal TLSv1 implementation (CONFIG_TLS=internal). If that is not used, the crypto wrapper does not need to implement this.
void crypto_cipher_deinit | ( | struct crypto_cipher * | ctx | ) |
Free cipher context.
ctx | Context pointer from crypto_cipher_init() |
This function is only used with internal TLSv1 implementation (CONFIG_TLS=internal). If that is not used, the crypto wrapper does not need to implement this.
int crypto_cipher_encrypt | ( | struct crypto_cipher * | ctx, |
const u8 * | plain, | ||
u8 * | crypt, | ||
size_t | len | ||
) |
Cipher encrypt.
ctx | Context pointer from crypto_cipher_init() |
plain | Plaintext to cipher |
crypt | Resulting ciphertext |
len | Length of the plaintext |
This function is only used with internal TLSv1 implementation (CONFIG_TLS=internal). If that is not used, the crypto wrapper does not need to implement this.
struct crypto_cipher* crypto_cipher_init | ( | enum crypto_cipher_alg | alg, |
const u8 * | iv, | ||
const u8 * | key, | ||
size_t | key_len | ||
) |
Initialize block/stream cipher function.
alg | Cipher algorithm |
iv | Initialization vector for block ciphers or NULL for stream ciphers |
key | Cipher key |
key_len | Length of key in bytes |
This function is only used with internal TLSv1 implementation (CONFIG_TLS=internal). If that is not used, the crypto wrapper does not need to implement this.
int crypto_mod_exp | ( | const u8 * | base, |
size_t | base_len, | ||
const u8 * | power, | ||
size_t | power_len, | ||
const u8 * | modulus, | ||
size_t | modulus_len, | ||
u8 * | result, | ||
size_t * | result_len | ||
) |
Modular exponentiation of large integers.
base | Base integer (big endian byte array) |
base_len | Length of base integer in bytes |
power | Power integer (big endian byte array) |
power_len | Length of power integer in bytes |
modulus | Modulus integer (big endian byte array) |
modulus_len | Length of modulus integer in bytes |
result | Buffer for the result |
result_len | Result length (max buffer size on input, real len on output) |
This function calculates result = base ^ power mod modulus. modules_len is used as the maximum size of modulus buffer. It is set to the used size on success.
This function is only used with internal TLSv1 implementation (CONFIG_TLS=internal). If that is not used, the crypto wrapper does not need to implement this.
void des_encrypt | ( | const u8 * | clear, |
const u8 * | key, | ||
u8 * | cypher | ||
) |
Encrypt one block with DES.
clear | 8 octets (in) |
key | 7 octets (in) (no parity bits included) |
cypher | 8 octets (out) |
int md4_vector | ( | size_t | num_elem, |
const u8 * | addr[], | ||
const size_t * | len, | ||
u8 * | mac | ||
) |
MD4 hash for data vector.
num_elem | Number of elements in the data vector |
addr | Pointers to the data areas |
len | Lengths of the data blocks |
mac | Buffer for the hash |
int md5_vector | ( | size_t | num_elem, |
const u8 * | addr[], | ||
const size_t * | len, | ||
u8 * | mac | ||
) |
MD5 hash for data vector.
num_elem | Number of elements in the data vector |
addr | Pointers to the data areas |
len | Lengths of the data blocks |
mac | Buffer for the hash |
int sha1_vector | ( | size_t | num_elem, |
const u8 * | addr[], | ||
const size_t * | len, | ||
u8 * | mac | ||
) |
SHA-1 hash for data vector.
num_elem | Number of elements in the data vector |
addr | Pointers to the data areas |
len | Lengths of the data blocks |
mac | Buffer for the hash |