Skip to content

Commit

Permalink
PR feedback renames
Browse files Browse the repository at this point in the history
  • Loading branch information
waahm7 committed Aug 23, 2024
1 parent 2c45945 commit 1f3655d
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions source/unix/openssl_platform_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ static enum aws_libcrypto_version s_resolve_libcrypto_symbols(enum aws_libcrypto
return found_version;
}

static enum aws_libcrypto_version s_resolve_libcrypto_compile_version(void) {
static enum aws_libcrypto_version s_libcrypto_version_at_compile_time(void) {
#ifdef OPENSSL_IS_OPENSSL
/*
* Currently, this only checks for 1.0.2 vs 1.1. As a future optimization, we can also add a branch for OpenSSL 3.0.
Expand All @@ -513,7 +513,8 @@ static enum aws_libcrypto_version s_resolve_libcrypto_compile_version(void) {
return AWS_LIBCRYPTO_NONE;
}

static char *s_resolve_libcrypto_path_from_enum(enum aws_libcrypto_version version) {
/* Given libcrypto version, return the filename of the .so */
static char *s_libcrypto_lib_filename(enum aws_libcrypto_version version) {
switch (version) {
case AWS_LIBCRYPTO_1_0_2:
return "libcrypto.so.1.0.0";
Expand All @@ -524,48 +525,46 @@ static char *s_resolve_libcrypto_path_from_enum(enum aws_libcrypto_version versi
}
}

static enum aws_libcrypto_version s_resolve_libcrypto_lib_impl(enum aws_libcrypto_version version) {
const char *libcrypto_version = s_resolve_libcrypto_path_from_enum(version);
static bool s_libcrypto_version s_load_libcrypto_sharedlib(enum aws_libcrypto_version version) {
const char *libcrypto_version = s_libcrypto_lib_filename(version);

AWS_LOGF_DEBUG(AWS_LS_CAL_LIBCRYPTO_RESOLVE, "loading %s", libcrypto_version);
void *module = dlopen(libcrypto_version, RTLD_NOW);
if (module) {
AWS_LOGF_DEBUG(AWS_LS_CAL_LIBCRYPTO_RESOLVE, "resolving against %s", libcrypto_version);
enum aws_libcrypto_version result = s_resolve_libcrypto_symbols(version, module);
if (result == version) {
return result;
return true;
}
dlclose(module);
} else {
AWS_LOGF_DEBUG(AWS_LS_CAL_LIBCRYPTO_RESOLVE, "%s not found", libcrypto_version);
}

return AWS_LIBCRYPTO_NONE;
return false;
}

static enum aws_libcrypto_version s_resolve_libcrypto_lib(void) {
static enum aws_libcrypto_version s_resolve_libcrypto_sharedlib(void) {
/* First try to load the same version as the compiled libcrypto version */
const enum aws_libcrypto_version compiled_version = s_resolve_libcrypto_compile_version();
const enum aws_libcrypto_version compiled_version = s_libcrypto_version_at_compile_time();
if (compiled_version != AWS_LIBCRYPTO_NONE) {
enum aws_libcrypto_version result = s_resolve_libcrypto_lib_impl(compiled_version);
enum aws_libcrypto_version result = s_load_libcrypto_sharedlib(compiled_version);
if (result == compiled_version) {
return result;
}
}

/* If compiled_version is AWS_LIBCRYPTO_1_1_1, we have already tried to load it and failed. So, skip it here. */
if (compiled_version != AWS_LIBCRYPTO_1_1_1) {
enum aws_libcrypto_version result = s_resolve_libcrypto_lib_impl(AWS_LIBCRYPTO_1_1_1);
if (result == AWS_LIBCRYPTO_1_1_1) {
return result;
if (s_libcrypto_version_at_compile_time(AWS_LIBCRYPTO_1_1_1)) {
return AWS_LIBCRYPTO_1_1_1;
}
}

/* If compiled_version is AWS_LIBCRYPTO_1_0_2, we have already tried to load it and failed. So, skip it here. */
if (compiled_version != AWS_LIBCRYPTO_1_0_2) {
enum aws_libcrypto_version result = s_resolve_libcrypto_lib_impl(AWS_LIBCRYPTO_1_0_2);
if (result == AWS_LIBCRYPTO_1_0_2) {
return result;
if (s_libcrypto_version_at_compile_time(AWS_LIBCRYPTO_1_0_2)) {
return AWS_LIBCRYPTO_1_0_2;
}
}

Expand Down Expand Up @@ -671,7 +670,7 @@ static enum aws_libcrypto_version s_resolve_libcrypto(void) {
AWS_LOGF_DEBUG(
AWS_LS_CAL_LIBCRYPTO_RESOLVE,
"libcrypto symbols were not statically linked, searching for shared libraries");
result = s_resolve_libcrypto_lib();
result = s_resolve_libcrypto_sharedlib();
}

s_validate_libcrypto_linkage();
Expand Down

0 comments on commit 1f3655d

Please sign in to comment.