libosmogsm 1.13.1.1-afb4 Osmocom GSM library

Functions
aes_wrap.h File Reference

AES-based functions. More...

Go to the source code of this file.

## Functions
int __must_check | aes_wrap (const u8 *kek, int n, const u8 *plain, u8 *cipher)
int __must_check | aes_unwrap (const u8 *kek, int n, const u8 *cipher, u8 *plain)
int __must_check | omac1_aes_128_vector (const u8 *key, size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac)
int __must_check | omac1_aes_128 (const u8 *key, const u8 *data, size_t data_len, u8 *mac)
int __must_check | aes_128_encrypt_block (const u8 *key, const u8 *in, u8 *out)
| aes_128_encrypt_block - Perform one AES 128-bit block operation @key: Key for AES @in: Input data (16 bytes) @out: Output of the AES block operation (16 bytes) Returns: 0 on success, -1 on failure More...
int __must_check | aes_128_ctr_encrypt (const u8 *key, const u8 *nonce, u8 *data, size_t data_len)
int __must_check | aes_128_eax_encrypt (const u8 *key, const u8 *nonce, size_t nonce_len, const u8 *hdr, size_t hdr_len, u8 *data, size_t data_len, u8 *tag)
int __must_check | aes_128_eax_decrypt (const u8 *key, const u8 *nonce, size_t nonce_len, const u8 *hdr, size_t hdr_len, u8 *data, size_t data_len, const u8 *tag)
int __must_check | aes_128_cbc_encrypt (const u8 *key, const u8 *iv, u8 *data, size_t data_len)
int __must_check | aes_128_cbc_decrypt (const u8 *key, const u8 *iv, u8 *data, size_t data_len)

## Detailed Description

AES-based functions.

- AES Key Wrap Algorithm (128-bit KEK) (RFC3394)
- One-Key CBC MAC (OMAC1) hash with AES-128
- AES-128 CTR mode encryption
- AES-128 EAX mode encryption/decryption
- AES-128 CBC

## Function Documentation

## ◆ aes_128_cbc_decrypt()

int __must_check aes_128_cbc_decrypt | ( | const u8 * | key,
|  | const u8 * | iv,
|  | u8 * | data,
|  | size_t | data_len
| ) |  |

## ◆ aes_128_cbc_encrypt()

int __must_check aes_128_cbc_encrypt | ( | const u8 * | key,
|  | const u8 * | iv,
|  | u8 * | data,
|  | size_t | data_len
| ) |  |

## ◆ aes_128_ctr_encrypt()

int __must_check aes_128_ctr_encrypt | ( | const u8 * | key,
|  | const u8 * | nonce,
|  | u8 * | data,
|  | size_t | data_len
| ) |  |

## ◆ aes_128_eax_decrypt()

int __must_check aes_128_eax_decrypt | ( | const u8 * | key,
|  | const u8 * | nonce,
|  | size_t | nonce_len,
|  | const u8 * | hdr,
|  | size_t | hdr_len,
|  | u8 * | data,
|  | size_t | data_len,
|  | const u8 * | tag
| ) |  |

## ◆ aes_128_eax_encrypt()

int __must_check aes_128_eax_encrypt | ( | const u8 * | key,
|  | const u8 * | nonce,
|  | size_t | nonce_len,
|  | const u8 * | hdr,
|  | size_t | hdr_len,
|  | u8 * | data,
|  | size_t | data_len,
|  | u8 * | tag
| ) |  |

## ◆ aes_128_encrypt_block()

int __must_check aes_128_encrypt_block | ( | const u8 * | key,
|  | const u8 * | in,
|  | u8 * | out
| ) |  |

aes_128_encrypt_block - Perform one AES 128-bit block operation @key: Key for AES @in: Input data (16 bytes) @out: Output of the AES block operation (16 bytes) Returns: 0 on success, -1 on failure

References aes_encrypt(), aes_encrypt_deinit(), and aes_encrypt_init().

Referenced by milenage_f1(), milenage_f2345(), and milenage_opc_gen().

## ◆ aes_unwrap()

int __must_check aes_unwrap | ( | const u8 * | kek,
|  | int | n,
|  | const u8 * | cipher,
|  | u8 * | plain
| ) |  |

## ◆ aes_wrap()

int __must_check aes_wrap | ( | const u8 * | kek,
|  | int | n,
|  | const u8 * | plain,
|  | u8 * | cipher
| ) |  |

## ◆ omac1_aes_128()

int __must_check omac1_aes_128 | ( | const u8 * | key,
|  | const u8 * | data,
|  | size_t | data_len,
|  | u8 * | mac
| ) |  |

## ◆ omac1_aes_128_vector()

int __must_check omac1_aes_128_vector | ( | const u8 * | key,
|  | size_t | num_elem,
|  | const u8 * | addr[],
|  | const size_t * | len,
|  | u8 * | mac
| ) |  |