-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
161 changed files
with
19,788 additions
and
29,381 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
name: Build | ||
|
||
on: | ||
push: | ||
branches: [ collab_main ] | ||
pull_request: | ||
|
||
jobs: | ||
debug_libgcrypt_build: | ||
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. | ||
# You can convert this to a matrix build if you need cross-platform coverage. | ||
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev libmariadb-dev libmariadb-dev-compat | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DDEBUG=1 -DMYSQL=0 -DLIBGCRYPT=1 -DKMCCRYPTO=0 | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build | ||
|
||
- name: Test | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ctest -C ${{env.BUILD_TYPE}} | ||
libgcrypt_build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev libmariadb-dev libmariadb-dev-compat libcurl4-openssl-dev | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DDEBUG=0 -DMYSQL=0 -DLIBGCRYPT=1 -DKMCCRYPTO=0 | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build | ||
|
||
- name: Test | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ctest -C ${{env.BUILD_TYPE}} | ||
|
||
sql_libgcrypt_debug_build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev libmariadb-dev libmariadb-dev-compat libcurl4-openssl-dev | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DDEBUG=1 -DMYSQL=1 -DLIBGCRYPT=1 -DKMCCRYPTO=0 | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build | ||
|
||
- name: Test | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ctest -C ${{env.BUILD_TYPE}} | ||
|
||
sql_libgcrypt_build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev libmariadb-dev libmariadb-dev-compat libcurl4-openssl-dev | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DDEBUG=0 -DMYSQL=1 -DLIBGCRYPT=1 -DKMCCRYPTO=0 | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build | ||
|
||
- name: Test | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ctest -C ${{env.BUILD_TYPE}} | ||
|
||
sql_libgcrypt_kmc_debug_build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev libmariadb-dev libmariadb-dev-compat libcurl4-openssl-dev | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DDEBUG=1 -DMYSQL=1 -DLIBGCRYPT=1 -DKMCCRYPTO=1 | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build | ||
|
||
- name: Test | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ctest -C ${{env.BUILD_TYPE}} | ||
|
||
sql_libgcrypt_kmc_build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev libmariadb-dev libmariadb-dev-compat libcurl4-openssl-dev | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DDEBUG=0 -DMYSQL=1 -DLIBGCRYPT=1 -DKMCCRYPTO=1 | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build | ||
|
||
- name: Test | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ctest -C ${{env.BUILD_TYPE}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
name: Unit Tests | ||
|
||
on: | ||
push: | ||
branches: [ collab_main ] | ||
pull_request: | ||
|
||
env: | ||
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | ||
BUILD_TYPE: DEBUG | ||
|
||
jobs: | ||
build: | ||
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. | ||
# You can convert this to a matrix build if you need cross-platform coverage. | ||
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | ||
|
||
- name: Test-TC_APPLY | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ${{github.workspace}}/build/bin/ut_tc_apply | ||
|
||
- name: Test-CRYPTO_CONFIG | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ${{github.workspace}}/build/bin/ut_crypto_config | ||
|
||
- name: Test-CRYPTO | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ${{github.workspace}}/build/bin/ut_crypto | ||
|
||
- name: Test-CRYPTO_AOS | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ${{github.workspace}}/build/bin/ut_crypto_aos | ||
|
||
- name: Test-CRYPTO_MC | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: ${{github.workspace}}/build/bin/ut_crypto_mc | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
name: Validation Tests | ||
|
||
on: | ||
push: | ||
branches: [ collab_main ] | ||
pull_request: | ||
|
||
env: | ||
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | ||
BUILD_TYPE: DEBUG | ||
|
||
jobs: | ||
build: | ||
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. | ||
# You can convert this to a matrix build if you need cross-platform coverage. | ||
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Dependencies | ||
run: sudo apt-get install -y libgpg-error-dev libgcrypt20-dev python3 lcov | ||
|
||
- name: Install Python Libraries | ||
run: sudo pip install pycryptodome | ||
|
||
- name: Configure CMake | ||
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. | ||
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type | ||
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENCTEST=1 -DDEBUG=1 -DCODECOV=1 | ||
|
||
- name: Build | ||
# Build your program with the given configuration | ||
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | ||
|
||
- name: Test | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: | | ||
${{github.workspace}}/build/bin/et_dt_validation | ||
ctest -C ${{env.BUILD_TYPE}} | ||
- name: Code-Coverage | ||
working-directory: ${{github.workspace}}/build | ||
# Execute tests defined by the CMake configuration. | ||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | ||
run: make gcov | ||
|
||
- name: Upload | ||
uses: codecov/codecov-action@v1 | ||
with: | ||
#files: ${{github.workspace}}/build/coverage/crypto_aos.c.gcov,${{github.workspace}}/build/coverage/crypto_config.c.gcov,${{github.workspace}}/build/coverage/crypto_mc.c.gcov,${{github.workspace}}/build/coverage/crypto_tc.c.gcov,${{github.workspace}}/build/coverage/crypto_user.c.gcov,${{github.workspace}}/build/coverage/crypto.c.gcov,${{github.workspace}}/build/coverage/crypto_key_mgmt.c.gcov,${{github.workspace}}/build/coverage/crypto_print.c.gcov,${{github.workspace}}/build/coverage/crypto_tm.c.gcov,${{github.workspace}}/build/coverage/sadb_routine_inmemory.template.c.gcov | ||
files: 'coverage/*.c.gcov' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
.idea | ||
vgcore* | ||
**core | ||
*.so | ||
build | ||
venv | ||
*.dat | ||
.vscode | ||
__pycache__ | ||
|
||
#CMake.gitignore | ||
CMakeLists.txt.user | ||
CMakeCache.txt | ||
CMakeFiles | ||
CMakeScripts | ||
Testing | ||
Makefile | ||
cmake_install.cmake | ||
install_manifest.txt | ||
compile_commands.json | ||
CTestTestfile.cmake | ||
cmake-build-debug | ||
**.cbp | ||
_deps | ||
|
||
DartConfiguration.tcl |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,75 @@ | ||
# Copyright (C) 2009 - 2017 National Aeronautics and Space Administration. All Foreign Rights are Reserved to the U.S. Government. | ||
# | ||
# This software is provided "as is" without any warranty of any, kind either express, implied, or statutory, including, but not | ||
# limited to, any warranty that the software will conform to, specifications any implied warranties of merchantability, fitness | ||
# for a particular purpose, and freedom from infringement, and any warranty that the documentation will conform to the program, or | ||
# any warranty that the software will be error free. | ||
# | ||
# In no event shall NASA be liable for any damages, including, but not limited to direct, indirect, special or consequential damages, | ||
# arising out of, resulting from, or in any way connected with the software or its documentation. Whether or not based upon warranty, | ||
# contract, tort or otherwise, and whether or not loss was sustained from, or arose out of the results of, or use of, the software, | ||
# documentation or services provided hereunder | ||
# | ||
# ITC Team | ||
# NASA IV&V | ||
# [email protected] | ||
|
||
cmake_minimum_required(VERSION 2.6.4) | ||
# Copyright (C) 2009 - 2022 National Aeronautics and Space Administration. | ||
# All Foreign Rights are Reserved to the U.S. Government. | ||
# | ||
# This software is provided "as is" without any warranty of any kind, either expressed, implied, or statutory, | ||
# including, but not limited to, any warranty that the software will conform to specifications, any implied warranties | ||
# of merchantability, fitness for a particular purpose, and freedom from infringement, and any warranty that the | ||
# documentation will conform to the program, or any warranty that the software will be error free. | ||
# | ||
# In no event shall NASA be liable for any damages, including, but not limited to direct, indirect, special or | ||
# consequential damages, arising out of, resulting from, or in any way connected with the software or its | ||
# documentation, whether or not based upon warranty, contract, tort or otherwise, and whether or not loss was sustained | ||
# from, or arose out of the results of, or use of, the software, documentation or services provided hereunder. | ||
# | ||
# ITC Team | ||
# NASA IV&V | ||
# [email protected] | ||
|
||
|
||
#cmake_minimum_required(VERSION 2.6.4) | ||
cmake_minimum_required(VERSION 3.14.0) | ||
project(CRYPTO C) | ||
|
||
include_directories(fsw/public_inc) | ||
set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib") | ||
|
||
OPTION(DEBUG "Debug" OFF) # Disabled by default, enable with: -DDEBUG=ON | ||
OPTION(MYSQL "Mysql" OFF) # Disabled by default, enable with: -DMYSQL=ON | ||
OPTION(LIBGCRYPT "Libgcrypt" ON) # Enabled by default, disable with: -DLIBGCRYPT=OFF | ||
OPTION(KMCCRYPTO "KmcCrypto" OFF) # Disabled by default, enable with: -DKMCCRYPTO=ON | ||
OPTION(ENCTEST "Encryption-Tests" OFF) # Disabled by default, enable with: -DENCTEST=ON | ||
OPTION(CODECOV "Code-Coverage" OFF) # Disabled by default, enable with: -DCODECOV=ON | ||
|
||
IF(DEBUG) | ||
ADD_DEFINITIONS(-DDEBUG -DOCF_DEBUG -DFECF_DEBUG -DSA_DEBUG -DPDU_DEBUG -DCCSDS_DEBUG -DTC_DEBUG -DMAC_DEBUG -DTM_DEBUG) | ||
add_compile_options(-ggdb) | ||
ENDIF(DEBUG) | ||
|
||
IF(ENCTEST) | ||
ADD_DEFINITIONS(-DENCTEST) | ||
ENDIF(ENCTEST) | ||
|
||
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) | ||
include(CTest) | ||
enable_testing() | ||
endif() | ||
|
||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -g -O0") | ||
|
||
if(CODECOV) | ||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") | ||
endif() | ||
|
||
include_directories(include) | ||
|
||
# The shared OSAL and cFE include directories should always be used | ||
# Note that this intentionally does NOT include PSP-specific includes, just the generic | ||
include_directories(${CFECORE_SOURCE_DIR}/src/inc) | ||
include_directories(${CFEPSP_SOURCE_DIR}/fsw/inc) | ||
# Only include cFS/NOS3 directories if env var is defined | ||
if(DEFINED ENV{CFECORE_SOURCE_DIR}) #if ${CFECORE_SOURCE_DIR} is set, expect cFS build infrastructure to be in place. | ||
include_directories(${CFECORE_SOURCE_DIR}/src/inc) | ||
include_directories(${CFEPSP_SOURCE_DIR}/fsw/inc) | ||
ADD_DEFINITIONS(-DNOS3) | ||
else() | ||
#pass | ||
endif() | ||
|
||
if(NOT DEFINED ${PROJECT_BINARY_DIR}) | ||
set(PROJECT_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build) | ||
endif() | ||
|
||
aux_source_directory(fsw/src LIB_SRC_FILES) | ||
add_subdirectory(src) | ||
|
||
# Create the app module | ||
add_cfe_app(crypto ${LIB_SRC_FILES}) | ||
if((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR MYPROJECT_BUILD_TESTING) AND BUILD_TESTING) | ||
add_subdirectory(test) | ||
endif() | ||
|
||
# Add libgcrypt | ||
target_link_libraries(crypto libgcrypt) | ||
add_subdirectory(util) |
Oops, something went wrong.