Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor low-level crypto to C++ style. #2292

Merged
merged 24 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
0e20f32
Refactor RSA crypto to use references instead of pointers.
ni4 Oct 30, 2024
efe3186
Add classes pgp::rsa::Key, pgp::rsa::Encrypted and pgp::rsa::Signatur…
ni4 Oct 30, 2024
6933d39
Use helper classes for Botan FFI objects in RSA.
ni4 Oct 31, 2024
7a558c1
Refactor DSA types and functions to be closer to C++ style.
ni4 Nov 1, 2024
7d02160
Refactor ElGamal code to be closer to C++ style.
ni4 Nov 1, 2024
915dac8
Use auto for const ec_curve_desc_t * variable where applicable.
ni4 Nov 12, 2024
31ebece
Use std::vector<uint8_t> to store curve's OID.
ni4 Nov 13, 2024
aea7fd7
Use std::vector instead of fixed buffer for ECDH other_info serializa…
ni4 Nov 13, 2024
ef4f186
EC crypto code to be closer to C++ style.
ni4 Nov 13, 2024
604095e
Remove no longer needed BN code which is superceded by botan_utils.hpp.
ni4 Nov 14, 2024
66c3fd3
Update OpenSSL wrappers
ni4 Nov 15, 2024
8c4ac1a
Use OpenSSL wrappers for DSA code.
ni4 Nov 15, 2024
78a6396
Use OpenSSL wrappers for RSA code.
ni4 Nov 15, 2024
eb4587a
Use OpenSSL wrappers for ECDSA/ECDH/EdDSA code.
ni4 Nov 26, 2024
c09dc7c
Use OpenSSL wrappers for ElGamal code.
ni4 Nov 28, 2024
6dcd535
Merge bn.h and ossl_common.h to ossl_utils.hpp, and remove unused code.
ni4 Nov 28, 2024
bd9aa80
Ignore some rsa_ossl.cpp lines in coverage report.
ni4 Nov 29, 2024
04dc2d4
Delete default copy constructors for Botan/OpenSSL wrappers.
ni4 Dec 5, 2024
cd49436
Update OpenSSL wrapeprs to use std::unique_ptr with custom deleter.
ni4 Dec 5, 2024
1db5523
Update code to use new OpenSSL wrappers.
ni4 Dec 5, 2024
29771cc
Refactor wrappers of EVP_PKEY/EVP_PKEY_CTX
ni4 Dec 5, 2024
39f4c7c
Fix OpenSSL 1.1.1 code.
ni4 Dec 5, 2024
2052e7c
Return nullptr instead of NULL for C++ return types.
ni4 Dec 5, 2024
858ad09
Change ranner from macos-12 to macos-13 due to macos-12 deprecation
maxirmx Dec 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,11 @@ jobs:
fail-fast: false
matrix:
# On MacOS gcc is alias of clang these days
os: [ macos-12, macos-13, macos-14 ]
os: [ macos-13, macos-14 ]
backend: [ 'botan' ]
shared_libs: [ 'on' ]
include:
- { os: 'macos-12', backend: '[email protected]', shared_libs: 'on' }
- { os: 'macos-13', backend: '[email protected]', shared_libs: 'on' }
- { os: 'macos-14', backend: 'openssl@3', shared_libs: 'on' }
- { os: 'macos-14', backend: 'botan', shared_libs: 'off' }
- { os: 'macos-14', backend: 'botan3', shared_libs: 'on' }
Expand Down
2 changes: 0 additions & 2 deletions src/lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,6 @@ configure_file(config.h.in config.h)

if(CRYPTO_BACKEND_OPENSSL)
set(CRYPTO_SOURCES
crypto/bn_ossl.cpp
crypto/dsa_common.cpp
crypto/dsa_ossl.cpp
crypto/ec_curves.cpp
Expand Down Expand Up @@ -272,7 +271,6 @@ if(CRYPTO_BACKEND_OPENSSL)
endif()
elseif(CRYPTO_BACKEND_BOTAN)
set(CRYPTO_SOURCES
crypto/bn.cpp
crypto/dsa_common.cpp
crypto/dsa.cpp
crypto/ec_curves.cpp
Expand Down
6 changes: 3 additions & 3 deletions src/lib/crypto/backend_version.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@
#elif defined(CRYPTO_BACKEND_OPENSSL)
#include <openssl/opensslv.h>
#include <openssl/crypto.h>
#include "ossl_common.h"
#if defined(CRYPTO_BACKEND_OPENSSL3)
#include <openssl/provider.h>
#endif
#include <string.h>
#include "config.h"
#include "ossl_utils.hpp"
#ifndef RNP_USE_STD_REGEX
#include <regex.h>
#else
Expand Down Expand Up @@ -142,15 +142,15 @@
/* Load default crypto provider */
state->def = OSSL_PROVIDER_load(NULL, "default");
if (!state->def) {
RNP_LOG("Failed to load default crypto provider: %s", ossl_latest_err());
RNP_LOG("Failed to load default crypto provider: %s", rnp::ossl::latest_err());

Check warning on line 145 in src/lib/crypto/backend_version.cpp

View check run for this annotation

Codecov / codecov/patch

src/lib/crypto/backend_version.cpp#L145

Added line #L145 was not covered by tests
free(state);
return false;
}
/* Load legacy crypto provider if needed */
#if defined(OPENSSL_LOAD_LEGACY)
state->legacy = OSSL_PROVIDER_load(NULL, "legacy");
if (!state->legacy) {
RNP_LOG("Failed to load legacy crypto provider: %s", ossl_latest_err());
RNP_LOG("Failed to load legacy crypto provider: %s", rnp::ossl::latest_err());

Check warning on line 153 in src/lib/crypto/backend_version.cpp

View check run for this annotation

Codecov / codecov/patch

src/lib/crypto/backend_version.cpp#L153

Added line #L153 was not covered by tests
OSSL_PROVIDER_unload(state->def);
free(state);
return false;
Expand Down
107 changes: 0 additions & 107 deletions src/lib/crypto/bn.cpp

This file was deleted.

142 changes: 0 additions & 142 deletions src/lib/crypto/bn.h

This file was deleted.

84 changes: 0 additions & 84 deletions src/lib/crypto/bn_ossl.cpp

This file was deleted.

Loading
Loading