Commit 72a6d2db by xzl

修正计算sha256异常崩溃的bug

parent 49ef6c4f
...@@ -17,15 +17,15 @@ using namespace ZL::Util; ...@@ -17,15 +17,15 @@ using namespace ZL::Util;
#include <openssl/hmac.h> #include <openssl/hmac.h>
static string openssl_HMACsha256(const void *key,unsigned int key_len, static string openssl_HMACsha256(const void *key,unsigned int key_len,
const void *data,unsigned int data_len){ const void *data,unsigned int data_len){
char out[48]; std::shared_ptr<char> out(new char[32],[](char *ptr){delete [] ptr;});
unsigned int out_len; unsigned int out_len;
HMAC_CTX ctx; HMAC_CTX ctx;
HMAC_CTX_init(&ctx); HMAC_CTX_init(&ctx);
HMAC_Init_ex(&ctx, key, key_len, EVP_sha256(), NULL); HMAC_Init_ex(&ctx, key, key_len, EVP_sha256(), NULL);
HMAC_Update(&ctx, (unsigned char*)data, data_len); HMAC_Update(&ctx, (unsigned char*)data, data_len);
HMAC_Final(&ctx, (unsigned char *)out, &out_len); HMAC_Final(&ctx, (unsigned char *)out.get(), &out_len);
HMAC_CTX_cleanup(&ctx); HMAC_CTX_cleanup(&ctx);
return string(out,out_len); return string(out.get(),out_len);
} }
#endif //ENABLE_OPENSSL #endif //ENABLE_OPENSSL
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论