IBR-DTNSuite
0.8
|
00001 /* 00002 * HMacStream.cpp 00003 * 00004 * Created on: 22.06.2010 00005 * Author: morgenro 00006 */ 00007 00008 #include "ibrcommon/ssl/HMacStream.h" 00009 00010 namespace ibrcommon 00011 { 00012 HMacStream::HMacStream(const unsigned char * const key, const size_t key_size) 00013 : HashStream(BUFF_SIZE, EVP_MAX_MD_SIZE), key_(key), key_size_(key_size) 00014 { 00015 HMAC_CTX_init(&ctx_); 00016 HMAC_Init_ex(&ctx_, key_, key_size_, EVP_sha1(), NULL); 00017 } 00018 00019 HMacStream::~HMacStream() 00020 { 00021 HMAC_CTX_cleanup(&ctx_); 00022 } 00023 00024 void HMacStream::update(char *buf, const size_t size) 00025 { 00026 // hashing 00027 HMAC_Update(&ctx_, (unsigned char*)buf, size); 00028 } 00029 00030 void HMacStream::finalize(char * hash, unsigned int &size) 00031 { 00032 HMAC_Final(&ctx_, (unsigned char*)hash, &size); 00033 } 00034 }