From 15ad08a9aa0681a380c032d3faccbe738724a922 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 20 Jun 2013 20:50:48 -0400 Subject: [PATCH] create crypto context for session keys --- kernel-module/xt_MEDIAPROXY.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/kernel-module/xt_MEDIAPROXY.c b/kernel-module/xt_MEDIAPROXY.c index c1ad96236..32aea933f 100644 --- a/kernel-module/xt_MEDIAPROXY.c +++ b/kernel-module/xt_MEDIAPROXY.c @@ -113,6 +113,7 @@ struct mp_crypto_context { unsigned char session_salt[14]; unsigned char session_auth_key[20]; u_int32_t roc; + struct crypto_cipher *tfm; }; struct mediaproxy_target { @@ -361,6 +362,11 @@ static void target_push(struct mediaproxy_target *t) { DBG("Freeing target\n"); + if (t->decrypt.tfm) + crypto_free_cipher(t->decrypt.tfm); + if (t->encrypt.tfm) + crypto_free_cipher(t->encrypt.tfm); + kfree(t); } @@ -967,6 +973,14 @@ static int gen_session_keys(struct mp_crypto_context *c, struct mediaproxy_srtp if (ret) return ret; + c->tfm = crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC); + if (IS_ERR(c->tfm)) { + ret = PTR_ERR(c->tfm); + c->tfm = NULL; + return ret; + } + crypto_cipher_setkey(c->tfm, c->session_key, 16); + DBG("master key %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x\n", s->master_key[0], s->master_key[1], s->master_key[2], s->master_key[3], s->master_key[4], s->master_key[5], s->master_key[6], s->master_key[7],