From 3a98fb2934af5f0f7c70fba7ac27a638f06ff69c Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Tue, 19 Feb 2008 17:19:44 +0000 Subject: minor changes --- cypher.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cypher.cpp b/cypher.cpp index d8998bb..7652bff 100644 --- a/cypher.cpp +++ b/cypher.cpp @@ -72,7 +72,7 @@ AesIcmCypher::AesIcmCypher() : salt_(Buffer(14)) // Q@NINE 14?????? // TODO: hardcoded keysize!!!!! err = gcry_cipher_open( &cipher_, GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CTR, 0 ); if( err ) - cLog.msg(Log::PRIO_CRIT) << "AesIcmCypher::AesIcmCypher: Failed to open cypher"; + cLog.msg(Log::PRIO_CRIT) << "AesIcmCypher::AesIcmCypher: Failed to open cipher"; } @@ -109,21 +109,26 @@ void AesIcmCypher::cypher(u_int8_t * out, u_int8_t * in, u_int32_t length, seq_ // // IV = (k_s * 2^16) XOR (SSRC * 2^64) XOR (i * 2^16) // // sizeof(k_s) = 112 bit, random - Mpi iv(128); + Mpi iv(128); // TODO: hardcoded size Mpi salt = Mpi(salt_.getBuf(), salt_.getLength()); Mpi sid = sender_id; Mpi seq = seq_nr; - iv = salt.mul2exp(16) ^ sid.mul2exp(64) ^ seq.mul2exp(16); + iv = salt.mul2exp(16) ^ sid.mul2exp(64) ^ seq.mul2exp(16); // TODO: hardcoded size - u_int8_t *iv_buf = iv.getNewBuf(16); - err = gcry_cipher_setiv( cipher_, iv_buf, 16 ); + u_int8_t *iv_buf = iv.getNewBuf(16); // TODO: hardcoded size + + // Q@NINE -> CTR Mode -> gcry_cipher_setctr() ???? + + err = gcry_cipher_setiv( cipher_, iv_buf, 16 ); // TODO: hardcoded size delete[] iv_buf; if( err ) { cLog.msg(Log::PRIO_ERR) << "AesIcmCypher: Failed to set cipher IV: " << gpg_strerror( err ); return; } + // Q@NINE -> reset clears IV ???? + err = gcry_cipher_reset( cipher_ ); if( err ) { cLog.msg(Log::PRIO_ERR) << "AesIcmCypher: Failed to reset cipher: " << gpg_strerror( err ); -- cgit v1.2.3