这是因为,这是旧版本的代码
HMAC_CTX hctx;
HMAC_CTX_init(&hctx);
HMAC_Init_ex(&hctx, mac_key, sizeof(mac_key), EVP_sha1(), NULL);
HMAC_Update(&hctx, pTemp + offset, DEFAULT_PAGESIZE - reserve - offset + IV_SIZE);
HMAC_Update(&hctx, (const unsigned char)& nPage, sizeof(nPage));
HMAC_Final(&hctx, hash_mac, &hash_len);
HMAC_CTX_cleanup(&hctx);
要改成如下新版本的代码:
HMAC_CTX hctx = HMAC_CTX_new();
HMAC_CTX_reset(hctx);
HMAC_Init_ex(hctx, mac_key, sizeof(mac_key), EVP_sha1(), NULL);
HMAC_Update(hctx, pTemp + offset, DEFAULT_PAGESIZE - reserve - offset + IV_SIZE);
HMAC_Update(hctx, (const unsigned char*)& nPage, sizeof(nPage));
HMAC_Final(hctx, hash_mac, &hash_len);
HMAC_CTX_free(hctx);