diff options
Diffstat (limited to 'src/manager/crypto/tz-backend/internals.cpp')
-rw-r--r-- | src/manager/crypto/tz-backend/internals.cpp | 12 |
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 |