summaryrefslogtreecommitdiff
path: root/src/manager/crypto/tz-backend/internals.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/manager/crypto/tz-backend/internals.cpp')
-rw-r--r--src/manager/crypto/tz-backend/internals.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/manager/crypto/tz-backend/internals.cpp b/src/manager/crypto/tz-backend/internals.cpp
index 8aee58a8..ae67c8cd 100644
--- a/src/manager/crypto/tz-backend/internals.cpp
+++ b/src/manager/crypto/tz-backend/internals.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 - 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2017-2019 Samsung Electronics Co., Ltd. All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -40,7 +40,7 @@ namespace {
using DSAPtr = std::unique_ptr<DSA, std::function<void(DSA*)>>;
-CKM::RawBuffer extractBignumData(BIGNUM* bn)
+CKM::RawBuffer extractBignumData(const BIGNUM* bn)
{
size_t size = static_cast<size_t>(BN_num_bytes(bn));
@@ -71,9 +71,17 @@ void generateDSAParams(const int sizeBits, CKM::RawBuffer &prime,
// at this stage dsa->p, dsa->q & dsa->r should contain our params
// extract them into buffers
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
prime = extractBignumData(dsa->p);
subprime = extractBignumData(dsa->q);
base = extractBignumData(dsa->g);
+#else
+ const BIGNUM *p, *q, *g;
+ DSA_get0_pqg(dsa.get(), &p, &q, &g);
+ prime = extractBignumData(p);
+ subprime = extractBignumData(q);
+ base = extractBignumData(g);
+#endif
}
} // namespace