Builtin authentication plugin for DDS Security
Builtin authentication plugin of DDS Security implementation was added. This plugin is the first implementation and it also contains the functions that are used initially in the secure communication sequence. The builtin authentication plugin implements authentication using a trusted Certificate Authority (CA). It performs mutual authentication between discovered participants using the RSA or ECDSA Digital Signature Algorithms and establishes a shared secret using Diffie-Hellman (DH) or Elliptic Curve Diffie-Hellman (ECDH) Key Agreement Methods. DDS Security core component is introduced with this commit. DDSI and other builtin plugins will also use the security core. Like all builtin plugins, dds security authentication plugin is a shared library for providing dynamic library loading on runtime. So that, dds participants can use different plugin implementations with different configurations. Authentication plugin uses ddsrt functions. ddsrt is not expected to be a shared library and statically adding ddsrt objects to authentication library produces linkage errors in windows. So, dynamically linking authentication plugin to ddc library is decided. Another decision should be taken for the platforms that are not supporting dynamic libraries later. Signed-off-by: Kurtulus Oksuztepe <kurtulus.oksuztepe@adlinktech.com>
This commit is contained in:
parent
aa3b95ee7f
commit
2c1d3010d0
109 changed files with 20998 additions and 66 deletions
|
@ -281,12 +281,17 @@ function(add_cunit_executable TARGET)
|
||||||
set_property(
|
set_property(
|
||||||
TEST ${ctest}
|
TEST ${ctest}
|
||||||
PROPERTY ENVIRONMENT
|
PROPERTY ENVIRONMENT
|
||||||
"DYLD_LIBRARY_PATH=${CUNIT_LIBRARY_DIR}:$ENV{DYLD_LIBRARY_PATH}")
|
"DYLD_LIBRARY_PATH=${CUNIT_LIBRARY_DIR}:${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:$ENV{DYLD_LIBRARY_PATH}")
|
||||||
elseif(WIN32 AND ${CUNIT_LIBRARY_TYPE} STREQUAL "SHARED_LIBRARY")
|
elseif(WIN32 AND ${CUNIT_LIBRARY_TYPE} STREQUAL "SHARED_LIBRARY")
|
||||||
set_property(
|
set_property(
|
||||||
TEST ${ctest}
|
TEST ${ctest}
|
||||||
PROPERTY ENVIRONMENT
|
PROPERTY ENVIRONMENT
|
||||||
"PATH=${CUNIT_LIBRARY_DIR};$ENV{PATH}")
|
"PATH=${CUNIT_LIBRARY_DIR};$ENV{PATH}")
|
||||||
|
else()
|
||||||
|
set_property(
|
||||||
|
TEST ${ctest}
|
||||||
|
PROPERTY ENVIRONMENT
|
||||||
|
"LD_LIBRARY_PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}:$ENV{LD_LIBRARY_PATH}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ add_subdirectory(ddsrt)
|
||||||
if(BUILD_IDLC)
|
if(BUILD_IDLC)
|
||||||
add_subdirectory(idlc)
|
add_subdirectory(idlc)
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(security/api)
|
add_subdirectory(security)
|
||||||
add_subdirectory(core)
|
add_subdirectory(core)
|
||||||
add_subdirectory(tools)
|
add_subdirectory(tools)
|
||||||
if(BUILD_TESTING AND HAVE_MULTI_PROCESS AND BUILD_IDLC)
|
if(BUILD_TESTING AND HAVE_MULTI_PROCESS AND BUILD_IDLC)
|
||||||
|
|
|
@ -59,7 +59,7 @@ if(NOT ENABLE_SECURITY)
|
||||||
message(STATUS "Building without OMG DDS Security support")
|
message(STATUS "Building without OMG DDS Security support")
|
||||||
else()
|
else()
|
||||||
add_definitions(-DDDSI_INCLUDE_SECURITY)
|
add_definitions(-DDDSI_INCLUDE_SECURITY)
|
||||||
target_link_libraries(ddsc PRIVATE security_api)
|
target_link_libraries(ddsc PRIVATE security_core)
|
||||||
target_include_directories(
|
target_include_directories(
|
||||||
ddsc PUBLIC
|
ddsc PUBLIC
|
||||||
$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_api,INTERFACE_INCLUDE_DIRECTORIES>>)
|
$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_api,INTERFACE_INCLUDE_DIRECTORIES>>)
|
||||||
|
|
|
@ -59,6 +59,9 @@ typedef int64_t dds_duration_t;
|
||||||
/** @name Infinite timeout for relative time */
|
/** @name Infinite timeout for relative time */
|
||||||
#define DDS_INFINITY ((dds_duration_t) INT64_MAX)
|
#define DDS_INFINITY ((dds_duration_t) INT64_MAX)
|
||||||
|
|
||||||
|
/** @name Invalid time value for assigning to time output when something goes wrong */
|
||||||
|
#define DDS_TIME_INVALID ((dds_time_t) INT64_MIN)
|
||||||
|
|
||||||
/** @name Macro definition for time conversion to nanoseconds
|
/** @name Macro definition for time conversion to nanoseconds
|
||||||
@{**/
|
@{**/
|
||||||
#define DDS_SECS(n) ((n) * DDS_NSECS_IN_SEC)
|
#define DDS_SECS(n) ((n) * DDS_NSECS_IN_SEC)
|
||||||
|
|
|
@ -18,78 +18,78 @@
|
||||||
#include "dds/ddsrt/io.h"
|
#include "dds/ddsrt/io.h"
|
||||||
|
|
||||||
dds_return_t ddsrt_dlopen(const char *name, bool translate,
|
dds_return_t ddsrt_dlopen(const char *name, bool translate,
|
||||||
ddsrt_dynlib_t *handle) {
|
ddsrt_dynlib_t *handle) {
|
||||||
dds_return_t retcode = DDS_RETCODE_OK;
|
dds_return_t retcode = DDS_RETCODE_OK;
|
||||||
|
|
||||||
assert( handle );
|
assert( handle );
|
||||||
*handle = NULL;
|
*handle = NULL;
|
||||||
|
|
||||||
if ((translate) && (strrchr(name, '/') == NULL )) {
|
if ((translate) && (strrchr(name, '/') == NULL )) {
|
||||||
/* Add lib and suffix to the name and try to open. */
|
/* Add lib and suffix to the name and try to open. */
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
static const char suffix[] = ".dylib";
|
static const char suffix[] = ".dylib";
|
||||||
#else
|
#else
|
||||||
static const char suffix[] = ".so";
|
static const char suffix[] = ".so";
|
||||||
#endif
|
#endif
|
||||||
char* libName;
|
char* libName;
|
||||||
ddsrt_asprintf( &libName, "lib%s%s", name, suffix);
|
ddsrt_asprintf( &libName, "lib%s%s", name, suffix);
|
||||||
*handle = dlopen(libName, RTLD_GLOBAL | RTLD_NOW);
|
*handle = dlopen(libName, RTLD_GLOBAL | RTLD_NOW);
|
||||||
ddsrt_free(libName);
|
ddsrt_free(libName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*handle == NULL ) {
|
if (*handle == NULL ) {
|
||||||
/* name contains a path,
|
/* name contains a path,
|
||||||
* (auto)translate is disabled or
|
* (auto)translate is disabled or
|
||||||
* dlopen on translated name failed. */
|
* dlopen on translated name failed. */
|
||||||
*handle = dlopen(name, RTLD_GLOBAL | RTLD_NOW);
|
*handle = dlopen(name, RTLD_GLOBAL | RTLD_NOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*handle != NULL) {
|
if (*handle != NULL) {
|
||||||
retcode = DDS_RETCODE_OK;
|
retcode = DDS_RETCODE_OK;
|
||||||
} else {
|
} else {
|
||||||
retcode = DDS_RETCODE_ERROR;
|
retcode = DDS_RETCODE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
dds_return_t ddsrt_dlclose(ddsrt_dynlib_t handle) {
|
dds_return_t ddsrt_dlclose(ddsrt_dynlib_t handle) {
|
||||||
|
|
||||||
assert ( handle );
|
assert ( handle );
|
||||||
return (dlclose(handle) == 0) ? DDS_RETCODE_OK : DDS_RETCODE_ERROR;
|
return (dlclose(handle) == 0) ? DDS_RETCODE_OK : DDS_RETCODE_ERROR;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dds_return_t ddsrt_dlsym(ddsrt_dynlib_t handle, const char *symbol,
|
dds_return_t ddsrt_dlsym(ddsrt_dynlib_t handle, const char *symbol,
|
||||||
void **address) {
|
void **address) {
|
||||||
dds_return_t retcode = DDS_RETCODE_OK;
|
dds_return_t retcode = DDS_RETCODE_OK;
|
||||||
|
|
||||||
assert( handle );
|
assert( handle );
|
||||||
assert( address );
|
assert( address );
|
||||||
assert( symbol );
|
assert( symbol );
|
||||||
|
|
||||||
*address = dlsym(handle, symbol);
|
*address = dlsym(handle, symbol);
|
||||||
if (*address == NULL) {
|
if (*address == NULL) {
|
||||||
retcode = DDS_RETCODE_ERROR;
|
retcode = DDS_RETCODE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
dds_return_t ddsrt_dlerror(char *buf, size_t buflen) {
|
dds_return_t ddsrt_dlerror(char *buf, size_t buflen) {
|
||||||
|
|
||||||
const char *err;
|
const char *err;
|
||||||
dds_return_t retcode = DDS_RETCODE_OK;
|
dds_return_t retcode = DDS_RETCODE_OK;
|
||||||
|
|
||||||
assert (buf );
|
assert (buf );
|
||||||
|
|
||||||
err = dlerror();
|
err = dlerror();
|
||||||
if (err == NULL) {
|
if (err == NULL) {
|
||||||
retcode = DDS_RETCODE_NOT_FOUND;
|
retcode = DDS_RETCODE_NOT_FOUND;
|
||||||
} else {
|
} else {
|
||||||
snprintf(buf, buflen, "%s", err);
|
snprintf(buf, buflen, "%s", err);
|
||||||
}
|
}
|
||||||
|
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,8 @@ dds_return_t ddsrt_dlerror(char *buf, size_t buflen) {
|
||||||
if ( err == 0 ) {
|
if ( err == 0 ) {
|
||||||
retcode = DDS_RETCODE_NOT_FOUND;
|
retcode = DDS_RETCODE_NOT_FOUND;
|
||||||
} else {
|
} else {
|
||||||
retcode = ddsrt_strerror_r(err, buf, buflen);
|
ddsrt_strerror_r(err, buf, buflen);
|
||||||
|
SetLastError(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return retcode;
|
return retcode;
|
||||||
|
|
21
src/security/CMakeLists.txt
Normal file
21
src/security/CMakeLists.txt
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#
|
||||||
|
# Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
#
|
||||||
|
# This program and the accompanying materials are made available under the
|
||||||
|
# terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
# v. 1.0 which is available at
|
||||||
|
# http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
#
|
||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
|
||||||
|
if( ENABLE_SECURITY )
|
||||||
|
add_subdirectory(api)
|
||||||
|
add_subdirectory(core)
|
||||||
|
|
||||||
|
if ( ENABLE_SSL)
|
||||||
|
add_subdirectory(builtin_plugins)
|
||||||
|
endif()
|
||||||
|
endif()
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
# Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
#
|
#
|
||||||
# This program and the accompanying materials are made available under the
|
# This program and the accompanying materials are made available under the
|
||||||
# terms of the Eclipse Public License v. 2.0 which is available at
|
# terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
@ -15,7 +15,9 @@ add_library(security_api INTERFACE)
|
||||||
|
|
||||||
target_include_directories(
|
target_include_directories(
|
||||||
security_api INTERFACE
|
security_api INTERFACE
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>")
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
|
||||||
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include/"
|
DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include/"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
@ -47,13 +47,13 @@ extern "C" {
|
||||||
#define DDS_SECURITY_ERR_INVALID_TRUSTED_CA_DIR_MESSAGE "Can not open trusted CA directory"
|
#define DDS_SECURITY_ERR_INVALID_TRUSTED_CA_DIR_MESSAGE "Can not open trusted CA directory"
|
||||||
#define DDS_SECURITY_ERR_CA_NOT_TRUSTED_CODE 121
|
#define DDS_SECURITY_ERR_CA_NOT_TRUSTED_CODE 121
|
||||||
#define DDS_SECURITY_ERR_CA_NOT_TRUSTED_MESSAGE "Identity CA is not trusted"
|
#define DDS_SECURITY_ERR_CA_NOT_TRUSTED_MESSAGE "Identity CA is not trusted"
|
||||||
#define DDS_SECURITY_ERR_CERT_STARTDATE_INVALID_CODE 122
|
#define DDS_SECURITY_ERR_CERT_STARTDATE_IN_FUTURE_CODE 122
|
||||||
#define DDS_SECURITY_ERR_CERT_STARTDATE_INVALID_MESSAGE "Certificate start date is in the future"
|
#define DDS_SECURITY_ERR_CERT_STARTDATE_IN_FUTURE_MESSAGE "Certificate start date is in the future"
|
||||||
#define DDS_SECURITY_ERR_CERT_EXPIRED_CODE 123
|
#define DDS_SECURITY_ERR_CERT_EXPIRED_CODE 123
|
||||||
#define DDS_SECURITY_ERR_CERT_EXPIRED_MESSAGE "Certificate expired"
|
#define DDS_SECURITY_ERR_CERT_EXPIRED_MESSAGE "Certificate expired"
|
||||||
#define DDS_SECURITY_ERR_INVALID_CRYPTO_RECEIVER_SIGN_CODE 124
|
#define DDS_SECURITY_ERR_INVALID_CRYPTO_RECEIVER_SIGN_CODE 124
|
||||||
#define DDS_SECURITY_ERR_CERT_AUTHENTICATION_ALGO_KIND_UNKNOWN_CODE 125
|
#define DDS_SECURITY_ERR_CERT_AUTH_ALGO_KIND_UNKNOWN_CODE 125
|
||||||
#define DDS_SECURITY_ERR_CERT_AUTHENTICATION_ALGO_KIND_UNKNOWN_MESSAGE "Certificate authentication algorithm unknown"
|
#define DDS_SECURITY_ERR_CERT_AUTH_ALGO_KIND_UNKNOWN_MESSAGE "Certificate authentication algorithm unknown"
|
||||||
#define DDS_SECURITY_ERR_ALLOCATION_FAILED_CODE 126
|
#define DDS_SECURITY_ERR_ALLOCATION_FAILED_CODE 126
|
||||||
#define DDS_SECURITY_ERR_ALLOCATION_FAILED_MESSAGE "Failed to allocate internal structure"
|
#define DDS_SECURITY_ERR_ALLOCATION_FAILED_MESSAGE "Failed to allocate internal structure"
|
||||||
#define DDS_SECURITY_ERR_INVALID_SMIME_DOCUMENT_CODE 127
|
#define DDS_SECURITY_ERR_INVALID_SMIME_DOCUMENT_CODE 127
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
@ -20,8 +20,6 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* *
|
* *
|
||||||
* Primitive types. *
|
* Primitive types. *
|
||||||
|
|
19
src/security/builtin_plugins/CMakeLists.txt
Normal file
19
src/security/builtin_plugins/CMakeLists.txt
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#
|
||||||
|
# Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
#
|
||||||
|
# This program and the accompanying materials are made available under the
|
||||||
|
# terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
# v. 1.0 which is available at
|
||||||
|
# http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
#
|
||||||
|
cmake_minimum_required(VERSION 3.7)
|
||||||
|
|
||||||
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/authentication")
|
||||||
|
|
||||||
|
# TODO: improve test inclusion.
|
||||||
|
if((BUILD_TESTING) AND ((NOT DEFINED MSVC_VERSION) OR (MSVC_VERSION GREATER "1800")))
|
||||||
|
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/tests")
|
||||||
|
endif()
|
65
src/security/builtin_plugins/authentication/CMakeLists.txt
Normal file
65
src/security/builtin_plugins/authentication/CMakeLists.txt
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#
|
||||||
|
# Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
#
|
||||||
|
# This program and the accompanying materials are made available under the
|
||||||
|
# terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
# v. 1.0 which is available at
|
||||||
|
# http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
#
|
||||||
|
include (GenerateExportHeader)
|
||||||
|
|
||||||
|
PREPEND(srcs_authentication "${CMAKE_CURRENT_LIST_DIR}/src"
|
||||||
|
authentication.c
|
||||||
|
auth_utils.c
|
||||||
|
)
|
||||||
|
|
||||||
|
PREPEND(hdrs_private_authentication "${CMAKE_CURRENT_LIST_DIR}/src"
|
||||||
|
auth_defs.h
|
||||||
|
authentication.h
|
||||||
|
auth_utils.h
|
||||||
|
dds_security_core_if.h
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(dds_security_auth SHARED "")
|
||||||
|
|
||||||
|
generate_export_header(
|
||||||
|
dds_security_auth
|
||||||
|
BASE_NAME SECURITY
|
||||||
|
EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/include/dds/security/export.h"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
find_package(OpenSSL )
|
||||||
|
|
||||||
|
add_definitions(-DDDSI_INCLUDE_SSL)
|
||||||
|
|
||||||
|
target_link_libraries(dds_security_auth PUBLIC ddsc)
|
||||||
|
target_link_libraries(dds_security_auth PUBLIC OpenSSL::SSL)
|
||||||
|
|
||||||
|
target_sources(dds_security_auth
|
||||||
|
PRIVATE
|
||||||
|
${srcs_authentication}
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(dds_security_auth
|
||||||
|
PUBLIC
|
||||||
|
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_api,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||||
|
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_core,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||||
|
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:ddsrt,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS
|
||||||
|
EXPORT "${CMAKE_PROJECT_NAME}"
|
||||||
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT lib
|
||||||
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib
|
||||||
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib
|
||||||
|
)
|
||||||
|
|
||||||
|
|
1379
src/security/builtin_plugins/authentication/src/auth_utils.c
Normal file
1379
src/security/builtin_plugins/authentication/src/auth_utils.c
Normal file
File diff suppressed because it is too large
Load diff
238
src/security/builtin_plugins/authentication/src/auth_utils.h
Normal file
238
src/security/builtin_plugins/authentication/src/auth_utils.h
Normal file
|
@ -0,0 +1,238 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef AUTH_UTILS_H
|
||||||
|
#define AUTH_UTILS_H
|
||||||
|
|
||||||
|
#include "dds/security/dds_security_api.h"
|
||||||
|
#include "dds/ddsrt/time.h"
|
||||||
|
|
||||||
|
#define DDS_AUTH_PLUGIN_CONTEXT "Authentication"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
AUTH_ALGO_KIND_UNKNOWN,
|
||||||
|
AUTH_ALGO_KIND_RSA_2048,
|
||||||
|
AUTH_ALGO_KIND_EC_PRIME256V1
|
||||||
|
} AuthenticationAlgoKind_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
AUTH_CONF_ITEM_PREFIX_UNKNOWN,
|
||||||
|
AUTH_CONF_ITEM_PREFIX_FILE,
|
||||||
|
AUTH_CONF_ITEM_PREFIX_DATA,
|
||||||
|
AUTH_CONF_ITEM_PREFIX_PKCS11
|
||||||
|
} AuthConfItemPrefix_t;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct AuthenticationChallenge {
|
||||||
|
unsigned char value[DDS_SECURITY_AUTHENTICATION_CHALLENGE_SIZE];
|
||||||
|
} AuthenticationChallenge;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint32_t length;
|
||||||
|
X509 **buffer;
|
||||||
|
} X509Seq;
|
||||||
|
|
||||||
|
typedef unsigned char HashValue_t[SHA256_DIGEST_LENGTH];
|
||||||
|
/*typedef struct HashValue {
|
||||||
|
unsigned char value[SHA256_DIGEST_LENGTH];
|
||||||
|
} HashValue_t;
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Return a string that contains an openssl error description
|
||||||
|
* When a openssl function returns an error this function can be
|
||||||
|
* used to retrieve a descriptive error string.
|
||||||
|
* Note that the returned string should be freed.
|
||||||
|
*/
|
||||||
|
char *
|
||||||
|
get_openssl_error_message(
|
||||||
|
void);
|
||||||
|
|
||||||
|
/* Return the subject name of contained in a X509 certificate
|
||||||
|
* Note that the returned string should be freed.
|
||||||
|
*/
|
||||||
|
char*
|
||||||
|
get_certificate_subject_name(
|
||||||
|
const X509 *cert,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
/* Return the expiry date of contained in a X509 certificate
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
dds_time_t
|
||||||
|
get_certificate_expiry(
|
||||||
|
const X509 *cert);
|
||||||
|
|
||||||
|
/* Return the subject name of a X509 certificate DER
|
||||||
|
* encoded. The DER encoded subject name is returned in
|
||||||
|
* the provided buffer. The length of the allocated
|
||||||
|
* buffer is returned
|
||||||
|
*
|
||||||
|
* return length of allocated buffer or -1 on error
|
||||||
|
*/
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
get_subject_name_DER_encoded(
|
||||||
|
const X509 *cert,
|
||||||
|
unsigned char **buffer,
|
||||||
|
size_t *size,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
|
||||||
|
/* Load a X509 certificate for the provided data.
|
||||||
|
*
|
||||||
|
* data : certificate in PEM format
|
||||||
|
* x509Cert : the openssl X509 return value
|
||||||
|
*/
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
load_X509_certificate_from_data(
|
||||||
|
const char *data,
|
||||||
|
int len,
|
||||||
|
X509 **x509Cert,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
|
||||||
|
/* Load a X509 certificate for the provided data.
|
||||||
|
*
|
||||||
|
* data : URI of the certificate. URI format is defined in DDS Security spec 9.3.1
|
||||||
|
|
||||||
|
* x509Cert : the openssl X509 return value
|
||||||
|
*/
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
load_X509_certificate(
|
||||||
|
const char *data,
|
||||||
|
X509 **x509Cert,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
|
||||||
|
/* Load a X509 certificate for the provided file.
|
||||||
|
*
|
||||||
|
* filename : path of the file that contains PEM formatted certificate
|
||||||
|
* x509Cert : the openssl X509 return value
|
||||||
|
*/
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
load_X509_certificate_from_file(
|
||||||
|
const char *filename,
|
||||||
|
X509 **x509Cert,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
/* Load a Private Key for the provided data.
|
||||||
|
*
|
||||||
|
* data : URI of the private key. URI format is defined in DDS Security spec 9.3.1
|
||||||
|
* privateKey : the openssl EVP_PKEY return value
|
||||||
|
*/
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
load_X509_private_key(
|
||||||
|
const char *data,
|
||||||
|
const char *password,
|
||||||
|
EVP_PKEY **privateKey,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
|
||||||
|
/* Validate an identity certificate against the identityCA
|
||||||
|
* The provided identity certificate is checked if it is
|
||||||
|
* signed by the identity corresponding to the identityCA.
|
||||||
|
*
|
||||||
|
* Note: Currently only a self signed CA is supported
|
||||||
|
* The function does not yet check a CLR or ocsp
|
||||||
|
* for expiry of identity certificate.
|
||||||
|
*/
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
verify_certificate(
|
||||||
|
X509 *identityCert,
|
||||||
|
X509 *identityCa,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
check_certificate_expiry(
|
||||||
|
const X509 *cert,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
AuthenticationAlgoKind_t
|
||||||
|
get_auhentication_algo_kind(
|
||||||
|
X509 *cert);
|
||||||
|
|
||||||
|
AuthenticationChallenge *
|
||||||
|
generate_challenge(
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
get_certificate_contents(
|
||||||
|
X509 *cert,
|
||||||
|
unsigned char **data,
|
||||||
|
uint32_t *size,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
generate_dh_keys(
|
||||||
|
EVP_PKEY **dhkey,
|
||||||
|
AuthenticationAlgoKind_t authKind,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
dh_public_key_to_oct(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
AuthenticationAlgoKind_t algo,
|
||||||
|
unsigned char **buffer,
|
||||||
|
uint32_t *length,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
dh_oct_to_public_key(
|
||||||
|
EVP_PKEY **data,
|
||||||
|
AuthenticationAlgoKind_t algo,
|
||||||
|
const unsigned char *str,
|
||||||
|
uint32_t size,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
|
||||||
|
AuthConfItemPrefix_t
|
||||||
|
get_conf_item_type(
|
||||||
|
const char *str,
|
||||||
|
char **data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Frees the contents of theCA list.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
free_ca_list_contents(
|
||||||
|
X509Seq *ca_list);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
get_trusted_ca_list (
|
||||||
|
const char* trusted_ca_dir,
|
||||||
|
X509Seq *ca_list,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
char *
|
||||||
|
string_from_data(
|
||||||
|
const unsigned char *data,
|
||||||
|
uint32_t size);
|
||||||
|
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
create_asymmetrical_signature(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
const unsigned char *data,
|
||||||
|
const size_t dataLen,
|
||||||
|
unsigned char **signature,
|
||||||
|
size_t *signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
validate_asymmetrical_signature(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
const unsigned char *data,
|
||||||
|
const size_t dataLen,
|
||||||
|
const unsigned char *signature,
|
||||||
|
const size_t signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
#endif /* AUTH_UTILS_H */
|
3513
src/security/builtin_plugins/authentication/src/authentication.c
Normal file
3513
src/security/builtin_plugins/authentication/src/authentication.c
Normal file
File diff suppressed because it is too large
Load diff
146
src/security/builtin_plugins/authentication/src/authentication.h
Normal file
146
src/security/builtin_plugins/authentication/src/authentication.h
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef SECURITY_BUILTIN_PLUGINS_AUTHENTICATION_H_
|
||||||
|
#define SECURITY_BUILTIN_PLUGINS_AUTHENTICATION_H_
|
||||||
|
|
||||||
|
#include "dds/ddsrt/atomics.h"
|
||||||
|
#include "dds/security/dds_security_api.h"
|
||||||
|
#include "dds/security/export.h"
|
||||||
|
|
||||||
|
SECURITY_EXPORT int32_t
|
||||||
|
init_authentication(const char *argument, void **context);
|
||||||
|
|
||||||
|
SECURITY_EXPORT int32_t
|
||||||
|
finalize_authentication(void *context);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
validate_local_identity(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
DDS_Security_IdentityHandle *local_identity_handle,
|
||||||
|
DDS_Security_GUID_t *adjusted_participant_guid,
|
||||||
|
const DDS_Security_DomainId domain_id,
|
||||||
|
const DDS_Security_Qos *participant_qos,
|
||||||
|
const DDS_Security_GUID_t *candidate_participant_guid,
|
||||||
|
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
DDS_Security_boolean
|
||||||
|
get_identity_token(dds_security_authentication *instance,
|
||||||
|
DDS_Security_IdentityToken *identity_token,
|
||||||
|
const DDS_Security_IdentityHandle handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
DDS_Security_boolean
|
||||||
|
set_permissions_credential_and_token(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
const DDS_Security_IdentityHandle handle,
|
||||||
|
const DDS_Security_PermissionsCredentialToken *permissions_credential,
|
||||||
|
const DDS_Security_PermissionsToken *permissions_token,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
validate_remote_identity(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
DDS_Security_IdentityHandle *remote_identity_handle,
|
||||||
|
DDS_Security_AuthRequestMessageToken *local_auth_request_token,
|
||||||
|
const DDS_Security_AuthRequestMessageToken *remote_auth_request_token,
|
||||||
|
const DDS_Security_IdentityHandle local_identity_handle,
|
||||||
|
const DDS_Security_IdentityToken *remote_identity_token,
|
||||||
|
const DDS_Security_GUID_t *remote_participant_guid,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
begin_handshake_request(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
DDS_Security_HandshakeHandle *handshake_handle,
|
||||||
|
DDS_Security_HandshakeMessageToken *handshake_message,
|
||||||
|
const DDS_Security_IdentityHandle initiator_identity_handle,
|
||||||
|
const DDS_Security_IdentityHandle replier_identity_handle,
|
||||||
|
const DDS_Security_OctetSeq *serialized_local_participant_data,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
begin_handshake_reply(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
DDS_Security_HandshakeHandle *handshake_handle,
|
||||||
|
DDS_Security_HandshakeMessageToken *handshake_message_out,
|
||||||
|
const DDS_Security_HandshakeMessageToken *handshake_message_in,
|
||||||
|
const DDS_Security_IdentityHandle initiator_identity_handle,
|
||||||
|
const DDS_Security_IdentityHandle replier_identity_handle,
|
||||||
|
const DDS_Security_OctetSeq *serialized_local_participant_data,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
process_handshake(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
DDS_Security_HandshakeMessageToken *handshake_message_out,
|
||||||
|
const DDS_Security_HandshakeMessageToken *handshake_message_in,
|
||||||
|
const DDS_Security_HandshakeHandle handshake_handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_SharedSecretHandle get_shared_secret(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
const DDS_Security_HandshakeHandle handshake_handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_boolean
|
||||||
|
get_authenticated_peer_credential_token(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
DDS_Security_AuthenticatedPeerCredentialToken *peer_credential_token,
|
||||||
|
const DDS_Security_HandshakeHandle handshake_handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
|
||||||
|
DDS_Security_boolean get_identity_status_token(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
DDS_Security_IdentityStatusToken *identity_status_token,
|
||||||
|
const DDS_Security_IdentityHandle handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_boolean set_listener(dds_security_authentication *instance,
|
||||||
|
const dds_security_authentication_listener *listener,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_boolean return_identity_token(dds_security_authentication *instance,
|
||||||
|
const DDS_Security_IdentityToken *token,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_boolean return_identity_status_token(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
const DDS_Security_IdentityStatusToken *token,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_boolean return_authenticated_peer_credential_token(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
const DDS_Security_AuthenticatedPeerCredentialToken *peer_credential_token,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_boolean
|
||||||
|
return_handshake_handle(dds_security_authentication *instance,
|
||||||
|
const DDS_Security_HandshakeHandle handshake_handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
DDS_Security_boolean
|
||||||
|
return_identity_handle(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
const DDS_Security_IdentityHandle identity_handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_boolean return_sharedsecret_handle(
|
||||||
|
dds_security_authentication *instance,
|
||||||
|
const DDS_Security_SharedSecretHandle sharedsecret_handle,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* SECURITY_BUILTIN_PLUGINS_AUTHENTICATION_H_ */
|
51
src/security/builtin_plugins/tests/CMakeLists.txt
Normal file
51
src/security/builtin_plugins/tests/CMakeLists.txt
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#
|
||||||
|
# Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
#
|
||||||
|
# This program and the accompanying materials are made available under the
|
||||||
|
# terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
# v. 1.0 which is available at
|
||||||
|
# http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
#
|
||||||
|
include(CUnit)
|
||||||
|
|
||||||
|
set(security_auth_test_sources
|
||||||
|
"validate_begin_handshake_reply/src/validate_begin_handshake_reply_utests.c"
|
||||||
|
"get_authenticated_peer_credential_token/src/get_authenticated_peer_credential_token_utests.c"
|
||||||
|
"validate_local_identity/src/validate_local_identity_utests.c"
|
||||||
|
"validate_remote_identity/src/validate_remote_identity_utests.c"
|
||||||
|
"validate_begin_handshake_request/src/validate_begin_handshake_request_utests.c"
|
||||||
|
"process_handshake/src/process_handshake_utests.c"
|
||||||
|
"common/src/handshake_helper.c"
|
||||||
|
"common/src/loader.c")
|
||||||
|
|
||||||
|
add_cunit_executable(cunit_security_plugins ${security_auth_test_sources})
|
||||||
|
target_include_directories(
|
||||||
|
cunit_security_plugins PRIVATE
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src/include/>"
|
||||||
|
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_api,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||||
|
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:security_core,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||||
|
"$<BUILD_INTERFACE:$<TARGET_PROPERTY:ddsrt,INTERFACE_INCLUDE_DIRECTORIES>>"
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
|
||||||
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
target_link_libraries(cunit_security_plugins PRIVATE ddsc security_api)
|
||||||
|
|
||||||
|
|
||||||
|
find_package(OpenSSL )
|
||||||
|
if(OPENSSL_FOUND)
|
||||||
|
target_link_libraries(cunit_security_plugins PRIVATE OpenSSL::SSL)
|
||||||
|
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "To build without openssl support, set DDSC_ENABLE_OPENSSL to OFF")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CUnit_builtin_plugins_tests_dir "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
|
||||||
|
configure_file("config_env.h.in" "config_env.h")
|
||||||
|
|
||||||
|
|
579
src/security/builtin_plugins/tests/common/src/handshake_helper.c
Normal file
579
src/security/builtin_plugins/tests/common/src/handshake_helper.c
Normal file
|
@ -0,0 +1,579 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#include "handshake_helper.h"
|
||||||
|
#include "dds/security/core/dds_security_serialize.h"
|
||||||
|
#include "dds/ddsrt/string.h"
|
||||||
|
#include "dds/ddsrt/heap.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "dds/ddsrt/environ.h"
|
||||||
|
#include "CUnit/CUnit.h"
|
||||||
|
#include "CUnit/Test.h"
|
||||||
|
#include "assert.h"
|
||||||
|
#include "dds/ddsrt/misc.h"
|
||||||
|
#include "dds/security/core/shared_secret.h"
|
||||||
|
|
||||||
|
#if OPENSSL_VERSION_NUMBER >= 0x1000200fL
|
||||||
|
#define AUTH_INCLUDE_EC
|
||||||
|
#include <openssl/ec.h>
|
||||||
|
#include <dds/security/core/dds_security_utils.h>
|
||||||
|
|
||||||
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
||||||
|
#define AUTH_INCLUDE_DH_ACCESSORS
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#error "version not found"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
const BIGNUM *
|
||||||
|
dh_get_public_key(
|
||||||
|
DH *dhkey)
|
||||||
|
{
|
||||||
|
#ifdef AUTH_INCLUDE_DH_ACCESSORS
|
||||||
|
const BIGNUM *pubkey, *privkey;
|
||||||
|
DH_get0_key(dhkey, &pubkey, &privkey);
|
||||||
|
return pubkey;
|
||||||
|
#else
|
||||||
|
return dhkey->pub_key;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
dh_set_public_key(
|
||||||
|
DH *dhkey,
|
||||||
|
BIGNUM *pubkey)
|
||||||
|
{
|
||||||
|
#ifdef AUTH_INCLUDE_DH_ACCESSORS
|
||||||
|
return DH_set0_key(dhkey, pubkey, NULL);
|
||||||
|
#else
|
||||||
|
dhkey->pub_key = pubkey;
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* for DEBUG purposes */
|
||||||
|
void print_binary_test( char* name, unsigned char *value, uint32_t size){
|
||||||
|
uint32_t i;
|
||||||
|
printf("%s: ",name );
|
||||||
|
for( i=0; i< size; i++)
|
||||||
|
{
|
||||||
|
printf("%x",value[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
DDS_Security_BinaryProperty_t *
|
||||||
|
print_binary_properties_test(
|
||||||
|
DDS_Security_DataHolder *token)
|
||||||
|
{
|
||||||
|
DDS_Security_BinaryProperty_t *result = NULL;
|
||||||
|
uint32_t i;
|
||||||
|
for (i = 0; i < token->binary_properties._length && !result; i++) {
|
||||||
|
print_binary_test( token->binary_properties._buffer[i].name, token->binary_properties._buffer[i].value._buffer, token->binary_properties._buffer[i].value._length);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
create_signature_for_test(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
const DDS_Security_BinaryProperty_t **binary_properties,
|
||||||
|
const uint32_t binary_properties_length,
|
||||||
|
unsigned char **signature,
|
||||||
|
size_t *signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result;
|
||||||
|
DDS_Security_Serializer serializer;
|
||||||
|
unsigned char *buffer;
|
||||||
|
size_t size;
|
||||||
|
|
||||||
|
serializer = DDS_Security_Serializer_new(4096, 4096);
|
||||||
|
|
||||||
|
DDS_Security_Serialize_BinaryPropertyArray(serializer,binary_properties, binary_properties_length);
|
||||||
|
DDS_Security_Serializer_buffer(serializer, &buffer, &size);
|
||||||
|
|
||||||
|
result = create_asymmetrical_signature_for_test(pkey, buffer, size, signature, signatureLen, ex);
|
||||||
|
|
||||||
|
ddsrt_free(buffer);
|
||||||
|
DDS_Security_Serializer_free(serializer);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if( AC_TESTS_IMPLEMENTED )
|
||||||
|
static DDS_Security_ValidationResult_t
|
||||||
|
screate_asymmetrical_signature_for_test(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
void *data,
|
||||||
|
size_t dataLen,
|
||||||
|
unsigned char **signature,
|
||||||
|
size_t *signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result = DDS_SECURITY_VALIDATION_OK;
|
||||||
|
EVP_MD_CTX *mdctx = NULL;
|
||||||
|
EVP_PKEY_CTX *kctx = NULL;
|
||||||
|
|
||||||
|
if (!(mdctx = EVP_MD_CTX_create())) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, result, "Failed to create signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_create_ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestSignInit(mdctx, &kctx, EVP_sha256(), NULL, pkey) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, result, "Failed to initialize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_PKEY_CTX_set_rsa_padding(kctx, RSA_PKCS1_PSS_PADDING) < 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, result, "Failed to initialize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestSignUpdate(mdctx, data, dataLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, result, "Failed to update signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestSignFinal(mdctx, NULL, signatureLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, result, "Failed to finalize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*signature = ddsrt_malloc(sizeof(unsigned char) * (*signatureLen));
|
||||||
|
*signature = OPENSSL_malloc(*signatureLen);
|
||||||
|
if (EVP_DigestSignFinal(mdctx, *signature, signatureLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, result, "Failed to finalize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
ddsrt_free(signature);
|
||||||
|
}
|
||||||
|
|
||||||
|
err_sign:
|
||||||
|
EVP_MD_CTX_destroy(mdctx);
|
||||||
|
err_create_ctx:
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
char *
|
||||||
|
get_openssl_error_message_for_test(
|
||||||
|
void)
|
||||||
|
{
|
||||||
|
BIO *bio = BIO_new(BIO_s_mem());
|
||||||
|
char *msg;
|
||||||
|
char *buf = NULL;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
if (bio) {
|
||||||
|
ERR_print_errors(bio);
|
||||||
|
len = (size_t)BIO_get_mem_data (bio, &buf);
|
||||||
|
msg = ddsrt_malloc(len + 1);
|
||||||
|
memset(msg, 0, len+1);
|
||||||
|
memcpy(msg, buf, len);
|
||||||
|
BIO_free(bio);
|
||||||
|
} else {
|
||||||
|
msg = ddsrt_strdup("BIO_new failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
validate_asymmetrical_signature_for_test(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
void *data,
|
||||||
|
size_t dataLen,
|
||||||
|
unsigned char *signature,
|
||||||
|
size_t signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result = DDS_SECURITY_VALIDATION_OK;
|
||||||
|
EVP_MD_CTX *mdctx = NULL;
|
||||||
|
|
||||||
|
if (!(mdctx = EVP_MD_CTX_create())) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to create verify context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_create_ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestVerifyInit(mdctx, NULL, EVP_sha256(), NULL, pkey) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to initialize verify context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_verify;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestVerifyUpdate(mdctx, data, dataLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to update verify context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_verify;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestVerifyFinal(mdctx, signature, signatureLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to finalize verify context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_verify;
|
||||||
|
}
|
||||||
|
|
||||||
|
err_verify:
|
||||||
|
EVP_MD_CTX_destroy(mdctx);
|
||||||
|
err_create_ctx:
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
get_public_key(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
unsigned char **buffer,
|
||||||
|
size_t *length,
|
||||||
|
DDS_Security_SecurityException *ex)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result = DDS_SECURITY_VALIDATION_OK;
|
||||||
|
BIO *bio = NULL;
|
||||||
|
char *ptr = NULL;
|
||||||
|
size_t sz;
|
||||||
|
|
||||||
|
assert(pkey);
|
||||||
|
assert(buffer);
|
||||||
|
|
||||||
|
*length = 0;
|
||||||
|
|
||||||
|
bio = BIO_new(BIO_s_mem());
|
||||||
|
|
||||||
|
if ( bio == NULL) {
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to get public key: BIO_new_mem_buf failed");
|
||||||
|
} else if (!PEM_write_bio_PUBKEY(bio, pkey)) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to get public key: PEM_write_bio_PUBKEY failed: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else {
|
||||||
|
sz = (size_t)BIO_get_mem_data(bio, &ptr);
|
||||||
|
*buffer = ddsrt_malloc(sz +1);
|
||||||
|
memcpy(*buffer, ptr, sz);
|
||||||
|
*length = sz;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bio) BIO_free(bio);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
static EVP_PKEY *
|
||||||
|
modp_data_to_pubkey(
|
||||||
|
const unsigned char *data,
|
||||||
|
uint32_t size)
|
||||||
|
{
|
||||||
|
EVP_PKEY *pkey= NULL;
|
||||||
|
DH *dhkey = NULL;
|
||||||
|
ASN1_INTEGER *asni;
|
||||||
|
BIGNUM *bn = NULL;
|
||||||
|
|
||||||
|
if (!(asni = d2i_ASN1_INTEGER(NULL, &data, size))) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to decode DH public key: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto fail_asni;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(bn = ASN1_INTEGER_to_BN(asni, NULL))) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to convert to BIGNU<: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto fail_bn;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(dhkey = DH_get_2048_256())) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to allocate dhkey: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto fail_dhkey;
|
||||||
|
}
|
||||||
|
|
||||||
|
dh_set_public_key(dhkey,bn);
|
||||||
|
|
||||||
|
if (!(pkey = EVP_PKEY_new())) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to allocate pkey: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto fail_pkey;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!EVP_PKEY_set1_DH(pkey, dhkey)) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to set public key: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
EVP_PKEY_free(pkey);
|
||||||
|
pkey = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ASN1_INTEGER_free(asni);
|
||||||
|
DH_free(dhkey);
|
||||||
|
|
||||||
|
return pkey;
|
||||||
|
|
||||||
|
fail_pkey:
|
||||||
|
DH_free(dhkey);
|
||||||
|
fail_dhkey:
|
||||||
|
BN_free(bn);
|
||||||
|
fail_bn:
|
||||||
|
ASN1_INTEGER_free(asni);
|
||||||
|
fail_asni:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static EVP_PKEY *
|
||||||
|
ecdh_data_to_pubkey(
|
||||||
|
const unsigned char *data,
|
||||||
|
uint32_t size)
|
||||||
|
{
|
||||||
|
EVP_PKEY *pkey = NULL;
|
||||||
|
EC_KEY *eckey = NULL;
|
||||||
|
EC_GROUP *group = NULL;
|
||||||
|
EC_POINT *point = NULL;
|
||||||
|
|
||||||
|
if (!(group = EC_GROUP_new_by_curve_name(NID_X9_62_prime256v1))) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to allocate EC group: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else if (!(point = EC_POINT_new(group))) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to allocate EC point: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else if (EC_POINT_oct2point(group, point, data, size, NULL) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to deserialize EC public key to EC point: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else if (!(eckey = EC_KEY_new())) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to allocate EC KEY: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else if (EC_KEY_set_group(eckey, group) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to convert octet sequence to ASN1 integer: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else if (EC_KEY_set_public_key(eckey, point) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to set EC public key: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else if (!(pkey = EVP_PKEY_new())) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to allocate EVP key: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
} else if (EVP_PKEY_set1_EC_KEY(pkey, eckey) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("Failed to set EVP key to EC public key: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
EVP_PKEY_free(pkey);
|
||||||
|
pkey = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eckey) EC_KEY_free(eckey);
|
||||||
|
if (point) EC_POINT_free(point);
|
||||||
|
if (group) EC_GROUP_free(group);
|
||||||
|
|
||||||
|
return pkey;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
check_shared_secret(
|
||||||
|
dds_security_authentication *auth,
|
||||||
|
int use_ecdh,
|
||||||
|
const DDS_Security_BinaryProperty_t *dh_remote,
|
||||||
|
EVP_PKEY *dh_local_private,
|
||||||
|
|
||||||
|
DDS_Security_HandshakeHandle handshake_handle)
|
||||||
|
|
||||||
|
{
|
||||||
|
/* calculate shared secret with the other side */
|
||||||
|
EVP_PKEY_CTX *ctx = NULL;
|
||||||
|
size_t skeylen;
|
||||||
|
EVP_PKEY *dh_remote_public = NULL;
|
||||||
|
DDS_Security_SharedSecretHandle shared_secret_local_handle;
|
||||||
|
DDS_Security_SecurityException exception;
|
||||||
|
DDS_Security_octet *shared_secret_local;
|
||||||
|
DDS_Security_octet shared_secret_remote[SHA256_DIGEST_LENGTH];
|
||||||
|
DDS_Security_octet *secret;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
if (use_ecdh) {
|
||||||
|
dh_remote_public = ecdh_data_to_pubkey(dh_remote->value._buffer, dh_remote->value._length);
|
||||||
|
} else {
|
||||||
|
dh_remote_public = modp_data_to_pubkey(dh_remote->value._buffer, dh_remote->value._length);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!dh_remote_public) {
|
||||||
|
CU_FAIL("Coud not decode DH public key");
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx = EVP_PKEY_CTX_new(dh_local_private, NULL /* no engine */);
|
||||||
|
if (!ctx)
|
||||||
|
{
|
||||||
|
/* Error occurred */
|
||||||
|
CU_FAIL("Coud not allocate CTX");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_PKEY_derive_init(ctx) <= 0)
|
||||||
|
{
|
||||||
|
/* Error */
|
||||||
|
CU_FAIL("Coud not init");
|
||||||
|
}
|
||||||
|
result = EVP_PKEY_derive_set_peer(ctx, dh_remote_public) ;
|
||||||
|
if (result<= 0)
|
||||||
|
{
|
||||||
|
/* Error */
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
printf("DH remote public: %s\n",dh_remote->value._buffer);
|
||||||
|
printf("SSL Error: %s\n", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
CU_FAIL("Could not set peer");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Determine buffer length */
|
||||||
|
result = EVP_PKEY_derive(ctx, NULL, &skeylen);
|
||||||
|
if (result <= 0)
|
||||||
|
{
|
||||||
|
/* Error */
|
||||||
|
CU_FAIL("Could not set derive");
|
||||||
|
}
|
||||||
|
|
||||||
|
secret = ddsrt_malloc(skeylen+1);
|
||||||
|
|
||||||
|
if (EVP_PKEY_derive(ctx, secret, &skeylen) <= 0)
|
||||||
|
{
|
||||||
|
/* Error */
|
||||||
|
CU_FAIL("Could not set derive");
|
||||||
|
}
|
||||||
|
|
||||||
|
SHA256(secret, skeylen, shared_secret_remote);
|
||||||
|
|
||||||
|
ddsrt_free(secret);
|
||||||
|
|
||||||
|
/* get the secret handle */
|
||||||
|
shared_secret_local_handle = auth->get_shared_secret( auth, handshake_handle, &exception);
|
||||||
|
|
||||||
|
/* convert handle to object */
|
||||||
|
shared_secret_local = ((DDS_Security_SharedSecretHandleImpl *)(shared_secret_local_handle))->shared_secret;
|
||||||
|
/*compare with remote. They should be same */
|
||||||
|
|
||||||
|
if (ctx) {
|
||||||
|
EVP_PKEY_CTX_free(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dh_remote_public) {
|
||||||
|
EVP_PKEY_free(dh_remote_public);
|
||||||
|
}
|
||||||
|
|
||||||
|
return memcmp(shared_secret_local, shared_secret_remote, SHA256_DIGEST_LENGTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
create_asymmetrical_signature_for_test(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
void *data,
|
||||||
|
size_t dataLen,
|
||||||
|
unsigned char **signature,
|
||||||
|
size_t *signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result = DDS_SECURITY_VALIDATION_OK;
|
||||||
|
EVP_MD_CTX *mdctx = NULL;
|
||||||
|
EVP_PKEY_CTX *kctx = NULL;
|
||||||
|
|
||||||
|
if (!(mdctx = EVP_MD_CTX_create())) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to create signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_create_ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestSignInit(mdctx, &kctx, EVP_sha256(), NULL, pkey) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to initialize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_PKEY_CTX_set_rsa_padding(kctx, RSA_PKCS1_PSS_PADDING) < 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to initialize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestSignUpdate(mdctx, data, dataLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to update signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EVP_DigestSignFinal(mdctx, NULL, signatureLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to finalize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
goto err_sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*signature = os_malloc(sizeof(unsigned char) * (*signatureLen));
|
||||||
|
*signature = OPENSSL_malloc(*signatureLen);
|
||||||
|
if (EVP_DigestSignFinal(mdctx, *signature, signatureLen) != 1) {
|
||||||
|
char *msg = get_openssl_error_message_for_test();
|
||||||
|
result = DDS_SECURITY_VALIDATION_FAILED;
|
||||||
|
DDS_Security_Exception_set(ex, "Authentication", DDS_SECURITY_ERR_UNDEFINED_CODE, (int)result, "Failed to finalize signing context: %s", msg);
|
||||||
|
ddsrt_free(msg);
|
||||||
|
ddsrt_free(signature);
|
||||||
|
}
|
||||||
|
|
||||||
|
err_sign:
|
||||||
|
EVP_MD_CTX_destroy(mdctx);
|
||||||
|
err_create_ctx:
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DDS_SECURITY_BUITIN_TEST_HANDSHAKE_HELPER_H
|
||||||
|
#define DDS_SECURITY_BUITIN_TEST_HANDSHAKE_HELPER_H
|
||||||
|
|
||||||
|
#include "dds/security/dds_security_api.h"
|
||||||
|
#include "dds/security/core/dds_security_serialize.h"
|
||||||
|
|
||||||
|
#include <openssl/bn.h>
|
||||||
|
#include <openssl/asn1.h>
|
||||||
|
#include <openssl/x509.h>
|
||||||
|
#include <openssl/x509_vfy.h>
|
||||||
|
#include <openssl/pem.h>
|
||||||
|
#include <openssl/bio.h>
|
||||||
|
#include <openssl/err.h>
|
||||||
|
#include <openssl/evp.h>
|
||||||
|
|
||||||
|
const BIGNUM *
|
||||||
|
dh_get_public_key(
|
||||||
|
DH *dhkey);
|
||||||
|
|
||||||
|
int
|
||||||
|
dh_set_public_key(
|
||||||
|
DH *dhkey,
|
||||||
|
BIGNUM *pubkey);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
create_signature_for_test(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
const DDS_Security_BinaryProperty_t **binary_properties,
|
||||||
|
const uint32_t binary_properties_length,
|
||||||
|
unsigned char **signature,
|
||||||
|
size_t *signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
create_asymmetrical_signature_for_test(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
void *data,
|
||||||
|
size_t dataLen,
|
||||||
|
unsigned char **signature,
|
||||||
|
size_t *signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
char *
|
||||||
|
get_openssl_error_message_for_test(
|
||||||
|
void);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
validate_asymmetrical_signature_for_test(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
void *data,
|
||||||
|
size_t dataLen,
|
||||||
|
unsigned char *signature,
|
||||||
|
size_t signatureLen,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
DDS_Security_ValidationResult_t
|
||||||
|
get_public_key(
|
||||||
|
EVP_PKEY *pkey,
|
||||||
|
unsigned char **buffer,
|
||||||
|
size_t *length,
|
||||||
|
DDS_Security_SecurityException *ex);
|
||||||
|
|
||||||
|
/* for DEBUG purposes */
|
||||||
|
void print_binary_test( char* name, unsigned char *value, uint32_t size);
|
||||||
|
|
||||||
|
DDS_Security_BinaryProperty_t *
|
||||||
|
print_binary_properties_test(
|
||||||
|
DDS_Security_DataHolder *token);
|
||||||
|
|
||||||
|
int
|
||||||
|
check_shared_secret(
|
||||||
|
dds_security_authentication *auth,
|
||||||
|
int use_ecdh,
|
||||||
|
const DDS_Security_BinaryProperty_t *dh_remote,
|
||||||
|
EVP_PKEY *dh_local_private,
|
||||||
|
DDS_Security_HandshakeHandle handshake_handle);
|
||||||
|
|
||||||
|
#endif
|
222
src/security/builtin_plugins/tests/common/src/loader.c
Normal file
222
src/security/builtin_plugins/tests/common/src/loader.c
Normal file
|
@ -0,0 +1,222 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <CUnit/Test.h>
|
||||||
|
#include <dds/ddsrt/misc.h>
|
||||||
|
#include "loader.h"
|
||||||
|
#include "dds/ddsrt/dynlib.h"
|
||||||
|
#include "dds/ddsrt/heap.h"
|
||||||
|
#include "dds/ddsrt/string.h"
|
||||||
|
#include "sys/stat.h"
|
||||||
|
#include "assert.h"
|
||||||
|
#include "stdio.h"
|
||||||
|
#include "string.h"
|
||||||
|
#include "dds/security/core/dds_security_utils.h"
|
||||||
|
|
||||||
|
struct plugin_info {
|
||||||
|
void *context;
|
||||||
|
ddsrt_dynlib_t lib_handle;
|
||||||
|
plugin_init func_init;
|
||||||
|
plugin_finalize func_fini;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct plugins_hdl {
|
||||||
|
struct plugin_info plugin_ac;
|
||||||
|
struct plugin_info plugin_auth;
|
||||||
|
struct plugin_info plugin_crypto;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void*
|
||||||
|
load_plugin(
|
||||||
|
struct plugin_info *info,
|
||||||
|
const char *name_lib,
|
||||||
|
const char *name_init,
|
||||||
|
const char *name_fini)
|
||||||
|
{
|
||||||
|
dds_return_t result;
|
||||||
|
void *plugin = NULL;
|
||||||
|
assert(info);
|
||||||
|
|
||||||
|
result = ddsrt_dlopen(name_lib, true, &info->lib_handle);
|
||||||
|
if (result == DDS_RETCODE_OK && info->lib_handle) {
|
||||||
|
|
||||||
|
result = ddsrt_dlsym(info->lib_handle, name_init, (void **)&info->func_init);
|
||||||
|
if( result != DDS_RETCODE_OK || info->func_init == NULL) {
|
||||||
|
char buf[200];
|
||||||
|
ddsrt_dlerror(buf, 200);
|
||||||
|
printf("ERROR: could not init %s\n. Invalid init function: %s: %s", name_lib, name_init, buf);
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = ddsrt_dlsym(info->lib_handle, name_fini, (void **)&info->func_fini);
|
||||||
|
if( result != DDS_RETCODE_OK || info->func_fini == NULL ) {
|
||||||
|
printf("ERROR: could not init %s\n. Invalid fini function: %s", name_lib, name_fini);
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
char * init_parameters = "";
|
||||||
|
(void)info->func_init(init_parameters, &plugin);
|
||||||
|
if (plugin) {
|
||||||
|
info->context = plugin;
|
||||||
|
} else {
|
||||||
|
printf("ERROR: could not init %s\n", name_lib);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
char buffer[300];
|
||||||
|
ddsrt_dlerror(buffer,300);
|
||||||
|
printf("ERROR: could not load %s. %s\n", name_lib, buffer);
|
||||||
|
}
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct plugins_hdl*
|
||||||
|
load_plugins(
|
||||||
|
dds_security_access_control **ac,
|
||||||
|
dds_security_authentication **auth,
|
||||||
|
dds_security_cryptography **crypto)
|
||||||
|
{
|
||||||
|
struct plugins_hdl *plugins = ddsrt_malloc(sizeof(struct plugins_hdl));
|
||||||
|
assert(plugins);
|
||||||
|
memset(plugins, 0, sizeof(struct plugins_hdl));
|
||||||
|
if (ac) {
|
||||||
|
*ac = load_plugin(&(plugins->plugin_ac),
|
||||||
|
"dds_security_ac",
|
||||||
|
"init_access_control",
|
||||||
|
"finalize_access_control");
|
||||||
|
if (!(*ac)) {
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (auth) {
|
||||||
|
*auth = load_plugin(&(plugins->plugin_auth),
|
||||||
|
//"dds_security_auth",
|
||||||
|
"dds_security_auth",
|
||||||
|
"init_authentication",
|
||||||
|
"finalize_authentication");
|
||||||
|
if (!(*auth)) {
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (crypto) {
|
||||||
|
*crypto = load_plugin(&(plugins->plugin_crypto),
|
||||||
|
"dds_security_crypto",
|
||||||
|
"init_crypto",
|
||||||
|
"finalize_crypto");
|
||||||
|
if (!(*crypto)) {
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return plugins;
|
||||||
|
|
||||||
|
err:
|
||||||
|
unload_plugins(plugins);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
unload_plugin(
|
||||||
|
struct plugin_info *info)
|
||||||
|
{
|
||||||
|
dds_return_t result;
|
||||||
|
assert(info);
|
||||||
|
|
||||||
|
if (info->lib_handle) {
|
||||||
|
if (info->func_fini && info->context) {
|
||||||
|
info->func_fini(info->context);
|
||||||
|
}
|
||||||
|
result = ddsrt_dlclose( info->lib_handle );
|
||||||
|
if ( result != 0 ){
|
||||||
|
printf( "Error occured while closing the library\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
unload_plugins(
|
||||||
|
struct plugins_hdl *plugins)
|
||||||
|
{
|
||||||
|
assert (plugins);
|
||||||
|
unload_plugin(&(plugins->plugin_ac));
|
||||||
|
unload_plugin(&(plugins->plugin_auth));
|
||||||
|
unload_plugin(&(plugins->plugin_crypto));
|
||||||
|
ddsrt_free(plugins);
|
||||||
|
}
|
||||||
|
|
||||||
|
static size_t
|
||||||
|
regular_file_size(
|
||||||
|
const char *filename)
|
||||||
|
{
|
||||||
|
size_t sz = 0;
|
||||||
|
/* Provided? */
|
||||||
|
if (filename) {
|
||||||
|
/* Accessible? */
|
||||||
|
#if _WIN32
|
||||||
|
struct _stat stat_info;
|
||||||
|
int ret = _stat( filename, &stat_info );
|
||||||
|
#else
|
||||||
|
struct stat stat_info;
|
||||||
|
int ret = stat( filename, &stat_info );
|
||||||
|
#endif
|
||||||
|
if ( ret == 0 ) {
|
||||||
|
/* Regular? */
|
||||||
|
#ifdef WIN32
|
||||||
|
if (stat_info.st_mode & _S_IFREG) {
|
||||||
|
#else
|
||||||
|
if (S_ISREG(stat_info.st_mode)) {
|
||||||
|
#endif
|
||||||
|
/* Yes, so get the size. */
|
||||||
|
sz = ( size_t ) stat_info.st_size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sz;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
load_file_contents(
|
||||||
|
const char *filename)
|
||||||
|
{
|
||||||
|
char *document = NULL;
|
||||||
|
char *fname;
|
||||||
|
size_t sz, r;
|
||||||
|
FILE *fp;
|
||||||
|
|
||||||
|
assert(filename);
|
||||||
|
|
||||||
|
/* Get portable file name. */
|
||||||
|
fname = DDS_Security_normalize_file( filename );
|
||||||
|
if (fname) {
|
||||||
|
/* Get size if it is a accessible regular file (no dir or link). */
|
||||||
|
sz = regular_file_size(fname);
|
||||||
|
if (sz > 0) {
|
||||||
|
/* Open the actual file. */
|
||||||
|
DDSRT_WARNING_MSVC_OFF(4996);
|
||||||
|
fp = fopen(fname, "r");
|
||||||
|
DDSRT_WARNING_MSVC_ON(4996);
|
||||||
|
if (fp) {
|
||||||
|
/* Read the content. */
|
||||||
|
document = ddsrt_malloc(sz + 1);
|
||||||
|
r = fread(document, 1, sz, fp);
|
||||||
|
if (r == 0) {
|
||||||
|
ddsrt_free(document);
|
||||||
|
document = NULL;
|
||||||
|
} else {
|
||||||
|
document[r] = '\0';
|
||||||
|
}
|
||||||
|
(void)fclose(fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ddsrt_free(fname);
|
||||||
|
}
|
||||||
|
|
||||||
|
return document;
|
||||||
|
}
|
34
src/security/builtin_plugins/tests/common/src/loader.h
Normal file
34
src/security/builtin_plugins/tests/common/src/loader.h
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _DBT_SECURITY_PLUGINS_LOADER_H_
|
||||||
|
#define _DBT_SECURITY_PLUGINS_LOADER_H_
|
||||||
|
|
||||||
|
#include "dds/security/dds_security_api.h"
|
||||||
|
|
||||||
|
struct plugins_hdl;
|
||||||
|
|
||||||
|
struct plugins_hdl*
|
||||||
|
load_plugins(
|
||||||
|
dds_security_access_control **ac,
|
||||||
|
dds_security_authentication **auth,
|
||||||
|
dds_security_cryptography **crypto);
|
||||||
|
|
||||||
|
void
|
||||||
|
unload_plugins(
|
||||||
|
struct plugins_hdl *plugins);
|
||||||
|
|
||||||
|
char*
|
||||||
|
load_file_contents(
|
||||||
|
const char *filename);
|
||||||
|
|
||||||
|
#endif
|
17
src/security/builtin_plugins/tests/config_env.h.in
Normal file
17
src/security/builtin_plugins/tests/config_env.h.in
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* Copyright(c) 2006 to 2019 ADLINK Technology Limited and others
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||||
|
* v. 1.0 which is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||||
|
*/
|
||||||
|
#ifndef CONFIG_ENV_H
|
||||||
|
#define CONFIG_ENV_H
|
||||||
|
|
||||||
|
#define CONFIG_ENV_TESTS_DIR "@CUnit_builtin_plugins_tests_dir@"
|
||||||
|
|
||||||
|
#endif /* CONFIG_ENV_H */
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDkTCCAnmgAwIBAgIJAJvGJOEKNct1MA0GCSqGSIb3DQEBCwUAMF8xCzAJBgNV
|
||||||
|
BAYTAk5MMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
|
||||||
|
aWRnaXRzIFB0eSBMdGQxGDAWBgNVBAMMD0NIQU01MDAgcm9vdCBjYTAeFw0xODAy
|
||||||
|
MTIxNTA1MDVaFw0yMDEyMDIxNTA1MDVaMF8xCzAJBgNVBAYTAk5MMRMwEQYDVQQI
|
||||||
|
DApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQx
|
||||||
|
GDAWBgNVBAMMD0NIQU01MDAgcm9vdCBjYTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAM/dCO4QAcCduw0NMqShDpTvGT6DClTFAJE8ZfuPCHKqNkicRbyj
|
||||||
|
sVXfF35Sdo6K92Ksz4G7i1RqJU2n8c7hg2EFUza0lIGgmTHV/DvFBcbAa0PpvdKS
|
||||||
|
XoPtSNDh65/GO1R7oeSFRzapqsLMPUwOWi46dYvRnPabxs21xHxn56JeuG74bad5
|
||||||
|
PMTBvA2SiiTYPBlHGJS78GPo3BPMjL0MzPoMmumO8NSVYI+MEDY1lC4KkyZVKqtV
|
||||||
|
nIfaO/7adcM19xOAfAHkwhLGBC/bVAEqelev+GH/42xjNv532nM4/JVtBns+msR5
|
||||||
|
DAYdtr6i82b7zhU1+lOOihv4lmQHoSnTya8CAwEAAaNQME4wHQYDVR0OBBYEFFYr
|
||||||
|
0CpiwxgFcZnW6IQEhxGv/vwiMB8GA1UdIwQYMBaAFFYr0CpiwxgFcZnW6IQEhxGv
|
||||||
|
/vwiMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKbBt0ht72fdtxwm
|
||||||
|
Kr0pOsKyDW0Rd5Ca5aDK4qAhDL0AD5+O6ShGYCnFNDGk3J5Yzawp8VoKrhDZZyUt
|
||||||
|
z2b0jNucVapAvPMA4066QxeIfvFmWcS73l7vjjeUoKWmNNGWprTg3RLsacTorKuY
|
||||||
|
ZRL7wsThfrhvg4B/OOIWKp5MEwIrUfnQzUca8getF2eyTt6QcMtE29AW5+01QTzj
|
||||||
|
fxZgzkmJFYBE2K/TLMDBDd+bz/8XnmPrJ01VUntXiXenTGTcIbJerB6GYQojjvhy
|
||||||
|
ZrOeuHTON1ndFiQkpeZA67ByZjkKVoJG3I8fwBjzcLE7u/QAQptVPjJXXcSpL7fA
|
||||||
|
a1tOvqw=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEKTCCAxGgAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDMxMjAwMDAwMFoXDTI3MDMxMTIzNTk1OVowcjELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMRkwFwYDVQQDExBJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0MSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0
|
||||||
|
ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANa/ENFfGVXg
|
||||||
|
bPLTzBdDfiZQcp5dWZ//Pb8ErFOJu8uosVHFv8t69dgjHgNHB4OsjmjnR7GfKUZT
|
||||||
|
0cMvWJnjsC7DDlBwFET9rj4k40n96bbVCH9I7+tNhsoqzc6Eu+5h4sk7VfNGTM2Z
|
||||||
|
SyCd4GiSZRuA44rRbhXI7/LDpr4hY5J9ZDo5AM9ZyoLAoh774H3CZWD67S35XvUs
|
||||||
|
72dzE6uKG/vxBbvZ7eW2GLO6ewa9UxlnLVMPfJdpkp/xYXwwcPW2+2YXCge1ujxs
|
||||||
|
tjrOQJ5HUySh6DkE/kZpx8zwYWm9AaCrsvCIX1thsqgvKy+U5v1FS1L58eGc6s//
|
||||||
|
9yMgNhU29R0CAwEAAaOByTCBxjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRNVUJN
|
||||||
|
FzhJPReYT4QSx6dK53CXCTAfBgNVHSMEGDAWgBRNVUJNFzhJPReYT4QSx6dK53CX
|
||||||
|
CTAPBgNVHQ8BAf8EBQMDB/+AMGUGA1UdJQEB/wRbMFkGCCsGAQUFBwMBBggrBgEF
|
||||||
|
BQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkGCCsG
|
||||||
|
AQUFBwMNBggrBgEFBQcDDgYHKwYBBQIDBTANBgkqhkiG9w0BAQsFAAOCAQEAcOLF
|
||||||
|
ZYdJguj0uxeXB8v3xnUr1AWz9+gwg0URdfNLU2KvF2lsb/uznv6168b3/FcPgezN
|
||||||
|
Ihl9GqB+RvGwgXS/1UelCGbQiIUdsNxk246P4uOGPIyW32RoJcYPWZcpY+cw11tQ
|
||||||
|
NOnk994Y5/8ad1DmcxVLLqq5kwpXGWQufV1zOONq8B+mCvcVAmM4vkyF/de56Lwa
|
||||||
|
sAMpk1p77uhaDnuq2lIR4q3QHX2wGctFid5Q375DRscFQteY01r/dtwBBrMn0wuL
|
||||||
|
AMNx9ZGD+zAoOUaslpIlEQ+keAxk3jgGMWFMxF81YfhEnXzevSQXWpyek86XUyFL
|
||||||
|
O9IAQi5pa15gXjSbUg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEtjCCA56gAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDYxMTAwMDAwMFoXDTI3MDYxMDIzNTk1OVowcjELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMRkwFwYDVQQDExBJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0MSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0
|
||||||
|
ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANRf3XKmM6O+
|
||||||
|
WoYPNpOAdkGKKZHLJ8ZuPxVVBMX6oJAlcOmkhLzfkHSA+gl/OWaMOXIEtN512gyL
|
||||||
|
YszBf1RImwVzRjJFwIxzGzVQ68jYNj+qBbsOt+IG+hs3wgVCLFkCh+J7hXUgvk8A
|
||||||
|
eRM/SRrI42dQfcgKUAMNi4/iX6Vs+FV9pHB63L4PiLA9hfUE25sH6EsIC7icvGDJ
|
||||||
|
6cGG94glVSHDI1NtXfsNHY+NGY/jYKtQZklqU3lew5I60aJIsea+Wk6PJiz4hyXv
|
||||||
|
XVVmrcNeG1g4OEFgiSXZC2XknDw8t9+ELprGNvuJvTFxwPMAgLeF4IhEQC9dQY2W
|
||||||
|
BRwUxtZBzukCAwEAAaOCAVUwggFRMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFER4
|
||||||
|
R6N3MQ1Wl7gn+R8wwHloDCVZMB8GA1UdIwQYMBaAFER4R6N3MQ1Wl7gn+R8wwHlo
|
||||||
|
DCVZMA8GA1UdDwEB/wQFAwMH/4Awge8GA1UdJQEB/wSB5DCB4QYIKwYBBQUHAwEG
|
||||||
|
CCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBgorBgEEAYI3
|
||||||
|
AgEVBgorBgEEAYI3AgEWBgorBgEEAYI3CgMBBgorBgEEAYI3CgMDBgorBgEEAYI3
|
||||||
|
CgMEBglghkgBhvhCBAEGCysGAQQBgjcKAwQBBggrBgEFBQcDBQYIKwYBBQUHAwYG
|
||||||
|
CCsGAQUFBwMHBggrBgEFBQgCAgYKKwYBBAGCNxQCAgYIKwYBBQUHAwkGCCsGAQUF
|
||||||
|
BwMNBggrBgEFBQcDDgYHKwYBBQIDBTANBgkqhkiG9w0BAQsFAAOCAQEAwXuEWDG3
|
||||||
|
aAyL+DsGr0B4YMLjHtx6FjzkJOpTtXQhkrtSMpD3Xytl7Wfz8lyWuTnbrk8F4gWO
|
||||||
|
IkJR/NdMGW27SmeYU0z7QAGRDwtHX6kqqizQbCwf4F6P/2QftcLp1VrlsIlb0gyx
|
||||||
|
gLjpGmn5TT7gj+ahW0iIRglOwhzCvkNu6agYpdGwVirSyLShy/Hq303DZSbVuktz
|
||||||
|
5/PmZKpufnoGqURNnJqbV4TQipE0FiDmp2o+gVgJ+DVRhiCdfk68Xp7+TlmxCDfZ
|
||||||
|
C3qb18qrwAZ4AL3T9/RlzfkXh4ME9V6wqa5Y6j7Vwx5Ef2OHL+mnMnoNSXDLRh6j
|
||||||
|
45ky66su5dROpA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIENDCCAxygAwIBAgIBAjANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDYxMzAwMDAwMFoXDTI3MDYxMDIzNTk1OVowfTELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMSQwIgYDVQQDExtJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0IFdpdGggQ2hhaW4xJjAkBgkqhkiG9w0BCQEWF2luZm9A
|
||||||
|
aXN0LmFkbGlua3RlY2guY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
||||||
|
AQEA1r8Q0V8ZVeBs8tPMF0N+JlBynl1Zn/89vwSsU4m7y6ixUcW/y3r12CMeA0cH
|
||||||
|
g6yOaOdHsZ8pRlPRwy9YmeOwLsMOUHAURP2uPiTjSf3pttUIf0jv602GyirNzoS7
|
||||||
|
7mHiyTtV80ZMzZlLIJ3gaJJlG4DjitFuFcjv8sOmviFjkn1kOjkAz1nKgsCiHvvg
|
||||||
|
fcJlYPrtLfle9SzvZ3MTq4ob+/EFu9nt5bYYs7p7Br1TGWctUw98l2mSn/FhfDBw
|
||||||
|
9bb7ZhcKB7W6PGy2Os5AnkdTJKHoOQT+RmnHzPBhab0BoKuy8IhfW2GyqC8rL5Tm
|
||||||
|
/UVLUvnx4Zzqz//3IyA2FTb1HQIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYD
|
||||||
|
VR0OBBYEFE1VQk0XOEk9F5hPhBLHp0rncJcJMB8GA1UdIwQYMBaAFER4R6N3MQ1W
|
||||||
|
l7gn+R8wwHloDCVZMA8GA1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYB
|
||||||
|
BQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggr
|
||||||
|
BgEFBQcDCQYIKwYBBQUHAw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQCbl7ed4p66G6WquxO7ceZFvYKn3kDErjCfXHcqHxBnA2xTpoZCGj95
|
||||||
|
Qpirqo6N4UcLX5sn3CmgyVk0dYvlti/53FJgZ9XQDNxBuEYWPkY7vO+Uo0WdYpGz
|
||||||
|
ZDNIUQpiPMA7bHvwKldTIs77xxtnw9kbBU2k0xQyb2tdZNfD5YqSI1MeUtpEpNFW
|
||||||
|
sbC8+mQ3clzWpjF8eHH1fFSAmlJ+z1Uqmtt2FK0vRz+MQcpydwvpMnfqGdcwhGPQ
|
||||||
|
X4HZreLObjBA8KUEkUB3+rZXuELBgkk/c8/jRZl7QF5jJDLQCCLg7KoYBKN2GuTt
|
||||||
|
/dzeSnP7VZm/nTL8wpCvKgSOwOGgklf2
|
||||||
|
-----END CERTIFICATE-----
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEmTCCA4GgAwIBAgIIZ5gEIUFhO5wwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE
|
||||||
|
BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
|
||||||
|
ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE4MDIx
|
||||||
|
MjE1MDUwMFoYDzIyMjIwMjIyMjIyMjAwWjBfMQswCQYDVQQGEwJOTDETMBEGA1UE
|
||||||
|
CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
|
||||||
|
MRgwFgYDVQQDEw9DSEFNNTAwIHJvb3QgY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||||
|
DwAwggEKAoIBAQC6Fa3TheL+UrdZCp9GhU/2WbneP2t/avUa3muwDttPxeI2XU9k
|
||||||
|
ZjBR95mAXme4SPXHk5+YDN319AqIje3oKhzky/ngvKH2GkoJKYxWnuDBfMEHdViz
|
||||||
|
2Q9/xso2ZvH50ukwWa0pfx2/EVV1wRxeQcRd/UVfq3KTJizG0M88mOYvGEAw3LFf
|
||||||
|
zef7k1aCuOofQmBvLukUudcYpMzfyHFp7lQqU4CcrrR5RtmfiUfrWfdGLea2iPDB
|
||||||
|
pJgN8ESOMwEHtOTEBDclYnH9L4t7CHQz+fXXS5IWFsDK9fCMQjnxDsDVeNrNzTYL
|
||||||
|
FaZrMg9S6IUQCEsQWsnq5weS8omOpVLUm9klAgMBAAGjggFVMIIBUTAMBgNVHRME
|
||||||
|
BTADAQH/MB0GA1UdDgQWBBQg2FZB/j8uWDVnJhjwXkX278znSTAfBgNVHSMEGDAW
|
||||||
|
gBQg2FZB/j8uWDVnJhjwXkX278znSTAPBgNVHQ8BAf8EBQMDB/+AMIHvBgNVHSUB
|
||||||
|
Af8EgeQwgeEGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwME
|
||||||
|
BggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
|
||||||
|
KwYBBAGCNwoDAwYKKwYBBAGCNwoDBAYJYIZIAYb4QgQBBgsrBgEEAYI3CgMEAQYI
|
||||||
|
KwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUIAgIGCisGAQQBgjcU
|
||||||
|
AgIGCCsGAQUFBwMJBggrBgEFBQcDDQYIKwYBBQUHAw4GBysGAQUCAwUwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAKHmwejWRwGE1wf1k2rG8SNRV/neGsZ6Qfqf6co3TpR/Wi1s
|
||||||
|
iZDvSeT/rbqNBS7z34xnG88NIUwu00y78e8Mfon31ZZbK4Uo7fla9/D3ukdJqPQC
|
||||||
|
LKdbKJjR2kH+KCukY/1rghjJ8/X+t2egBit0LCOdsFCl07Sfksb9kpGUIZSFcYYm
|
||||||
|
geqhjhoNwxazzHiw+QWHC5HG9248JIizBmy1aymNWuMnPudhjHAnPcsIlqMVNq3t
|
||||||
|
Rv9ap7S8JeCxHVRPJvJeCwXWvW3dW/v3xH52Yn/fqRblN1w9Fxz5NhopKx0gj/Jd
|
||||||
|
sw2N4Fk4gaOWEolFpa0bwNw8nAx7moehZpowzfw=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEKTCCAxGgAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDMxMjAwMDAwMFoXDTI3MDMxMTIzNTk1OVowcjELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMRkwFwYDVQQDExBJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0MSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0
|
||||||
|
ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANa/ENFfGVXg
|
||||||
|
bPLTzBdDfiZQcp5dWZ//Pb8ErFOJu8uosVHFv8t69dgjHgNHB4OsjmjnR7GfKUZT
|
||||||
|
0cMvWJnjsC7DDlBwFET9rj4k40n96bbVCH9I7+tNhsoqzc6Eu+5h4sk7VfNGTM2Z
|
||||||
|
SyCd4GiSZRuA44rRbhXI7/LDpr4hY5J9ZDo5AM9ZyoLAoh774H3CZWD67S35XvUs
|
||||||
|
72dzE6uKG/vxBbvZ7eW2GLO6ewa9UxlnLVMPfJdpkp/xYXwwcPW2+2YXCge1ujxs
|
||||||
|
tjrOQJ5HUySh6DkE/kZpx8zwYWm9AaCrsvCIX1thsqgvKy+U5v1FS1L58eGc6s//
|
||||||
|
9yMgNhU29R0CAwEAAaOByTCBxjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRNVUJN
|
||||||
|
FzhJPReYT4QSx6dK53CXCTAfBgNVHSMEGDAWgBRNVUJNFzhJPReYT4QSx6dK53CX
|
||||||
|
CTAPBgNVHQ8BAf8EBQMDB/+AMGUGA1UdJQEB/wRbMFkGCCsGAQUFBwMBBggrBgEF
|
||||||
|
BQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkGCCsG
|
||||||
|
AQUFBwMNBggrBgEFBQcDDgYHKwYBBQIDBTANBgkqhkiG9w0BAQsFAAOCAQEAcOLF
|
||||||
|
ZYdJguj0uxeXB8v3xnUr1AWz9+gwg0URdfNLU2KvF2lsb/uznv6168b3/FcPgezN
|
||||||
|
Ihl9GqB+RvGwgXS/1UelCGbQiIUdsNxk246P4uOGPIyW32RoJcYPWZcpY+cw11tQ
|
||||||
|
NOnk994Y5/8ad1DmcxVLLqq5kwpXGWQufV1zOONq8B+mCvcVAmM4vkyF/de56Lwa
|
||||||
|
sAMpk1p77uhaDnuq2lIR4q3QHX2wGctFid5Q375DRscFQteY01r/dtwBBrMn0wuL
|
||||||
|
AMNx9ZGD+zAoOUaslpIlEQ+keAxk3jgGMWFMxF81YfhEnXzevSQXWpyek86XUyFL
|
||||||
|
O9IAQi5pa15gXjSbUg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEtjCCA56gAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDYxMTAwMDAwMFoXDTI3MDYxMDIzNTk1OVowcjELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMRkwFwYDVQQDExBJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0MSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0
|
||||||
|
ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANRf3XKmM6O+
|
||||||
|
WoYPNpOAdkGKKZHLJ8ZuPxVVBMX6oJAlcOmkhLzfkHSA+gl/OWaMOXIEtN512gyL
|
||||||
|
YszBf1RImwVzRjJFwIxzGzVQ68jYNj+qBbsOt+IG+hs3wgVCLFkCh+J7hXUgvk8A
|
||||||
|
eRM/SRrI42dQfcgKUAMNi4/iX6Vs+FV9pHB63L4PiLA9hfUE25sH6EsIC7icvGDJ
|
||||||
|
6cGG94glVSHDI1NtXfsNHY+NGY/jYKtQZklqU3lew5I60aJIsea+Wk6PJiz4hyXv
|
||||||
|
XVVmrcNeG1g4OEFgiSXZC2XknDw8t9+ELprGNvuJvTFxwPMAgLeF4IhEQC9dQY2W
|
||||||
|
BRwUxtZBzukCAwEAAaOCAVUwggFRMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFER4
|
||||||
|
R6N3MQ1Wl7gn+R8wwHloDCVZMB8GA1UdIwQYMBaAFER4R6N3MQ1Wl7gn+R8wwHlo
|
||||||
|
DCVZMA8GA1UdDwEB/wQFAwMH/4Awge8GA1UdJQEB/wSB5DCB4QYIKwYBBQUHAwEG
|
||||||
|
CCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBgorBgEEAYI3
|
||||||
|
AgEVBgorBgEEAYI3AgEWBgorBgEEAYI3CgMBBgorBgEEAYI3CgMDBgorBgEEAYI3
|
||||||
|
CgMEBglghkgBhvhCBAEGCysGAQQBgjcKAwQBBggrBgEFBQcDBQYIKwYBBQUHAwYG
|
||||||
|
CCsGAQUFBwMHBggrBgEFBQgCAgYKKwYBBAGCNxQCAgYIKwYBBQUHAwkGCCsGAQUF
|
||||||
|
BwMNBggrBgEFBQcDDgYHKwYBBQIDBTANBgkqhkiG9w0BAQsFAAOCAQEAwXuEWDG3
|
||||||
|
aAyL+DsGr0B4YMLjHtx6FjzkJOpTtXQhkrtSMpD3Xytl7Wfz8lyWuTnbrk8F4gWO
|
||||||
|
IkJR/NdMGW27SmeYU0z7QAGRDwtHX6kqqizQbCwf4F6P/2QftcLp1VrlsIlb0gyx
|
||||||
|
gLjpGmn5TT7gj+ahW0iIRglOwhzCvkNu6agYpdGwVirSyLShy/Hq303DZSbVuktz
|
||||||
|
5/PmZKpufnoGqURNnJqbV4TQipE0FiDmp2o+gVgJ+DVRhiCdfk68Xp7+TlmxCDfZ
|
||||||
|
C3qb18qrwAZ4AL3T9/RlzfkXh4ME9V6wqa5Y6j7Vwx5Ef2OHL+mnMnoNSXDLRh6j
|
||||||
|
45ky66su5dROpA==
|
||||||
|
-----END CERTIFICATE-----
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,828 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* CUnit includes. */
|
||||||
|
#include "dds/security/dds_security_api.h"
|
||||||
|
#include "dds/security/core/dds_security_serialize.h"
|
||||||
|
#include "dds/security/core/dds_security_utils.h"
|
||||||
|
#include "dds/security/dds_security_api.h"
|
||||||
|
#include "dds/ddsrt/heap.h"
|
||||||
|
#include "dds/ddsrt/string.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "dds/ddsrt/environ.h"
|
||||||
|
#include "CUnit/CUnit.h"
|
||||||
|
#include "CUnit/Test.h"
|
||||||
|
#include "assert.h"
|
||||||
|
|
||||||
|
|
||||||
|
/* Test helper includes. */
|
||||||
|
#include "common/src/loader.h"
|
||||||
|
|
||||||
|
/* Private header include */
|
||||||
|
|
||||||
|
#include <openssl/opensslv.h>
|
||||||
|
|
||||||
|
static const char * AUTH_PROTOCOL_CLASS_ID = "DDS:Auth:PKI-DH:1.0";
|
||||||
|
|
||||||
|
static const char * PROPERTY_IDENTITY_CA = "dds.sec.auth.identity_ca";
|
||||||
|
static const char * PROPERTY_PRIVATE_KEY = "dds.sec.auth.private_key";
|
||||||
|
static const char * PROPERTY_IDENTITY_CERT = "dds.sec.auth.identity_certificate";
|
||||||
|
|
||||||
|
static const char * PROPERTY_CERT_SUBJECT_NAME = "dds.cert.sn";
|
||||||
|
static const char * PROPERTY_CERT_ALGORITHM = "dds.cert.algo";
|
||||||
|
static const char * PROPERTY_CA_SUBJECT_NAME = "dds.ca.sn";
|
||||||
|
static const char * PROPERTY_CA_ALGORITHM = "dds.ca.aglo";
|
||||||
|
|
||||||
|
static const char * SUBJECT_NAME_IDENTITY_CERT = "CN=CHAM-574 client,O=Some Company,ST=Some-State,C=NL";
|
||||||
|
static const char * SUBJECT_NAME_IDENTITY_CA = "CN=CHAM-574 authority,O=Some Company,ST=Some-State,C=NL";
|
||||||
|
|
||||||
|
static const char * RSA_2048_ALGORITHM_NAME = "RSA-2048";
|
||||||
|
|
||||||
|
static const char * AUTH_REQUEST_TOKEN_CLASS_ID = "DDS:Auth:PKI-DH:1.0+AuthReq";
|
||||||
|
static const char * AUTH_REQUEST_TOKEN_FUTURE_PROP_NAME = "future_challenge";
|
||||||
|
|
||||||
|
static const char * AUTH_HANDSHAKE_REQUEST_TOKEN_CLASS_ID = "DDS:Auth:PKI-DH:1.0+Req";
|
||||||
|
|
||||||
|
static const char * AUTH_DSIGN_ALGO_RSA_NAME = "RSASSA-PSS-SHA256";
|
||||||
|
static const char * AUTH_KAGREE_ALGO_ECDH_NAME = "ECDH+prime256v1-CEUM";
|
||||||
|
/* static const char * AUTH_KAGREE_ALGO_RSA_NAME = "DH+MODP-2048-256"; */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static const char *identity_certificate =
|
||||||
|
"data:,-----BEGIN CERTIFICATE-----\n"
|
||||||
|
"MIIEQTCCAymgAwIBAgIINpuaAAnrQZIwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE\n"
|
||||||
|
"BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp\n"
|
||||||
|
"ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE3MDIy\n"
|
||||||
|
"MjIyMjIwMFoYDzIyMjIwMjIyMjIyMjAwWjBcMQswCQYDVQQGEwJOTDETMBEGA1UE\n"
|
||||||
|
"CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk\n"
|
||||||
|
"MRUwEwYDVQQDEwxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\n"
|
||||||
|
"ggEKAoIBAQDCpVhivH/wBIyu74rvQncnSZqKyspN6CvD1pmV9wft5PHhVt9jV79v\n"
|
||||||
|
"gSub5LADoRHAgFdv9duYgBr17Ob6uRrIY4B18CcrCjhQcC4gjx8y2jl9PeYm+qYD\n"
|
||||||
|
"3o44FYBrBq0QCnrQgKsb/qX9Z+Mw/VUiw65x68W876LEHQQoEgT4kxSuagwBoVRk\n"
|
||||||
|
"ePD6fYAKmT4XS3x+O0v+rHESTcsKF6yMadgp7h3eH1b8kJTzSx8JV9Zzq++mxjox\n"
|
||||||
|
"qhbBVP5nDze2hhSIeCkCvSrx7efkgKS4AQXa5/Z44GiAu1TfXXUqdic9rxwD0edn\n"
|
||||||
|
"ajNElnZe7sjok/0yuqvH+2hSqpNva/zpAgMBAAGjggEAMIH9MAwGA1UdDwQFAwMH\n"
|
||||||
|
"/4AwgewGA1UdJQSB5DCB4QYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDAwYI\n"
|
||||||
|
"KwYBBQUHAwQGCCsGAQUFBwMIBgorBgEEAYI3AgEVBgorBgEEAYI3AgEWBgorBgEE\n"
|
||||||
|
"AYI3CgMBBgorBgEEAYI3CgMDBgorBgEEAYI3CgMEBglghkgBhvhCBAEGCysGAQQB\n"
|
||||||
|
"gjcKAwQBBggrBgEFBQcDBQYIKwYBBQUHAwYGCCsGAQUFBwMHBggrBgEFBQgCAgYK\n"
|
||||||
|
"KwYBBAGCNxQCAgYIKwYBBQUHAwkGCCsGAQUFBwMNBggrBgEFBQcDDgYHKwYBBQID\n"
|
||||||
|
"BTANBgkqhkiG9w0BAQsFAAOCAQEAawdHy0Xw7nTK2ltp91Ion6fJ7hqYuj///zr7\n"
|
||||||
|
"Adt6uonpDh/xl3esuwcFimIJrJrHujnGkL0nLddRCikmnzuBMNDWS6yq0/Ckl/YG\n"
|
||||||
|
"yjNr44dlX24wo+MVAgkj3/8CyWDZ3a8kBg9QT3bs2SqbjmhTrXN1DRyf9S5vJysE\n"
|
||||||
|
"I7V1gTN66BeKL64hOrAlRVrEu8Ds6TWL6Q/YH+61ViZkoLTeSaPjH4nknaFr4C35\n"
|
||||||
|
"iji0JhkyfRHRRVPHFnaj25AkxOrSV64qVKoTMjDl5fji5iMGtjm6iJ7q05ml/qDl\n"
|
||||||
|
"nLotHXemZNvYhbwUmRzbt4Dls9EMH4VRbP85I94nM5TAvtHVNA==\n"
|
||||||
|
"-----END CERTIFICATE-----\n";
|
||||||
|
|
||||||
|
|
||||||
|
static const char *identity_ca =
|
||||||
|
"data:,-----BEGIN CERTIFICATE-----\n"
|
||||||
|
"MIIEmTCCA4GgAwIBAgIIZ5gEIUFhO5wwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE\n"
|
||||||
|
"BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp\n"
|
||||||
|
"ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE4MDIx\n"
|
||||||
|
"MjE1MDUwMFoYDzIyMjIwMjIyMjIyMjAwWjBfMQswCQYDVQQGEwJOTDETMBEGA1UE\n"
|
||||||
|
"CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk\n"
|
||||||
|
"MRgwFgYDVQQDEw9DSEFNNTAwIHJvb3QgY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n"
|
||||||
|
"DwAwggEKAoIBAQC6Fa3TheL+UrdZCp9GhU/2WbneP2t/avUa3muwDttPxeI2XU9k\n"
|
||||||
|
"ZjBR95mAXme4SPXHk5+YDN319AqIje3oKhzky/ngvKH2GkoJKYxWnuDBfMEHdViz\n"
|
||||||
|
"2Q9/xso2ZvH50ukwWa0pfx2/EVV1wRxeQcRd/UVfq3KTJizG0M88mOYvGEAw3LFf\n"
|
||||||
|
"zef7k1aCuOofQmBvLukUudcYpMzfyHFp7lQqU4CcrrR5RtmfiUfrWfdGLea2iPDB\n"
|
||||||
|
"pJgN8ESOMwEHtOTEBDclYnH9L4t7CHQz+fXXS5IWFsDK9fCMQjnxDsDVeNrNzTYL\n"
|
||||||
|
"FaZrMg9S6IUQCEsQWsnq5weS8omOpVLUm9klAgMBAAGjggFVMIIBUTAMBgNVHRME\n"
|
||||||
|
"BTADAQH/MB0GA1UdDgQWBBQg2FZB/j8uWDVnJhjwXkX278znSTAfBgNVHSMEGDAW\n"
|
||||||
|
"gBQg2FZB/j8uWDVnJhjwXkX278znSTAPBgNVHQ8BAf8EBQMDB/+AMIHvBgNVHSUB\n"
|
||||||
|
"Af8EgeQwgeEGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwME\n"
|
||||||
|
"BggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK\n"
|
||||||
|
"KwYBBAGCNwoDAwYKKwYBBAGCNwoDBAYJYIZIAYb4QgQBBgsrBgEEAYI3CgMEAQYI\n"
|
||||||
|
"KwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUIAgIGCisGAQQBgjcU\n"
|
||||||
|
"AgIGCCsGAQUFBwMJBggrBgEFBQcDDQYIKwYBBQUHAw4GBysGAQUCAwUwDQYJKoZI\n"
|
||||||
|
"hvcNAQELBQADggEBAKHmwejWRwGE1wf1k2rG8SNRV/neGsZ6Qfqf6co3TpR/Wi1s\n"
|
||||||
|
"iZDvSeT/rbqNBS7z34xnG88NIUwu00y78e8Mfon31ZZbK4Uo7fla9/D3ukdJqPQC\n"
|
||||||
|
"LKdbKJjR2kH+KCukY/1rghjJ8/X+t2egBit0LCOdsFCl07Sfksb9kpGUIZSFcYYm\n"
|
||||||
|
"geqhjhoNwxazzHiw+QWHC5HG9248JIizBmy1aymNWuMnPudhjHAnPcsIlqMVNq3t\n"
|
||||||
|
"Rv9ap7S8JeCxHVRPJvJeCwXWvW3dW/v3xH52Yn/fqRblN1w9Fxz5NhopKx0gj/Jd\n"
|
||||||
|
"sw2N4Fk4gaOWEolFpa0bwNw8nAx7moehZpowzfw=\n"
|
||||||
|
"-----END CERTIFICATE-----\n";
|
||||||
|
|
||||||
|
|
||||||
|
static const char *private_key =
|
||||||
|
"data:,-----BEGIN RSA PRIVATE KEY-----\n"
|
||||||
|
"MIIEogIBAAKCAQEAwqVYYrx/8ASMru+K70J3J0maisrKTegrw9aZlfcH7eTx4Vbf\n"
|
||||||
|
"Y1e/b4Erm+SwA6ERwIBXb/XbmIAa9ezm+rkayGOAdfAnKwo4UHAuII8fMto5fT3m\n"
|
||||||
|
"JvqmA96OOBWAawatEAp60ICrG/6l/WfjMP1VIsOucevFvO+ixB0EKBIE+JMUrmoM\n"
|
||||||
|
"AaFUZHjw+n2ACpk+F0t8fjtL/qxxEk3LChesjGnYKe4d3h9W/JCU80sfCVfWc6vv\n"
|
||||||
|
"psY6MaoWwVT+Zw83toYUiHgpAr0q8e3n5ICkuAEF2uf2eOBogLtU3111KnYnPa8c\n"
|
||||||
|
"A9HnZ2ozRJZ2Xu7I6JP9Mrqrx/toUqqTb2v86QIDAQABAoIBAC1q32DKkx+yMBFx\n"
|
||||||
|
"m32QiLUGG6VfBC2BixS7MkMnzRXZYgcuehl4FBc0kLRjfB6cqsO8LqrVN1QyMBhK\n"
|
||||||
|
"GutN3c38SbE7RChqzhEW2+yE+Mao3Nk4ZEecHLiyaYT0n25ZtHAVwep823BAzwJ+\n"
|
||||||
|
"BykbM45VEpNKbG1VjSktjBa9faNyZiZAEJEjVyla+6R8N4kHV52LbZcLjvJv3IQ2\n"
|
||||||
|
"iPYRrmMyI5C23qTni0vy7yJbAXBo3CqgSlwie9FARBWT7Puu7F4mF1O1c/SnTysw\n"
|
||||||
|
"Tm3e5FzgfHipQbnRVn0w4rDprPMKmPxMnvf/Wkw0zVgNadp1Tc1I6Yj525DEQ07i\n"
|
||||||
|
"2gIn/gECgYEA4jNnY1u2Eu7x3pAQF3dRO0x35boVtuq9iwQk7q+uaZaK4RJRr+0Y\n"
|
||||||
|
"T68S3bPnfer6SHvcxtST89Bvs/j/Ky4SOaX037UYjFh6T7OIzPl+MzO1yb+VOBT6\n"
|
||||||
|
"D6FVGEJGp8ZAITU1OfJPeTYViUeEC8tHFGoKUCk50FbB6jOf1oKtv/ECgYEA3EnB\n"
|
||||||
|
"Y7kSbJJaUuj9ciFUL/pAno86Cim3VjegK1wKgEiyDb610bhoMErovPwfVJbtcttG\n"
|
||||||
|
"eKJNuwizkRcVbj+vpjDvqqaP5eMxLl6/Nd4haPMJYzGo88Z8NJpwFRNF2KEWjOpQ\n"
|
||||||
|
"2NEvoCeRtVulCJyka2Tpljzw8cOXkxhPOe2UhHkCgYBo3entj0QO7QXm56T+LAvV\n"
|
||||||
|
"0PK45xdQEO3EuCwjGAFk5C0IgUSrqeCeeIzniZMltj1IQ1wsNbtNynEu3530t8wt\n"
|
||||||
|
"O7oVyFBUKGSz9IjUdkpClJOPr6kPMfJoMqRPtdIpz+hFPPSrI6IikKdVWHloOlp+\n"
|
||||||
|
"pVaYqTQrWT1XRY2xli3VEQKBgGySmZN6Cx+h/oywswIGdUT0VdcQhq2to+QFpJba\n"
|
||||||
|
"VX6m1cM6hMip2Ag9U3qZ1SNPBBdBBfm9HQybHE3dj713/C2wHuAAGhpXIM1W+20k\n"
|
||||||
|
"X1knuC/AsSH9aQhQOf/ZMOq1crTfZBuI9q0782/sjGmzMsKPySU4QhUWruVb7OiD\n"
|
||||||
|
"NVkZAoGAEvihW7G+8/iOE40vGHyBqUeopAAWLciTAUIEwM/Oi3BYfNWNTWF/FWNc\n"
|
||||||
|
"nMvCZPYigY8C1vO+1iT2Frtd3CIU+f01Q3fJNJoRLlEiKLNZUJRF48OKUqjKSmsi\n"
|
||||||
|
"w6pucFO40z05YW7utApj4L82rZnOS0pd1tUI1yexqvj0i4ThJfk=\n"
|
||||||
|
"-----END RSA PRIVATE KEY-----\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static struct plugins_hdl *plugins = NULL;
|
||||||
|
static dds_security_authentication *auth = NULL;
|
||||||
|
static DDS_Security_IdentityHandle local_identity_handle = DDS_SECURITY_HANDLE_NIL;
|
||||||
|
static DDS_Security_IdentityHandle remote_identity_handle1 = DDS_SECURITY_HANDLE_NIL;
|
||||||
|
static DDS_Security_IdentityHandle remote_identity_handle2 = DDS_SECURITY_HANDLE_NIL;
|
||||||
|
static DDS_Security_AuthRequestMessageToken g_local_auth_request_token = DDS_SECURITY_TOKEN_INIT;
|
||||||
|
static DDS_Security_AuthRequestMessageToken g_remote_auth_request_token = DDS_SECURITY_TOKEN_INIT;
|
||||||
|
static const DDS_Security_BinaryProperty_t *challenge1 = NULL;
|
||||||
|
static const DDS_Security_BinaryProperty_t *challenge2 = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
dds_security_property_init(
|
||||||
|
DDS_Security_PropertySeq *seq,
|
||||||
|
DDS_Security_unsigned_long size)
|
||||||
|
{
|
||||||
|
seq->_length = size;
|
||||||
|
seq->_maximum = size;
|
||||||
|
seq->_buffer = ddsrt_malloc(size * sizeof(DDS_Security_Property_t));
|
||||||
|
memset(seq->_buffer, 0, size * sizeof(DDS_Security_Property_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
dds_security_property_deinit(
|
||||||
|
DDS_Security_PropertySeq *seq)
|
||||||
|
{
|
||||||
|
uint32_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < seq->_length; i++) {
|
||||||
|
ddsrt_free(seq->_buffer[i].name);
|
||||||
|
ddsrt_free(seq->_buffer[i].value);
|
||||||
|
}
|
||||||
|
ddsrt_free(seq->_buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
reset_exception(
|
||||||
|
DDS_Security_SecurityException *ex)
|
||||||
|
{
|
||||||
|
ex->minor_code = 0;
|
||||||
|
ex->code = 0;
|
||||||
|
ddsrt_free(ex->message);
|
||||||
|
ex->message = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
initialize_identity_token(
|
||||||
|
DDS_Security_IdentityToken *token,
|
||||||
|
const char *certAlgo,
|
||||||
|
const char *caAlgo)
|
||||||
|
{
|
||||||
|
memset(token, 0, sizeof(*token));
|
||||||
|
|
||||||
|
token->class_id = ddsrt_strdup(AUTH_PROTOCOL_CLASS_ID);
|
||||||
|
token->properties._maximum = 4;
|
||||||
|
token->properties._length = 4;
|
||||||
|
token->properties._buffer = DDS_Security_PropertySeq_allocbuf(4);
|
||||||
|
|
||||||
|
token->properties._buffer[0].name = ddsrt_strdup(PROPERTY_CERT_SUBJECT_NAME);
|
||||||
|
token->properties._buffer[0].value = ddsrt_strdup(SUBJECT_NAME_IDENTITY_CERT);
|
||||||
|
token->properties._buffer[0].propagate = true;
|
||||||
|
|
||||||
|
token->properties._buffer[1].name = ddsrt_strdup(PROPERTY_CERT_ALGORITHM);
|
||||||
|
token->properties._buffer[1].value = ddsrt_strdup(certAlgo);
|
||||||
|
token->properties._buffer[1].propagate = true;
|
||||||
|
|
||||||
|
token->properties._buffer[2].name = ddsrt_strdup(PROPERTY_CA_SUBJECT_NAME);
|
||||||
|
token->properties._buffer[2].value = ddsrt_strdup(SUBJECT_NAME_IDENTITY_CA);
|
||||||
|
token->properties._buffer[2].propagate = true;
|
||||||
|
|
||||||
|
token->properties._buffer[3].name = ddsrt_strdup(PROPERTY_CA_ALGORITHM);
|
||||||
|
token->properties._buffer[3].value = ddsrt_strdup(caAlgo);
|
||||||
|
token->properties._buffer[3].propagate = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
fill_auth_request_token(
|
||||||
|
DDS_Security_AuthRequestMessageToken *token)
|
||||||
|
{
|
||||||
|
uint32_t i;
|
||||||
|
uint32_t len = 32;
|
||||||
|
unsigned char *challenge;
|
||||||
|
|
||||||
|
challenge = ddsrt_malloc(len);
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
challenge[i] = (unsigned char)(0xFF - i);
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(token, 0, sizeof(*token));
|
||||||
|
|
||||||
|
token->class_id = ddsrt_strdup(AUTH_REQUEST_TOKEN_CLASS_ID);
|
||||||
|
token->binary_properties._maximum = 1;
|
||||||
|
token->binary_properties._length = 1;
|
||||||
|
token->binary_properties._buffer = DDS_Security_BinaryPropertySeq_allocbuf(1);
|
||||||
|
token->binary_properties._buffer->name = ddsrt_strdup(AUTH_REQUEST_TOKEN_FUTURE_PROP_NAME);
|
||||||
|
|
||||||
|
token->binary_properties._buffer->value._maximum = len;
|
||||||
|
token->binary_properties._buffer->value._length = len;
|
||||||
|
token->binary_properties._buffer->value._buffer = challenge;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const DDS_Security_BinaryProperty_t *
|
||||||
|
find_binary_property(
|
||||||
|
DDS_Security_DataHolder *token,
|
||||||
|
const char *name)
|
||||||
|
{
|
||||||
|
const DDS_Security_BinaryProperty_t *result = NULL;
|
||||||
|
uint32_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < token->binary_properties._length && !result; i++) {
|
||||||
|
if (token->binary_properties._buffer[i].name && (strcmp(token->binary_properties._buffer[i].name, name) == 0)) {
|
||||||
|
result = &token->binary_properties._buffer[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
deinitialize_identity_token(
|
||||||
|
DDS_Security_IdentityToken *token)
|
||||||
|
{
|
||||||
|
DDS_Security_DataHolder_deinit(token);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
validate_local_identity(void)
|
||||||
|
{
|
||||||
|
int res = 0;
|
||||||
|
DDS_Security_ValidationResult_t result;
|
||||||
|
DDS_Security_DomainId domain_id = 0;
|
||||||
|
DDS_Security_Qos participant_qos;
|
||||||
|
DDS_Security_GUID_t candidate_participant_guid;
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_GUID_t local_participant_guid;
|
||||||
|
DDS_Security_GuidPrefix_t prefix = {0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb};
|
||||||
|
DDS_Security_EntityId_t entityId = {{0xb0,0xb1,0xb2},0x1};
|
||||||
|
|
||||||
|
memset(&local_participant_guid, 0, sizeof(local_participant_guid));
|
||||||
|
memcpy(&candidate_participant_guid.prefix, &prefix, sizeof(prefix));
|
||||||
|
memcpy(&candidate_participant_guid.entityId, &entityId, sizeof(entityId));
|
||||||
|
|
||||||
|
memset(&participant_qos, 0, sizeof(participant_qos));
|
||||||
|
dds_security_property_init(&participant_qos.property.value, 3);
|
||||||
|
participant_qos.property.value._buffer[0].name = ddsrt_strdup(PROPERTY_IDENTITY_CERT);
|
||||||
|
participant_qos.property.value._buffer[0].value = ddsrt_strdup(identity_certificate);
|
||||||
|
participant_qos.property.value._buffer[1].name = ddsrt_strdup(PROPERTY_IDENTITY_CA);
|
||||||
|
participant_qos.property.value._buffer[1].value = ddsrt_strdup(identity_ca);
|
||||||
|
participant_qos.property.value._buffer[2].name = ddsrt_strdup(PROPERTY_PRIVATE_KEY);
|
||||||
|
participant_qos.property.value._buffer[2].value = ddsrt_strdup(private_key);
|
||||||
|
|
||||||
|
/* Now call the function. */
|
||||||
|
result = auth->validate_local_identity(
|
||||||
|
auth,
|
||||||
|
&local_identity_handle,
|
||||||
|
&local_participant_guid,
|
||||||
|
domain_id,
|
||||||
|
&participant_qos,
|
||||||
|
&candidate_participant_guid,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_OK) {
|
||||||
|
res = -1;
|
||||||
|
printf("validate_local_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
|
||||||
|
dds_security_property_deinit(&participant_qos.property.value);
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
release_local_identity(void)
|
||||||
|
{
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_boolean success;
|
||||||
|
|
||||||
|
if (local_identity_handle != DDS_SECURITY_HANDLE_NIL) {
|
||||||
|
success = auth->return_identity_handle(auth, local_identity_handle, &exception);
|
||||||
|
if (!success) {
|
||||||
|
printf("return_identity_handle failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
reset_exception(&exception);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
validate_remote_identities (void)
|
||||||
|
{
|
||||||
|
int res = 0;
|
||||||
|
DDS_Security_ValidationResult_t result;
|
||||||
|
DDS_Security_IdentityToken remote_identity_token;
|
||||||
|
static DDS_Security_AuthRequestMessageToken local_auth_request_token = DDS_SECURITY_TOKEN_INIT;
|
||||||
|
DDS_Security_GUID_t remote_participant_guid1;
|
||||||
|
DDS_Security_GUID_t remote_participant_guid2;
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_GuidPrefix_t prefix1 = {0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab};
|
||||||
|
DDS_Security_GuidPrefix_t prefix2 = {0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb};
|
||||||
|
DDS_Security_EntityId_t entityId = {{0xb0,0xb1,0xb2},0x1};
|
||||||
|
|
||||||
|
memcpy(&remote_participant_guid1.prefix, &prefix1, sizeof(prefix1));
|
||||||
|
memcpy(&remote_participant_guid1.entityId, &entityId, sizeof(entityId));
|
||||||
|
memcpy(&remote_participant_guid2.prefix, &prefix2, sizeof(prefix2));
|
||||||
|
memcpy(&remote_participant_guid2.entityId, &entityId, sizeof(entityId));
|
||||||
|
|
||||||
|
if (local_identity_handle == DDS_SECURITY_HANDLE_NIL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
initialize_identity_token(&remote_identity_token, RSA_2048_ALGORITHM_NAME, RSA_2048_ALGORITHM_NAME);
|
||||||
|
|
||||||
|
result = auth->validate_remote_identity(
|
||||||
|
auth,
|
||||||
|
&remote_identity_handle1,
|
||||||
|
&g_local_auth_request_token,
|
||||||
|
NULL,
|
||||||
|
local_identity_handle,
|
||||||
|
&remote_identity_token,
|
||||||
|
&remote_participant_guid1,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if ((result != DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_REQUEST) &&
|
||||||
|
(result != DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE)) {
|
||||||
|
printf("validate_remote_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
fill_auth_request_token(&g_remote_auth_request_token);
|
||||||
|
|
||||||
|
result = auth->validate_remote_identity(
|
||||||
|
auth,
|
||||||
|
&remote_identity_handle2,
|
||||||
|
&local_auth_request_token,
|
||||||
|
&g_remote_auth_request_token,
|
||||||
|
local_identity_handle,
|
||||||
|
&remote_identity_token,
|
||||||
|
&remote_participant_guid2,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if ((result != DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_REQUEST) &&
|
||||||
|
(result != DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE)) {
|
||||||
|
printf("validate_remote_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
deinitialize_identity_token(&remote_identity_token);
|
||||||
|
DDS_Security_DataHolder_deinit(&local_auth_request_token);
|
||||||
|
|
||||||
|
challenge1 = find_binary_property(&g_local_auth_request_token, AUTH_REQUEST_TOKEN_FUTURE_PROP_NAME);
|
||||||
|
challenge2 = find_binary_property(&g_remote_auth_request_token, AUTH_REQUEST_TOKEN_FUTURE_PROP_NAME);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
release_remote_identities(void)
|
||||||
|
{
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_boolean success;
|
||||||
|
|
||||||
|
if (remote_identity_handle1 != DDS_SECURITY_HANDLE_NIL) {
|
||||||
|
success = auth->return_identity_handle(auth, remote_identity_handle1, &exception);
|
||||||
|
if (!success) {
|
||||||
|
printf("return_identity_handle failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
reset_exception(&exception);
|
||||||
|
}
|
||||||
|
if (remote_identity_handle2 != DDS_SECURITY_HANDLE_NIL) {
|
||||||
|
success = auth->return_identity_handle(auth, remote_identity_handle2, &exception);
|
||||||
|
if (!success) {
|
||||||
|
printf("return_identity_handle failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
reset_exception(&exception);
|
||||||
|
}
|
||||||
|
|
||||||
|
DDS_Security_DataHolder_deinit(&g_local_auth_request_token);
|
||||||
|
DDS_Security_DataHolder_deinit(&g_remote_auth_request_token);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
fill_local_participant_data(
|
||||||
|
DDS_Security_OctetSeq *pdata,
|
||||||
|
uint32_t length)
|
||||||
|
{
|
||||||
|
uint32_t i;
|
||||||
|
|
||||||
|
pdata->_length = pdata->_maximum = length;
|
||||||
|
pdata->_buffer = ddsrt_malloc(length);
|
||||||
|
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
pdata->_buffer[i] = (unsigned char)(i % 256);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
release_local_participant_data(
|
||||||
|
DDS_Security_OctetSeq *pdata)
|
||||||
|
{
|
||||||
|
if (pdata) {
|
||||||
|
ddsrt_free(pdata->_buffer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CU_Init(ddssec_builtin_validate_begin_handshake_request)
|
||||||
|
{
|
||||||
|
int res = 0;
|
||||||
|
|
||||||
|
/* Only need the authentication plugin. */
|
||||||
|
plugins = load_plugins(NULL /* Access Control */,
|
||||||
|
&auth /* Authentication */,
|
||||||
|
NULL /* Cryptograpy */);
|
||||||
|
if (plugins) {
|
||||||
|
res = validate_local_identity();
|
||||||
|
if (res >= 0) {
|
||||||
|
res = validate_remote_identities();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
CU_Clean(ddssec_builtin_validate_begin_handshake_request)
|
||||||
|
{
|
||||||
|
release_local_identity();
|
||||||
|
release_remote_identities();
|
||||||
|
unload_plugins(plugins);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
compare_octet_seq(
|
||||||
|
const DDS_Security_OctetSeq *seq1,
|
||||||
|
const DDS_Security_OctetSeq *seq2)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
if (seq1 && seq2) {
|
||||||
|
r = (int)(seq2->_length - seq1->_length);
|
||||||
|
if (r == 0) {
|
||||||
|
r = memcmp(seq1->_buffer, seq2->_buffer, seq1->_length);
|
||||||
|
}
|
||||||
|
} else if (seq1 == seq2) {
|
||||||
|
r = 0;
|
||||||
|
} else {
|
||||||
|
r = (seq2 > seq1) ? 1 : -1;
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
valid_c_id_property(
|
||||||
|
const char *certificate,
|
||||||
|
const DDS_Security_OctetSeq *value)
|
||||||
|
{
|
||||||
|
if (value->_length == 0) {
|
||||||
|
CU_FAIL("c.id has no value");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (strncmp(certificate, (const char *)value->_buffer, value->_length) != 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
valid_string_value(
|
||||||
|
const char *expected,
|
||||||
|
const DDS_Security_OctetSeq *value)
|
||||||
|
{
|
||||||
|
size_t len = strlen(expected) + 1;
|
||||||
|
|
||||||
|
if (strncmp(expected, (const char *)value->_buffer, len) != 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static bool
|
||||||
|
validate_handshake_token(
|
||||||
|
DDS_Security_HandshakeMessageToken *token,
|
||||||
|
const DDS_Security_OctetSeq *challenge)
|
||||||
|
{
|
||||||
|
const DDS_Security_BinaryProperty_t *property;
|
||||||
|
|
||||||
|
if (!token->class_id || strcmp(token->class_id, AUTH_HANDSHAKE_REQUEST_TOKEN_CLASS_ID) != 0) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect class_id");
|
||||||
|
} else if ((property = find_binary_property(token, "c.id")) == NULL) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'c.id' not found");
|
||||||
|
} else if (!valid_c_id_property(&identity_certificate[6], &property->value)) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'c.id' value is invalid");
|
||||||
|
} else if ((property = find_binary_property(token, "c.pdata")) == NULL) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'c.pdata' not found");
|
||||||
|
} else if ((property = find_binary_property(token, "c.dsign_algo")) == NULL) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'c.dsign_algo' not found");
|
||||||
|
} else if (!valid_string_value(AUTH_DSIGN_ALGO_RSA_NAME, &property->value)) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'c.dsign_algo' incorrect value");
|
||||||
|
} else if ((property = find_binary_property(token, "c.kagree_algo")) == NULL) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'c.kagree_algo' not found");
|
||||||
|
} else if (!valid_string_value(AUTH_KAGREE_ALGO_ECDH_NAME, &property->value)) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'c.kagree_algo' incorrect value");
|
||||||
|
} else if ((property = find_binary_property(token, "hash_c1")) == NULL) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'hash_c1' not found");
|
||||||
|
} else if ((property = find_binary_property(token, "dh1")) == NULL) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'dh1' not found");
|
||||||
|
} else if ((property = find_binary_property(token, "challenge1")) == NULL) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'challenge1' not found");
|
||||||
|
} else if (challenge && compare_octet_seq(challenge, &property->value) != 0) {
|
||||||
|
CU_FAIL("HandshakeMessageToken incorrect property 'challenge1' incorrect value");
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CU_Test(ddssec_builtin_validate_begin_handshake_request,happy_day_challenge)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result;
|
||||||
|
DDS_Security_HandshakeHandle handshake_handle;
|
||||||
|
DDS_Security_HandshakeMessageToken handshake_token;
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_OctetSeq local_participant_data;
|
||||||
|
DDS_Security_boolean success;
|
||||||
|
|
||||||
|
CU_ASSERT_FATAL (auth != NULL);
|
||||||
|
CU_ASSERT_FATAL (local_identity_handle != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle1 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle2 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (auth->begin_handshake_request != NULL);
|
||||||
|
|
||||||
|
fill_local_participant_data(&local_participant_data, 82);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
&handshake_handle,
|
||||||
|
&handshake_token,
|
||||||
|
local_identity_handle,
|
||||||
|
remote_identity_handle2,
|
||||||
|
&local_participant_data,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE) {
|
||||||
|
printf("begin_handshake_request failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
|
||||||
|
CU_ASSERT_FATAL(result == DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE);
|
||||||
|
CU_ASSERT(handshake_handle != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT(validate_handshake_token(&handshake_token, NULL));
|
||||||
|
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
release_local_participant_data(&local_participant_data);
|
||||||
|
|
||||||
|
success= auth->return_handshake_handle(auth, handshake_handle, &exception);
|
||||||
|
CU_ASSERT_TRUE (success);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
printf("return_handshake_handle failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
DDS_Security_DataHolder_deinit(&handshake_token);
|
||||||
|
}
|
||||||
|
|
||||||
|
CU_Test(ddssec_builtin_validate_begin_handshake_request,happy_day_future_challenge)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result;
|
||||||
|
DDS_Security_HandshakeHandle handshake_handle;
|
||||||
|
DDS_Security_HandshakeMessageToken handshake_token;
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_OctetSeq local_participant_data;
|
||||||
|
DDS_Security_boolean success;
|
||||||
|
|
||||||
|
CU_ASSERT_FATAL (auth != NULL);
|
||||||
|
CU_ASSERT_FATAL (local_identity_handle != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle1 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle2 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (auth->begin_handshake_request != NULL);
|
||||||
|
|
||||||
|
fill_local_participant_data(&local_participant_data, 82);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
&handshake_handle,
|
||||||
|
&handshake_token,
|
||||||
|
local_identity_handle,
|
||||||
|
remote_identity_handle1,
|
||||||
|
&local_participant_data,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE) {
|
||||||
|
printf("begin_handshake_request failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
|
||||||
|
CU_ASSERT_FATAL(result == DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE);
|
||||||
|
CU_ASSERT(handshake_handle != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT(validate_handshake_token(&handshake_token, &challenge1->value));
|
||||||
|
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
release_local_participant_data(&local_participant_data);
|
||||||
|
|
||||||
|
success = auth->return_handshake_handle(auth, handshake_handle, &exception);
|
||||||
|
CU_ASSERT_TRUE (success);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
printf("return_handshake_handle failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
DDS_Security_DataHolder_deinit(&handshake_token);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CU_Test(ddssec_builtin_validate_begin_handshake_request,invalid_arguments)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result;
|
||||||
|
DDS_Security_HandshakeHandle handshake_handle;
|
||||||
|
DDS_Security_HandshakeMessageToken handshake_token;
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_OctetSeq local_participant_data;
|
||||||
|
|
||||||
|
CU_ASSERT_FATAL (auth != NULL);
|
||||||
|
CU_ASSERT_FATAL (local_identity_handle != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle1 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle2 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (auth->begin_handshake_request != NULL);
|
||||||
|
|
||||||
|
fill_local_participant_data(&local_participant_data, 82);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
NULL,
|
||||||
|
&handshake_token,
|
||||||
|
local_identity_handle,
|
||||||
|
remote_identity_handle1,
|
||||||
|
&local_participant_data,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_OK) {
|
||||||
|
printf("validate_local_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
CU_ASSERT (result == DDS_SECURITY_VALIDATION_FAILED);
|
||||||
|
CU_ASSERT (exception.minor_code != 0);
|
||||||
|
CU_ASSERT (exception.message != NULL);
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
&handshake_handle,
|
||||||
|
NULL,
|
||||||
|
local_identity_handle,
|
||||||
|
remote_identity_handle1,
|
||||||
|
&local_participant_data,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_OK) {
|
||||||
|
printf("validate_local_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
CU_ASSERT (result == DDS_SECURITY_VALIDATION_FAILED);
|
||||||
|
CU_ASSERT (exception.minor_code != 0);
|
||||||
|
CU_ASSERT (exception.message != NULL);
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
&handshake_handle,
|
||||||
|
&handshake_token,
|
||||||
|
0x1234598,
|
||||||
|
remote_identity_handle1,
|
||||||
|
&local_participant_data,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_OK) {
|
||||||
|
printf("validate_local_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
CU_ASSERT (result == DDS_SECURITY_VALIDATION_FAILED);
|
||||||
|
CU_ASSERT (exception.minor_code != 0);
|
||||||
|
CU_ASSERT (exception.message != NULL);
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
&handshake_handle,
|
||||||
|
&handshake_token,
|
||||||
|
local_identity_handle,
|
||||||
|
0x1234598,
|
||||||
|
&local_participant_data,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_OK) {
|
||||||
|
printf("validate_local_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
CU_ASSERT (result == DDS_SECURITY_VALIDATION_FAILED);
|
||||||
|
CU_ASSERT (exception.minor_code != 0);
|
||||||
|
CU_ASSERT (exception.message != NULL);
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
&handshake_handle,
|
||||||
|
&handshake_token,
|
||||||
|
local_identity_handle,
|
||||||
|
remote_identity_handle1,
|
||||||
|
NULL,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_OK) {
|
||||||
|
printf("validate_local_identity_failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
CU_ASSERT (result == DDS_SECURITY_VALIDATION_FAILED);
|
||||||
|
CU_ASSERT (exception.minor_code != 0);
|
||||||
|
CU_ASSERT (exception.message != NULL);
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
release_local_participant_data(&local_participant_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
CU_Test(ddssec_builtin_validate_begin_handshake_request,return_handle)
|
||||||
|
{
|
||||||
|
DDS_Security_ValidationResult_t result;
|
||||||
|
DDS_Security_HandshakeHandle handshake_handle;
|
||||||
|
DDS_Security_HandshakeMessageToken handshake_token;
|
||||||
|
DDS_Security_SecurityException exception = {NULL, 0, 0};
|
||||||
|
DDS_Security_OctetSeq local_participant_data;
|
||||||
|
DDS_Security_boolean success;
|
||||||
|
|
||||||
|
CU_ASSERT_FATAL (auth != NULL);
|
||||||
|
CU_ASSERT_FATAL (local_identity_handle != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle1 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (remote_identity_handle2 != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
CU_ASSERT_FATAL (auth->begin_handshake_request != NULL);
|
||||||
|
|
||||||
|
fill_local_participant_data(&local_participant_data, 82);
|
||||||
|
|
||||||
|
result = auth->begin_handshake_request(
|
||||||
|
auth,
|
||||||
|
&handshake_handle,
|
||||||
|
&handshake_token,
|
||||||
|
local_identity_handle,
|
||||||
|
remote_identity_handle2,
|
||||||
|
&local_participant_data,
|
||||||
|
&exception);
|
||||||
|
|
||||||
|
if (result != DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE) {
|
||||||
|
printf("begin_handshake_request failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
|
||||||
|
CU_ASSERT_FATAL (result == DDS_SECURITY_VALIDATION_PENDING_HANDSHAKE_MESSAGE);
|
||||||
|
CU_ASSERT (handshake_handle != DDS_SECURITY_HANDLE_NIL);
|
||||||
|
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
release_local_participant_data(&local_participant_data);
|
||||||
|
|
||||||
|
success = auth->return_handshake_handle(auth, handshake_handle, &exception);
|
||||||
|
CU_ASSERT_TRUE (success);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
printf("return_handshake_handle failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
success = auth->return_handshake_handle(auth, handshake_handle, &exception);
|
||||||
|
CU_ASSERT_FALSE (success);
|
||||||
|
CU_ASSERT (exception.minor_code != 0);
|
||||||
|
CU_ASSERT (exception.message != NULL);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
printf("return_handshake_handle failed: %s\n", exception.message ? exception.message : "Error message missing");
|
||||||
|
}
|
||||||
|
reset_exception(&exception);
|
||||||
|
|
||||||
|
DDS_Security_DataHolder_deinit(&handshake_token);
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEJTCCAw2gAwIBAgIBFzANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGjAYBgNVBAMTEUlkZW50
|
||||||
|
aXR5IENBIFRlc3QyMSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0ZWNo
|
||||||
|
LmNvbTAeFw0xODA3MjAwMDAwMDBaFw0yNzA3MTkyMzU5NTlaMG0xCzAJBgNVBAYT
|
||||||
|
Ak5MMQswCQYDVQQIEwJPVjETMBEGA1UEChMKQURMaW5rIElTVDEUMBIGA1UEAxML
|
||||||
|
QWxpY2UgVGVzdDIxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Fb60RkFrDsRAIRf
|
||||||
|
LMf2fsiRnw9Agp7yEbUsA4Zg4X+hRhBkk78fFtagLisWo4LbT4DqKzqQXCvVnOn9
|
||||||
|
a6uT0KsVejk2iaLoBy0fotQznudio3rzDpTfzP9eRDFVj8RJnl3JJ8P1DULxH7N0
|
||||||
|
TyDBuKZ1ibBfuKjPffqeCEzYKgAc8NG2FB4m6mXzHhXuKw6W2v0IbHz6KYldsavf
|
||||||
|
04rq7ztw0t67bexSQ4gLSVJEwiohAregm0dLvQnap5xd2qn0yETteTL8Y+Ujym1D
|
||||||
|
WAnwDdwA6+0j2a0wkyzOzYQpZMt95NyZ8kcoqEqO8KAN2HclqfjHlg9iDscbof5x
|
||||||
|
45SQwwIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFL66FT0vnlFE
|
||||||
|
+PKrtV+KhJoLsCOWMB8GA1UdIwQYMBaAFIFGyWkPWvNkBD2SCYj9H+NfnlOLMA8G
|
||||||
|
A1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYBBQUHAwEGCCsGAQUFBwMC
|
||||||
|
BggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggrBgEFBQcDCQYIKwYBBQUH
|
||||||
|
Aw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEBCwUAA4IBAQCsBINpBXSp
|
||||||
|
Xe3f5MMObeUXE2VhWZWIjMdDQRFDDjq6u1YR7rbffsCReiCX5zviU2dtVV8VN3MQ
|
||||||
|
k7wp8qEDKwP1ToMIwZGwT4Hfwei1eueJ1vuotgiGe0Gm3otXlGsb0C5otnsu63MM
|
||||||
|
OeFgkpZde3VpIqK9EmhgjWOD8TXc8Me7zBlYSEIaXkkwP0jAKRf5vFgz0WfE5ITx
|
||||||
|
SDKUO0OrcN789flO/OKLAHZ4cqNcxNPkMz7h9VBSgRRRk115HEa8Fe46nl1YpwRG
|
||||||
|
0urHlyAKoUV+J+I3Qy4+SwIDwix978hgGN3bKVyv9q0yAQRzpZ54EJOj4C7lNEpB
|
||||||
|
roGVpY4yYP/B
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEJDCCAwygAwIBAgIBAzANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxJDAiBgNVBAMTG0lkZW50
|
||||||
|
aXR5IENBIFRlc3QgV2l0aCBDaGFpbjEmMCQGCSqGSIb3DQEJARYXaW5mb0Bpc3Qu
|
||||||
|
YWRsaW5rdGVjaC5jb20wHhcNMTgwNjEzMDAwMDAwWhcNMjcwNjEwMjM1OTU5WjBw
|
||||||
|
MQswCQYDVQQGEwJOTDELMAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1Qx
|
||||||
|
FzAVBgNVBAMTDkJvYiBDaGFpbiBUZXN0MSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlz
|
||||||
|
dC5hZGxpbmt0ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||||
|
AMHm+qG5afCHFdmp98+Z+POB7vD3WhfghKVugh8FenewuPaaotKxiGAE0kCf8WXU
|
||||||
|
5l4XDR3iBWJsGDHll1yOyL4KW9grwfnfiJMl82uIzKGDiRJbFkXVOLF/DcVLsuqM
|
||||||
|
oRjlk09+nlrg/7xS96itgm6yueW/UOIXpo+ElCHwnrYnpuHHrYM0s7t1ls3QFSyd
|
||||||
|
a3INx+LkM6N/b+veVJF95yfe4GvVBhFpLkWtX4xKgZyMjczvmZ6LVNNSnthPhlZF
|
||||||
|
HmspQyqXrTnGyax3qyoloqh9ibDvAK5pUnzqlv/Dyyt110q3bXFR5A0wqfj0fqtp
|
||||||
|
7Mw4TdTkFQy1n4/Y4EuT8I8CAwEAAaOBuzCBuDAdBgNVHQ4EFgQUQpxLPHT5o/GQ
|
||||||
|
RwdBw2scINXnWlUwHwYDVR0jBBgwFoAUTVVCTRc4ST0XmE+EEsenSudwlwkwDwYD
|
||||||
|
VR0PAQH/BAUDAwf/gDBlBgNVHSUBAf8EWzBZBggrBgEFBQcDAQYIKwYBBQUHAwIG
|
||||||
|
CCsGAQUFBwMDBggrBgEFBQcDBAYIKwYBBQUHAwgGCCsGAQUFBwMJBggrBgEFBQcD
|
||||||
|
DQYIKwYBBQUHAw4GBysGAQUCAwUwDQYJKoZIhvcNAQELBQADggEBAJwd60WigqbB
|
||||||
|
/6CT0ekvXZdvIV5IaIKiy6KYU0/0ebPVXn0YKp9LQTE6lYCr6hZUcEjBfkFBZhAy
|
||||||
|
KJJOb2sUXAnYqnX/mIipiNb7oHsCHxVCKAwEcmxsS3tGl2CXgpKL8EQQFKJgSrC/
|
||||||
|
uzhf2QESQ0T5Mgni1jXXGf6SAwFAjk+mAM9bMdrtLOX39e5aKrgpZOHmdFke+m/K
|
||||||
|
upxP/M0/omTNNQaSfWDmfDvpdsRD9+mFG12Kzgpue2jut1qeICvSmcQsu2OBYG/Q
|
||||||
|
ZXMx8e8azoX0KB+njf826UcVgDkDmfwN9taOU2lFsmZAvYhpIslNwtH/Htu3zJWO
|
||||||
|
vQxyIh+kxFQ=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEKzCCAxOgAwIBAgIBFjANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGjAYBgNVBAMTEUlkZW50
|
||||||
|
aXR5IENBIFRlc3QyMSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0ZWNo
|
||||||
|
LmNvbTAeFw0xODA3MjAwMDAwMDBaFw0yNzA3MTkyMzU5NTlaMHMxCzAJBgNVBAYT
|
||||||
|
Ak5MMQswCQYDVQQIEwJPVjETMBEGA1UEChMKQURMaW5rIElTVDEaMBgGA1UEAxMR
|
||||||
|
SWRlbnRpdHkgQ0EgVGVzdDIxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlu
|
||||||
|
a3RlY2guY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIweDOdB
|
||||||
|
xotexcDiUdbIdDLu9A6/KSpkxUJnYb2iRhBonmCNFvErEokso/Dga6QT3rg83UCg
|
||||||
|
GMJBSJSZhq/j+eZweHoXS8Ccet/aF2iNj5A5Uhn476M3zMg+rCoos2yKlpZLOz1x
|
||||||
|
QjrRJfeOoBHvkHkxBeupnnQPx4oAro7zoXMIO83NKLwCROC/kGq1ktW8fbKa5THQ
|
||||||
|
z0QfZG3zAeD93N+dTAqA+jkCfzbrQepF243Tu4cLaGwVALZ/8cZ7sky8+OOmKnBU
|
||||||
|
P9r+U/4L62DVJYnYkTGnYEwqXcM1b8/JHasmKEaHXgAu/UI5i/SZfRPZUyC1ERSv
|
||||||
|
tX6k7sBxZZSPLQIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFIFG
|
||||||
|
yWkPWvNkBD2SCYj9H+NfnlOLMB8GA1UdIwQYMBaAFIFGyWkPWvNkBD2SCYj9H+Nf
|
||||||
|
nlOLMA8GA1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYBBQUHAwEGCCsG
|
||||||
|
AQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggrBgEFBQcDCQYI
|
||||||
|
KwYBBQUHAw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEBCwUAA4IBAQCK
|
||||||
|
SkemYQIvsslkMc8PNHSk2om4xk7hUXkatAZPN9dvRravu3PJqMWxpQ0TWbddrkBL
|
||||||
|
he7/ARC2G9vVUwQl2b8K1Rjt/nZ3j+NPvhCDzcPyxjornyN8IG1NJQVH18fTxR23
|
||||||
|
6PvDBE0H2trA3WJgKo6Wlxo6CHWts8ulFWWXBE1nNQw30hU49FDsFn3nz6Gry4ti
|
||||||
|
/ouAvbz+UXSsT9R+zkci3A394sEsOCZSStgAnXsejU45pCt6OtCGaLfDvEPp21az
|
||||||
|
OEjuIaj6Kbd+MHeLyPoe+d1Bkl39OnAUEJ8q2HdwvIg2ZqP6h0agm5gpZo/ALDWn
|
||||||
|
9P3owIGVsHFGkYqhHc+K
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIENDCCAxygAwIBAgIBAjANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDYxMzAwMDAwMFoXDTI3MDYxMDIzNTk1OVowfTELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMSQwIgYDVQQDExtJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0IFdpdGggQ2hhaW4xJjAkBgkqhkiG9w0BCQEWF2luZm9A
|
||||||
|
aXN0LmFkbGlua3RlY2guY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
||||||
|
AQEA1r8Q0V8ZVeBs8tPMF0N+JlBynl1Zn/89vwSsU4m7y6ixUcW/y3r12CMeA0cH
|
||||||
|
g6yOaOdHsZ8pRlPRwy9YmeOwLsMOUHAURP2uPiTjSf3pttUIf0jv602GyirNzoS7
|
||||||
|
7mHiyTtV80ZMzZlLIJ3gaJJlG4DjitFuFcjv8sOmviFjkn1kOjkAz1nKgsCiHvvg
|
||||||
|
fcJlYPrtLfle9SzvZ3MTq4ob+/EFu9nt5bYYs7p7Br1TGWctUw98l2mSn/FhfDBw
|
||||||
|
9bb7ZhcKB7W6PGy2Os5AnkdTJKHoOQT+RmnHzPBhab0BoKuy8IhfW2GyqC8rL5Tm
|
||||||
|
/UVLUvnx4Zzqz//3IyA2FTb1HQIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYD
|
||||||
|
VR0OBBYEFE1VQk0XOEk9F5hPhBLHp0rncJcJMB8GA1UdIwQYMBaAFER4R6N3MQ1W
|
||||||
|
l7gn+R8wwHloDCVZMA8GA1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYB
|
||||||
|
BQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggr
|
||||||
|
BgEFBQcDCQYIKwYBBQUHAw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQCbl7ed4p66G6WquxO7ceZFvYKn3kDErjCfXHcqHxBnA2xTpoZCGj95
|
||||||
|
Qpirqo6N4UcLX5sn3CmgyVk0dYvlti/53FJgZ9XQDNxBuEYWPkY7vO+Uo0WdYpGz
|
||||||
|
ZDNIUQpiPMA7bHvwKldTIs77xxtnw9kbBU2k0xQyb2tdZNfD5YqSI1MeUtpEpNFW
|
||||||
|
sbC8+mQ3clzWpjF8eHH1fFSAmlJ+z1Uqmtt2FK0vRz+MQcpydwvpMnfqGdcwhGPQ
|
||||||
|
X4HZreLObjBA8KUEkUB3+rZXuELBgkk/c8/jRZl7QF5jJDLQCCLg7KoYBKN2GuTt
|
||||||
|
/dzeSnP7VZm/nTL8wpCvKgSOwOGgklf2
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA0Fb60RkFrDsRAIRfLMf2fsiRnw9Agp7yEbUsA4Zg4X+hRhBk
|
||||||
|
k78fFtagLisWo4LbT4DqKzqQXCvVnOn9a6uT0KsVejk2iaLoBy0fotQznudio3rz
|
||||||
|
DpTfzP9eRDFVj8RJnl3JJ8P1DULxH7N0TyDBuKZ1ibBfuKjPffqeCEzYKgAc8NG2
|
||||||
|
FB4m6mXzHhXuKw6W2v0IbHz6KYldsavf04rq7ztw0t67bexSQ4gLSVJEwiohAreg
|
||||||
|
m0dLvQnap5xd2qn0yETteTL8Y+Ujym1DWAnwDdwA6+0j2a0wkyzOzYQpZMt95NyZ
|
||||||
|
8kcoqEqO8KAN2HclqfjHlg9iDscbof5x45SQwwIDAQABAoIBAG0dYPeqd0IhHWJ7
|
||||||
|
8azufbchLMN1pX/D51xG2uptssfnpHuhkkufSZUYi4QipRS2ME6PYhWJ8pmTi6lH
|
||||||
|
E6cUkbI0KGd/F4U2gPdhNrR9Fxwea5bbifkVF7Gx/ZkRjZJiZ3w9+mCNTQbJDKhh
|
||||||
|
wITAzzT6WYznhvqbzzBX1fTa6kv0GAQtX7aHKM+XIwkhX2gzU5TU80bvH8aMrT05
|
||||||
|
tAMGQqkUeRnpo0yucBl4VmTZzd/+X/d2UyXR0my15jE5iH5o+p+E6qTRE9D+MGUd
|
||||||
|
MQ6Ftj0Untqy1lcog1ZLL6zPlnwcD4jgY5VCYDgvabnrSwymOJapPLsAEdWdq+U5
|
||||||
|
ec44BMECgYEA/+3qPUrd4XxA517qO3fCGBvf2Gkr7w5ZDeATOTHGuD8QZeK0nxPl
|
||||||
|
CWhRjdgkqo0fyf1cjczL5XgYayo+YxkO1Z4RUU+8lJAHlVx9izOQo+MTQfkwH4BK
|
||||||
|
LYlHxMoHJwAOXXoE+dmBaDh5xT0mDUGU750r763L6EFovE4qRBn9hxkCgYEA0GWz
|
||||||
|
rpOPNxb419WxG9npoQYdCZ5IbmEOGDH3ReggVzWHmW8sqtkqTZm5srcyDpqAc1Gu
|
||||||
|
paUveMblEBbU+NFJjLWOfwB5PCp8jsrqRgCQSxolShiVkc3Vu3oyzMus9PDge1eo
|
||||||
|
9mwVGO7ojQKWRu/WVAakENPaAjeyyhv4dqSNnjsCgYEAlwe8yszqoY1k8+U0T0G+
|
||||||
|
HeIdOCXgkmOiNCj+zyrLvaEhuS6PLq1b5TBVqGJcSPWdQ+MrglbQIKu9pUg5ptt7
|
||||||
|
wJ5WU+i9PeK9Ruxc/g/BFKYFkFJQjtZzb+nqm3wpul8zGwDN/O/ZiTqCyd3rHbmM
|
||||||
|
/dZ/viKPCZHIEBAEq0m3LskCgYBndzcAo+5k8ZjWwBfQth5SfhCIp/daJgGzbYtR
|
||||||
|
P/BenAsY2KOap3tjT8Fsw5usuHSxzIojX6H0Gvu7Qzq11mLn43Q+BeQrRQTWeFRc
|
||||||
|
MQdy4iZFZXNNEp7dF8yE9VKHwdgSJPGUdxD6chMvf2tRCN6mlS171VLV6wVvZvez
|
||||||
|
H/vX5QKBgD2Dq/NHpjCpAsECP9awmNF5Akn5WJbRGmegwXIih2mOtgtYYDeuQyxY
|
||||||
|
ZCrdJFfIUjUVPagshEmUklKhkYMYpzy2PQDVtaVcm6UNFroxT5h+J+KDs1LN1H8G
|
||||||
|
LsASrzyAg8EpRulwXEfLrWKiu9DKv8bMEgO4Ovgz8zTKJZIFhcac
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEAweb6oblp8IcV2an3z5n484Hu8PdaF+CEpW6CHwV6d7C49pqi
|
||||||
|
0rGIYATSQJ/xZdTmXhcNHeIFYmwYMeWXXI7Ivgpb2CvB+d+IkyXza4jMoYOJElsW
|
||||||
|
RdU4sX8NxUuy6oyhGOWTT36eWuD/vFL3qK2CbrK55b9Q4hemj4SUIfCetiem4cet
|
||||||
|
gzSzu3WWzdAVLJ1rcg3H4uQzo39v695UkX3nJ97ga9UGEWkuRa1fjEqBnIyNzO+Z
|
||||||
|
notU01Ke2E+GVkUeaylDKpetOcbJrHerKiWiqH2JsO8ArmlSfOqW/8PLK3XXSrdt
|
||||||
|
cVHkDTCp+PR+q2nszDhN1OQVDLWfj9jgS5PwjwIDAQABAoIBAHfgWhED9VgL29le
|
||||||
|
uGMzmPLK4LM+6Qcb+kXghTeyhl1a928WeRVzRpG+SVJEz9QaBHYlICnaY2PO2kJ2
|
||||||
|
49YIPFkpRFDn9JuLs/7tFonj4Eb2cBbWE3YG9W7e0t+oBiv1117yB9m8uSAMPG7s
|
||||||
|
iEpTQvE3M7CzT8kHwCS4XXCCN0z7LqKyZ1heScjdfhV3D2TnFFjdtQ/9KfQa3hIc
|
||||||
|
6ftbpi4EKbfasspyqfrJ/cqjHzse9iEXLOZJhs+atBAKe/uJ4Hc3LRPbX4MPniAp
|
||||||
|
JJrldXFK9p+HILlbXvu+5n+DSGbZmT1x9a/E9suGyoJiASDH2Ax4yCVTi+v8C1R2
|
||||||
|
aKdU1LkCgYEA/3dFuM6zIHwiJ0GKT0gtJL6J3m+i51SNcRIm8deXt6HULMpUNajj
|
||||||
|
vZ1bgQm/h+uRBlPV3swkaVxvPTIabOTY4gmCBSzvVCSIAKHVc/+5Nkl9KruwSq4G
|
||||||
|
tctmXZ7ymMDi+6QGCJTJkAx6jptXyrzC00HOjXOwyQ+iDipqgr3A8FsCgYEAwk7B
|
||||||
|
2/hi569EIHFRT6nz/JMqQVPZ/MJDKoKhffTbnjQ5OAzpiVN6cyThMM1iVJEBFNhx
|
||||||
|
OEacy60Qj0TtR1oYrQSRSLm58TTxiuB4Pohbmg3iU+kSM/eTq/ups/Ul1oCs2eAb
|
||||||
|
POfweD3c4d4i7sN8bUNQXehiE4MOlK9TYQy39t0CgYAJht0mwy6S644qgJsz0bE9
|
||||||
|
SY3Cqc8daV3M9axWIIAb7QEImpMBXUcA7zlWWpK18ub5oW68XEiPVU8grRmnLfGY
|
||||||
|
nFoo70ANlz8rJt3a8ZJqn9r3GQC+CDdf2DH9E8xgPfE5CSjgcQwDPzPi1ZA0k02A
|
||||||
|
q1eUltfk55xXguVt8r2bOQKBgQC7+kldr1yv20VDRZ1uPnMGRLE6Zg6bkqw78gid
|
||||||
|
vEbDNK6uZP+BlTr/LgyVk/yu52Fucz6FPPrvqEw+7mXHA4ifya1r+BHFIn0S57os
|
||||||
|
dOp5jTkKCI9NqxQ3683vhRjH/dA7L63qLFDdYqvP74FID+LOKbMURn6rdbyjZ0J4
|
||||||
|
vz8yGQKBgHIzcKlQosRxf+KptOPMGRs30L9PnH+sNmTo2SmEzAGkBkt1msGRh/2l
|
||||||
|
uT3hOEhUXL9knRyXwQSXgrIwr9QwI5rGS5FAgX26TgBtPBDs2NuyyhhS5yxsiEPT
|
||||||
|
BR+EjQFW9dzRkpRJgvsG4DcNAhFn7fQqFNcWXgFWuBXmGNkdtEGR
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,14 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICEDCCAbegAwIBAgIJAPOifu8ejrRRMAoGCCqGSM49BAMCMGUxCzAJBgNVBAYT
|
||||||
|
Ak5MMRMwEQYDVQQIDApTb21lLVN0YXRlMR8wHQYDVQQKDBZBRExJTksgVGVjaG5v
|
||||||
|
bG9neSBCLlYuMSAwHgYDVQQDDBdDSEFNXzU3MCBDQSBjZXJ0aWZpY2F0ZTAeFw0x
|
||||||
|
OTAyMTgxMDQwMTZaFw00NjA3MDYxMDQwMTZaMGUxCzAJBgNVBAYTAk5MMRMwEQYD
|
||||||
|
VQQIDApTb21lLVN0YXRlMR8wHQYDVQQKDBZBRExJTksgVGVjaG5vbG9neSBCLlYu
|
||||||
|
MSAwHgYDVQQDDBdDSEFNXzU3MCBDQSBjZXJ0aWZpY2F0ZTBZMBMGByqGSM49AgEG
|
||||||
|
CCqGSM49AwEHA0IABMXCYXBHEryADoYXMEE0Jw9aHlA7p3KVFzuypxuez0n7rKoX
|
||||||
|
k9kanNtrw5o2X4WSWKM7zkH4I6AU7xSAQgJN+8GjUDBOMB0GA1UdDgQWBBR1Llq9
|
||||||
|
zrRrTJLSvUJykksncZ+HsDAfBgNVHSMEGDAWgBR1Llq9zrRrTJLSvUJykksncZ+H
|
||||||
|
sDAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIHKRM3VeB2F7z3nJT752
|
||||||
|
gY5mNdj91ulmNX84TXA7UHNKAiA2ytpsV4OKURHkjyn1gnW48JDKtHGZF6/tMNvX
|
||||||
|
VrDITA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,50 @@
|
||||||
|
Certificate:
|
||||||
|
Data:
|
||||||
|
Version: 3 (0x2)
|
||||||
|
Serial Number: 4096 (0x1000)
|
||||||
|
Signature Algorithm: ecdsa-with-SHA256
|
||||||
|
Issuer: C=NL, ST=Some-State, O=ADLINK Technology B.V., CN=CHAM_570 CA certificate
|
||||||
|
Validity
|
||||||
|
Not Before: Feb 18 10:52:41 2019 GMT
|
||||||
|
Not After : Jul 6 10:52:41 2046 GMT
|
||||||
|
Subject: C=NL, ST=Some-State, O=ADLINK Technology B.V., CN=CHAM_570 Identity certificate
|
||||||
|
Subject Public Key Info:
|
||||||
|
Public Key Algorithm: id-ecPublicKey
|
||||||
|
Public-Key: (256 bit)
|
||||||
|
pub:
|
||||||
|
04:9d:b5:7b:f5:fe:63:da:24:e4:0c:26:c5:32:55:
|
||||||
|
55:b3:7f:7a:60:ea:0d:56:2c:0a:85:e0:5b:85:5a:
|
||||||
|
01:1b:69:fc:23:79:98:33:d6:60:d5:d9:ab:1e:1d:
|
||||||
|
7a:1e:c2:5f:ad:30:9b:73:45:40:39:d9:07:f7:59:
|
||||||
|
8d:44:f6:6b:e3
|
||||||
|
ASN1 OID: prime256v1
|
||||||
|
NIST CURVE: P-256
|
||||||
|
X509v3 extensions:
|
||||||
|
X509v3 Basic Constraints:
|
||||||
|
CA:false
|
||||||
|
Netscape Comment:
|
||||||
|
OpenSSL Generated Certificate
|
||||||
|
X509v3 Subject Key Identifier:
|
||||||
|
C6:68:7E:D7:20:B3:51:4B:D4:50:54:26:12:86:BE:9B:EA:55:A1:EA
|
||||||
|
X509v3 Authority Key Identifier:
|
||||||
|
keyid:75:2E:5A:BD:CE:B4:6B:4C:92:D2:BD:42:72:92:4B:27:71:9F:87:B0
|
||||||
|
|
||||||
|
Signature Algorithm: ecdsa-with-SHA256
|
||||||
|
30:45:02:21:00:b2:a7:be:fb:0b:d4:e2:87:b0:2c:c9:b8:fa:
|
||||||
|
10:b0:18:4b:dc:6a:bc:58:55:e8:22:46:93:d8:b1:5b:50:17:
|
||||||
|
77:02:20:2a:cf:42:10:fc:7e:02:39:37:44:4a:cf:9b:a3:9a:
|
||||||
|
55:cb:15:2d:12:86:06:7e:d4:b8:24:7a:57:13:48:b5:69
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICOzCCAeGgAwIBAgICEAAwCgYIKoZIzj0EAwIwZTELMAkGA1UEBhMCTkwxEzAR
|
||||||
|
BgNVBAgMClNvbWUtU3RhdGUxHzAdBgNVBAoMFkFETElOSyBUZWNobm9sb2d5IEIu
|
||||||
|
Vi4xIDAeBgNVBAMMF0NIQU1fNTcwIENBIGNlcnRpZmljYXRlMB4XDTE5MDIxODEw
|
||||||
|
NTI0MVoXDTQ2MDcwNjEwNTI0MVowazELMAkGA1UEBhMCTkwxEzARBgNVBAgMClNv
|
||||||
|
bWUtU3RhdGUxHzAdBgNVBAoMFkFETElOSyBUZWNobm9sb2d5IEIuVi4xJjAkBgNV
|
||||||
|
BAMMHUNIQU1fNTcwIElkZW50aXR5IGNlcnRpZmljYXRlMFkwEwYHKoZIzj0CAQYI
|
||||||
|
KoZIzj0DAQcDQgAEnbV79f5j2iTkDCbFMlVVs396YOoNViwKheBbhVoBG2n8I3mY
|
||||||
|
M9Zg1dmrHh16HsJfrTCbc0VAOdkH91mNRPZr46N7MHkwCQYDVR0TBAIwADAsBglg
|
||||||
|
hkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0O
|
||||||
|
BBYEFMZoftcgs1FL1FBUJhKGvpvqVaHqMB8GA1UdIwQYMBaAFHUuWr3OtGtMktK9
|
||||||
|
QnKSSydxn4ewMAoGCCqGSM49BAMCA0gAMEUCIQCyp777C9Tih7Asybj6ELAYS9xq
|
||||||
|
vFhV6CJGk9ixW1AXdwIgKs9CEPx+Ajk3RErPm6OaVcsVLRKGBn7UuCR6VxNItWk=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,14 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICFTCCAbygAwIBAgICEAEwCgYIKoZIzj0EAwIwWjELMAkGA1UEBhMCTkwxEzAR
|
||||||
|
BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5
|
||||||
|
IEx0ZDETMBEGA1UEAwwKQ0hBTTUwMF9DQTAeFw0xODAyMTkxMDMyMjRaFw0xOTAy
|
||||||
|
MTkxMDMyMjRaMGExCzAJBgNVBAYTAk5MMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
||||||
|
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxGjAYBgNVBAMMEUNIQU01
|
||||||
|
NjkgdW5zdXAga2V5MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEKt3HYPnDlEOS
|
||||||
|
zYqTzT2patyreLHN2Jty22KXwjaNAjgrwujdPr+MW38DsyBF5Yn9o3sweTAJBgNV
|
||||||
|
HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
|
||||||
|
Y2F0ZTAdBgNVHQ4EFgQUG9MuQz3W/AKA98AyOKhI2af9I+0wHwYDVR0jBBgwFoAU
|
||||||
|
ACsYsaEsZfjfRVrj0IBmcsncVyMwCgYIKoZIzj0EAwIDRwAwRAIgfhisahVmgghI
|
||||||
|
GaaQavdKHpM/OTVODZPzYjky6Am+z08CIBidnuuznXrZtr78oy/tAES/7Lz8P5Iw
|
||||||
|
Q1y5Vo8CdXQQ
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,5 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgP3SnBXzcCc0uUEiG
|
||||||
|
0CPNdcV0hBewOnVoh4d9q9E5U5ihRANCAASdtXv1/mPaJOQMJsUyVVWzf3pg6g1W
|
||||||
|
LAqF4FuFWgEbafwjeZgz1mDV2aseHXoewl+tMJtzRUA52Qf3WY1E9mvj
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,5 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEVTBTAgEBBBh8p6kwBS7jT86ctN33
|
||||||
|
Vs4vosHh7upPZBWhNAMyAAQq3cdg+cOUQ5LNipPNPalq3Kt4sc3Ym3LbYpfCNo0C
|
||||||
|
OCvC6N0+v4xbfwOzIEXlif0=
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,8 @@
|
||||||
|
-----BEGIN EC PRIVATE KEY-----
|
||||||
|
Proc-Type: 4,ENCRYPTED
|
||||||
|
DEK-Info: AES-256-CBC,11055B75D406068EB1FF850646228EA9
|
||||||
|
|
||||||
|
GUnwN8e2gvUkopN3ak+2dK1dSTSKSJguers3h5C+qQDq57By933ijCCjUTu2LY/F
|
||||||
|
ERH6m8UD6H5ij/QDsXLx6tH/dFQ7An+Zao3eD2N2zquGED/OfTQJFv3gBKs4RUtg
|
||||||
|
66dfuv9mNSXt7Rnu9uBNtodm5JGifczdmIPHn0mNY2g=
|
||||||
|
-----END EC PRIVATE KEY-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEmTCCA4GgAwIBAgIIZ5gEIUFhO5wwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE
|
||||||
|
BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
|
||||||
|
ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE4MDIx
|
||||||
|
MjE1MDUwMFoYDzIyMjIwMjIyMjIyMjAwWjBfMQswCQYDVQQGEwJOTDETMBEGA1UE
|
||||||
|
CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
|
||||||
|
MRgwFgYDVQQDEw9DSEFNNTAwIHJvb3QgY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||||
|
DwAwggEKAoIBAQC6Fa3TheL+UrdZCp9GhU/2WbneP2t/avUa3muwDttPxeI2XU9k
|
||||||
|
ZjBR95mAXme4SPXHk5+YDN319AqIje3oKhzky/ngvKH2GkoJKYxWnuDBfMEHdViz
|
||||||
|
2Q9/xso2ZvH50ukwWa0pfx2/EVV1wRxeQcRd/UVfq3KTJizG0M88mOYvGEAw3LFf
|
||||||
|
zef7k1aCuOofQmBvLukUudcYpMzfyHFp7lQqU4CcrrR5RtmfiUfrWfdGLea2iPDB
|
||||||
|
pJgN8ESOMwEHtOTEBDclYnH9L4t7CHQz+fXXS5IWFsDK9fCMQjnxDsDVeNrNzTYL
|
||||||
|
FaZrMg9S6IUQCEsQWsnq5weS8omOpVLUm9klAgMBAAGjggFVMIIBUTAMBgNVHRME
|
||||||
|
BTADAQH/MB0GA1UdDgQWBBQg2FZB/j8uWDVnJhjwXkX278znSTAfBgNVHSMEGDAW
|
||||||
|
gBQg2FZB/j8uWDVnJhjwXkX278znSTAPBgNVHQ8BAf8EBQMDB/+AMIHvBgNVHSUB
|
||||||
|
Af8EgeQwgeEGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwME
|
||||||
|
BggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
|
||||||
|
KwYBBAGCNwoDAwYKKwYBBAGCNwoDBAYJYIZIAYb4QgQBBgsrBgEEAYI3CgMEAQYI
|
||||||
|
KwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUIAgIGCisGAQQBgjcU
|
||||||
|
AgIGCCsGAQUFBwMJBggrBgEFBQcDDQYIKwYBBQUHAw4GBysGAQUCAwUwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAKHmwejWRwGE1wf1k2rG8SNRV/neGsZ6Qfqf6co3TpR/Wi1s
|
||||||
|
iZDvSeT/rbqNBS7z34xnG88NIUwu00y78e8Mfon31ZZbK4Uo7fla9/D3ukdJqPQC
|
||||||
|
LKdbKJjR2kH+KCukY/1rghjJ8/X+t2egBit0LCOdsFCl07Sfksb9kpGUIZSFcYYm
|
||||||
|
geqhjhoNwxazzHiw+QWHC5HG9248JIizBmy1aymNWuMnPudhjHAnPcsIlqMVNq3t
|
||||||
|
Rv9ap7S8JeCxHVRPJvJeCwXWvW3dW/v3xH52Yn/fqRblN1w9Fxz5NhopKx0gj/Jd
|
||||||
|
sw2N4Fk4gaOWEolFpa0bwNw8nAx7moehZpowzfw=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEAuhWt04Xi/lK3WQqfRoVP9lm53j9rf2r1Gt5rsA7bT8XiNl1P
|
||||||
|
ZGYwUfeZgF5nuEj1x5OfmAzd9fQKiI3t6Coc5Mv54Lyh9hpKCSmMVp7gwXzBB3VY
|
||||||
|
s9kPf8bKNmbx+dLpMFmtKX8dvxFVdcEcXkHEXf1FX6tykyYsxtDPPJjmLxhAMNyx
|
||||||
|
X83n+5NWgrjqH0Jgby7pFLnXGKTM38hxae5UKlOAnK60eUbZn4lH61n3Ri3mtojw
|
||||||
|
waSYDfBEjjMBB7TkxAQ3JWJx/S+Lewh0M/n110uSFhbAyvXwjEI58Q7A1Xjazc02
|
||||||
|
CxWmazIPUuiFEAhLEFrJ6ucHkvKJjqVS1JvZJQIDAQABAoIBAFktMHtw60J0A3fB
|
||||||
|
dmkGVDa78y4F+I88g6/XrYXW6NUHAQyKlRSJQFjXrpFtLImNNXPqVA47BFftFusw
|
||||||
|
ETY0kFo5QkuoOnnFSXuwlJeiVhWDosHfQ54UxK+4ZYnCte3CXIwWPbzoNSoutWTU
|
||||||
|
IbMuE1vzlz5s3GCWZ9jzkoz4vT8NrkucEQ2sxvAVWk2//SoQljN+b4BLDdsWl3Bq
|
||||||
|
l+9JR2EzROXrPH5voYUZV17LbnCOmU+6ucxlGu704oqLJBxtNyYKsSEh4KMo4lX4
|
||||||
|
bOZVSct3LXifj5BQmF9vbi5FiJqFGtoY4iBw0IUq05CJ4nsQuW1ZLucXaw1tBRKn
|
||||||
|
S1l/C0ECgYEA9zWVLQtWGrOZ7we7dTbF5ghZ541NjR9NmBFET5lNRU5yDG0poRdh
|
||||||
|
WD2qioGJigV6ZaEoXny0jFqqqqPM5S/sDRtoicK+XlFuhURw0CZCAsisjVhCDGXU
|
||||||
|
+FJRbR+As7NFvb/9itvNE+PD4p39UXObePzM9JnlHSP7Ml0KdJqcQHUCgYEAwLOp
|
||||||
|
Sp9k0CbFy/lQCSBbBiiu6ol/OxSzOBuZsFIbV8ILcn8v5NWdrcArssJBMdLTIaHN
|
||||||
|
nrTxKOOAzFnPW6DeRmWM/NnwizB/a6uo34q6ywmXmgFSQPX86XTVZCdD96nNik0C
|
||||||
|
KaEY2SqJxrnYstVApWRJAwy7T2jxJEj0aEZBH/ECgYEAmYyTuyXWdsFl9N2lp1m9
|
||||||
|
NHOtfDD9oZF2/eSDvLlpEIp4NpW7jM7b7RZojp2FU9CxRN0EGSR2dNOAPHt/sj/A
|
||||||
|
7CdBGIh4/FayQl7Pf8qzp80DuMvAQrkhvphK8W/m3jeVMxZEovKCAD+yFVmy1dvs
|
||||||
|
DwtfNvM8J4yI47B85Q5/zV0CgYArxGKN/VfjYvsH0e9Ys02ZP4JC6MnJ/HCcLMCi
|
||||||
|
aHOnYf5BmhuhqNbwULZcGny+OTkU6XAPPN+NPubRAxDyqb3yVTxJbaKRqok2Rj3L
|
||||||
|
z/GPDfWt1+D7uiMgTxXscnKgfKOfZtA37kv7fwrd5PYP4BmXtwhSNgERDy+94wgH
|
||||||
|
6vT9sQKBgBqsTsdDmBmKLQM/JzQC2AeQo0/ZFZIXdsiCShMbo2XALlaxZDYDu1it
|
||||||
|
M/zkpmWmHncrBnnW3h6ME1ZZj2HGTowDuJvQqR7cZW5jWY3uLpOnEAGeOoKPhfOP
|
||||||
|
IW2pVPZXq3Zl1yn86oG7C7poPRq0PRu+q2HtHP6/M0NgtGBx8F9M
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEQTCCAymgAwIBAgIINpuaAAnrQZIwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE
|
||||||
|
BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
|
||||||
|
ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE3MDIy
|
||||||
|
MjIyMjIwMFoYDzIyMjIwMjIyMjIyMjAwWjBcMQswCQYDVQQGEwJOTDETMBEGA1UE
|
||||||
|
CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
|
||||||
|
MRUwEwYDVQQDEwxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
||||||
|
ggEKAoIBAQDCpVhivH/wBIyu74rvQncnSZqKyspN6CvD1pmV9wft5PHhVt9jV79v
|
||||||
|
gSub5LADoRHAgFdv9duYgBr17Ob6uRrIY4B18CcrCjhQcC4gjx8y2jl9PeYm+qYD
|
||||||
|
3o44FYBrBq0QCnrQgKsb/qX9Z+Mw/VUiw65x68W876LEHQQoEgT4kxSuagwBoVRk
|
||||||
|
ePD6fYAKmT4XS3x+O0v+rHESTcsKF6yMadgp7h3eH1b8kJTzSx8JV9Zzq++mxjox
|
||||||
|
qhbBVP5nDze2hhSIeCkCvSrx7efkgKS4AQXa5/Z44GiAu1TfXXUqdic9rxwD0edn
|
||||||
|
ajNElnZe7sjok/0yuqvH+2hSqpNva/zpAgMBAAGjggEAMIH9MAwGA1UdDwQFAwMH
|
||||||
|
/4AwgewGA1UdJQSB5DCB4QYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDAwYI
|
||||||
|
KwYBBQUHAwQGCCsGAQUFBwMIBgorBgEEAYI3AgEVBgorBgEEAYI3AgEWBgorBgEE
|
||||||
|
AYI3CgMBBgorBgEEAYI3CgMDBgorBgEEAYI3CgMEBglghkgBhvhCBAEGCysGAQQB
|
||||||
|
gjcKAwQBBggrBgEFBQcDBQYIKwYBBQUHAwYGCCsGAQUFBwMHBggrBgEFBQgCAgYK
|
||||||
|
KwYBBAGCNxQCAgYIKwYBBQUHAwkGCCsGAQUFBwMNBggrBgEFBQcDDgYHKwYBBQID
|
||||||
|
BTANBgkqhkiG9w0BAQsFAAOCAQEAawdHy0Xw7nTK2ltp91Ion6fJ7hqYuj///zr7
|
||||||
|
Adt6uonpDh/xl3esuwcFimIJrJrHujnGkL0nLddRCikmnzuBMNDWS6yq0/Ckl/YG
|
||||||
|
yjNr44dlX24wo+MVAgkj3/8CyWDZ3a8kBg9QT3bs2SqbjmhTrXN1DRyf9S5vJysE
|
||||||
|
I7V1gTN66BeKL64hOrAlRVrEu8Ds6TWL6Q/YH+61ViZkoLTeSaPjH4nknaFr4C35
|
||||||
|
iji0JhkyfRHRRVPHFnaj25AkxOrSV64qVKoTMjDl5fji5iMGtjm6iJ7q05ml/qDl
|
||||||
|
nLotHXemZNvYhbwUmRzbt4Dls9EMH4VRbP85I94nM5TAvtHVNA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,17 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICrjCCAZYCCQDn8i4K9c4ErjANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjE2MTAy
|
||||||
|
MzM2WhcNMjMwODA5MTAyMzM2WjBXMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYD
|
||||||
|
VQQDDAdDSEFNNTY5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDS5w0h8L70
|
||||||
|
hkreKchVbTzfz4CrBLY4iADNSqPx9uW7DxjeHyLbKT2eRViY/xPuPXQmfRim01QM
|
||||||
|
sZWKvFr6k9WMsJ6ItNtCyKS/beONqvXOddIu+4IhNzEGs5v4pTJAOzraoZcVmXnf
|
||||||
|
Mr9G/baMYfMG47JR5HaSHDI5esa2STHt4wIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
|
||||||
|
AQBdZ2ijHYH8TkOGBqzsNwnNwPaDb/NA0vAO9T5kSOm8HA8vKHnNza+DeUJN+5P/
|
||||||
|
P4fLK7UZqpQN32MpvXL0068g99RLjAzAsEVn+0FTyc08r9p/KO/dxxdMKeET7Cpv
|
||||||
|
rMpu3W0A/EJptCQsTEZI0iqts7T2qQVXzoDlnUwEt3xdmKYJ9jbEq1UUCeexD3nP
|
||||||
|
LB+JtUtfGevVzIoBjHv0qA3ePA24jDUlx5bxFeoIDC4tEewvUG5ZekftsRdNe3fk
|
||||||
|
3LkwyK+4NN1ZCa2+S5SOAfjZA2o6qXiq/le0vWRgl7AHEgDr6w7xoRsw4K5dQ+0R
|
||||||
|
eKtsBC4XO1GqrNYdKuJb1MhI
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDljCCAn6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UEBhMCTkwx
|
||||||
|
EzARBgNVBAgMCk92ZXJpanNzZWwxEDAOBgNVBAcMB0hlbmdlbG8xDzANBgNVBAoM
|
||||||
|
BkFETElOSzEYMBYGA1UEAwwPQ0hBTTUwMCBSb290IENBMB4XDTE4MDIwOTE2Mjky
|
||||||
|
MVoXDTI4MDIwNzE2MjkyMVowVTELMAkGA1UEBhMCTkwxEzARBgNVBAgMCk92ZXJp
|
||||||
|
anNzZWwxDzANBgNVBAoMBkFETElOSzEgMB4GA1UEAwwXQ0hBTTUwMCBJbnRlcm1l
|
||||||
|
ZGlhdGUgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwucuU/L6N
|
||||||
|
iYxYJ7tyzcdzwXwYbr4GynZE4u2Sd7hcXrQGxTotm9BEhOZWscSGvH+UJSp0Vrb4
|
||||||
|
3zDppiJ76ys6PeSBw1PpxdO97fO+eAE5DoXRj0a9lmnjbsV6waZ2GxgYQNVmKqbI
|
||||||
|
uPDfW+jsmRcTO94s05GWQshHeiqxuEUAv3/Qe2vOhulrg4YDcXrIDWK93cr1EmRX
|
||||||
|
Eq3Ck+Fjwtk5wAk3TANv2XQkVfS80jYAurL8J+XC2kyYB7e8KO92zqlfVXXMC3NI
|
||||||
|
YDcq86bAI4NNMjVE2zIVheMLoOEXaV7KUTYfEQABZl76aWLDxjED9kf371tcrZzJ
|
||||||
|
6xZ1M/rPGNblAgMBAAGjZjBkMB0GA1UdDgQWBBQngrlZqhQptCR4p04zqHamYUx7
|
||||||
|
RTAfBgNVHSMEGDAWgBQrLYI+RHJtx1Pze8MSZbhaOful1DASBgNVHRMBAf8ECDAG
|
||||||
|
AQH/AgEAMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAfMmiQ0tv
|
||||||
|
o3K3xwSS621tsfkijUTx920hAe1XYY2XKrG7a/MJBhStex5A3AfqPOY9UMihkBl9
|
||||||
|
3hgxOaddX9SAf2eLk2JLhqxZi1U/GVzT5h10AKLA5WUXIK4UGz3JRqhEm7V39t/N
|
||||||
|
G0LCdpWOZueezkfO6eGcAvOKthdd32a3zbn+rzzDHdsjzxhEEv8d8x1Xf4xH2dgk
|
||||||
|
HlpmpvXMfG/1aCzIpWGEPdkB7WR694GiCmh7hnFBiY+h1GFj2l5dThd51QqAlncM
|
||||||
|
u+NmlPCrFZL0ulwRFeo80KOwDpxkqgavDlP9irdWqM9VHybjGu0xFHCeElz9M6od
|
||||||
|
ym/MCh4ax7jDxg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,20 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNzCCAh8CCQDn8i4K9c4ErDANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVTQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjEyMTUw
|
||||||
|
NjUxWhcNMTkwNjI3MTUwNjUxWjBcMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRUwEwYD
|
||||||
|
VQQDDAxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||||
|
AQDRnnNnV3PZrbZwjxk+dkQcO3pK3wMvoDNAHPPiTfXRV2KjLHxsuK7wV+GPHmXo
|
||||||
|
97bot6vBxNQN7hfxoDLL+KBO9s3V+8OX6lOrF7hQ6+6/p9EgRoyNGo21eIzGwc2M
|
||||||
|
aJAKjImNMbM7FDTvhk3u+VTTJtlnKvJM1tgncbEZwRLri/2MEC5XS/O5FQT4AXPr
|
||||||
|
A6bRcGMqCVYtQ0ci6wd18PegA/rSmGSRf/TOd4jZXkxfHD+YOkHcxxz9sX4KnyOg
|
||||||
|
XZm8jDdBc7rxiDep8kIjL06VszJeoQrxjuf8cNZtbol/7ECS5aM2YOx7t0Dc/629
|
||||||
|
V2Q5waRVBV5xVCJ0BzUh8rIFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGlkxYLr
|
||||||
|
ZI/XNjDC6RFfSFRoDc+Xpcg+GsJKKbw2+btZvAD8z7ofL01yGru9oi6u2Yy/ZDKT
|
||||||
|
liZ+gtsD8uVyRkS2skq7BvPzvoYErLmSqwlrcCbeX8uHiN7C76ll9PFtSjnwPD//
|
||||||
|
UaNyZM5dJB2eBh4/prclix+RR/FWQzkPqEVLwMcFBmnPZ0mvR2tncjpZq476Qyl9
|
||||||
|
3jcmfms9qBfBPPjCdXqGEDgsTd2PpYRD2WDj/Ctl4rV7B2jnByullLUYIWGu0rYt
|
||||||
|
988waU5i8ie4t/TorBBLqQo/NO9jSXfEqcAnILPnv1QZanKzAAxSg7+FgFrsn359
|
||||||
|
ihiEkx9zFUnPrdA=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA0Z5zZ1dz2a22cI8ZPnZEHDt6St8DL6AzQBzz4k310Vdioyx8
|
||||||
|
bLiu8Ffhjx5l6Pe26LerwcTUDe4X8aAyy/igTvbN1fvDl+pTqxe4UOvuv6fRIEaM
|
||||||
|
jRqNtXiMxsHNjGiQCoyJjTGzOxQ074ZN7vlU0ybZZyryTNbYJ3GxGcES64v9jBAu
|
||||||
|
V0vzuRUE+AFz6wOm0XBjKglWLUNHIusHdfD3oAP60phkkX/0zneI2V5MXxw/mDpB
|
||||||
|
3Mcc/bF+Cp8joF2ZvIw3QXO68Yg3qfJCIy9OlbMyXqEK8Y7n/HDWbW6Jf+xAkuWj
|
||||||
|
NmDse7dA3P+tvVdkOcGkVQVecVQidAc1IfKyBQIDAQABAoIBAEddUpzUQTTS11Hq
|
||||||
|
5gVF7lpORYxH8KW+PLSPJtjdAduLjKAQ++tn1OcuhDRdfQSbkUIZhfgqMqerb6tr
|
||||||
|
ht+6fZlknR9E34pQ1LtjD/U83cOSNrhuTFudtrEZoZPpVzl+P8vXnNzdFs/+SSdi
|
||||||
|
6hV5/U8F4u4kyOkwG9cR9eF2wiI+oQ/RBKCXUo3OVs9K27A/OkKsb7coL7yBsgBj
|
||||||
|
lzorS9a/DyHT2eiMKjwCZFyG4A66EkLi6t9JLJ8oTkI2WskXYeVEAbEXE57RWm44
|
||||||
|
2OgTgfsgYgf2ftXq93KD17FN1m77dqp7EPAhjGnRHNq7+0Ykr1EO1nbDfqHG4gS+4o
|
||||||
|
lfP8iwECgYEA58da0R34l93yQnK0mAtoobwvsOjADnBVhBg9L4s2eDs8liUjf0zt
|
||||||
|
7hcMdUJaa7iMuNf3qGtnZtRURc3kSOE429Or7fCAYUr/AaA7+2ekPG1vjMb50tVv
|
||||||
|
se5rwb1hvgMYe2L5ktJJAg+RcmqpY+ncJ+hP/vWwZRxUKvXba50qqEkCgYEA54ZE
|
||||||
|
mJfSueGM/63xlhP71CM4OWtTqkQGp2OmgTOsBI5q/GUXr8vMR8sCEMHAc6HyXzmL
|
||||||
|
x/RnAoa/vTX58rXBk0QjfO9esIHa452697EIaJu5w8skCLDv2e/f+Jg7o/IDyUZs
|
||||||
|
5lqhiEuH9Qc3sx2nhnSYXMZWqwh8OchI7dCSE90CgYEAzrJ1JhpxUJYI7wM2VIWQ
|
||||||
|
GPQnH8BhTj8VtEidgCHJQK2rGUcjgepMIVECtiunUXtyW4GWBedKfmSKhvnXRLs9
|
||||||
|
pqT9JaOeCaYFBiEsfMZvqUY4e/YSYtge1PIHvO40FWzTT23zneDUZPcXQY8nYsfy
|
||||||
|
otBFTt0yIumBkhJRTIYLvakCgYA+CcttvBj6OAcJJ/n5RgeP05QoRqsXj7zcs6YV
|
||||||
|
LtxkKClg0lHjiE+H2U0HYnOISJfijk/3V3UWxzavo7wDHlLtfC+qNZYA4/rcTRKh
|
||||||
|
dm2TYk8HuPJB5e+PTWiNe3VXu+zpzRY3L4fjNqIKtVFmjIasT6fYDEmC8PYgoZtx
|
||||||
|
JhdOfQKBgCD/bDkc+VI6lwQtoQQKiSfQjKGe+6Cw9K/obzWO0uJwBvZrGLXF8tTc
|
||||||
|
MOPIv9OILt7DYxpMXAiHv8HtzH5CFVrZ/nj63Soka/j2yvUdBDrGhyIbsc4pDu+
|
||||||
|
lCFa0ZiT/u5vRAiOkM6GuStH4HxnW9LtwBtiYXtfU7IPExJiAlsq
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEPTCCAyWgAwIBAgIIRmtzSKaI+rowDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE
|
||||||
|
BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
|
||||||
|
ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE4MDMy
|
||||||
|
MzEyMDEwMFoYDzIyMjIwMjIyMjIyMjAwWjBYMQswCQYDVQQGEwJOTDETMBEGA1UE
|
||||||
|
CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
|
||||||
|
MREwDwYDVQQDEwhDSEFNLTU3NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||||
|
ggEBAMKlWGK8f/AEjK7viu9CdydJmorKyk3oK8PWmZX3B+3k8eFW32NXv2+BK5vk
|
||||||
|
sAOhEcCAV2/125iAGvXs5vq5GshjgHXwJysKOFBwLiCPHzLaOX095ib6pgPejjgV
|
||||||
|
gGsGrRAKetCAqxv+pf1n4zD9VSLDrnHrxbzvosQdBCgSBPiTFK5qDAGhVGR48Pp9
|
||||||
|
gAqZPhdLfH47S/6scRJNywoXrIxp2CnuHd4fVvyQlPNLHwlX1nOr76bGOjGqFsFU
|
||||||
|
/mcPN7aGFIh4KQK9KvHt5+SApLgBBdrn9njgaIC7VN9ddSp2Jz2vHAPR52dqM0SW
|
||||||
|
dl7uyOiT/TK6q8f7aFKqk29r/OkCAwEAAaOCAQAwgf0wDAYDVR0PBAUDAwf/gDCB
|
||||||
|
7AYDVR0lBIHkMIHhBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEF
|
||||||
|
BQcDBAYIKwYBBQUHAwgGCisGAQQBgjcCARUGCisGAQQBgjcCARYGCisGAQQBgjcK
|
||||||
|
AwEGCisGAQQBgjcKAwMGCisGAQQBgjcKAwQGCWCGSAGG+EIEAQYLKwYBBAGCNwoD
|
||||||
|
BAEGCCsGAQUFBwMFBggrBgEFBQcDBgYIKwYBBQUHAwcGCCsGAQUFCAICBgorBgEE
|
||||||
|
AYI3FAICBggrBgEFBQcDCQYIKwYBBQUHAw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0G
|
||||||
|
CSqGSIb3DQEBCwUAA4IBAQAniERWU9f/ijm9t8xuyOujEKDJl0Ded4El9mM5UYPR
|
||||||
|
ZSnabPNKQjABBS4sVISIYVwfQxGkPgK0MeMBKqs/kWsZ4rp8h5hlZvxFX8H148mo
|
||||||
|
3apNgdc/VylDBW5Ltbrypn/dZh9hFZE8Y/Uvo9HPksVEkjYuFN5v7e8/mwxTcrZ1
|
||||||
|
BAZrTlDTiCR046NN1lUs/7oUaNCruFV7AU6RbGYnSzM6plPJHMRa9nzNeO0uPaHK
|
||||||
|
kNPe+/UGpMi7cpF9w0M5Z1wW+Nq45bBRejFLQkHSjOEeGL2zi7T1HFAHZQydd6Wo
|
||||||
|
zYffGTmyHqIjNArbOWEMYN6s1nqsQS+ifolr0MtfeHad
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEmTCCA4GgAwIBAgIIZ5gEIUFhO5wwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE
|
||||||
|
BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
|
||||||
|
ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE4MDIx
|
||||||
|
MjE1MDUwMFoYDzIyMjIwMjIyMjIyMjAwWjBfMQswCQYDVQQGEwJOTDETMBEGA1UE
|
||||||
|
CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
|
||||||
|
MRgwFgYDVQQDEw9DSEFNNTAwIHJvb3QgY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||||
|
DwAwggEKAoIBAQC6Fa3TheL+UrdZCp9GhU/2WbneP2t/avUa3muwDttPxeI2XU9k
|
||||||
|
ZjBR95mAXme4SPXHk5+YDN319AqIje3oKhzky/ngvKH2GkoJKYxWnuDBfMEHdViz
|
||||||
|
2Q9/xso2ZvH50ukwWa0pfx2/EVV1wRxeQcRd/UVfq3KTJizG0M88mOYvGEAw3LFf
|
||||||
|
zef7k1aCuOofQmBvLukUudcYpMzfyHFp7lQqU4CcrrR5RtmfiUfrWfdGLea2iPDB
|
||||||
|
pJgN8ESOMwEHtOTEBDclYnH9L4t7CHQz+fXXS5IWFsDK9fCMQjnxDsDVeNrNzTYL
|
||||||
|
FaZrMg9S6IUQCEsQWsnq5weS8omOpVLUm9klAgMBAAGjggFVMIIBUTAMBgNVHRME
|
||||||
|
BTADAQH/MB0GA1UdDgQWBBQg2FZB/j8uWDVnJhjwXkX278znSTAfBgNVHSMEGDAW
|
||||||
|
gBQg2FZB/j8uWDVnJhjwXkX278znSTAPBgNVHQ8BAf8EBQMDB/+AMIHvBgNVHSUB
|
||||||
|
Af8EgeQwgeEGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwME
|
||||||
|
BggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
|
||||||
|
KwYBBAGCNwoDAwYKKwYBBAGCNwoDBAYJYIZIAYb4QgQBBgsrBgEEAYI3CgMEAQYI
|
||||||
|
KwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUIAgIGCisGAQQBgjcU
|
||||||
|
AgIGCCsGAQUFBwMJBggrBgEFBQcDDQYIKwYBBQUHAw4GBysGAQUCAwUwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAKHmwejWRwGE1wf1k2rG8SNRV/neGsZ6Qfqf6co3TpR/Wi1s
|
||||||
|
iZDvSeT/rbqNBS7z34xnG88NIUwu00y78e8Mfon31ZZbK4Uo7fla9/D3ukdJqPQC
|
||||||
|
LKdbKJjR2kH+KCukY/1rghjJ8/X+t2egBit0LCOdsFCl07Sfksb9kpGUIZSFcYYm
|
||||||
|
geqhjhoNwxazzHiw+QWHC5HG9248JIizBmy1aymNWuMnPudhjHAnPcsIlqMVNq3t
|
||||||
|
Rv9ap7S8JeCxHVRPJvJeCwXWvW3dW/v3xH52Yn/fqRblN1w9Fxz5NhopKx0gj/Jd
|
||||||
|
sw2N4Fk4gaOWEolFpa0bwNw8nAx7moehZpowzfw=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEAuhWt04Xi/lK3WQqfRoVP9lm53j9rf2r1Gt5rsA7bT8XiNl1P
|
||||||
|
ZGYwUfeZgF5nuEj1x5OfmAzd9fQKiI3t6Coc5Mv54Lyh9hpKCSmMVp7gwXzBB3VY
|
||||||
|
s9kPf8bKNmbx+dLpMFmtKX8dvxFVdcEcXkHEXf1FX6tykyYsxtDPPJjmLxhAMNyx
|
||||||
|
X83n+5NWgrjqH0Jgby7pFLnXGKTM38hxae5UKlOAnK60eUbZn4lH61n3Ri3mtojw
|
||||||
|
waSYDfBEjjMBB7TkxAQ3JWJx/S+Lewh0M/n110uSFhbAyvXwjEI58Q7A1Xjazc02
|
||||||
|
CxWmazIPUuiFEAhLEFrJ6ucHkvKJjqVS1JvZJQIDAQABAoIBAFktMHtw60J0A3fB
|
||||||
|
dmkGVDa78y4F+I88g6/XrYXW6NUHAQyKlRSJQFjXrpFtLImNNXPqVA47BFftFusw
|
||||||
|
ETY0kFo5QkuoOnnFSXuwlJeiVhWDosHfQ54UxK+4ZYnCte3CXIwWPbzoNSoutWTU
|
||||||
|
IbMuE1vzlz5s3GCWZ9jzkoz4vT8NrkucEQ2sxvAVWk2//SoQljN+b4BLDdsWl3Bq
|
||||||
|
l+9JR2EzROXrPH5voYUZV17LbnCOmU+6ucxlGu704oqLJBxtNyYKsSEh4KMo4lX4
|
||||||
|
bOZVSct3LXifj5BQmF9vbi5FiJqFGtoY4iBw0IUq05CJ4nsQuW1ZLucXaw1tBRKn
|
||||||
|
S1l/C0ECgYEA9zWVLQtWGrOZ7we7dTbF5ghZ541NjR9NmBFET5lNRU5yDG0poRdh
|
||||||
|
WD2qioGJigV6ZaEoXny0jFqqqqPM5S/sDRtoicK+XlFuhURw0CZCAsisjVhCDGXU
|
||||||
|
+FJRbR+As7NFvb/9itvNE+PD4p39UXObePzM9JnlHSP7Ml0KdJqcQHUCgYEAwLOp
|
||||||
|
Sp9k0CbFy/lQCSBbBiiu6ol/OxSzOBuZsFIbV8ILcn8v5NWdrcArssJBMdLTIaHN
|
||||||
|
nrTxKOOAzFnPW6DeRmWM/NnwizB/a6uo34q6ywmXmgFSQPX86XTVZCdD96nNik0C
|
||||||
|
KaEY2SqJxrnYstVApWRJAwy7T2jxJEj0aEZBH/ECgYEAmYyTuyXWdsFl9N2lp1m9
|
||||||
|
NHOtfDD9oZF2/eSDvLlpEIp4NpW7jM7b7RZojp2FU9CxRN0EGSR2dNOAPHt/sj/A
|
||||||
|
7CdBGIh4/FayQl7Pf8qzp80DuMvAQrkhvphK8W/m3jeVMxZEovKCAD+yFVmy1dvs
|
||||||
|
DwtfNvM8J4yI47B85Q5/zV0CgYArxGKN/VfjYvsH0e9Ys02ZP4JC6MnJ/HCcLMCi
|
||||||
|
aHOnYf5BmhuhqNbwULZcGny+OTkU6XAPPN+NPubRAxDyqb3yVTxJbaKRqok2Rj3L
|
||||||
|
z/GPDfWt1+D7uiMgTxXscnKgfKOfZtA37kv7fwrd5PYP4BmXtwhSNgERDy+94wgH
|
||||||
|
6vT9sQKBgBqsTsdDmBmKLQM/JzQC2AeQo0/ZFZIXdsiCShMbo2XALlaxZDYDu1it
|
||||||
|
M/zkpmWmHncrBnnW3h6ME1ZZj2HGTowDuJvQqR7cZW5jWY3uLpOnEAGeOoKPhfOP
|
||||||
|
IW2pVPZXq3Zl1yn86oG7C7poPRq0PRu+q2HtHP6/M0NgtGBx8F9M
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEQTCCAymgAwIBAgIINpuaAAnrQZIwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE
|
||||||
|
BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
|
||||||
|
ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE3MDIy
|
||||||
|
MjIyMjIwMFoYDzIyMjIwMjIyMjIyMjAwWjBcMQswCQYDVQQGEwJOTDETMBEGA1UE
|
||||||
|
CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
|
||||||
|
MRUwEwYDVQQDEwxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
||||||
|
ggEKAoIBAQDCpVhivH/wBIyu74rvQncnSZqKyspN6CvD1pmV9wft5PHhVt9jV79v
|
||||||
|
gSub5LADoRHAgFdv9duYgBr17Ob6uRrIY4B18CcrCjhQcC4gjx8y2jl9PeYm+qYD
|
||||||
|
3o44FYBrBq0QCnrQgKsb/qX9Z+Mw/VUiw65x68W876LEHQQoEgT4kxSuagwBoVRk
|
||||||
|
ePD6fYAKmT4XS3x+O0v+rHESTcsKF6yMadgp7h3eH1b8kJTzSx8JV9Zzq++mxjox
|
||||||
|
qhbBVP5nDze2hhSIeCkCvSrx7efkgKS4AQXa5/Z44GiAu1TfXXUqdic9rxwD0edn
|
||||||
|
ajNElnZe7sjok/0yuqvH+2hSqpNva/zpAgMBAAGjggEAMIH9MAwGA1UdDwQFAwMH
|
||||||
|
/4AwgewGA1UdJQSB5DCB4QYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDAwYI
|
||||||
|
KwYBBQUHAwQGCCsGAQUFBwMIBgorBgEEAYI3AgEVBgorBgEEAYI3AgEWBgorBgEE
|
||||||
|
AYI3CgMBBgorBgEEAYI3CgMDBgorBgEEAYI3CgMEBglghkgBhvhCBAEGCysGAQQB
|
||||||
|
gjcKAwQBBggrBgEFBQcDBQYIKwYBBQUHAwYGCCsGAQUFBwMHBggrBgEFBQgCAgYK
|
||||||
|
KwYBBAGCNxQCAgYIKwYBBQUHAwkGCCsGAQUFBwMNBggrBgEFBQcDDgYHKwYBBQID
|
||||||
|
BTANBgkqhkiG9w0BAQsFAAOCAQEAawdHy0Xw7nTK2ltp91Ion6fJ7hqYuj///zr7
|
||||||
|
Adt6uonpDh/xl3esuwcFimIJrJrHujnGkL0nLddRCikmnzuBMNDWS6yq0/Ckl/YG
|
||||||
|
yjNr44dlX24wo+MVAgkj3/8CyWDZ3a8kBg9QT3bs2SqbjmhTrXN1DRyf9S5vJysE
|
||||||
|
I7V1gTN66BeKL64hOrAlRVrEu8Ds6TWL6Q/YH+61ViZkoLTeSaPjH4nknaFr4C35
|
||||||
|
iji0JhkyfRHRRVPHFnaj25AkxOrSV64qVKoTMjDl5fji5iMGtjm6iJ7q05ml/qDl
|
||||||
|
nLotHXemZNvYhbwUmRzbt4Dls9EMH4VRbP85I94nM5TAvtHVNA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAwqVYYrx/8ASMru+K70J3J0maisrKTegrw9aZlfcH7eTx4Vbf
|
||||||
|
Y1e/b4Erm+SwA6ERwIBXb/XbmIAa9ezm+rkayGOAdfAnKwo4UHAuII8fMto5fT3m
|
||||||
|
JvqmA96OOBWAawatEAp60ICrG/6l/WfjMP1VIsOucevFvO+ixB0EKBIE+JMUrmoM
|
||||||
|
AaFUZHjw+n2ACpk+F0t8fjtL/qxxEk3LChesjGnYKe4d3h9W/JCU80sfCVfWc6vv
|
||||||
|
psY6MaoWwVT+Zw83toYUiHgpAr0q8e3n5ICkuAEF2uf2eOBogLtU3111KnYnPa8c
|
||||||
|
A9HnZ2ozRJZ2Xu7I6JP9Mrqrx/toUqqTb2v86QIDAQABAoIBAC1q32DKkx+yMBFx
|
||||||
|
m32QiLUGG6VfBC2BixS7MkMnzRXZYgcuehl4FBc0kLRjfB6cqsO8LqrVN1QyMBhK
|
||||||
|
GutN3c38SbE7RChqzhEW2+yE+Mao3Nk4ZEecHLiyaYT0n25ZtHAVwep823BAzwJ+
|
||||||
|
BykbM45VEpNKbG1VjSktjBa9faNyZiZAEJEjVyla+6R8N4kHV52LbZcLjvJv3IQ2
|
||||||
|
iPYRrmMyI5C23qTni0vy7yJbAXBo3CqgSlwie9FARBWT7Puu7F4mF1O1c/SnTysw
|
||||||
|
Tm3e5FzgfHipQbnRVn0w4rDprPMKmPxMnvf/Wkw0zVgNadp1Tc1I6Yj525DEQ07i
|
||||||
|
2gIn/gECgYEA4jNnY1u2Eu7x3pAQF3dRO0x35boVtuq9iwQk7q+uaZaK4RJRr+0Y
|
||||||
|
T68S3bPnfer6SHvcxtST89Bvs/j/Ky4SOaX037UYjFh6T7OIzPl+MzO1yb+VOBT6
|
||||||
|
D6FVGEJGp8ZAITU1OfJPeTYViUeEC8tHFGoKUCk50FbB6jOf1oKtv/ECgYEA3EnB
|
||||||
|
Y7kSbJJaUuj9ciFUL/pAno86Cim3VjegK1wKgEiyDb610bhoMErovPwfVJbtcttG
|
||||||
|
eKJNuwizkRcVbj+vpjDvqqaP5eMxLl6/Nd4haPMJYzGo88Z8NJpwFRNF2KEWjOpQ
|
||||||
|
2NEvoCeRtVulCJyka2Tpljzw8cOXkxhPOe2UhHkCgYBo3entj0QO7QXm56T+LAvV
|
||||||
|
0PK45xdQEO3EuCwjGAFk5C0IgUSrqeCeeIzniZMltj1IQ1wsNbtNynEu3530t8wt
|
||||||
|
O7oVyFBUKGSz9IjUdkpClJOPr6kPMfJoMqRPtdIpz+hFPPSrI6IikKdVWHloOlp+
|
||||||
|
pVaYqTQrWT1XRY2xli3VEQKBgGySmZN6Cx+h/oywswIGdUT0VdcQhq2to+QFpJba
|
||||||
|
VX6m1cM6hMip2Ag9U3qZ1SNPBBdBBfm9HQybHE3dj713/C2wHuAAGhpXIM1W+20k
|
||||||
|
X1knuC/AsSH9aQhQOf/ZMOq1crTfZBuI9q0782/sjGmzMsKPySU4QhUWruVb7OiD
|
||||||
|
NVkZAoGAEvihW7G+8/iOE40vGHyBqUeopAAWLciTAUIEwM/Oi3BYfNWNTWF/FWNc
|
||||||
|
nMvCZPYigY8C1vO+1iT2Frtd3CIU+f01Q3fJNJoRLlEiKLNZUJRF48OKUqjKSmsi
|
||||||
|
w6pucFO40z05YW7utApj4L82rZnOS0pd1tUI1yexqvj0i4ThJfk=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEJTCCAw2gAwIBAgIBFzANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGjAYBgNVBAMTEUlkZW50
|
||||||
|
aXR5IENBIFRlc3QyMSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0ZWNo
|
||||||
|
LmNvbTAeFw0xODA3MjAwMDAwMDBaFw0yNzA3MTkyMzU5NTlaMG0xCzAJBgNVBAYT
|
||||||
|
Ak5MMQswCQYDVQQIEwJPVjETMBEGA1UEChMKQURMaW5rIElTVDEUMBIGA1UEAxML
|
||||||
|
QWxpY2UgVGVzdDIxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Fb60RkFrDsRAIRf
|
||||||
|
LMf2fsiRnw9Agp7yEbUsA4Zg4X+hRhBkk78fFtagLisWo4LbT4DqKzqQXCvVnOn9
|
||||||
|
a6uT0KsVejk2iaLoBy0fotQznudio3rzDpTfzP9eRDFVj8RJnl3JJ8P1DULxH7N0
|
||||||
|
TyDBuKZ1ibBfuKjPffqeCEzYKgAc8NG2FB4m6mXzHhXuKw6W2v0IbHz6KYldsavf
|
||||||
|
04rq7ztw0t67bexSQ4gLSVJEwiohAregm0dLvQnap5xd2qn0yETteTL8Y+Ujym1D
|
||||||
|
WAnwDdwA6+0j2a0wkyzOzYQpZMt95NyZ8kcoqEqO8KAN2HclqfjHlg9iDscbof5x
|
||||||
|
45SQwwIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFL66FT0vnlFE
|
||||||
|
+PKrtV+KhJoLsCOWMB8GA1UdIwQYMBaAFIFGyWkPWvNkBD2SCYj9H+NfnlOLMA8G
|
||||||
|
A1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYBBQUHAwEGCCsGAQUFBwMC
|
||||||
|
BggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggrBgEFBQcDCQYIKwYBBQUH
|
||||||
|
Aw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEBCwUAA4IBAQCsBINpBXSp
|
||||||
|
Xe3f5MMObeUXE2VhWZWIjMdDQRFDDjq6u1YR7rbffsCReiCX5zviU2dtVV8VN3MQ
|
||||||
|
k7wp8qEDKwP1ToMIwZGwT4Hfwei1eueJ1vuotgiGe0Gm3otXlGsb0C5otnsu63MM
|
||||||
|
OeFgkpZde3VpIqK9EmhgjWOD8TXc8Me7zBlYSEIaXkkwP0jAKRf5vFgz0WfE5ITx
|
||||||
|
SDKUO0OrcN789flO/OKLAHZ4cqNcxNPkMz7h9VBSgRRRk115HEa8Fe46nl1YpwRG
|
||||||
|
0urHlyAKoUV+J+I3Qy4+SwIDwix978hgGN3bKVyv9q0yAQRzpZ54EJOj4C7lNEpB
|
||||||
|
roGVpY4yYP/B
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEJDCCAwygAwIBAgIBAzANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxJDAiBgNVBAMTG0lkZW50
|
||||||
|
aXR5IENBIFRlc3QgV2l0aCBDaGFpbjEmMCQGCSqGSIb3DQEJARYXaW5mb0Bpc3Qu
|
||||||
|
YWRsaW5rdGVjaC5jb20wHhcNMTgwNjEzMDAwMDAwWhcNMjcwNjEwMjM1OTU5WjBw
|
||||||
|
MQswCQYDVQQGEwJOTDELMAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1Qx
|
||||||
|
FzAVBgNVBAMTDkJvYiBDaGFpbiBUZXN0MSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlz
|
||||||
|
dC5hZGxpbmt0ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||||
|
AMHm+qG5afCHFdmp98+Z+POB7vD3WhfghKVugh8FenewuPaaotKxiGAE0kCf8WXU
|
||||||
|
5l4XDR3iBWJsGDHll1yOyL4KW9grwfnfiJMl82uIzKGDiRJbFkXVOLF/DcVLsuqM
|
||||||
|
oRjlk09+nlrg/7xS96itgm6yueW/UOIXpo+ElCHwnrYnpuHHrYM0s7t1ls3QFSyd
|
||||||
|
a3INx+LkM6N/b+veVJF95yfe4GvVBhFpLkWtX4xKgZyMjczvmZ6LVNNSnthPhlZF
|
||||||
|
HmspQyqXrTnGyax3qyoloqh9ibDvAK5pUnzqlv/Dyyt110q3bXFR5A0wqfj0fqtp
|
||||||
|
7Mw4TdTkFQy1n4/Y4EuT8I8CAwEAAaOBuzCBuDAdBgNVHQ4EFgQUQpxLPHT5o/GQ
|
||||||
|
RwdBw2scINXnWlUwHwYDVR0jBBgwFoAUTVVCTRc4ST0XmE+EEsenSudwlwkwDwYD
|
||||||
|
VR0PAQH/BAUDAwf/gDBlBgNVHSUBAf8EWzBZBggrBgEFBQcDAQYIKwYBBQUHAwIG
|
||||||
|
CCsGAQUFBwMDBggrBgEFBQcDBAYIKwYBBQUHAwgGCCsGAQUFBwMJBggrBgEFBQcD
|
||||||
|
DQYIKwYBBQUHAw4GBysGAQUCAwUwDQYJKoZIhvcNAQELBQADggEBAJwd60WigqbB
|
||||||
|
/6CT0ekvXZdvIV5IaIKiy6KYU0/0ebPVXn0YKp9LQTE6lYCr6hZUcEjBfkFBZhAy
|
||||||
|
KJJOb2sUXAnYqnX/mIipiNb7oHsCHxVCKAwEcmxsS3tGl2CXgpKL8EQQFKJgSrC/
|
||||||
|
uzhf2QESQ0T5Mgni1jXXGf6SAwFAjk+mAM9bMdrtLOX39e5aKrgpZOHmdFke+m/K
|
||||||
|
upxP/M0/omTNNQaSfWDmfDvpdsRD9+mFG12Kzgpue2jut1qeICvSmcQsu2OBYG/Q
|
||||||
|
ZXMx8e8azoX0KB+njf826UcVgDkDmfwN9taOU2lFsmZAvYhpIslNwtH/Htu3zJWO
|
||||||
|
vQxyIh+kxFQ=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEKzCCAxOgAwIBAgIBFjANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGjAYBgNVBAMTEUlkZW50
|
||||||
|
aXR5IENBIFRlc3QyMSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0ZWNo
|
||||||
|
LmNvbTAeFw0xODA3MjAwMDAwMDBaFw0yNzA3MTkyMzU5NTlaMHMxCzAJBgNVBAYT
|
||||||
|
Ak5MMQswCQYDVQQIEwJPVjETMBEGA1UEChMKQURMaW5rIElTVDEaMBgGA1UEAxMR
|
||||||
|
SWRlbnRpdHkgQ0EgVGVzdDIxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlu
|
||||||
|
a3RlY2guY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIweDOdB
|
||||||
|
xotexcDiUdbIdDLu9A6/KSpkxUJnYb2iRhBonmCNFvErEokso/Dga6QT3rg83UCg
|
||||||
|
GMJBSJSZhq/j+eZweHoXS8Ccet/aF2iNj5A5Uhn476M3zMg+rCoos2yKlpZLOz1x
|
||||||
|
QjrRJfeOoBHvkHkxBeupnnQPx4oAro7zoXMIO83NKLwCROC/kGq1ktW8fbKa5THQ
|
||||||
|
z0QfZG3zAeD93N+dTAqA+jkCfzbrQepF243Tu4cLaGwVALZ/8cZ7sky8+OOmKnBU
|
||||||
|
P9r+U/4L62DVJYnYkTGnYEwqXcM1b8/JHasmKEaHXgAu/UI5i/SZfRPZUyC1ERSv
|
||||||
|
tX6k7sBxZZSPLQIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFIFG
|
||||||
|
yWkPWvNkBD2SCYj9H+NfnlOLMB8GA1UdIwQYMBaAFIFGyWkPWvNkBD2SCYj9H+Nf
|
||||||
|
nlOLMA8GA1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYBBQUHAwEGCCsG
|
||||||
|
AQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggrBgEFBQcDCQYI
|
||||||
|
KwYBBQUHAw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEBCwUAA4IBAQCK
|
||||||
|
SkemYQIvsslkMc8PNHSk2om4xk7hUXkatAZPN9dvRravu3PJqMWxpQ0TWbddrkBL
|
||||||
|
he7/ARC2G9vVUwQl2b8K1Rjt/nZ3j+NPvhCDzcPyxjornyN8IG1NJQVH18fTxR23
|
||||||
|
6PvDBE0H2trA3WJgKo6Wlxo6CHWts8ulFWWXBE1nNQw30hU49FDsFn3nz6Gry4ti
|
||||||
|
/ouAvbz+UXSsT9R+zkci3A394sEsOCZSStgAnXsejU45pCt6OtCGaLfDvEPp21az
|
||||||
|
OEjuIaj6Kbd+MHeLyPoe+d1Bkl39OnAUEJ8q2HdwvIg2ZqP6h0agm5gpZo/ALDWn
|
||||||
|
9P3owIGVsHFGkYqhHc+K
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIENDCCAxygAwIBAgIBAjANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDYxMzAwMDAwMFoXDTI3MDYxMDIzNTk1OVowfTELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMSQwIgYDVQQDExtJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0IFdpdGggQ2hhaW4xJjAkBgkqhkiG9w0BCQEWF2luZm9A
|
||||||
|
aXN0LmFkbGlua3RlY2guY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
||||||
|
AQEA1r8Q0V8ZVeBs8tPMF0N+JlBynl1Zn/89vwSsU4m7y6ixUcW/y3r12CMeA0cH
|
||||||
|
g6yOaOdHsZ8pRlPRwy9YmeOwLsMOUHAURP2uPiTjSf3pttUIf0jv602GyirNzoS7
|
||||||
|
7mHiyTtV80ZMzZlLIJ3gaJJlG4DjitFuFcjv8sOmviFjkn1kOjkAz1nKgsCiHvvg
|
||||||
|
fcJlYPrtLfle9SzvZ3MTq4ob+/EFu9nt5bYYs7p7Br1TGWctUw98l2mSn/FhfDBw
|
||||||
|
9bb7ZhcKB7W6PGy2Os5AnkdTJKHoOQT+RmnHzPBhab0BoKuy8IhfW2GyqC8rL5Tm
|
||||||
|
/UVLUvnx4Zzqz//3IyA2FTb1HQIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYD
|
||||||
|
VR0OBBYEFE1VQk0XOEk9F5hPhBLHp0rncJcJMB8GA1UdIwQYMBaAFER4R6N3MQ1W
|
||||||
|
l7gn+R8wwHloDCVZMA8GA1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYB
|
||||||
|
BQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggr
|
||||||
|
BgEFBQcDCQYIKwYBBQUHAw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQCbl7ed4p66G6WquxO7ceZFvYKn3kDErjCfXHcqHxBnA2xTpoZCGj95
|
||||||
|
Qpirqo6N4UcLX5sn3CmgyVk0dYvlti/53FJgZ9XQDNxBuEYWPkY7vO+Uo0WdYpGz
|
||||||
|
ZDNIUQpiPMA7bHvwKldTIs77xxtnw9kbBU2k0xQyb2tdZNfD5YqSI1MeUtpEpNFW
|
||||||
|
sbC8+mQ3clzWpjF8eHH1fFSAmlJ+z1Uqmtt2FK0vRz+MQcpydwvpMnfqGdcwhGPQ
|
||||||
|
X4HZreLObjBA8KUEkUB3+rZXuELBgkk/c8/jRZl7QF5jJDLQCCLg7KoYBKN2GuTt
|
||||||
|
/dzeSnP7VZm/nTL8wpCvKgSOwOGgklf2
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA0Fb60RkFrDsRAIRfLMf2fsiRnw9Agp7yEbUsA4Zg4X+hRhBk
|
||||||
|
k78fFtagLisWo4LbT4DqKzqQXCvVnOn9a6uT0KsVejk2iaLoBy0fotQznudio3rz
|
||||||
|
DpTfzP9eRDFVj8RJnl3JJ8P1DULxH7N0TyDBuKZ1ibBfuKjPffqeCEzYKgAc8NG2
|
||||||
|
FB4m6mXzHhXuKw6W2v0IbHz6KYldsavf04rq7ztw0t67bexSQ4gLSVJEwiohAreg
|
||||||
|
m0dLvQnap5xd2qn0yETteTL8Y+Ujym1DWAnwDdwA6+0j2a0wkyzOzYQpZMt95NyZ
|
||||||
|
8kcoqEqO8KAN2HclqfjHlg9iDscbof5x45SQwwIDAQABAoIBAG0dYPeqd0IhHWJ7
|
||||||
|
8azufbchLMN1pX/D51xG2uptssfnpHuhkkufSZUYi4QipRS2ME6PYhWJ8pmTi6lH
|
||||||
|
E6cUkbI0KGd/F4U2gPdhNrR9Fxwea5bbifkVF7Gx/ZkRjZJiZ3w9+mCNTQbJDKhh
|
||||||
|
wITAzzT6WYznhvqbzzBX1fTa6kv0GAQtX7aHKM+XIwkhX2gzU5TU80bvH8aMrT05
|
||||||
|
tAMGQqkUeRnpo0yucBl4VmTZzd/+X/d2UyXR0my15jE5iH5o+p+E6qTRE9D+MGUd
|
||||||
|
MQ6Ftj0Untqy1lcog1ZLL6zPlnwcD4jgY5VCYDgvabnrSwymOJapPLsAEdWdq+U5
|
||||||
|
ec44BMECgYEA/+3qPUrd4XxA517qO3fCGBvf2Gkr7w5ZDeATOTHGuD8QZeK0nxPl
|
||||||
|
CWhRjdgkqo0fyf1cjczL5XgYayo+YxkO1Z4RUU+8lJAHlVx9izOQo+MTQfkwH4BK
|
||||||
|
LYlHxMoHJwAOXXoE+dmBaDh5xT0mDUGU750r763L6EFovE4qRBn9hxkCgYEA0GWz
|
||||||
|
rpOPNxb419WxG9npoQYdCZ5IbmEOGDH3ReggVzWHmW8sqtkqTZm5srcyDpqAc1Gu
|
||||||
|
paUveMblEBbU+NFJjLWOfwB5PCp8jsrqRgCQSxolShiVkc3Vu3oyzMus9PDge1eo
|
||||||
|
9mwVGO7ojQKWRu/WVAakENPaAjeyyhv4dqSNnjsCgYEAlwe8yszqoY1k8+U0T0G+
|
||||||
|
HeIdOCXgkmOiNCj+zyrLvaEhuS6PLq1b5TBVqGJcSPWdQ+MrglbQIKu9pUg5ptt7
|
||||||
|
wJ5WU+i9PeK9Ruxc/g/BFKYFkFJQjtZzb+nqm3wpul8zGwDN/O/ZiTqCyd3rHbmM
|
||||||
|
/dZ/viKPCZHIEBAEq0m3LskCgYBndzcAo+5k8ZjWwBfQth5SfhCIp/daJgGzbYtR
|
||||||
|
P/BenAsY2KOap3tjT8Fsw5usuHSxzIojX6H0Gvu7Qzq11mLn43Q+BeQrRQTWeFRc
|
||||||
|
MQdy4iZFZXNNEp7dF8yE9VKHwdgSJPGUdxD6chMvf2tRCN6mlS171VLV6wVvZvez
|
||||||
|
H/vX5QKBgD2Dq/NHpjCpAsECP9awmNF5Akn5WJbRGmegwXIih2mOtgtYYDeuQyxY
|
||||||
|
ZCrdJFfIUjUVPagshEmUklKhkYMYpzy2PQDVtaVcm6UNFroxT5h+J+KDs1LN1H8G
|
||||||
|
LsASrzyAg8EpRulwXEfLrWKiu9DKv8bMEgO4Ovgz8zTKJZIFhcac
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEAweb6oblp8IcV2an3z5n484Hu8PdaF+CEpW6CHwV6d7C49pqi
|
||||||
|
0rGIYATSQJ/xZdTmXhcNHeIFYmwYMeWXXI7Ivgpb2CvB+d+IkyXza4jMoYOJElsW
|
||||||
|
RdU4sX8NxUuy6oyhGOWTT36eWuD/vFL3qK2CbrK55b9Q4hemj4SUIfCetiem4cet
|
||||||
|
gzSzu3WWzdAVLJ1rcg3H4uQzo39v695UkX3nJ97ga9UGEWkuRa1fjEqBnIyNzO+Z
|
||||||
|
notU01Ke2E+GVkUeaylDKpetOcbJrHerKiWiqH2JsO8ArmlSfOqW/8PLK3XXSrdt
|
||||||
|
cVHkDTCp+PR+q2nszDhN1OQVDLWfj9jgS5PwjwIDAQABAoIBAHfgWhED9VgL29le
|
||||||
|
uGMzmPLK4LM+6Qcb+kXghTeyhl1a928WeRVzRpG+SVJEz9QaBHYlICnaY2PO2kJ2
|
||||||
|
49YIPFkpRFDn9JuLs/7tFonj4Eb2cBbWE3YG9W7e0t+oBiv1117yB9m8uSAMPG7s
|
||||||
|
iEpTQvE3M7CzT8kHwCS4XXCCN0z7LqKyZ1heScjdfhV3D2TnFFjdtQ/9KfQa3hIc
|
||||||
|
6ftbpi4EKbfasspyqfrJ/cqjHzse9iEXLOZJhs+atBAKe/uJ4Hc3LRPbX4MPniAp
|
||||||
|
JJrldXFK9p+HILlbXvu+5n+DSGbZmT1x9a/E9suGyoJiASDH2Ax4yCVTi+v8C1R2
|
||||||
|
aKdU1LkCgYEA/3dFuM6zIHwiJ0GKT0gtJL6J3m+i51SNcRIm8deXt6HULMpUNajj
|
||||||
|
vZ1bgQm/h+uRBlPV3swkaVxvPTIabOTY4gmCBSzvVCSIAKHVc/+5Nkl9KruwSq4G
|
||||||
|
tctmXZ7ymMDi+6QGCJTJkAx6jptXyrzC00HOjXOwyQ+iDipqgr3A8FsCgYEAwk7B
|
||||||
|
2/hi569EIHFRT6nz/JMqQVPZ/MJDKoKhffTbnjQ5OAzpiVN6cyThMM1iVJEBFNhx
|
||||||
|
OEacy60Qj0TtR1oYrQSRSLm58TTxiuB4Pohbmg3iU+kSM/eTq/ups/Ul1oCs2eAb
|
||||||
|
POfweD3c4d4i7sN8bUNQXehiE4MOlK9TYQy39t0CgYAJht0mwy6S644qgJsz0bE9
|
||||||
|
SY3Cqc8daV3M9axWIIAb7QEImpMBXUcA7zlWWpK18ub5oW68XEiPVU8grRmnLfGY
|
||||||
|
nFoo70ANlz8rJt3a8ZJqn9r3GQC+CDdf2DH9E8xgPfE5CSjgcQwDPzPi1ZA0k02A
|
||||||
|
q1eUltfk55xXguVt8r2bOQKBgQC7+kldr1yv20VDRZ1uPnMGRLE6Zg6bkqw78gid
|
||||||
|
vEbDNK6uZP+BlTr/LgyVk/yu52Fucz6FPPrvqEw+7mXHA4ifya1r+BHFIn0S57os
|
||||||
|
dOp5jTkKCI9NqxQ3683vhRjH/dA7L63qLFDdYqvP74FID+LOKbMURn6rdbyjZ0J4
|
||||||
|
vz8yGQKBgHIzcKlQosRxf+KptOPMGRs30L9PnH+sNmTo2SmEzAGkBkt1msGRh/2l
|
||||||
|
uT3hOEhUXL9knRyXwQSXgrIwr9QwI5rGS5FAgX26TgBtPBDs2NuyyhhS5yxsiEPT
|
||||||
|
BR+EjQFW9dzRkpRJgvsG4DcNAhFn7fQqFNcWXgFWuBXmGNkdtEGR
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,14 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICEDCCAbegAwIBAgIJAPOifu8ejrRRMAoGCCqGSM49BAMCMGUxCzAJBgNVBAYT
|
||||||
|
Ak5MMRMwEQYDVQQIDApTb21lLVN0YXRlMR8wHQYDVQQKDBZBRExJTksgVGVjaG5v
|
||||||
|
bG9neSBCLlYuMSAwHgYDVQQDDBdDSEFNXzU3MCBDQSBjZXJ0aWZpY2F0ZTAeFw0x
|
||||||
|
OTAyMTgxMDQwMTZaFw00NjA3MDYxMDQwMTZaMGUxCzAJBgNVBAYTAk5MMRMwEQYD
|
||||||
|
VQQIDApTb21lLVN0YXRlMR8wHQYDVQQKDBZBRExJTksgVGVjaG5vbG9neSBCLlYu
|
||||||
|
MSAwHgYDVQQDDBdDSEFNXzU3MCBDQSBjZXJ0aWZpY2F0ZTBZMBMGByqGSM49AgEG
|
||||||
|
CCqGSM49AwEHA0IABMXCYXBHEryADoYXMEE0Jw9aHlA7p3KVFzuypxuez0n7rKoX
|
||||||
|
k9kanNtrw5o2X4WSWKM7zkH4I6AU7xSAQgJN+8GjUDBOMB0GA1UdDgQWBBR1Llq9
|
||||||
|
zrRrTJLSvUJykksncZ+HsDAfBgNVHSMEGDAWgBR1Llq9zrRrTJLSvUJykksncZ+H
|
||||||
|
sDAMBgNVHRMEBTADAQH/MAoGCCqGSM49BAMCA0cAMEQCIHKRM3VeB2F7z3nJT752
|
||||||
|
gY5mNdj91ulmNX84TXA7UHNKAiA2ytpsV4OKURHkjyn1gnW48JDKtHGZF6/tMNvX
|
||||||
|
VrDITA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,50 @@
|
||||||
|
Certificate:
|
||||||
|
Data:
|
||||||
|
Version: 3 (0x2)
|
||||||
|
Serial Number: 4096 (0x1000)
|
||||||
|
Signature Algorithm: ecdsa-with-SHA256
|
||||||
|
Issuer: C=NL, ST=Some-State, O=ADLINK Technology B.V., CN=CHAM_570 CA certificate
|
||||||
|
Validity
|
||||||
|
Not Before: Feb 18 10:52:41 2019 GMT
|
||||||
|
Not After : Jul 6 10:52:41 2046 GMT
|
||||||
|
Subject: C=NL, ST=Some-State, O=ADLINK Technology B.V., CN=CHAM_570 Identity certificate
|
||||||
|
Subject Public Key Info:
|
||||||
|
Public Key Algorithm: id-ecPublicKey
|
||||||
|
Public-Key: (256 bit)
|
||||||
|
pub:
|
||||||
|
04:9d:b5:7b:f5:fe:63:da:24:e4:0c:26:c5:32:55:
|
||||||
|
55:b3:7f:7a:60:ea:0d:56:2c:0a:85:e0:5b:85:5a:
|
||||||
|
01:1b:69:fc:23:79:98:33:d6:60:d5:d9:ab:1e:1d:
|
||||||
|
7a:1e:c2:5f:ad:30:9b:73:45:40:39:d9:07:f7:59:
|
||||||
|
8d:44:f6:6b:e3
|
||||||
|
ASN1 OID: prime256v1
|
||||||
|
NIST CURVE: P-256
|
||||||
|
X509v3 extensions:
|
||||||
|
X509v3 Basic Constraints:
|
||||||
|
CA:false
|
||||||
|
Netscape Comment:
|
||||||
|
OpenSSL Generated Certificate
|
||||||
|
X509v3 Subject Key Identifier:
|
||||||
|
C6:68:7E:D7:20:B3:51:4B:D4:50:54:26:12:86:BE:9B:EA:55:A1:EA
|
||||||
|
X509v3 Authority Key Identifier:
|
||||||
|
keyid:75:2E:5A:BD:CE:B4:6B:4C:92:D2:BD:42:72:92:4B:27:71:9F:87:B0
|
||||||
|
|
||||||
|
Signature Algorithm: ecdsa-with-SHA256
|
||||||
|
30:45:02:21:00:b2:a7:be:fb:0b:d4:e2:87:b0:2c:c9:b8:fa:
|
||||||
|
10:b0:18:4b:dc:6a:bc:58:55:e8:22:46:93:d8:b1:5b:50:17:
|
||||||
|
77:02:20:2a:cf:42:10:fc:7e:02:39:37:44:4a:cf:9b:a3:9a:
|
||||||
|
55:cb:15:2d:12:86:06:7e:d4:b8:24:7a:57:13:48:b5:69
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICOzCCAeGgAwIBAgICEAAwCgYIKoZIzj0EAwIwZTELMAkGA1UEBhMCTkwxEzAR
|
||||||
|
BgNVBAgMClNvbWUtU3RhdGUxHzAdBgNVBAoMFkFETElOSyBUZWNobm9sb2d5IEIu
|
||||||
|
Vi4xIDAeBgNVBAMMF0NIQU1fNTcwIENBIGNlcnRpZmljYXRlMB4XDTE5MDIxODEw
|
||||||
|
NTI0MVoXDTQ2MDcwNjEwNTI0MVowazELMAkGA1UEBhMCTkwxEzARBgNVBAgMClNv
|
||||||
|
bWUtU3RhdGUxHzAdBgNVBAoMFkFETElOSyBUZWNobm9sb2d5IEIuVi4xJjAkBgNV
|
||||||
|
BAMMHUNIQU1fNTcwIElkZW50aXR5IGNlcnRpZmljYXRlMFkwEwYHKoZIzj0CAQYI
|
||||||
|
KoZIzj0DAQcDQgAEnbV79f5j2iTkDCbFMlVVs396YOoNViwKheBbhVoBG2n8I3mY
|
||||||
|
M9Zg1dmrHh16HsJfrTCbc0VAOdkH91mNRPZr46N7MHkwCQYDVR0TBAIwADAsBglg
|
||||||
|
hkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0O
|
||||||
|
BBYEFMZoftcgs1FL1FBUJhKGvpvqVaHqMB8GA1UdIwQYMBaAFHUuWr3OtGtMktK9
|
||||||
|
QnKSSydxn4ewMAoGCCqGSM49BAMCA0gAMEUCIQCyp777C9Tih7Asybj6ELAYS9xq
|
||||||
|
vFhV6CJGk9ixW1AXdwIgKs9CEPx+Ajk3RErPm6OaVcsVLRKGBn7UuCR6VxNItWk=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,14 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICFTCCAbygAwIBAgICEAEwCgYIKoZIzj0EAwIwWjELMAkGA1UEBhMCTkwxEzAR
|
||||||
|
BgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5
|
||||||
|
IEx0ZDETMBEGA1UEAwwKQ0hBTTUwMF9DQTAeFw0xODAyMTkxMDMyMjRaFw0xOTAy
|
||||||
|
MTkxMDMyMjRaMGExCzAJBgNVBAYTAk5MMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
||||||
|
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxGjAYBgNVBAMMEUNIQU01
|
||||||
|
NjkgdW5zdXAga2V5MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQIDMgAEKt3HYPnDlEOS
|
||||||
|
zYqTzT2patyreLHN2Jty22KXwjaNAjgrwujdPr+MW38DsyBF5Yn9o3sweTAJBgNV
|
||||||
|
HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
|
||||||
|
Y2F0ZTAdBgNVHQ4EFgQUG9MuQz3W/AKA98AyOKhI2af9I+0wHwYDVR0jBBgwFoAU
|
||||||
|
ACsYsaEsZfjfRVrj0IBmcsncVyMwCgYIKoZIzj0EAwIDRwAwRAIgfhisahVmgghI
|
||||||
|
GaaQavdKHpM/OTVODZPzYjky6Am+z08CIBidnuuznXrZtr78oy/tAES/7Lz8P5Iw
|
||||||
|
Q1y5Vo8CdXQQ
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,5 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgP3SnBXzcCc0uUEiG
|
||||||
|
0CPNdcV0hBewOnVoh4d9q9E5U5ihRANCAASdtXv1/mPaJOQMJsUyVVWzf3pg6g1W
|
||||||
|
LAqF4FuFWgEbafwjeZgz1mDV2aseHXoewl+tMJtzRUA52Qf3WY1E9mvj
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,5 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MG8CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQIEVTBTAgEBBBh8p6kwBS7jT86ctN33
|
||||||
|
Vs4vosHh7upPZBWhNAMyAAQq3cdg+cOUQ5LNipPNPalq3Kt4sc3Ym3LbYpfCNo0C
|
||||||
|
OCvC6N0+v4xbfwOzIEXlif0=
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,8 @@
|
||||||
|
-----BEGIN EC PRIVATE KEY-----
|
||||||
|
Proc-Type: 4,ENCRYPTED
|
||||||
|
DEK-Info: AES-256-CBC,11055B75D406068EB1FF850646228EA9
|
||||||
|
|
||||||
|
GUnwN8e2gvUkopN3ak+2dK1dSTSKSJguers3h5C+qQDq57By933ijCCjUTu2LY/F
|
||||||
|
ERH6m8UD6H5ij/QDsXLx6tH/dFQ7An+Zao3eD2N2zquGED/OfTQJFv3gBKs4RUtg
|
||||||
|
66dfuv9mNSXt7Rnu9uBNtodm5JGifczdmIPHn0mNY2g=
|
||||||
|
-----END EC PRIVATE KEY-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDkTCCAnmgAwIBAgIJAJvGJOEKNct1MA0GCSqGSIb3DQEBCwUAMF8xCzAJBgNV
|
||||||
|
BAYTAk5MMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
|
||||||
|
aWRnaXRzIFB0eSBMdGQxGDAWBgNVBAMMD0NIQU01MDAgcm9vdCBjYTAeFw0xODAy
|
||||||
|
MTIxNTA1MDVaFw0yMDEyMDIxNTA1MDVaMF8xCzAJBgNVBAYTAk5MMRMwEQYDVQQI
|
||||||
|
DApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQx
|
||||||
|
GDAWBgNVBAMMD0NIQU01MDAgcm9vdCBjYTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAM/dCO4QAcCduw0NMqShDpTvGT6DClTFAJE8ZfuPCHKqNkicRbyj
|
||||||
|
sVXfF35Sdo6K92Ksz4G7i1RqJU2n8c7hg2EFUza0lIGgmTHV/DvFBcbAa0PpvdKS
|
||||||
|
XoPtSNDh65/GO1R7oeSFRzapqsLMPUwOWi46dYvRnPabxs21xHxn56JeuG74bad5
|
||||||
|
PMTBvA2SiiTYPBlHGJS78GPo3BPMjL0MzPoMmumO8NSVYI+MEDY1lC4KkyZVKqtV
|
||||||
|
nIfaO/7adcM19xOAfAHkwhLGBC/bVAEqelev+GH/42xjNv532nM4/JVtBns+msR5
|
||||||
|
DAYdtr6i82b7zhU1+lOOihv4lmQHoSnTya8CAwEAAaNQME4wHQYDVR0OBBYEFFYr
|
||||||
|
0CpiwxgFcZnW6IQEhxGv/vwiMB8GA1UdIwQYMBaAFFYr0CpiwxgFcZnW6IQEhxGv
|
||||||
|
/vwiMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKbBt0ht72fdtxwm
|
||||||
|
Kr0pOsKyDW0Rd5Ca5aDK4qAhDL0AD5+O6ShGYCnFNDGk3J5Yzawp8VoKrhDZZyUt
|
||||||
|
z2b0jNucVapAvPMA4066QxeIfvFmWcS73l7vjjeUoKWmNNGWprTg3RLsacTorKuY
|
||||||
|
ZRL7wsThfrhvg4B/OOIWKp5MEwIrUfnQzUca8getF2eyTt6QcMtE29AW5+01QTzj
|
||||||
|
fxZgzkmJFYBE2K/TLMDBDd+bz/8XnmPrJ01VUntXiXenTGTcIbJerB6GYQojjvhy
|
||||||
|
ZrOeuHTON1ndFiQkpeZA67ByZjkKVoJG3I8fwBjzcLE7u/QAQptVPjJXXcSpL7fA
|
||||||
|
a1tOvqw=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,20 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNzCCAh8CCQDn8i4K9c4ErDANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjEyMTUw
|
||||||
|
NjUxWhcNMTkwNjI3MTUwNjUxWjBcMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRUwEwYD
|
||||||
|
VQQDDAxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||||
|
AQDRnnNnV3PZrbZwjxk+dkQcO3pK3wMvoDNAHPPiTfXRV2KjLHxsuK7wV+GPHmXo
|
||||||
|
97bot6vBxNQN7hfxoDLL+KBO9s3V+8OX6lOrF7hQ6+6/p9EgRoyNGo21eIzGwc2M
|
||||||
|
aJAKjImNMbM7FDTvhk3u+VTTJtlnKvJM1tgncbEZwRLri/2MEC5XS/O5FQT4AXPr
|
||||||
|
A6bRcGMqCVYtQ0ci6wd18PegA/rSmGSRf/TOd4jZXkxfHD+YOkHcxxz9sX4KnyOg
|
||||||
|
XZm8jDdBc7rxiDep8kIjL06VszJeoQrxjuf8cNZtbol/7ECS5aM2YOx7t0Dc/629
|
||||||
|
V2Q5waRVBV5xVCJ0BzUh8rIFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGlkxYLr
|
||||||
|
ZI/XNjDC6RFfSFRoDc+Xpcg+GsJKKbw2+btZvAD8z7ofL01yGru9oi6u2Yy/ZDKT
|
||||||
|
liZ+gtsD8uVyRkS2skq7BvPzvoYErLmSqwlrcCbeX8uHiN7C76ll9PFtSjnwPD//
|
||||||
|
UaNyZM5dJB2eBh4/prclix+RR/FWQzkPqEVLwMcFBmnPZ0mvR2tncjpZq476Qyl9
|
||||||
|
3jcmfms9qBfBPPjCdXqGEDgsTd2PpYRD2WDj/Ctl4rV7B2jnByullLUYIWGu0rYt
|
||||||
|
988waU5i8ie4t/TorBBLqQo/NO9jSXfEqcAnILPnv1QZanKzAAxSg7+FgFrsn359
|
||||||
|
ihiEkx9zFUnPrdA=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,17 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICrjCCAZYCCQDn8i4K9c4ErjANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjE2MTAy
|
||||||
|
MzM2WhcNMjMwODA5MTAyMzM2WjBXMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYD
|
||||||
|
VQQDDAdDSEFNNTY5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDS5w0h8L70
|
||||||
|
hkreKchVbTzfz4CrBLY4iADNSqPx9uW7DxjeHyLbKT2eRViY/xPuPXQmfRim01QM
|
||||||
|
sZWKvFr6k9WMsJ6ItNtCyKS/beONqvXOddIu+4IhNzEGs5v4pTJAOzraoZcVmXnf
|
||||||
|
Mr9G/baMYfMG47JR5HaSHDI5esa2STHt4wIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
|
||||||
|
AQBdZ2ijHYH8TkOGBqzsNwnNwPaDb/NA0vAO9T5kSOm8HA8vKHnNza+DeUJN+5P/
|
||||||
|
P4fLK7UZqpQN32MpvXL0068g99RLjAzAsEVn+0FTyc08r9p/KO/dxxdMKeET7Cpv
|
||||||
|
rMpu3W0A/EJptCQsTEZI0iqts7T2qQVXzoDlnUwEt3xdmKYJ9jbEq1UUCeexD3nP
|
||||||
|
LB+JtUtfGevVzIoBjHv0qA3ePA24jDUlx5bxFeoIDC4tEewvUG5ZekftsRdNe3fk
|
||||||
|
3LkwyK+4NN1ZCa2+S5SOAfjZA2o6qXiq/le0vWRgl7AHEgDr6w7xoRsw4K5dQ+0R
|
||||||
|
eKtsBC4XO1GqrNYdKuJb1MhI
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDljCCAn6gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UEBhMCTkwx
|
||||||
|
EzARBgNVBAgMCk92ZXJpanNzZWwxEDAOBgNVBAcMB0hlbmdlbG8xDzANBgNVBAoM
|
||||||
|
BkFETElOSzEYMBYGA1UEAwwPQ0hBTTUwMCBSb290IENBMB4XDTE4MDIwOTE2Mjky
|
||||||
|
MVoXDTI4MDIwNzE2MjkyMVowVTELMAkGA1UEBhMCTkwxEzARBgNVBAgMCk92ZXJp
|
||||||
|
anNzZWwxDzANBgNVBAoMBkFETElOSzEgMB4GA1UEAwwXQ0hBTTUwMCBJbnRlcm1l
|
||||||
|
ZGlhdGUgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwucuU/L6N
|
||||||
|
iYxYJ7tyzcdzwXwYbr4GynZE4u2Sd7hcXrQGxTotm9BEhOZWscSGvH+UJSp0Vrb4
|
||||||
|
3zDppiJ76ys6PeSBw1PpxdO97fO+eAE5DoXRj0a9lmnjbsV6waZ2GxgYQNVmKqbI
|
||||||
|
uPDfW+jsmRcTO94s05GWQshHeiqxuEUAv3/Qe2vOhulrg4YDcXrIDWK93cr1EmRX
|
||||||
|
Eq3Ck+Fjwtk5wAk3TANv2XQkVfS80jYAurL8J+XC2kyYB7e8KO92zqlfVXXMC3NI
|
||||||
|
YDcq86bAI4NNMjVE2zIVheMLoOEXaV7KUTYfEQABZl76aWLDxjED9kf371tcrZzJ
|
||||||
|
6xZ1M/rPGNblAgMBAAGjZjBkMB0GA1UdDgQWBBQngrlZqhQptCR4p04zqHamYUx7
|
||||||
|
RTAfBgNVHSMEGDAWgBQrLYI+RHJtx1Pze8MSZbhaOful1DASBgNVHRMBAf8ECDAG
|
||||||
|
AQH/AgEAMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEAfMmiQ0tv
|
||||||
|
o3K3xwSS621tsfkijUTx920hAe1XYY2XKrG7a/MJBhStex5A3AfqPOY9UMihkBl9
|
||||||
|
3hgxOaddX9SAf2eLk2JLhqxZi1U/GVzT5h10AKLA5WUXIK4UGz3JRqhEm7V39t/N
|
||||||
|
G0LCdpWOZueezkfO6eGcAvOKthdd32a3zbn+rzzDHdsjzxhEEv8d8x1Xf4xH2dgk
|
||||||
|
HlpmpvXMfG/1aCzIpWGEPdkB7WR694GiCmh7hnFBiY+h1GFj2l5dThd51QqAlncM
|
||||||
|
u+NmlPCrFZL0ulwRFeo80KOwDpxkqgavDlP9irdWqM9VHybjGu0xFHCeElz9M6od
|
||||||
|
ym/MCh4ax7jDxg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,20 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNzCCAh8CCQDn8i4K9c4ErDANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVTQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjEyMTUw
|
||||||
|
NjUxWhcNMTkwNjI3MTUwNjUxWjBcMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRUwEwYD
|
||||||
|
VQQDDAxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||||
|
AQDRnnNnV3PZrbZwjxk+dkQcO3pK3wMvoDNAHPPiTfXRV2KjLHxsuK7wV+GPHmXo
|
||||||
|
97bot6vBxNQN7hfxoDLL+KBO9s3V+8OX6lOrF7hQ6+6/p9EgRoyNGo21eIzGwc2M
|
||||||
|
aJAKjImNMbM7FDTvhk3u+VTTJtlnKvJM1tgncbEZwRLri/2MEC5XS/O5FQT4AXPr
|
||||||
|
A6bRcGMqCVYtQ0ci6wd18PegA/rSmGSRf/TOd4jZXkxfHD+YOkHcxxz9sX4KnyOg
|
||||||
|
XZm8jDdBc7rxiDep8kIjL06VszJeoQrxjuf8cNZtbol/7ECS5aM2YOx7t0Dc/629
|
||||||
|
V2Q5waRVBV5xVCJ0BzUh8rIFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGlkxYLr
|
||||||
|
ZI/XNjDC6RFfSFRoDc+Xpcg+GsJKKbw2+btZvAD8z7ofL01yGru9oi6u2Yy/ZDKT
|
||||||
|
liZ+gtsD8uVyRkS2skq7BvPzvoYErLmSqwlrcCbeX8uHiN7C76ll9PFtSjnwPD//
|
||||||
|
UaNyZM5dJB2eBh4/prclix+RR/FWQzkPqEVLwMcFBmnPZ0mvR2tncjpZq476Qyl9
|
||||||
|
3jcmfms9qBfBPPjCdXqGEDgsTd2PpYRD2WDj/Ctl4rV7B2jnByullLUYIWGu0rYt
|
||||||
|
988waU5i8ie4t/TorBBLqQo/NO9jSXfEqcAnILPnv1QZanKzAAxSg7+FgFrsn359
|
||||||
|
ihiEkx9zFUnPrdA=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA0Z5zZ1dz2a22cI8ZPnZEHDt6St8DL6AzQBzz4k310Vdioyx8
|
||||||
|
bLiu8Ffhjx5l6Pe26LerwcTUDe4X8aAyy/igTvbN1fvDl+pTqxe4UOvuv6fRIEaM
|
||||||
|
jRqNtXiMxsHNjGiQCoyJjTGzOxQ074ZN7vlU0ybZZyryTNbYJ3GxGcES64v9jBAu
|
||||||
|
V0vzuRUE+AFz6wOm0XBjKglWLUNHIusHdfD3oAP60phkkX/0zneI2V5MXxw/mDpB
|
||||||
|
3Mcc/bF+Cp8joF2ZvIw3QXO68Yg3qfJCIy9OlbMyXqEK8Y7n/HDWbW6Jf+xAkuWj
|
||||||
|
NmDse7dA3P+tvVdkOcGkVQVecVQidAc1IfKyBQIDAQABAoIBAEddUpzUQTTS11Hq
|
||||||
|
5gVF7lpORYxH8KW+PLSPJtjdAduLjKAQ++tn1OcuhDRdfQSbkUIZhfgqMqerb6tr
|
||||||
|
ht+6fZlknR9E34pQ1LtjD/U83cOSNrhuTFudtrEZoZPpVzl+P8vXnNzdFs/+SSdi
|
||||||
|
6hV5/U8F4u4kyOkwG9cR9eF2wiI+oQ/RBKCXUo3OVs9K27A/OkKsb7coL7yBsgBj
|
||||||
|
lzorS9a/DyHT2eiMKjwCZFyG4A66EkLi6t9JLJ8oTkI2WskXYeVEAbEXE57RWm44
|
||||||
|
2OgTgfsgYgf2ftXq93KD17FN1m77dqp7EPAhjGnRHNq7+0Ykr1EO1nbDfqHG4gS+4o
|
||||||
|
lfP8iwECgYEA58da0R34l93yQnK0mAtoobwvsOjADnBVhBg9L4s2eDs8liUjf0zt
|
||||||
|
7hcMdUJaa7iMuNf3qGtnZtRURc3kSOE429Or7fCAYUr/AaA7+2ekPG1vjMb50tVv
|
||||||
|
se5rwb1hvgMYe2L5ktJJAg+RcmqpY+ncJ+hP/vWwZRxUKvXba50qqEkCgYEA54ZE
|
||||||
|
mJfSueGM/63xlhP71CM4OWtTqkQGp2OmgTOsBI5q/GUXr8vMR8sCEMHAc6HyXzmL
|
||||||
|
x/RnAoa/vTX58rXBk0QjfO9esIHa452697EIaJu5w8skCLDv2e/f+Jg7o/IDyUZs
|
||||||
|
5lqhiEuH9Qc3sx2nhnSYXMZWqwh8OchI7dCSE90CgYEAzrJ1JhpxUJYI7wM2VIWQ
|
||||||
|
GPQnH8BhTj8VtEidgCHJQK2rGUcjgepMIVECtiunUXtyW4GWBedKfmSKhvnXRLs9
|
||||||
|
pqT9JaOeCaYFBiEsfMZvqUY4e/YSYtge1PIHvO40FWzTT23zneDUZPcXQY8nYsfy
|
||||||
|
otBFTt0yIumBkhJRTIYLvakCgYA+CcttvBj6OAcJJ/n5RgeP05QoRqsXj7zcs6YV
|
||||||
|
LtxkKClg0lHjiE+H2U0HYnOISJfijk/3V3UWxzavo7wDHlLtfC+qNZYA4/rcTRKh
|
||||||
|
dm2TYk8HuPJB5e+PTWiNe3VXu+zpzRY3L4fjNqIKtVFmjIasT6fYDEmC8PYgoZtx
|
||||||
|
JhdOfQKBgCD/bDkc+VI6lwQtoQQKiSfQjKGe+6Cw9K/obzWO0uJwBvZrGLXF8tTc
|
||||||
|
MOPIv9OILt7DYxpMXAiHv8HtzH5CFVrZ/nj63Soka/j2yvUdBDrGhyIbsc4pDu+
|
||||||
|
lCFa0ZiT/u5vRAiOkM6GuStH4HxnW9LtwBtiYXtfU7IPExJiAlsq
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA0Z5zZ1dz2a22cI8ZPnZEHDt6St8DL6AzQBzz4k310Vdioyx8
|
||||||
|
bLiu8Ffhjx5l6Pe26LerwcTUDe4X8aAyy/igTvbN1fvDl+pTqxe4UOvuv6fRIEaM
|
||||||
|
jRqNtXiMxsHNjGiQCoyJjTGzOxQ074ZN7vlU0ybZZyryTNbYJ3GxGcES64v9jBAu
|
||||||
|
V0vzuRUE+AFz6wOm0XBjKglWLUNHIusHdfD3oAP60phkkX/0zneI2V5MXxw/mDpB
|
||||||
|
3Mcc/bF+Cp8joF2ZvIw3QXO68Yg3qfJCIy9OlbMyXqEK8Y7n/HDWbW6Jf+xAkuWj
|
||||||
|
NmDse7dA3P+tvVdkOcGkVQVecVQidAc1IfKyBQIDAQABAoIBAEddUpzUQTTS11Hq
|
||||||
|
5gVF7lpORYxH8KW+PLSPJtjdAduLjKFQ++tn1OcuhDRdfQSbkUIZhfgqMqerb6tr
|
||||||
|
ht+6fZlknR9E34pQ1LtjD/U83cOSNrhuTFudtrEZoZPpVzl+P8vXnNzdFs/+SSdi
|
||||||
|
6hV5/U8F4u4kyOkwG9cR9eF2wiI+oQ/RBKCXUo3OVs9K27A/OkKsb7coL7yBsgBj
|
||||||
|
lzorS9a/DyHT2eiMKjwCZFyG4A66EkLi6t9JLJ8oTkI2WskXYeVEAbEXE57RWm44
|
||||||
|
2OgTI/Yc2yrtXq93KD17FN1m77dqp7EPAhjGnRHNq7+0Ykr1EO1nbDfqHG4gS+4o
|
||||||
|
lfP8iwECgYEA58da0R34l93yQnK0mAtoobwvsOjADnBVhBg9L4s2eDs8liUjf0zt
|
||||||
|
7hcMdUJaa7iMuNf3qGtnZtRURc3kSOE429Or7fCAYUr/AaA7+2ekPG1vjMb50tVv
|
||||||
|
se5rwb1hvgMYe2L5ktJJAg+RcmqpY+ncJ+hP/vWwZRxUKvXba50qqEkCgYEA54ZE
|
||||||
|
mJfSueGM/63xlhP71CM4OWtTqkQGp2OmgTOsBI5q/GUXr8vMR8sCEMHAc6HyXzmL
|
||||||
|
x/RnAoa/vTX58rXBk0QjfO9esIHa452697EIaJu5w8skCLDv2e/f+Jg7o/IDyUZs
|
||||||
|
5lqhiEuH9Qc3sx2nhnSYXMZWqwh8OchI7dCSE90CgYEAzrJ1JhpxUJYI7wM2VIWQ
|
||||||
|
GPQnH8BhTj8VtEidgCHJQK2rGUcjgepMIVECtiunUXtyW4GWBedKfmSKhvnXRLs9
|
||||||
|
pqT9JaOeCaYFBiEsfMZvq8f4e/YSYtge1PIHvO40FWzTT23zneDUZPcXQY8nYsfy
|
||||||
|
otBFTt0yIumBkhJRTIYLvakCgYA+CcttvBj6OAcJJ/n5RgeP05QoRqsXj7zcs6YV
|
||||||
|
LtxkKClg0lHjiE+H2U0HYnOISJfijk/3V3UWxzavo7wDHlLtfC+qNZYA4/rcTRKh
|
||||||
|
dm2TYk8HuPJB5e+PTWiNe3VXu+zpzRY3L4fjNqIKtVFmjIasT6fYDEmC8PYgoZtx
|
||||||
|
JhdOfQKBgCD/bDkc+VI6lwQtoQQKiSfQjKGe+6Cw9K/obzWO0uJwBvZrGLXF8tTc
|
||||||
|
MOPIv9OILt7DYxpMXAiHv8HtzH5CFVrZ/nj63SRoka/j2yvUdBDrGhyIbsc4pDu+
|
||||||
|
lCFa0ZiT/u5vRAiOkM6GuStH4HxnW9LtwBtiYXtfU7IPExJiAlsq
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,15 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIICXAIBAAKBgQDS5w0h8L70hkreKchVbTzfz4CrBLY4iADNSqPx9uW7DxjeHyLb
|
||||||
|
KT2eRViY/xPuPXQmfRim01QMsZWKvFr6k9WMsJ6ItNtCyKS/beONqvXOddIu+4Ih
|
||||||
|
NzEGs5v4pTJAOzraoZcVmXnfMr9G/baMYfMG47JR5HaSHDI5esa2STHt4wIDAQAB
|
||||||
|
AoGAQi7LijkYU3fJCsql2Vj8X2eogwJphHf5eHLR296U3QyxyxKOR6Q7d+1fDjQN
|
||||||
|
txeF2YYsND3hBFK+ENlm23eE7Z1tpWtnLNJ9OH84ZkPnqTnEcWsRddT/x9vKOPMz
|
||||||
|
eK8QNetD3AP5qXsjpIpgep1diWYHCyhMTAFISzvdtC7pvFECQQD2zoqwRtF26lzg
|
||||||
|
QPR02Z+L80R2VhpeLoqMIplT1bmlrPlDr/eIwvtu1eQFyGSASG2EFs1rucdJl7qu
|
||||||
|
SrJ+eyv1AkEA2sIjy8+RCk1uH8kEwYaMJ3dccqnpcMCZ1b3GncKl+ICmDCYcpfd5
|
||||||
|
rP5tX+GL3RVw370pUApJvrVTgOpAVHYjdwJAOYz8BhLdcS9BLQG4fy7n50h4pGd7
|
||||||
|
io6ru/Wtb0EdIybskP4NaJSe8L9rhnWuCcPZ1b1DdWVCtURuQYoliRzLqQJBAJWO
|
||||||
|
ZrSfKpS1jRVT89lu6ADPXLfTrBH2yvVS8ifG/HshUOQ7ZhidUWVQ6GvFoj46u1lr
|
||||||
|
VIQxFGu6QeV/wQ09W08CQHGkrZgu/FpS2tNvYmKNDHOna+dW452N5N81u5sRP1A8
|
||||||
|
x9pYC9xoOGE2E8v1ocMJDPoMe0yk1QSX9mjhhwYOy28=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,48 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpgIBAAKCAQEAz90I7hABwJ27DQ0ypKEOlO8ZPoMKVMUAkTxl+48Icqo2SJxF
|
||||||
|
vKOxVd8XflJ2jor3YqzPgbuLVGolTafxzuGDYQVTNrSUgaCZMdX8O8UFxsBrQ+m9
|
||||||
|
0pJeg+1I0OHrn8Y7VHuh5IVHNqmqwsw9TA5aLjp1i9Gc9pvGzbXEfGfnol64bvht
|
||||||
|
p3k8xMG8DZKKJNg8GUcYlLvwY+jcE8yMvQzM+gya6Y7w1JVgj4wQNjWULgqTJlUq
|
||||||
|
q1Wch9o7/tp1wzX3E4B8AeTCEsYEL9tUASp6V6/4Yf/jbGM2/nfaczj8lW0Gez6a
|
||||||
|
xHkMBh22vqLzZvvOFTX6U46KG/iWZAehKdPJrwIDAQABAoIBAQDGvQsAsoU6aJSj
|
||||||
|
Ee9NwD903nZAcoG6MvEr65eGQWdOWre0DNYQWmH/PGH2AVohR3Tn/1oXK/03JJWt
|
||||||
|
/dkQeEVoyfKZ52Xl2mseXv3fF61CLk9gi2dWoWOEt6ZbMOZbyOiJCfvrxhIkjWwa
|
||||||
|
+7PPuBk5AePJXwy4LJCTtiq61418i2Bbl6JamytgxsiVK9kZXdN6JqEVYmweMpmR
|
||||||
|
T1mzi7lssyttBIXwG8ajStUteIYLyi8d+UX4S08EyV0VGL0p5+F8xTY1jVX/t6Y0
|
||||||
|
KbANJdjEab9mbndzbxprJlS08KBLgdnAO4w0nmINiaO2isXOLoV8SU3tTqHC3W7c
|
||||||
|
CCSKJdGBAoGBAP9vCSP1AaEjYa6sfEUgThpCo7PhRuOMEDb+4ldv9O+hzXv5I8td
|
||||||
|
gbDs1g3jyhb0yhW9uV9NsuKBtsmv1zYFswZDNbdr2S1VZPMpAx+SeLHQWy6HbU/t
|
||||||
|
oHoOO+l8erFVvR2uqit5rBDzN6/lh4SoQzYE9JDAnXJp9W0rKAdtBSLRAoGBANBT
|
||||||
|
AIErbPo4EuU13DaEa+EfoU4Abktyi+L8dpdoXMq6sHg3Mlhifr+ryoybrMMA3tmT
|
||||||
|
6ekBCSVThF0/+HAFRAJthnyBgUd0D710JDHro47Mg37CxU+V8JYqZJGHUSfqng7/
|
||||||
|
pM7LjM99VhigquH4PoDH4YpL8vnIeEMNmny4iER/AoGBAJj8k+jpUXSFkHfh7vwo
|
||||||
|
AR9RUmLmRmL6/KsztbTQ5U6xBjV+XqXq90ZUU1A2Yk+lhXPIEkK2crGfJy9dFfTR
|
||||||
|
LQxPLNkSyxyPzMqmgaxjOc6mEDap/hqlJDx2UgPh/kpAI+inOFyZnyj3wx6ixqv5
|
||||||
|
a2frR996vdJNDCW6d1sbPLxBAoGBAMO66IN0UJy76Izw0Olr+4v10vFdmENM6T+o
|
||||||
|
IqhZBq33P+yDN8sxJ5NgjhsT/Pruq3LT9XbVYUlvsbKHcx2U5PQ/AZejedqvokZH
|
||||||
|
g+ZfVjnJz1ZfG1GOOBBu3jSZZdfSKRVAfhFJ0A/229ihxEwxmFAY/MCaYTzsbInb
|
||||||
|
kyXRnz5zAoGBAIT9Fuk7zhfubYvkzIQ0kj/IxL3QohVRKcoGapDMSwNjTvxZdKxF
|
||||||
|
WXkhhJT095QznHP1fhp90fBKlOdsReDWfZXMYtZTqo2+ezK8qb6xMlm+LE09y+Na
|
||||||
|
f7pp1EPnIqyEX27B4aQ81M8tkCqbdlv3CdjFSusp6SsWTGTjr/5SAMDS
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNzCCAh8CCQDn8i4K9c4ErDANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjEyMTUw
|
||||||
|
NjUxWhcNMTkwNjI3MTUwNjUxWjBcMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRUwEwYD
|
||||||
|
VQQDDAxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||||
|
AQDRnnNnV3PZrbZwjxk+dkQcO3pK3wMvoDNAHPPiTfXRV2KjLHxsuK7wV+GPHmXo
|
||||||
|
97bot6vBxNQN7hfxoDLL+KBO9s3V+8OX6lOrF7hQ6+6/p9EgRoyNGo21eIzGwc2M
|
||||||
|
aJAKjImNMbM7FDTvhk3u+VTTJtlnKvJM1tgncbEZwRLri/2MEC5XS/O5FQT4AXPr
|
||||||
|
A6bRcGMqCVYtQ0ci6wd18PegA/rSmGSRf/TOd4jZXkxfHD+YOkHcxxz9sX4KnyOg
|
||||||
|
XZm8jDdBc7rxiDep8kIjL06VszJeoQrxjuf8cNZtbol/7ECS5aM2YOx7t0Dc/629
|
||||||
|
V2Q5waRVBV5xVCJ0BzUh8rIFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGlkxYLr
|
||||||
|
ZI/XNjDC6RFfSFRoDc+Xpcg+GsJKKbw2+btZvAD8z7ofL01yGru9oi6u2Yy/ZDKT
|
||||||
|
liZ+gtsD8uVyRkS2skq7BvPzvoYErLmSqwlrcCbeX8uHiN7C76ll9PFtSjnwPD//
|
||||||
|
UaNyZM5dJB2eBh4/prclix+RR/FWQzkPqEVLwMcFBmnPZ0mvR2tncjpZq476Qyl9
|
||||||
|
3jcmfms9qBfBPPjCdXqGEDgsTd2PpYRD2WDj/Ctl4rV7B2jnByullLUYIWGu0rYt
|
||||||
|
988waU5i8ie4t/TorBBLqQo/NO9jSXfEqcAnILPnv1QZanKzAAxSg7+FgFrsn359
|
||||||
|
ihiEkx9zFUnPrdA=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,30 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
Proc-Type: 4,ENCRYPTED
|
||||||
|
DEK-Info: AES-256-CBC,0C9C38C5678AECD200E024A9A5BC717A
|
||||||
|
|
||||||
|
wbXYsR78o4DIaQbKsB4cwEFge79GMKbcMgIWK+9k86dPk09WZkj7JCSJXIxPLYOG
|
||||||
|
tFZrw/z86cakEhf90a4Moa1cwByrcFB+bpWoEqsx/C4javWxXMENbmQ5x8gDpmzT
|
||||||
|
qqLI7xnd2mYj7HcfE7eXi+Nub5w1tBxN0CWaxpR54ZVvfcPE6Od4SHGughdUN4AK
|
||||||
|
OdVIq5YuzMhuTDJKy+kGOtjH8pBWvo8S12T2UQEuusx5WUbEJ6m+E80aN7M6gCA+
|
||||||
|
XmNTt3PsV9PfZPL2Off/90gqTBdMhwn+sEVlqYG0TAnXZQEI8ZNtAGy77CFplqdT
|
||||||
|
SmI3x8Sza7lchEMFhRiayX9pMBPUlwckVPrCoMQ4b4WkHYoGLO7dNVAA8Osud46+
|
||||||
|
6MZKHStjdzwKz9MzWa7lXhXV+0sX5bcAzQexuE+wO8QQ/t5uwDmQHol0JVdRX8NB
|
||||||
|
/Exk6aT7mWajFvukXVirpUGWnEK2W+O8/VBzVZ7z69EjZ09Pu4Y/+cbX12LGSwMb
|
||||||
|
WVtnZY6BsrV++vikQuL3ByTBDPRHio2H8hThh1Kv8n5VEBUrk7tLUp3Z15cbfC6s
|
||||||
|
LDHX6kB2OKmmdqLOOMo4lToZfnrVK/dzeXFbtNH1POpR4/e5Nk0SyZrWo+E/AqIv
|
||||||
|
nLQ3fhLCPOB5rjAhuM8iXOwqn8HHNlv9j8mlgCcgwK7focYVc/IXARLOfFOjOA/s
|
||||||
|
EqMRbb/eKsC930NHBZkhlqRJKCwA37AMvnOhN4R0VOq/40K+62IUK9E1643KyWs0
|
||||||
|
vWk0rFY0OKorQXzI33lbBYZ5zHt8oxGNx3us+6jGP85iv8UEaO6FpgajEUn6Gzp/
|
||||||
|
wyvr1C/B/Hfr6eTbt4C6Fi5fMfZgM6VEcJuaFZnoC9tWdhlNsY1pwtPghMM7yBwc
|
||||||
|
1Ye0TxdF36exJWu1gXVTse1Vdc9i4QWpT2fbPQtcIgdtNk01K+2defie384IOnQQ
|
||||||
|
O8/SRsrnLRLV3IDFh/VBJS1ZVm8Zmt10yGgRwtYHntMkIopoFRWcm9/Gh3iBFKKH
|
||||||
|
OTVXxgKOUYk4qXG61N8k0M+TIdoOHZIha3Myis1tQVmA/b/4FRKPYgdrFijhXNLM
|
||||||
|
wwMHQOS14xBF2KBgaak7dMUWhGrClw1hc3HmMXuM+OLvxy+f8MC3JP2U5AuCs472
|
||||||
|
hc41KWxioqNMPVXZgVnHf3aEec+hBFceqYnlzG+E/Gagiufu8WMySaZgzXMRb5aV
|
||||||
|
x2OVcakSKrTC5EKbLDlZ6+1NRJht7wdSefh0o/Crc9LzcFqBL0Qp3WCvyY8gDVkQ
|
||||||
|
EGqoVYOE6Hz/NX5/17F1+5VuWT7nBWABHKFFriOoJ3VR9sZhp0HiMznZEF1AwVuZ
|
||||||
|
xHtDWQemfBywEQG23qbr+o7mQASh1zki8b4fP1HQmbHhaJarjwGdiVNIgcF7s7Qk
|
||||||
|
NYNcgsc1l0KuNHvredTnYwPhv3C08IBfjtd2H9u0A+AWl5RlR4GDfv2Jzbe/F8U+
|
||||||
|
0gxj8D2XWHlkbHIXKVk6jxj64xyNE1xB0Sv7gsDWpkaK6aw/zdsyxqiji4mThcYE
|
||||||
|
cRSl4y9CGZREaiyD8dk/uiqKfQ26c1gfOUDYS2fKjH5NKh4J80wQj0GvS6nHiDH4
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,20 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDMzCCAhsCCQDn8i4K9c4ErzANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMzIzMTIw
|
||||||
|
MTE5WhcNMjMxMDMxMTIwMTE5WjBYMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMREwDwYD
|
||||||
|
VQQDDAhDSEFNLTU3NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcc
|
||||||
|
IMlRp2EnOC/UIIOF2gm+wtsikv5CscDuyq9DA2QgS5TTKqivDAdOSUIcbVn8qb6/
|
||||||
|
77viarmRXml3VHJdhR2abtY6xYKYF2SCFiyoNk6ITq+YBrCfmMh/bCYTD6c5vnl4
|
||||||
|
SKomIArU1g1YAxHxHqZRX1oonldUdP4lqq+Qt6fllYFhHNAl5JjrrCuPpXmAW3pC
|
||||||
|
z4b3HWP/6vnbOFFMYkwGprVoAljcnAG7C7zSjW2M3RN4xA/z6Lps8qrPFB2iAXaP
|
||||||
|
ZnST1rkqctf2IDWVwloG0uJnqiigcIz6+hvf5VMU0ax+CrYqFGav/uwvPCiHcUkF
|
||||||
|
3a/O3z+4xGHaBagfHukCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAXZlNPz6raCBp
|
||||||
|
F+iyNWTGy27OyM/TZNE9QTPI28TQEmLfqCrRfq+uHhBQ3U9TgS3xX/f5b+BPHuaD
|
||||||
|
N6vl/yECAQa+0r33EFdoe8rGa0Mr5VvADcqPmk/sp9K62fRcP4aCgliDi8g9G8q1
|
||||||
|
XNgO/EA9HhFlFKPzLPFMhq7qqPOQWO/EddoxA/qCMGZtN+TAxqLKVB0lipJoSa0x
|
||||||
|
XqtYvNWiaShPceSk4SAjAdpdhvxOpA/25uvFEISdt9zoqbs4eLUbi/9RFYaL8U4r
|
||||||
|
E+FygZMi31N6PC/Q7/tJ4DG20K/V30Y1+ogvSfdJpWk9L/CJj0VrzqJTVaKBIFVV
|
||||||
|
6PtqHPZiKA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDpDCCAoygAwIBAgIJALE5lRKfYHAaMA0GCSqGSIb3DQEBCwUAMF8xCzAJBgNV
|
||||||
|
BAYTAk5MMRMwEQYDVQQIDApPdmVyaWpzc2VsMRAwDgYDVQQHDAdIZW5nZWxvMQ8w
|
||||||
|
DQYDVQQKDAZBRExJTksxGDAWBgNVBAMMD0NIQU01MDAgUm9vdCBDQTAeFw0xODAy
|
||||||
|
MDkxNjIwNDNaFw0zODAyMDQxNjIwNDNaMF8xCzAJBgNVBAYTAk5MMRMwEQYDVQQI
|
||||||
|
DApPdmVyaWpzc2VsMRAwDgYDVQQHDAdIZW5nZWxvMQ8wDQYDVQQKDAZBRExJTksx
|
||||||
|
GDAWBgNVBAMMD0NIQU01MDAgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAN9/NbpJDHQYHh3cEByRxnHffxEe9Sapn08Ty5xYO8LDJ4V7vU32
|
||||||
|
/7291fITiHaovOoCRHAbKTaTtqJO56aGY45HON6KIqxljLQJJVGW/Nf2PNSHmFix
|
||||||
|
6D6bsoSOTPyKYqBNT6lB7NMn4QBTcsiE61El8p9WLQZHoYQJK5Psf7wkBqGBz8he
|
||||||
|
bcDWXFn7kIgnsaLrh77w2wi/y0MqpPwyeRInoZfYknzVNdxCPgq7csBYDoMgOgkV
|
||||||
|
G60ECXojHKz1HI4n0V8L8lZluSSVRNR0xvPFgBqO7b+Re7xb6iO9TNsFeoiMMNyp
|
||||||
|
EwM99CqPO0RRrAPiC7IDgcNGjxhne9EJFGsCAwEAAaNjMGEwHQYDVR0OBBYEFCst
|
||||||
|
gj5Ecm3HU/N7wxJluFo5+6XUMB8GA1UdIwQYMBaAFCstgj5Ecm3HU/N7wxJluFo5
|
||||||
|
+6XUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQCWibvYuPLpoNcsUdHbE7SnBbEQnDfBxBZN8xeWHwwAPEB+8eHhmIdZ
|
||||||
|
xDtCN61xr5QR+KzlEYFwKyHMp9GN3OPU1RndJrzaXz2ddAZVkBIvnQZ4JvFd+sBC
|
||||||
|
QQgEvL8GcwZPxnad/TRylM4ON3Kh0X9vfyrmWEoHephiE1LcENaFqcYr9xg3DJNh
|
||||||
|
XSrigMGZJ7IOHkvgaoneICOcYI42ZHS0fnt1G+01VKJXm3ndi5NL25GnOmlvV6yV
|
||||||
|
+1vcmdQc6YS8K8vHmrH4lX9iPfsOak6WSzzsXdqgpvyxtGJggcFaDTtmbWCAkJj0
|
||||||
|
B7DMeaVlLClGQaKZZ7aexEx9se+IyLn2
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAwqVYYrx/8ASMru+K70J3J0maisrKTegrw9aZlfcH7eTx4Vbf
|
||||||
|
Y1e/b4Erm+SwA6ERwIBXb/XbmIAa9ezm+rkayGOAdfAnKwo4UHAuII8fMto5fT3m
|
||||||
|
JvqmA96OOBWAawatEAp60ICrG/6l/WfjMP1VIsOucevFvO+ixB0EKBIE+JMUrmoM
|
||||||
|
AaFUZHjw+n2ACpk+F0t8fjtL/qxxEk3LChesjGnYKe4d3h9W/JCU80sfCVfWc6vv
|
||||||
|
psY6MaoWwVT+Zw83toYUiHgpAr0q8e3n5ICkuAEF2uf2eOBogLtU3111KnYnPa8c
|
||||||
|
A9HnZ2ozRJZ2Xu7I6JP9Mrqrx/toUqqTb2v86QIDAQABAoIBAC1q32DKkx+yMBFx
|
||||||
|
m32QiLUGG6VfBC2BixS7MkMnzRXZYgcuehl4FBc0kLRjfB6cqsO8LqrVN1QyMBhK
|
||||||
|
GutN3c38SbE7RChqzhEW2+yE+Mao3Nk4ZEecHLiyaYT0n25ZtHAVwep823BAzwJ+
|
||||||
|
BykbM45VEpNKbG1VjSktjBa9faNyZiZAEJEjVyla+6R8N4kHV52LbZcLjvJv3IQ2
|
||||||
|
iPYRrmMyI5C23qTni0vy7yJbAXBo3CqgSlwie9FARBWT7Puu7F4mF1O1c/SnTysw
|
||||||
|
Tm3e5FzgfHipQbnRVn0w4rDprPMKmPxMnvf/Wkw0zVgNadp1Tc1I6Yj525DEQ07i
|
||||||
|
2gIn/gECgYEA4jNnY1u2Eu7x3pAQF3dRO0x35boVtuq9iwQk7q+uaZaK4RJRr+0Y
|
||||||
|
T68S3bPnfer6SHvcxtST89Bvs/j/Ky4SOaX037UYjFh6T7OIzPl+MzO1yb+VOBT6
|
||||||
|
D6FVGEJGp8ZAITU1OfJPeTYViUeEC8tHFGoKUCk50FbB6jOf1oKtv/ECgYEA3EnB
|
||||||
|
Y7kSbJJaUuj9ciFUL/pAno86Cim3VjegK1wKgEiyDb610bhoMErovPwfVJbtcttG
|
||||||
|
eKJNuwizkRcVbj+vpjDvqqaP5eMxLl6/Nd4haPMJYzGo88Z8NJpwFRNF2KEWjOpQ
|
||||||
|
2NEvoCeRtVulCJyka2Tpljzw8cOXkxhPOe2UhHkCgYBo3entj0QO7QXm56T+LAvV
|
||||||
|
0PK45xdQEO3EuCwjGAFk5C0IgUSrqeCeeIzniZMltj1IQ1wsNbtNynEu3530t8wt
|
||||||
|
O7oVyFBUKGSz9IjUdkpClJOPr6kPMfJoMqRPtdIpz+hFPPSrI6IikKdVWHloOlp+
|
||||||
|
pVaYqTQrWT1XRY2xli3VEQKBgGySmZN6Cx+h/oywswIGdUT0VdcQhq2to+QFpJba
|
||||||
|
VX6m1cM6hMip2Ag9U3qZ1SNPBBdBBfm9HQybHE3dj713/C2wHuAAGhpXIM1W+20k
|
||||||
|
X1knuC/AsSH9aQhQOf/ZMOq1crTfZBuI9q0782/sjGmzMsKPySU4QhUWruVb7OiD
|
||||||
|
NVkZAoGAEvihW7G+8/iOE40vGHyBqUeopAAWLciTAUIEwM/Oi3BYfNWNTWF/FWNc
|
||||||
|
nMvCZPYigY8C1vO+1iT2Frtd3CIU+f01Q3fJNJoRLlEiKLNZUJRF48OKUqjKSmsi
|
||||||
|
w6pucFO40z05YW7utApj4L82rZnOS0pd1tUI1yexqvj0i4ThJfk=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,15 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIICXAIBAAKBgQDS5w0h8L70hkreKchVbTzfz4CrBLY4iADNSqPx9uW7DxjeHyLb
|
||||||
|
KT2eRViY/xPuPXQmfRim01QMsZWKvFr6k9WMsJ6ItNtCyKS/beONqvXOddIu+4Ih
|
||||||
|
NzEGs5v4pTJAOzraoZcVmXnfMr9G/baMYfMG47JR5HaSHDI5esa2STHt4wIDAQAB
|
||||||
|
AoGAQi7LijkYU3fJCsql2Vj8X2eogwJphHf5eHLR296U3QyxyxKOR6Q7d+1fDjQN
|
||||||
|
txeF2YYsND3hBFK+ENlm23eE7Z1tpWtnLNJ9OH84ZkPnqTnEcWsRddT/x9vKOPMz
|
||||||
|
eK8QNetD3AP5qXsjpIpgep1diWYHCyhMTAFISzvdtC7pvFECQQD2zoqwRtF26lzg
|
||||||
|
QPR02Z+L80R2VhpeLoqMIplT1bmlrPlDr/eIwvtu1eQFyGSASG2EFs1rucdJl7qu
|
||||||
|
SrJ+eyv1AkEA2sIjy8+RCk1uH8kEwYaMJ3dccqnpcMCZ1b3GncKl+ICmDCYcpfd5
|
||||||
|
rP5tX+GL3RVw370pUApJvrVTgOpAVHYjdwJAOYz8BhLdcS9BLQG4fy7n50h4pGd7
|
||||||
|
io6ru/Wtb0EdIybskP4NaJSe8L9rhnWuCcPZ1b1DdWVCtURuQYoliRzLqQJBAJWO
|
||||||
|
ZrSfKpS1jRVT89lu6ADPXLfTrBH2yvVS8ifG/HshUOQ7ZhidUWVQ6GvFoj46u1lr
|
||||||
|
VIQxFGu6QeV/wQ09W08CQHGkrZgu/FpS2tNvYmKNDHOna+dW452N5N81u5sRP1A8
|
||||||
|
x9pYC9xoOGE2E8v1ocMJDPoMe0yk1QSX9mjhhwYOy28=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,48 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpgIBAAKCAQEAz90I7hABwJ27DQ0ypKEOlO8ZPoMKVMUAkTxl+48Icqo2SJxF
|
||||||
|
vKOxVd8XflJ2jor3YqzPgbuLVGolTafxzuGDYQVTNrSUgaCZMdX8O8UFxsBrQ+m9
|
||||||
|
0pJeg+1I0OHrn8Y7VHuh5IVHNqmqwsw9TA5aLjp1i9Gc9pvGzbXEfGfnol64bvht
|
||||||
|
p3k8xMG8DZKKJNg8GUcYlLvwY+jcE8yMvQzM+gya6Y7w1JVgj4wQNjWULgqTJlUq
|
||||||
|
q1Wch9o7/tp1wzX3E4B8AeTCEsYEL9tUASp6V6/4Yf/jbGM2/nfaczj8lW0Gez6a
|
||||||
|
xHkMBh22vqLzZvvOFTX6U46KG/iWZAehKdPJrwIDAQABAoIBAQDGvQsAsoU6aJSj
|
||||||
|
Ee9NwD903nZAcoG6MvEr65eGQWdOWre0DNYQWmH/PGH2AVohR3Tn/1oXK/03JJWt
|
||||||
|
/dkQeEVoyfKZ52Xl2mseXv3fF61CLk9gi2dWoWOEt6ZbMOZbyOiJCfvrxhIkjWwa
|
||||||
|
+7PPuBk5AePJXwy4LJCTtiq61418i2Bbl6JamytgxsiVK9kZXdN6JqEVYmweMpmR
|
||||||
|
T1mzi7lssyttBIXwG8ajStUteIYLyi8d+UX4S08EyV0VGL0p5+F8xTY1jVX/t6Y0
|
||||||
|
KbANJdjEab9mbndzbxprJlS08KBLgdnAO4w0nmINiaO2isXOLoV8SU3tTqHC3W7c
|
||||||
|
CCSKJdGBAoGBAP9vCSP1AaEjYa6sfEUgThpCo7PhRuOMEDb+4ldv9O+hzXv5I8td
|
||||||
|
gbDs1g3jyhb0yhW9uV9NsuKBtsmv1zYFswZDNbdr2S1VZPMpAx+SeLHQWy6HbU/t
|
||||||
|
oHoOO+l8erFVvR2uqit5rBDzN6/lh4SoQzYE9JDAnXJp9W0rKAdtBSLRAoGBANBT
|
||||||
|
AIErbPo4EuU13DaEa+EfoU4Abktyi+L8dpdoXMq6sHg3Mlhifr+ryoybrMMA3tmT
|
||||||
|
6ekBCSVThF0/+HAFRAJthnyBgUd0D710JDHro47Mg37CxU+V8JYqZJGHUSfqng7/
|
||||||
|
pM7LjM99VhigquH4PoDH4YpL8vnIeEMNmny4iER/AoGBAJj8k+jpUXSFkHfh7vwo
|
||||||
|
AR9RUmLmRmL6/KsztbTQ5U6xBjV+XqXq90ZUU1A2Yk+lhXPIEkK2crGfJy9dFfTR
|
||||||
|
LQxPLNkSyxyPzMqmgaxjOc6mEDap/hqlJDx2UgPh/kpAI+inOFyZnyj3wx6ixqv5
|
||||||
|
a2frR996vdJNDCW6d1sbPLxBAoGBAMO66IN0UJy76Izw0Olr+4v10vFdmENM6T+o
|
||||||
|
IqhZBq33P+yDN8sxJ5NgjhsT/Pruq3LT9XbVYUlvsbKHcx2U5PQ/AZejedqvokZH
|
||||||
|
g+ZfVjnJz1ZfG1GOOBBu3jSZZdfSKRVAfhFJ0A/229ihxEwxmFAY/MCaYTzsbInb
|
||||||
|
kyXRnz5zAoGBAIT9Fuk7zhfubYvkzIQ0kj/IxL3QohVRKcoGapDMSwNjTvxZdKxF
|
||||||
|
WXkhhJT095QznHP1fhp90fBKlOdsReDWfZXMYtZTqo2+ezK8qb6xMlm+LE09y+Na
|
||||||
|
f7pp1EPnIqyEX27B4aQ81M8tkCqbdlv3CdjFSusp6SsWTGTjr/5SAMDS
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNzCCAh8CCQDn8i4K9c4ErDANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjEyMTUw
|
||||||
|
NjUxWhcNMTkwNjI3MTUwNjUxWjBcMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRUwEwYD
|
||||||
|
VQQDDAxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||||
|
AQDRnnNnV3PZrbZwjxk+dkQcO3pK3wMvoDNAHPPiTfXRV2KjLHxsuK7wV+GPHmXo
|
||||||
|
97bot6vBxNQN7hfxoDLL+KBO9s3V+8OX6lOrF7hQ6+6/p9EgRoyNGo21eIzGwc2M
|
||||||
|
aJAKjImNMbM7FDTvhk3u+VTTJtlnKvJM1tgncbEZwRLri/2MEC5XS/O5FQT4AXPr
|
||||||
|
A6bRcGMqCVYtQ0ci6wd18PegA/rSmGSRf/TOd4jZXkxfHD+YOkHcxxz9sX4KnyOg
|
||||||
|
XZm8jDdBc7rxiDep8kIjL06VszJeoQrxjuf8cNZtbol/7ECS5aM2YOx7t0Dc/629
|
||||||
|
V2Q5waRVBV5xVCJ0BzUh8rIFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGlkxYLr
|
||||||
|
ZI/XNjDC6RFfSFRoDc+Xpcg+GsJKKbw2+btZvAD8z7ofL01yGru9oi6u2Yy/ZDKT
|
||||||
|
liZ+gtsD8uVyRkS2skq7BvPzvoYErLmSqwlrcCbeX8uHiN7C76ll9PFtSjnwPD//
|
||||||
|
UaNyZM5dJB2eBh4/prclix+RR/FWQzkPqEVLwMcFBmnPZ0mvR2tncjpZq476Qyl9
|
||||||
|
3jcmfms9qBfBPPjCdXqGEDgsTd2PpYRD2WDj/Ctl4rV7B2jnByullLUYIWGu0rYt
|
||||||
|
988waU5i8ie4t/TorBBLqQo/NO9jSXfEqcAnILPnv1QZanKzAAxSg7+FgFrsn359
|
||||||
|
ihiEkx9zFUnPrdA=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,30 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
Proc-Type: 4,ENCRYPTED
|
||||||
|
DEK-Info: AES-256-CBC,0C9C38C5678AECD200E024A9A5BC717A
|
||||||
|
|
||||||
|
wbXYsR78o4DIaQbKsB4cwEFge79GMKbcMgIWK+9k86dPk09WZkj7JCSJXIxPLYOG
|
||||||
|
tFZrw/z86cakEhf90a4Moa1cwByrcFB+bpWoEqsx/C4javWxXMENbmQ5x8gDpmzT
|
||||||
|
qqLI7xnd2mYj7HcfE7eXi+Nub5w1tBxN0CWaxpR54ZVvfcPE6Od4SHGughdUN4AK
|
||||||
|
OdVIq5YuzMhuTDJKy+kGOtjH8pBWvo8S12T2UQEuusx5WUbEJ6m+E80aN7M6gCA+
|
||||||
|
XmNTt3PsV9PfZPL2Off/90gqTBdMhwn+sEVlqYG0TAnXZQEI8ZNtAGy77CFplqdT
|
||||||
|
SmI3x8Sza7lchEMFhRiayX9pMBPUlwckVPrCoMQ4b4WkHYoGLO7dNVAA8Osud46+
|
||||||
|
6MZKHStjdzwKz9MzWa7lXhXV+0sX5bcAzQexuE+wO8QQ/t5uwDmQHol0JVdRX8NB
|
||||||
|
/Exk6aT7mWajFvukXVirpUGWnEK2W+O8/VBzVZ7z69EjZ09Pu4Y/+cbX12LGSwMb
|
||||||
|
WVtnZY6BsrV++vikQuL3ByTBDPRHio2H8hThh1Kv8n5VEBUrk7tLUp3Z15cbfC6s
|
||||||
|
LDHX6kB2OKmmdqLOOMo4lToZfnrVK/dzeXFbtNH1POpR4/e5Nk0SyZrWo+E/AqIv
|
||||||
|
nLQ3fhLCPOB5rjAhuM8iXOwqn8HHNlv9j8mlgCcgwK7focYVc/IXARLOfFOjOA/s
|
||||||
|
EqMRbb/eKsC930NHBZkhlqRJKCwA37AMvnOhN4R0VOq/40K+62IUK9E1643KyWs0
|
||||||
|
vWk0rFY0OKorQXzI33lbBYZ5zHt8oxGNx3us+6jGP85iv8UEaO6FpgajEUn6Gzp/
|
||||||
|
wyvr1C/B/Hfr6eTbt4C6Fi5fMfZgM6VEcJuaFZnoC9tWdhlNsY1pwtPghMM7yBwc
|
||||||
|
1Ye0TxdF36exJWu1gXVTse1Vdc9i4QWpT2fbPQtcIgdtNk01K+2defie384IOnQQ
|
||||||
|
O8/SRsrnLRLV3IDFh/VBJS1ZVm8Zmt10yGgRwtYHntMkIopoFRWcm9/Gh3iBFKKH
|
||||||
|
OTVXxgKOUYk4qXG61N8k0M+TIdoOHZIha3Myis1tQVmA/b/4FRKPYgdrFijhXNLM
|
||||||
|
wwMHQOS14xBF2KBgaak7dMUWhGrClw1hc3HmMXuM+OLvxy+f8MC3JP2U5AuCs472
|
||||||
|
hc41KWxioqNMPVXZgVnHf3aEec+hBFceqYnlzG+E/Gagiufu8WMySaZgzXMRb5aV
|
||||||
|
x2OVcakSKrTC5EKbLDlZ6+1NRJht7wdSefh0o/Crc9LzcFqBL0Qp3WCvyY8gDVkQ
|
||||||
|
EGqoVYOE6Hz/NX5/17F1+5VuWT7nBWABHKFFriOoJ3VR9sZhp0HiMznZEF1AwVuZ
|
||||||
|
xHtDWQemfBywEQG23qbr+o7mQASh1zki8b4fP1HQmbHhaJarjwGdiVNIgcF7s7Qk
|
||||||
|
NYNcgsc1l0KuNHvredTnYwPhv3C08IBfjtd2H9u0A+AWl5RlR4GDfv2Jzbe/F8U+
|
||||||
|
0gxj8D2XWHlkbHIXKVk6jxj64xyNE1xB0Sv7gsDWpkaK6aw/zdsyxqiji4mThcYE
|
||||||
|
cRSl4y9CGZREaiyD8dk/uiqKfQ26c1gfOUDYS2fKjH5NKh4J80wQj0GvS6nHiDH4
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEmTCCA4GgAwIBAgIIZ5gEIUFhO5wwDQYJKoZIhvcNAQELBQAwXzELMAkGA1UE
|
||||||
|
BhMCTkwxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdp
|
||||||
|
ZGdpdHMgUHR5IEx0ZDEYMBYGA1UEAxMPQ0hBTTUwMCByb290IGNhMCAXDTE4MDIx
|
||||||
|
MjE1MDUwMFoYDzIyMjIwMjIyMjIyMjAwWjBfMQswCQYDVQQGEwJOTDETMBEGA1UE
|
||||||
|
CBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRk
|
||||||
|
MRgwFgYDVQQDEw9DSEFNNTAwIHJvb3QgY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||||
|
DwAwggEKAoIBAQC6Fa3TheL+UrdZCp9GhU/2WbneP2t/avUa3muwDttPxeI2XU9k
|
||||||
|
ZjBR95mAXme4SPXHk5+YDN319AqIje3oKhzky/ngvKH2GkoJKYxWnuDBfMEHdViz
|
||||||
|
2Q9/xso2ZvH50ukwWa0pfx2/EVV1wRxeQcRd/UVfq3KTJizG0M88mOYvGEAw3LFf
|
||||||
|
zef7k1aCuOofQmBvLukUudcYpMzfyHFp7lQqU4CcrrR5RtmfiUfrWfdGLea2iPDB
|
||||||
|
pJgN8ESOMwEHtOTEBDclYnH9L4t7CHQz+fXXS5IWFsDK9fCMQjnxDsDVeNrNzTYL
|
||||||
|
FaZrMg9S6IUQCEsQWsnq5weS8omOpVLUm9klAgMBAAGjggFVMIIBUTAMBgNVHRME
|
||||||
|
BTADAQH/MB0GA1UdDgQWBBQg2FZB/j8uWDVnJhjwXkX278znSTAfBgNVHSMEGDAW
|
||||||
|
gBQg2FZB/j8uWDVnJhjwXkX278znSTAPBgNVHQ8BAf8EBQMDB/+AMIHvBgNVHSUB
|
||||||
|
Af8EgeQwgeEGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwME
|
||||||
|
BggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
|
||||||
|
KwYBBAGCNwoDAwYKKwYBBAGCNwoDBAYJYIZIAYb4QgQBBgsrBgEEAYI3CgMEAQYI
|
||||||
|
KwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUIAgIGCisGAQQBgjcU
|
||||||
|
AgIGCCsGAQUFBwMJBggrBgEFBQcDDQYIKwYBBQUHAw4GBysGAQUCAwUwDQYJKoZI
|
||||||
|
hvcNAQELBQADggEBAKHmwejWRwGE1wf1k2rG8SNRV/neGsZ6Qfqf6co3TpR/Wi1s
|
||||||
|
iZDvSeT/rbqNBS7z34xnG88NIUwu00y78e8Mfon31ZZbK4Uo7fla9/D3ukdJqPQC
|
||||||
|
LKdbKJjR2kH+KCukY/1rghjJ8/X+t2egBit0LCOdsFCl07Sfksb9kpGUIZSFcYYm
|
||||||
|
geqhjhoNwxazzHiw+QWHC5HG9248JIizBmy1aymNWuMnPudhjHAnPcsIlqMVNq3t
|
||||||
|
Rv9ap7S8JeCxHVRPJvJeCwXWvW3dW/v3xH52Yn/fqRblN1w9Fxz5NhopKx0gj/Jd
|
||||||
|
sw2N4Fk4gaOWEolFpa0bwNw8nAx7moehZpowzfw=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEtjCCA56gAwIBAgIBATANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDYxMTAwMDAwMFoXDTI3MDYxMDIzNTk1OVowcjELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMRkwFwYDVQQDExBJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0MSYwJAYJKoZIhvcNAQkBFhdpbmZvQGlzdC5hZGxpbmt0
|
||||||
|
ZWNoLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANRf3XKmM6O+
|
||||||
|
WoYPNpOAdkGKKZHLJ8ZuPxVVBMX6oJAlcOmkhLzfkHSA+gl/OWaMOXIEtN512gyL
|
||||||
|
YszBf1RImwVzRjJFwIxzGzVQ68jYNj+qBbsOt+IG+hs3wgVCLFkCh+J7hXUgvk8A
|
||||||
|
eRM/SRrI42dQfcgKUAMNi4/iX6Vs+FV9pHB63L4PiLA9hfUE25sH6EsIC7icvGDJ
|
||||||
|
6cGG94glVSHDI1NtXfsNHY+NGY/jYKtQZklqU3lew5I60aJIsea+Wk6PJiz4hyXv
|
||||||
|
XVVmrcNeG1g4OEFgiSXZC2XknDw8t9+ELprGNvuJvTFxwPMAgLeF4IhEQC9dQY2W
|
||||||
|
BRwUxtZBzukCAwEAAaOCAVUwggFRMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFER4
|
||||||
|
R6N3MQ1Wl7gn+R8wwHloDCVZMB8GA1UdIwQYMBaAFER4R6N3MQ1Wl7gn+R8wwHlo
|
||||||
|
DCVZMA8GA1UdDwEB/wQFAwMH/4Awge8GA1UdJQEB/wSB5DCB4QYIKwYBBQUHAwEG
|
||||||
|
CCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBgorBgEEAYI3
|
||||||
|
AgEVBgorBgEEAYI3AgEWBgorBgEEAYI3CgMBBgorBgEEAYI3CgMDBgorBgEEAYI3
|
||||||
|
CgMEBglghkgBhvhCBAEGCysGAQQBgjcKAwQBBggrBgEFBQcDBQYIKwYBBQUHAwYG
|
||||||
|
CCsGAQUFBwMHBggrBgEFBQgCAgYKKwYBBAGCNxQCAgYIKwYBBQUHAwkGCCsGAQUF
|
||||||
|
BwMNBggrBgEFBQcDDgYHKwYBBQIDBTANBgkqhkiG9w0BAQsFAAOCAQEAwXuEWDG3
|
||||||
|
aAyL+DsGr0B4YMLjHtx6FjzkJOpTtXQhkrtSMpD3Xytl7Wfz8lyWuTnbrk8F4gWO
|
||||||
|
IkJR/NdMGW27SmeYU0z7QAGRDwtHX6kqqizQbCwf4F6P/2QftcLp1VrlsIlb0gyx
|
||||||
|
gLjpGmn5TT7gj+ahW0iIRglOwhzCvkNu6agYpdGwVirSyLShy/Hq303DZSbVuktz
|
||||||
|
5/PmZKpufnoGqURNnJqbV4TQipE0FiDmp2o+gVgJ+DVRhiCdfk68Xp7+TlmxCDfZ
|
||||||
|
C3qb18qrwAZ4AL3T9/RlzfkXh4ME9V6wqa5Y6j7Vwx5Ef2OHL+mnMnoNSXDLRh6j
|
||||||
|
45ky66su5dROpA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,25 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIENDCCAxygAwIBAgIBAjANBgkqhkiG9w0BAQsFADByMQswCQYDVQQGEwJOTDEL
|
||||||
|
MAkGA1UECBMCT1YxEzARBgNVBAoTCkFETGluayBJU1QxGTAXBgNVBAMTEElkZW50
|
||||||
|
aXR5IENBIFRlc3QxJjAkBgkqhkiG9w0BCQEWF2luZm9AaXN0LmFkbGlua3RlY2gu
|
||||||
|
Y29tMB4XDTE4MDYxMzAwMDAwMFoXDTI3MDYxMDIzNTk1OVowfTELMAkGA1UEBhMC
|
||||||
|
TkwxCzAJBgNVBAgTAk9WMRMwEQYDVQQKEwpBRExpbmsgSVNUMSQwIgYDVQQDExtJ
|
||||||
|
ZGVudGl0eSBDQSBUZXN0IFdpdGggQ2hhaW4xJjAkBgkqhkiG9w0BCQEWF2luZm9A
|
||||||
|
aXN0LmFkbGlua3RlY2guY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
||||||
|
AQEA1r8Q0V8ZVeBs8tPMF0N+JlBynl1Zn/89vwSsU4m7y6ixUcW/y3r12CMeA0cH
|
||||||
|
g6yOaOdHsZ8pRlPRwy9YmeOwLsMOUHAURP2uPiTjSf3pttUIf0jv602GyirNzoS7
|
||||||
|
7mHiyTtV80ZMzZlLIJ3gaJJlG4DjitFuFcjv8sOmviFjkn1kOjkAz1nKgsCiHvvg
|
||||||
|
fcJlYPrtLfle9SzvZ3MTq4ob+/EFu9nt5bYYs7p7Br1TGWctUw98l2mSn/FhfDBw
|
||||||
|
9bb7ZhcKB7W6PGy2Os5AnkdTJKHoOQT+RmnHzPBhab0BoKuy8IhfW2GyqC8rL5Tm
|
||||||
|
/UVLUvnx4Zzqz//3IyA2FTb1HQIDAQABo4HJMIHGMAwGA1UdEwQFMAMBAf8wHQYD
|
||||||
|
VR0OBBYEFE1VQk0XOEk9F5hPhBLHp0rncJcJMB8GA1UdIwQYMBaAFER4R6N3MQ1W
|
||||||
|
l7gn+R8wwHloDCVZMA8GA1UdDwEB/wQFAwMH/4AwZQYDVR0lAQH/BFswWQYIKwYB
|
||||||
|
BQUHAwEGCCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIBggr
|
||||||
|
BgEFBQcDCQYIKwYBBQUHAw0GCCsGAQUFBwMOBgcrBgEFAgMFMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQCbl7ed4p66G6WquxO7ceZFvYKn3kDErjCfXHcqHxBnA2xTpoZCGj95
|
||||||
|
Qpirqo6N4UcLX5sn3CmgyVk0dYvlti/53FJgZ9XQDNxBuEYWPkY7vO+Uo0WdYpGz
|
||||||
|
ZDNIUQpiPMA7bHvwKldTIs77xxtnw9kbBU2k0xQyb2tdZNfD5YqSI1MeUtpEpNFW
|
||||||
|
sbC8+mQ3clzWpjF8eHH1fFSAmlJ+z1Uqmtt2FK0vRz+MQcpydwvpMnfqGdcwhGPQ
|
||||||
|
X4HZreLObjBA8KUEkUB3+rZXuELBgkk/c8/jRZl7QF5jJDLQCCLg7KoYBKN2GuTt
|
||||||
|
/dzeSnP7VZm/nTL8wpCvKgSOwOGgklf2
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDpDCCAoygAwIBAgIJALE5lRKfYHAaMA0GCSqGSIb3DQEBCwUAMF8xCzAJBgNV
|
||||||
|
BAYTAk5MMRMwEQYDVQQIDApPdmVyaWpzc2VsMRAwDgYDVQQHDAdIZW5nZWxvMQ8w
|
||||||
|
DQYDVQQKDAZBRExJTksxGDAWBgNVBAMMD0NIQU01MDAgUm9vdCBDQTAeFw0xODAy
|
||||||
|
MDkxNjIwNDNaFw0zODAyMDQxNjIwNDNaMF8xCzAJBgNVBAYTAk5MMRMwEQYDVQQI
|
||||||
|
DApPdmVyaWpzc2VsMRAwDgYDVQQHDAdIZW5nZWxvMQ8wDQYDVQQKDAZBRExJTksx
|
||||||
|
GDAWBgNVBAMMD0NIQU01MDAgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAN9/NbpJDHQYHh3cEByRxnHffxEe9Sapn08Ty5xYO8LDJ4V7vU32
|
||||||
|
/7291fITiHaovOoCRHAbKTaTtqJO56aGY45HON6KIqxljLQJJVGW/Nf2PNSHmFix
|
||||||
|
6D6bsoSOTPyKYqBNT6lB7NMn4QBTcsiE61El8p9WLQZHoYQJK5Psf7wkBqGBz8he
|
||||||
|
bcDWXFn7kIgnsaLrh77w2wi/y0MqpPwyeRInoZfYknzVNdxCPgq7csBYDoMgOgkV
|
||||||
|
G60ECXojHKz1HI4n0V8L8lZluSSVRNR0xvPFgBqO7b+Re7xb6iO9TNsFeoiMMNyp
|
||||||
|
EwM99CqPO0RRrAPiC7IDgcNGjxhne9EJFGsCAwEAAaNjMGEwHQYDVR0OBBYEFCst
|
||||||
|
gj5Ecm3HU/N7wxJluFo5+6XUMB8GA1UdIwQYMBaAFCstgj5Ecm3HU/N7wxJluFo5
|
||||||
|
+6XUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQCWibvYuPLpoNcsUdHbE7SnBbEQnDfBxBZN8xeWHwwAPEB+8eHhmIdZ
|
||||||
|
xDtCN61xr5QR+KzlEYFwKyHMp9GN3OPU1RndJrzaXz2ddAZVkBIvnQZ4JvFd+sBC
|
||||||
|
QQgEvL8GcwZPxnad/TRylM4ON3Kh0X9vfyrmWEoHephiE1LcENaFqcYr9xg3DJNh
|
||||||
|
XSrigMGZJ7IOHkvgaoneICOcYI42ZHS0fnt1G+01VKJXm3ndi5NL25GnOmlvV6yV
|
||||||
|
+1vcmdQc6YS8K8vHmrH4lX9iPfsOak6WSzzsXdqgpvyxtGJggcFaDTtmbWCAkJj0
|
||||||
|
B7DMeaVlLClGQaKZZ7aexEx9se+IyLn2
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDkTCCAnmgAwIBAgIJAJvGJOEKNct1MA0GCSqGSIb3DQEBCwUAMF8xCzAJBgNV
|
||||||
|
BAYTAk5MMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
|
||||||
|
aWRnaXRzIFB0eSBMdGQxGDAWBgNVBAMMD0NIQU01MDAgcm9vdCBjYTAeFw0xODAy
|
||||||
|
MTIxNTA1MDVaFw0yMDEyMDIxNTA1MDVaMF8xCzAJBgNVBAYTAk5MMRMwEQYDVQQI
|
||||||
|
DApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQx
|
||||||
|
GDAWBgNVBAMMD0NIQU01MDAgcm9vdCBjYTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAM/dCO4QAcCduw0NMqShDpTvGT6DClTFAJE8ZfuPCHKqNkicRbyj
|
||||||
|
sVXfF35Sdo6K92Ksz4G7i1RqJU2n8c7hg2EFUza0lIGgmTHV/DvFBcbAa0PpvdKS
|
||||||
|
XoPtSNDh65/GO1R7oeSFRzapqsLMPUwOWi46dYvRnPabxs21xHxn56JeuG74bad5
|
||||||
|
PMTBvA2SiiTYPBlHGJS78GPo3BPMjL0MzPoMmumO8NSVYI+MEDY1lC4KkyZVKqtV
|
||||||
|
nIfaO/7adcM19xOAfAHkwhLGBC/bVAEqelev+GH/42xjNv532nM4/JVtBns+msR5
|
||||||
|
DAYdtr6i82b7zhU1+lOOihv4lmQHoSnTya8CAwEAAaNQME4wHQYDVR0OBBYEFFYr
|
||||||
|
0CpiwxgFcZnW6IQEhxGv/vwiMB8GA1UdIwQYMBaAFFYr0CpiwxgFcZnW6IQEhxGv
|
||||||
|
/vwiMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKbBt0ht72fdtxwm
|
||||||
|
Kr0pOsKyDW0Rd5Ca5aDK4qAhDL0AD5+O6ShGYCnFNDGk3J5Yzawp8VoKrhDZZyUt
|
||||||
|
z2b0jNucVapAvPMA4066QxeIfvFmWcS73l7vjjeUoKWmNNGWprTg3RLsacTorKuY
|
||||||
|
ZRL7wsThfrhvg4B/OOIWKp5MEwIrUfnQzUca8getF2eyTt6QcMtE29AW5+01QTzj
|
||||||
|
fxZgzkmJFYBE2K/TLMDBDd+bz/8XnmPrJ01VUntXiXenTGTcIbJerB6GYQojjvhy
|
||||||
|
ZrOeuHTON1ndFiQkpeZA67ByZjkKVoJG3I8fwBjzcLE7u/QAQptVPjJXXcSpL7fA
|
||||||
|
a1tOvqw=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,20 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDNzCCAh8CCQDn8i4K9c4ErDANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMjEyMTUw
|
||||||
|
NjUxWhcNMTkwNjI3MTUwNjUxWjBcMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRUwEwYD
|
||||||
|
VQQDDAxDSEFNNTAwIGNlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
||||||
|
AQDRnnNnV3PZrbZwjxk+dkQcO3pK3wMvoDNAHPPiTfXRV2KjLHxsuK7wV+GPHmXo
|
||||||
|
97bot6vBxNQN7hfxoDLL+KBO9s3V+8OX6lOrF7hQ6+6/p9EgRoyNGo21eIzGwc2M
|
||||||
|
aJAKjImNMbM7FDTvhk3u+VTTJtlnKvJM1tgncbEZwRLri/2MEC5XS/O5FQT4AXPr
|
||||||
|
A6bRcGMqCVYtQ0ci6wd18PegA/rSmGSRf/TOd4jZXkxfHD+YOkHcxxz9sX4KnyOg
|
||||||
|
XZm8jDdBc7rxiDep8kIjL06VszJeoQrxjuf8cNZtbol/7ECS5aM2YOx7t0Dc/629
|
||||||
|
V2Q5waRVBV5xVCJ0BzUh8rIFAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGlkxYLr
|
||||||
|
ZI/XNjDC6RFfSFRoDc+Xpcg+GsJKKbw2+btZvAD8z7ofL01yGru9oi6u2Yy/ZDKT
|
||||||
|
liZ+gtsD8uVyRkS2skq7BvPzvoYErLmSqwlrcCbeX8uHiN7C76ll9PFtSjnwPD//
|
||||||
|
UaNyZM5dJB2eBh4/prclix+RR/FWQzkPqEVLwMcFBmnPZ0mvR2tncjpZq476Qyl9
|
||||||
|
3jcmfms9qBfBPPjCdXqGEDgsTd2PpYRD2WDj/Ctl4rV7B2jnByullLUYIWGu0rYt
|
||||||
|
988waU5i8ie4t/TorBBLqQo/NO9jSXfEqcAnILPnv1QZanKzAAxSg7+FgFrsn359
|
||||||
|
ihiEkx9zFUnPrdA=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEA0Z5zZ1dz2a22cI8ZPnZEHDt6St8DL6AzQBzz4k310Vdioyx8
|
||||||
|
bLiu8Ffhjx5l6Pe26LerwcTUDe4X8aAyy/igTvbN1fvDl+pTqxe4UOvuv6fRIEaM
|
||||||
|
jRqNtXiMxsHNjGiQCoyJjTGzOxQ074ZN7vlU0ybZZyryTNbYJ3GxGcES64v9jBAu
|
||||||
|
V0vzuRUE+AFz6wOm0XBjKglWLUNHIusHdfD3oAP60phkkX/0zneI2V5MXxw/mDpB
|
||||||
|
3Mcc/bF+Cp8joF2ZvIw3QXO68Yg3qfJCIy9OlbMyXqEK8Y7n/HDWbW6Jf+xAkuWj
|
||||||
|
NmDse7dA3P+tvVdkOcGkVQVecVQidAc1IfKyBQIDAQABAoIBAEddUpzUQTTS11Hq
|
||||||
|
5gVF7lpORYxH8KW+PLSPJtjdAduLjKFQ++tn1OcuhDRdfQSbkUIZhfgqMqerb6tr
|
||||||
|
ht+6fZlknR9E34pQ1LtjD/U83cOSNrhuTFudtrEZoZPpVzl+P8vXnNzdFs/+SSdi
|
||||||
|
6hV5/U8F4u4kyOkwG9cR9eF2wiI+oQ/RBKCXUo3OVs9K27A/OkKsb7coL7yBsgBj
|
||||||
|
lzorS9a/DyHT2eiMKjwCZFyG4A66EkLi6t9JLJ8oTkI2WskXYeVEAbEXE57RWm44
|
||||||
|
2OgTI/Yc2yrtXq93KD17FN1m77dqp7EPAhjGnRHNq7+0Ykr1EO1nbDfqHG4gS+4o
|
||||||
|
lfP8iwECgYEA58da0R34l93yQnK0mAtoobwvsOjADnBVhBg9L4s2eDs8liUjf0zt
|
||||||
|
7hcMdUJaa7iMuNf3qGtnZtRURc3kSOE429Or7fCAYUr/AaA7+2ekPG1vjMb50tVv
|
||||||
|
se5rwb1hvgMYe2L5ktJJAg+RcmqpY+ncJ+hP/vWwZRxUKvXba50qqEkCgYEA54ZE
|
||||||
|
mJfSueGM/63xlhP71CM4OWtTqkQGp2OmgTOsBI5q/GUXr8vMR8sCEMHAc6HyXzmL
|
||||||
|
x/RnAoa/vTX58rXBk0QjfO9esIHa452697EIaJu5w8skCLDv2e/f+Jg7o/IDyUZs
|
||||||
|
5lqhiEuH9Qc3sx2nhnSYXMZWqwh8OchI7dCSE90CgYEAzrJ1JhpxUJYI7wM2VIWQ
|
||||||
|
GPQnH8BhTj8VtEidgCHJQK2rGUcjgepMIVECtiunUXtyW4GWBedKfmSKhvnXRLs9
|
||||||
|
pqT9JaOeCaYFBiEsfMZvq8f4e/YSYtge1PIHvO40FWzTT23zneDUZPcXQY8nYsfy
|
||||||
|
otBFTt0yIumBkhJRTIYLvakCgYA+CcttvBj6OAcJJ/n5RgeP05QoRqsXj7zcs6YV
|
||||||
|
LtxkKClg0lHjiE+H2U0HYnOISJfijk/3V3UWxzavo7wDHlLtfC+qNZYA4/rcTRKh
|
||||||
|
dm2TYk8HuPJB5e+PTWiNe3VXu+zpzRY3L4fjNqIKtVFmjIasT6fYDEmC8PYgoZtx
|
||||||
|
JhdOfQKBgCD/bDkc+VI6lwQtoQQKiSfQjKGe+6Cw9K/obzWO0uJwBvZrGLXF8tTc
|
||||||
|
MOPIv9OILt7DYxpMXAiHv8HtzH5CFVrZ/nj63SRoka/j2yvUdBDrGhyIbsc4pDu+
|
||||||
|
lCFa0ZiT/u5vRAiOkM6GuStH4HxnW9LtwBtiYXtfU7IPExJiAlsq
|
||||||
|
-----END RSA PRIVATE KEY-----
|
|
@ -0,0 +1,20 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDMzCCAhsCCQDn8i4K9c4ErzANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJO
|
||||||
|
TDETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
|
||||||
|
cyBQdHkgTHRkMRgwFgYDVQQDDA9DSEFNNTAwIHJvb3QgY2EwHhcNMTgwMzIzMTIw
|
||||||
|
MTE5WhcNMjMxMDMxMTIwMTE5WjBYMQswCQYDVQQGEwJOTDETMBEGA1UECAwKU29t
|
||||||
|
ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMREwDwYD
|
||||||
|
VQQDDAhDSEFNLTU3NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcc
|
||||||
|
IMlRp2EnOC/UIIOF2gm+wtsikv5CscDuyq9DA2QgS5TTKqivDAdOSUIcbVn8qb6/
|
||||||
|
77viarmRXml3VHJdhR2abtY6xYKYF2SCFiyoNk6ITq+YBrCfmMh/bCYTD6c5vnl4
|
||||||
|
SKomIArU1g1YAxHxHqZRX1oonldUdP4lqq+Qt6fllYFhHNAl5JjrrCuPpXmAW3pC
|
||||||
|
z4b3HWP/6vnbOFFMYkwGprVoAljcnAG7C7zSjW2M3RN4xA/z6Lps8qrPFB2iAXaP
|
||||||
|
ZnST1rkqctf2IDWVwloG0uJnqiigcIz6+hvf5VMU0ax+CrYqFGav/uwvPCiHcUkF
|
||||||
|
3a/O3z+4xGHaBagfHukCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAXZlNPz6raCBp
|
||||||
|
F+iyNWTGy27OyM/TZNE9QTPI28TQEmLfqCrRfq+uHhBQ3U9TgS3xX/f5b+BPHuaD
|
||||||
|
N6vl/yECAQa+0r33EFdoe8rGa0Mr5VvADcqPmk/sp9K62fRcP4aCgliDi8g9G8q1
|
||||||
|
XNgO/EA9HhFlFKPzLPFMhq7qqPOQWO/EddoxA/qCMGZtN+TAxqLKVB0lipJoSa0x
|
||||||
|
XqtYvNWiaShPceSk4SAjAdpdhvxOpA/25uvFEISdt9zoqbs4eLUbi/9RFYaL8U4r
|
||||||
|
E+FygZMi31N6PC/Q7/tJ4DG20K/V30Y1+ogvSfdJpWk9L/CJj0VrzqJTVaKBIFVV
|
||||||
|
6PtqHPZiKA==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDpDCCAoygAwIBAgIJALE5lRKfYHAaMA0GCSqGSIb3DQEBCwUAMF8xCzAJBgNV
|
||||||
|
BAYTAk5MMRMwEQYDVQQIDApPdmVyaWpzc2VsMRAwDgYDVQQHDAdIZW5nZWxvMQ8w
|
||||||
|
DQYDVQQKDAZBRExJTksxGDAWBgNVBAMMD0NIQU01MDAgUm9vdCBDQTAeFw0xODAy
|
||||||
|
MDkxNjIwNDNaFw0zODAyMDQxNjIwNDNaMF8xCzAJBgNVBAYTAk5MMRMwEQYDVQQI
|
||||||
|
DApPdmVyaWpzc2VsMRAwDgYDVQQHDAdIZW5nZWxvMQ8wDQYDVQQKDAZBRExJTksx
|
||||||
|
GDAWBgNVBAMMD0NIQU01MDAgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAN9/NbpJDHQYHh3cEByRxnHffxEe9Sapn08Ty5xYO8LDJ4V7vU32
|
||||||
|
/7291fITiHaovOoCRHAbKTaTtqJO56aGY45HON6KIqxljLQJJVGW/Nf2PNSHmFix
|
||||||
|
6D6bsoSOTPyKYqBNT6lB7NMn4QBTcsiE61El8p9WLQZHoYQJK5Psf7wkBqGBz8he
|
||||||
|
bcDWXFn7kIgnsaLrh77w2wi/y0MqpPwyeRInoZfYknzVNdxCPgq7csBYDoMgOgkV
|
||||||
|
G60ECXojHKz1HI4n0V8L8lZluSSVRNR0xvPFgBqO7b+Re7xb6iO9TNsFeoiMMNyp
|
||||||
|
EwM99CqPO0RRrAPiC7IDgcNGjxhne9EJFGsCAwEAAaNjMGEwHQYDVR0OBBYEFCst
|
||||||
|
gj5Ecm3HU/N7wxJluFo5+6XUMB8GA1UdIwQYMBaAFCstgj5Ecm3HU/N7wxJluFo5
|
||||||
|
+6XUMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
|
||||||
|
CwUAA4IBAQCWibvYuPLpoNcsUdHbE7SnBbEQnDfBxBZN8xeWHwwAPEB+8eHhmIdZ
|
||||||
|
xDtCN61xr5QR+KzlEYFwKyHMp9GN3OPU1RndJrzaXz2ddAZVkBIvnQZ4JvFd+sBC
|
||||||
|
QQgEvL8GcwZPxnad/TRylM4ON3Kh0X9vfyrmWEoHephiE1LcENaFqcYr9xg3DJNh
|
||||||
|
XSrigMGZJ7IOHkvgaoneICOcYI42ZHS0fnt1G+01VKJXm3ndi5NL25GnOmlvV6yV
|
||||||
|
+1vcmdQc6YS8K8vHmrH4lX9iPfsOak6WSzzsXdqgpvyxtGJggcFaDTtmbWCAkJj0
|
||||||
|
B7DMeaVlLClGQaKZZ7aexEx9se+IyLn2
|
||||||
|
-----END CERTIFICATE-----
|
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue