From b3e9904df06952210fda767a65b0c3a266852179 Mon Sep 17 00:00:00 2001 From: Jukka Laitinen Date: Mon, 31 May 2021 11:18:46 +0300 Subject: [PATCH] Add monocypher crypto library in src/lib/crypto/monocypher This simple crypto library is used as an example default backend for the crypto interfaces Signed-off-by: Jukka Laitinen --- .gitmodules | 3 ++ Tools/astyle/files_to_check_code_style.sh | 1 + src/lib/CMakeLists.txt | 2 + src/lib/crypto/CMakeLists.txt | 45 +++++++++++++++++++++++ src/lib/crypto/monocypher | 1 + 5 files changed, 52 insertions(+) create mode 100644 src/lib/crypto/CMakeLists.txt create mode 160000 src/lib/crypto/monocypher diff --git a/.gitmodules b/.gitmodules index 3d415661de..b019469bf9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -67,3 +67,6 @@ path = src/drivers/uavcan_v1/legacy_data_types url = https://github.com/PX4/public_regulated_data_types.git branch = legacy +[submodule "src/lib/crypto/monocypher"] + path = src/lib/crypto/monocypher + url = https://github.com/PX4/Monocypher.git diff --git a/Tools/astyle/files_to_check_code_style.sh b/Tools/astyle/files_to_check_code_style.sh index ba3557aea0..3eec9a2855 100755 --- a/Tools/astyle/files_to_check_code_style.sh +++ b/Tools/astyle/files_to_check_code_style.sh @@ -22,4 +22,5 @@ exec find boards msg src platforms test \ -path src/modules/micrortps_bridge/micro-CDR -prune -o \ -path src/modules/micrortps_bridge/microRTPS_client -prune -o \ -path test/mavsdk_tests/catch2 -prune -o \ + -path src/lib/crypto/monocypher -prune -o \ -type f \( -name "*.c" -o -name "*.h" -o -name "*.cpp" -o -name "*.hpp" \) | grep $PATTERN diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 56f4907fa3..e0c838a873 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -33,6 +33,7 @@ px4_add_git_submodule(TARGET git_ecl PATH "ecl") px4_add_git_submodule(TARGET git_matrix PATH "matrix") +px4_add_git_submodule(TARGET git_monocypher PATH "crypto/monocypher") add_subdirectory(airspeed) add_subdirectory(airspeed_validator) @@ -45,6 +46,7 @@ add_subdirectory(collision_prevention) add_subdirectory(controllib) add_subdirectory(component_information) add_subdirectory(conversion) +add_subdirectory(crypto) add_subdirectory(drivers) add_subdirectory(ecl) add_subdirectory(hysteresis) diff --git a/src/lib/crypto/CMakeLists.txt b/src/lib/crypto/CMakeLists.txt new file mode 100644 index 0000000000..05b6b413b9 --- /dev/null +++ b/src/lib/crypto/CMakeLists.txt @@ -0,0 +1,45 @@ +############################################################################ +# +# Copyright (c) 2021 Technology Innoavation Institute. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name PX4 nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +px4_add_library(monocypher + monocypher/src/monocypher.c + monocypher/src/optional/monocypher-ed25519.c +) + +target_include_directories(monocypher + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/monocypher/src +) + +# There is a one shadow warning in monocypher 3.1.2, ignore it +target_compile_options(monocypher PRIVATE -Wno-shadow) diff --git a/src/lib/crypto/monocypher b/src/lib/crypto/monocypher new file mode 160000 index 0000000000..baca5d3125 --- /dev/null +++ b/src/lib/crypto/monocypher @@ -0,0 +1 @@ +Subproject commit baca5d31259c598540e4d1284bc8d8f793abf83a