You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
843 B

#ifndef _CRYPTO_H_
#define _CRYPTO_H_
#include "str.h"
/* XXX get rid of the enums and replace with struct pointers? */
enum crypto_suite {
CS_UNKNOWN = 0,
CS_AES_CM_128_HMAC_SHA1_80,
CS_AES_CM_128_HMAC_SHA1_32,
CS_F8_128_HMAC_SHA1_80,
__CS_LAST
};
enum cipher {
CIPHER_UNKNOWN = 0,
CIPHER_AES_CM,
CIPHER_AES_F8,
__CIPHER_LAST
};
enum mac {
MAC_UNKNOWN = 0,
MAC_HMAC_SHA1,
__MAC_LAST
};
struct crypto_suite_params {
const char *name;
unsigned int
master_key_len,
master_salt_len,
encryption_key,
srtp_auth_tag,
srtcp_auth_tag,
srtp_auth_key_len,
srtcp_auth_key_len;
unsigned long long int
srtp_lifetime,
srtcp_lifetime;
enum cipher cipher;
enum mac mac;
};
extern const struct crypto_suite_params crypto_suite_params[__CS_LAST];
enum crypto_suite crypto_find_suite(const str *);
#endif