Skip to content

Commit d9326dc

Browse files
authored
Merge pull request pokowaka#7 from DanFTRX/master
Update for OpenSSL 1.1.0
2 parents eb9f3b5 + caa05af commit d9326dc

File tree

3 files changed

+20
-22
lines changed

3 files changed

+20
-22
lines changed

src/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ IF(UNIX)
2020
TARGET_LINK_LIBRARIES (jwt jansson ${OPENSSL_LIBRARIES})
2121
SET_PROPERTY(TARGET jwt PROPERTY CXX_STANDARD 11)
2222
ELSEIF(MSVC)
23-
TARGET_LINK_LIBRARIES (jwt jansson libeay32 ssleay32)
23+
TARGET_LINK_LIBRARIES (jwt jansson libcrypto libssl)
2424
ENDIF(UNIX)
2525

2626
IF(UNIX AND ENABLE_GPERF_TOOLS MATCHES "ON")

src/validators/hmacvalidator.cpp

+6-8
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
HMACValidator::HMACValidator(const char *algorithm,
3030
const EVP_MD *md, const std::string &key) :
31-
md_(md), algorithm_(algorithm), key_size_(md->md_size), key_(key) {
31+
md_(md), algorithm_(algorithm), key_size_(EVP_MD_size(md)), key_(key) {
3232
}
3333

3434
HMACValidator::~HMACValidator() {
@@ -64,13 +64,11 @@ bool HMACValidator::Sign(const uint8_t *header, size_t num_header,
6464
*num_signature = key_size_;
6565
return false;
6666
}
67-
68-
HMAC_CTX ctx;
69-
HMAC_CTX_init(&ctx);
70-
HMAC_Init_ex(&ctx, key_.c_str(), key_.size(), md_, NULL);
71-
bool sign = HMAC_Update(&ctx, header, num_header) &&
72-
HMAC_Final(&ctx, signature, (unsigned int*) num_signature);
73-
HMAC_CTX_cleanup(&ctx);
67+
HMAC_CTX* ctx = HMAC_CTX_new();
68+
HMAC_Init_ex(ctx, key_.c_str(), key_.size(), md_, NULL);
69+
bool sign = HMAC_Update(ctx, header, num_header) &&
70+
HMAC_Final(ctx, signature, (unsigned int*) num_signature);
71+
HMAC_CTX_free(ctx);
7472
return sign;
7573
}
7674

src/validators/rsavalidator.cpp

+13-13
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ RSAValidator::~RSAValidator() {
4444

4545
bool RSAValidator::Verify(json_t *jsonHeader, const uint8_t *header, size_t num_header,
4646
const uint8_t *signature, size_t num_signature) {
47-
EVP_MD_CTX evp_md_ctx;
48-
EVP_MD_CTX_init(&evp_md_ctx);
49-
EVP_VerifyInit_ex(&evp_md_ctx, md_, NULL);
50-
bool valid = EVP_VerifyUpdate(&evp_md_ctx, header, num_header) == 1 &&
51-
EVP_VerifyFinal(&evp_md_ctx, signature, num_signature, public_key_) == 1;
52-
EVP_MD_CTX_cleanup(&evp_md_ctx);
47+
EVP_MD_CTX *evp_md_ctx = EVP_MD_CTX_new();
48+
EVP_MD_CTX_init(evp_md_ctx);
49+
EVP_VerifyInit_ex(evp_md_ctx, md_, NULL);
50+
bool valid = EVP_VerifyUpdate(evp_md_ctx, header, num_header) == 1 &&
51+
EVP_VerifyFinal(evp_md_ctx, signature, num_signature, public_key_) == 1;
52+
EVP_MD_CTX_free(evp_md_ctx);
5353
return valid;
5454
}
5555

@@ -58,15 +58,15 @@ bool RSAValidator::Sign(const uint8_t *header, size_t num_header,
5858
size_t needed = 0;
5959
bool success = false;
6060

61-
EVP_MD_CTX evp_md_ctx;
62-
EVP_MD_CTX_init(&evp_md_ctx);
63-
EVP_DigestSignInit(&evp_md_ctx, NULL, md_, NULL, private_key_);
64-
if (EVP_DigestSignUpdate(&evp_md_ctx, header, num_header) != 1) {
61+
EVP_MD_CTX *evp_md_ctx = EVP_MD_CTX_new();
62+
EVP_MD_CTX_init(evp_md_ctx);
63+
EVP_DigestSignInit(evp_md_ctx, NULL, md_, NULL, private_key_);
64+
if (EVP_DigestSignUpdate(evp_md_ctx, header, num_header) != 1) {
6565
goto Error;
6666
}
6767

6868
// Figure out how many bytes we need
69-
if (EVP_DigestSignFinal(&evp_md_ctx, NULL, &needed) != 1) {
69+
if (EVP_DigestSignFinal(evp_md_ctx, NULL, &needed) != 1) {
7070
goto Error;
7171
}
7272

@@ -76,9 +76,9 @@ bool RSAValidator::Sign(const uint8_t *header, size_t num_header,
7676
goto Error;
7777
}
7878

79-
success = EVP_DigestSignFinal(&evp_md_ctx, signature, num_signature) == 1;
79+
success = EVP_DigestSignFinal(evp_md_ctx, signature, num_signature) == 1;
8080
Error:
81-
EVP_MD_CTX_cleanup(&evp_md_ctx);
81+
EVP_MD_CTX_free(evp_md_ctx);
8282
return success;
8383
}
8484

0 commit comments

Comments
 (0)