libosmogsm 1.10.0.57-8972
Osmocom GSM library
|
Implementation of GPRS Ciphers GEA3 and GEA4. More...
Files | |
file | gea.h |
GEA3/GEA4 header. | |
file | gea.c |
Functions | |
int | gea3 (uint8_t *out, uint16_t len, uint8_t *kc, uint32_t iv, enum gprs_cipher_direction direction) |
Performs the GEA3 algorithm as in 3GPP TS 55.216 V6.2.0. More... | |
int | gea4 (uint8_t *out, uint16_t len, uint8_t *kc, uint32_t iv, enum gprs_cipher_direction direction) |
Performs the GEA4 algorithm as in 3GPP TS 55.226 V9.0.0. More... | |
Implementation of GPRS Ciphers GEA3 and GEA4.
int gea3 | ( | uint8_t * | out, |
uint16_t | len, | ||
uint8_t * | kc, | ||
uint32_t | iv, | ||
enum gprs_cipher_direction | direction | ||
) |
Performs the GEA3 algorithm as in 3GPP TS 55.216 V6.2.0.
[in,out] | out | Buffer for gamma for encrypted/decrypted |
[in] | len | Length of out, in bytes |
[in] | kc | Buffer with the ciphering key |
[in] | iv | Init vector |
[in] | direct | Direction: 0 (MS -> SGSN) or 1 (SGSN -> MS) |
References gea4(), GPRS_ALGO_GEA4, gprs_cipher_key_length(), len, and osmo_c4().
int gea4 | ( | uint8_t * | out, |
uint16_t | len, | ||
uint8_t * | kc, | ||
uint32_t | iv, | ||
enum gprs_cipher_direction | direction | ||
) |
Performs the GEA4 algorithm as in 3GPP TS 55.226 V9.0.0.
[in,out] | out | Buffer for gamma for encrypted/decrypted |
[in] | len | Length of out, in bytes |
[in] | kc | Buffer with the ciphering key |
[in] | iv | Init vector |
[in] | direct | Direction: 0 (MS -> SGSN) or 1 (SGSN -> MS) |
References _kasumi_kgcore(), and len.
Referenced by gea3().