Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Release v0.17.1 #2190

Merged
merged 84 commits into from
May 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
87f563a
Change CPack source package name to rnp-v0.17.0 style.
ni4 May 2, 2023
18b3843
SEXP version bump to 0.8.4
maxirmx May 3, 2023
1456198
Not installing static libraries when BUILD_SHARED_LIBS=ON
maxirmx May 3, 2023
76bbf34
CMake: fix backend variable description.
ni4 May 9, 2023
02f0482
Fixed failing CI test
maxirmx May 21, 2023
970c8bd
Workflow optimization
maxirmx May 21, 2023
10c8222
Update CMake scripts to support Botan 3 backend selection/search.
falko-strenzke May 4, 2023
58ab2d8
Add BOTAN_ROOT_DIR hint to the FindBotan.cmake
ni4 May 11, 2023
bafccce
Update CMake modules to detect Botan3 with not specified botan3 backend.
ni4 May 23, 2023
cc1ee0c
Fix test_cipher_aes_128_ocb() failure with Botan 3.
falko-strenzke May 4, 2023
b07cfe2
Strip leading zero bytes during RSA decryption if m.len > e.len.
falko-strenzke May 4, 2023
968d3d9
Update pk-tests.sh to work with updated FindBotan.cmake.
ni4 May 22, 2023
ec82bb8
Update CI scripts to support Botan3 installation.
ni4 May 22, 2023
7d0b267
Update CI with Botan3 runs.
ni4 May 22, 2023
37daf19
Run fuzzing CI for 5 minutes to speed things up.
ni4 May 29, 2023
ed84e4b
Fix Botan3 deprecations.
ni4 May 30, 2023
e921775
Fix 'unused variable' warnings in fuzzers.
ni4 May 30, 2023
4715e27
Update findopensslfeatures.c to not use deprecated by OpenSSL 3.0 fun…
ni4 May 30, 2023
9df4cef
Add helper class rnp::bn for cleaner OpenSSL backend code.
ni4 May 31, 2023
32d7249
OpenSSL 3.0: Do not use deprecated functions for DSA operations.
ni4 May 31, 2023
a43e282
OpenSSL 3.0: Do not use deprecated functions for RSA operations.
ni4 May 31, 2023
6dbad61
OpenSSL 3.0: Do not use deprecated functions for EC operations.
ni4 Jun 1, 2023
f8976fd
OpenSSL 3.0: Do not use deprecated functions for DL/ElGamal operations.
ni4 Jun 1, 2023
4aef58e
Fix possible memory leak during ElGamal key generation with OpenSSL 3…
ni4 Jun 5, 2023
3ec3b4b
Fix mentioned clang-format version to 11.0.0
ni4 Jun 15, 2023
78c0fca
Fix nonexisting functions in documentation.
antonsviridenko Jun 18, 2023
00a9793
Update Gentoo support status.
antonsviridenko Jun 18, 2023
4e92df6
Fix CI for macOS nix (SIP)
ribose-jeffreylau Jun 26, 2023
ad2de3a
add option to build with system sexp library
remicollet Jun 21, 2023
3d6905e
libsexp version bump to 0.8.6
maxirmx Jun 23, 2023
f02ed3d
Replaced(renamed) libsexp --> libsexpp
maxirmx Jun 25, 2023
5d4e04a
Tests for builds with system sexpp library
maxirmx Jun 26, 2023
6f3c75d
RIPEMD160 is now available by default since OpenSSL 3.0.7.
antonsviridenko Jun 16, 2023
c0fb24b
CLI tests: use shutil.which instead of find_executable.
ni4 Jul 26, 2023
c35d59e
Attempt to fix Windows-2019-OpenSSL CI failure.
ni4 Jul 28, 2023
ab9fc09
Fixed failing OpenSSL Windows tests; made GHA Windows configuration m…
maxirmx Jul 29, 2023
9ecadc4
Fixed warining reported by MSVC compiler (#1396)
maxirmx Jul 31, 2023
3fca98d
Do not double-destroy botan's crypto object.
ni4 Aug 21, 2023
b68af10
Debian tests on pre-published container
maxirmx Sep 8, 2023
365596b
Removed tests against gpg 2.3.0 beta
maxirmx Sep 15, 2023
0ab630b
Created new centos & fedora workflow based on pre-built containers
maxirmx Sep 16, 2023
dccdf80
Fixed FindBotan.cmake to support recent vcpkg update
maxirmx Oct 27, 2023
950e82e
Fixed Python regular expression warning
maxirmx Oct 27, 2023
e67c132
Moved legacy CI shell scripts to 'ci-legacy' folder
maxirmx Oct 26, 2023
f6464bf
Coverity workflow refactoring
maxirmx Oct 30, 2023
2a491a2
Add test case, reproducing Botan/Windows crash.
ni4 Nov 16, 2023
d3bc20f
Added test case with low-level botan calls, reproducing windows crash…
ni4 Nov 21, 2023
96e5c9d
Fix incorrect armored stream detection for cleartext-signed messages.
ni4 Dec 2, 2023
d13b91f
Use typedef for Windows ssize_t. Fixes #2144.
jfx2006 Nov 8, 2023
dcd8158
CI: Update FreeBSD image version for Cirrus runner.
ni4 Jan 5, 2024
0ef1715
Enable RNP debug logging for Cirrus tasks.
ni4 Jan 12, 2024
31770b7
Check whether OpenSSL legacy provider is available during the build.
ni4 Jan 15, 2024
d374299
Update OpenSSL backend version retrieval and corresponding tests.
ni4 Jan 8, 2024
95b6af3
Fix tests for case with unavailable blowfish cipher.
ni4 Jan 15, 2024
7bfea9a
don't explicitely include FindOpenSSL.cmake, let find_package do it i…
cedral Jan 5, 2024
d58f59c
Add coverage report with disabled algorithms.
ni4 Jan 16, 2024
57e08b6
Update tests to match SHA1 cutoff date for key signatures.
ni4 Jan 19, 2024
9f5612c
Add rnp_signature_get_features
kaie Feb 6, 2024
1c2c070
Ensure rnp_signature_get_features fails in expected scenarios.
kaie Feb 6, 2024
e6c7819
Remove unused variable.
ni4 Mar 6, 2024
5045328
CI: Update runner with disabled Brainpool to improve coverage.
ni4 Mar 13, 2024
d4c078e
Correctly check for absence of backend features.
ni4 Feb 28, 2024
7d16511
Update tests to support Botan 3.3: move global_ctx to class member in…
ni4 Mar 6, 2024
5ab43f0
Add support for mimemode in literal data packet.
ni4 Mar 13, 2024
4195fb2
Relax base64 decoding: allow spaces and tabs between the crc and footer.
ni4 Mar 26, 2024
93b4633
Include botan/build.h which is no longer included from the botan/ffi.h
ni4 Mar 29, 2024
2fb6c9d
CI: update macos runners to test against macOS 13, 14 and botan3, ins…
ni4 Apr 8, 2024
bac2161
Set C++ standard to 14 for tests.
ni4 Apr 10, 2024
694f150
Handle Botan's curve25519 module rename.
ni4 Apr 20, 2024
23cbaf6
CI: add runners for Fedora 38 and 39
ni4 Apr 20, 2024
1ca4758
CI: Add Debian 12 workflow run.
ni4 Apr 20, 2024
6818191
CI: Add OpenSUSE workflow
ni4 Apr 20, 2024
5997c1d
Refresh CTestCostData.
ni4 Apr 20, 2024
535c3e5
Add basic codecov.yml to ignore downloaded google-test sources.
ni4 Apr 20, 2024
5835488
Ignore libsexpp and tests in Codecov report.
ni4 Apr 22, 2024
c34f030
Exclude bunch of unexpected to execute lines from the coverage report…
ni4 Apr 22, 2024
1af3a33
Exclude bunch of unexpected to execute lines from the coverage report…
ni4 Apr 22, 2024
8929a03
Exclude bunch of unexpected to execute lines from the coverage report…
ni4 Apr 22, 2024
22805ba
Exclude bunch of unexpected to execute lines from the coverage report…
ni4 Apr 22, 2024
e435eec
Exclude bunch of unexpected to execute lines from the coverage report…
ni4 Apr 23, 2024
aa9d1f2
Exclude bunch of unexpected to execute lines from the coverage report…
ni4 Apr 23, 2024
3c7dbfe
Exclude bunch of unexpected to execute lines from the coverage report…
ni4 Apr 23, 2024
dcdb211
Remove examples from the coverage report.
ni4 Apr 24, 2024
4f37e12
Update docs for the v0.17.1 release.
ni4 Apr 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@
# POSSIBILITY OF SUCH DAMAGE.

freebsd_instance:
image: freebsd-12-3-release-amd64
image: freebsd-13-2-release-amd64

task:
name: build
only_if: $CIRRUS_BRANCH == 'main' || $CIRRUS_BRANCH =~ 'release/.*' || $CIRRUS_PR != ''
skip: "!changesInclude('.cirrus.yml') && changesIncludeOnly('/*.sh', '/.*', '/_*', 'Brewfile', 'docs/**', '**.adoc', '**.md', '**.nix', 'flake.lock', '.github/**') || $CIRRUS_CHANGE_MESSAGE =~ '.*skip ci.*'"
env:
matrix:
- { CIRRUS_CLONE_SUBMODULES: true, CRYPTO_BACKEND: openssl, CRYPTO_LIB_INSTALL: openssl, SHARED_LIBS: on }
- { CIRRUS_CLONE_SUBMODULES: true, CRYPTO_BACKEND: botan, CRYPTO_LIB_INSTALL: botan2, SHARED_LIBS: on }
- { CIRRUS_CLONE_SUBMODULES: true, CRYPTO_BACKEND: botan, CRYPTO_LIB_INSTALL: botan2, SHARED_LIBS: off }
- { CIRRUS_CLONE_SUBMODULES: true, CRYPTO_BACKEND: openssl, CRYPTO_LIB_INSTALL: openssl, SHARED_LIBS: on, RNP_LOG_CONSOLE: 1 }
- { CIRRUS_CLONE_SUBMODULES: true, CRYPTO_BACKEND: botan, CRYPTO_LIB_INSTALL: botan2, SHARED_LIBS: on, RNP_LOG_CONSOLE: 1 }
- { CIRRUS_CLONE_SUBMODULES: true, CRYPTO_BACKEND: botan, CRYPTO_LIB_INSTALL: botan2, SHARED_LIBS: off, RNP_LOG_CONSOLE: 1 }

dependencies_script: |
pkg install -y gcc cmake pkgconf googletest gnupg $CRYPTO_LIB_INSTALL json-c rubygem-asciidoctor
Expand Down
317 changes: 173 additions & 144 deletions .github/workflows/centos-and-fedora.yml

Large diffs are not rendered by default.

63 changes: 18 additions & 45 deletions .github/workflows/coverity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ on:
# every day at 9:00 UTC
- cron: '0 9 * * *'

env:
CORES: 2
BUILD_MODE: normal
GPG_VERSION: stable
RNP_TESTS: ''
USE_STATIC_DEPENDENCIES: yes

jobs:
scan:
runs-on: ubuntu-latest
Expand All @@ -21,43 +14,23 @@ jobs:
with:
fetch-depth: 1
submodules: true
- name: Setup environment
run: |
. ci/gha/setup-env.inc.sh
ci/install_noncacheable_dependencies.sh
- name: Cache
id: cache
uses: actions/cache@v3
with:
path: ${{ env.CACHE_DIR }}
key: ${{ github.workflow }}-${{ runner.os }}-${{ env.BUILD_MODE }}-gpg-${{ env.GPG_VERSION }}-${{ hashFiles('ci/**') }}-${{ hashFiles('.github/workflows/**') }}
- name: Build cache
if: steps.cache.outputs.cache-hit != 'true'
run: |
set -x
ci/install_cacheable_dependencies.sh botan jsonc
- name: Download Coverity
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=$GITHUB_REPOSITORY" -O cov-analysis-linux64.tar.gz
mkdir cov-analysis-linux64
tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
- name: Build

- name: Install dependencies
run: |
set -x
export PATH="$PWD/cov-analysis-linux64/bin:$PATH"
cov-build --dir cov-int ci/main.sh
- name: Submit
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
sudo apt-get -y update
sudo apt-get -y install cmake libjson-c-dev libbotan-2-dev asciidoctor

- name: Configure
run: |
tar czvf results.tgz cov-int
curl \
--form project=$GITHUB_REPOSITORY \
--form token=$TOKEN \
--form [email protected] \
--form [email protected] \
--form version=$GITHUB_REF \
--form description=$GITHUB_SHA \
https://scan.coverity.com/builds?project=$GITHUB_REPOSITORY
echo CORES="$(nproc --all)" >> $GITHUB_ENV
cmake -B build -DBUILD_SHARED_LIBS=ON \
-DCRYPTO_BACKEND=botan \
-DDOWNLOAD_GTEST=ON \
-DCMAKE_BUILD_TYPE=Release .

- name: Coverity Scan
uses: vapier/coverity-scan-action@v1
with:
email: [email protected]
token: ${{ secrets.COVERITY_SCAN_TOKEN }}
command: cmake --build build --parallel $CORES
92 changes: 31 additions & 61 deletions .github/workflows/debian.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,101 +38,71 @@ env:
LANG: C.UTF-8
LC_ALL: C.UTF-8
LC_LANG: C.UTF-8
CMAKE_VER: '3.20.6-2'
BUILD_MODE: normal
GPG_VERSION: stable
SUDO: ""
USE_STATIC_DEPENDENCIES: yes
RNP_LOG_CONSOLE: 1

jobs:
tests:
name: ${{ matrix.image.container }} [CC ${{ matrix.env.CC }}; backend ${{ matrix.image.backend }}; GnuPG stable]
name: ${{ matrix.image.container }} [CC ${{ matrix.env.CC }}; backend ${{ matrix.image.backend }}; GnuPG system-shipped]
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip ci')"
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
image:
- { container: 'i386/debian:11', cpu: 'i386', arch: 'ia32', backend: 'botan' }
- { container: 'i386/debian:11', cpu: 'i386', arch: 'ia32', backend: 'openssl' }
- { container: 'amd64/debian:11', cpu: 'x86_64', arch: 'x64', backend: 'botan' }
- { container: 'amd64/debian:11', cpu: 'x86_64', arch: 'x64', backend: 'openssl' }
- { container: 'i386/debian:10', cpu: 'i386', arch: 'ia32', backend: 'botan' }
- { container: 'debian-11-i386', cpu: 'i386', backend: 'botan' }
- { container: 'debian-11-i386', cpu: 'i386', backend: 'openssl' }
- { container: 'debian-11-amd64', cpu: 'x86_64', backend: 'botan' }
- { container: 'debian-11-amd64', cpu: 'x86_64', backend: 'openssl' }
- { container: 'debian-12-amd64', cpu: 'x86_64', backend: 'botan' }
- { container: 'debian-12-amd64', cpu: 'x86_64', backend: 'openssl' }
- { container: 'debian-10-i386', cpu: 'i386', backend: 'botan' }
env:
- { CC: 'gcc', CXX: 'g++' }
- { CC: 'clang', CXX: 'clang++' }

container: ${{ matrix.image.container }}
container: ghcr.io/rnpgp/ci-rnp-${{ matrix.image.container }}

env: ${{ matrix.env }}
steps:
- name: Install prerequisites
run: |
apt update
apt -y install git sudo wget

- name: Setup environment
shell: bash
# rnpuser is only needed for rnpkeys_generatekey_verifykeyHomeDirNoPermission test
run: |
set -x
echo IMAGE=${{ matrix.image.container }} >> $GITHUB_ENV
echo CPU=${{ matrix.image.cpu }} >> $GITHUB_ENV
echo CRYPTO_BACKEND=${{ matrix.image.backend }} >> $GITHUB_ENV
echo "SUDO=sudo" >> $GITHUB_ENV
useradd rnpuser
printf "\nrnpuser\tALL=(ALL)\tNOPASSWD:\tALL" > /etc/sudoers.d/rnpuser
printf "\nrnpuser\tsoft\tnproc\tunlimited\n" > /etc/security/limits.d/30-rnpuser.conf

- name: Checkout on x86_x64
if: env.CPU == 'x86_64'
if: matrix.image.cpu == 'x86_64'
uses: actions/checkout@v3
with:
submodules: true

- name: Checkout on i386
if: env.CPU == 'i386'
if: matrix.image.cpu == 'i386'
uses: actions/checkout@v1
with:
submodules: true

- name: Install cmake
run: |
wget -nv https://github.com/xpack-dev-tools/cmake-xpack/releases/download/v${{ env.CMAKE_VER }}/xpack-cmake-${{ env.CMAKE_VER }}-linux-${{ matrix.image.arch }}.tar.gz
tar -zxf xpack-cmake-${{ env.CMAKE_VER }}-linux-${{ matrix.image.arch }}.tar.gz --directory /usr/local --strip-components=1 --skip-old-files

- name: Setup noncacheable dependencies
- name: Setup environment
shell: bash
# rnpuser is only needed for rnpkeys_generatekey_verifykeyHomeDirNoPermission test
run: |
. ci/gha/setup-env.inc.sh
ci/install_noncacheable_dependencies.sh

- name: Cache
id: cache
uses: actions/cache@v3
if: env.CPU == 'x86_64'
with:
path: ${{github.workspace}}/${{ env.CACHE_DIR }}
key: ${{ matrix.image.container }}-${{ matrix.env.CC }}-${{ matrix.image.backend }}-${{ hashFiles('ci/**') }}-${{ hashFiles('.github/workflows/debian.yml') }}
useradd rnpuser
printf "\nrnpuser\tALL=(ALL)\tNOPASSWD:\tALL" > /etc/sudoers.d/rnpuser
printf "\nrnpuser\tsoft\tnproc\tunlimited\n" > /etc/security/limits.d/30-rnpuser.conf

- name: Setup cacheable dependencies
if: steps.cache.outputs.cache-hit != 'true'
shell: bash
- name: Configure
run: |
set -euxo pipefail
ci/install_cacheable_dependencies.sh
cmake -B build \
-DBUILD_SHARED_LIBS=ON \
-DCRYPTO_BACKEND=${{ matrix.image.backend }} \
-DDOWNLOAD_GTEST=ON \
-DCMAKE_BUILD_TYPE=Release .

- name: Build and Test
shell: bash
- name: Build
run: cmake --build build --parallel ${{ env.CORES }}

- name: Test
run: |
set -x
mkdir -p "build/Testing/Temporary"
cp "cmake/CTestCostData.txt" "build/Testing/Temporary"
export PATH="$PWD/build/src/lib:$PATH"
chown -R rnpuser:rnpuser $PWD
exec su rnpuser -c ci/run.sh
exec su rnpuser -c "ctest --parallel ${{ env.CORES }} --test-dir build --output-on-failure"

- name: Package
run: |
set -x
cd ${LOCAL_BUILDS}/rnp-build
cpack -G DEB -D CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS="${BOTAN_INSTALL}/lib;${JSONC_INSTALL}/lib;${GPG_INSTALL}/lib"
run: cpack -G DEB -B debian --config build/CPackConfig.cmake
2 changes: 1 addition & 1 deletion .github/workflows/fuzzing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'rnp'
fuzz-seconds: 1800
fuzz-seconds: 300
dry-run: false
- name: Upload Crash
uses: actions/upload-artifact@v2
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2023 [Ribose Inc](https://www.ribose.com).
# Copyright (c) 2023-2024 [Ribose Inc](https://www.ribose.com).
# All rights reserved.
# This file is a part of rnp
#
Expand Down Expand Up @@ -57,7 +57,8 @@ concurrency:
cancel-in-progress: true

env:
BOTAN_VERSION: 2.19.3
BOTAN_VERSION: 2.19.4
CORES: 3

jobs:
tests:
Expand All @@ -67,13 +68,14 @@ jobs:
fail-fast: false
matrix:
# On MacOS gcc is alias of clang these days
os: [ macos-11, macos-12 ]
os: [ macos-12, macos-13, macos-14 ]
backend: [ 'botan' ]
shared_libs: [ 'on' ]
include:
- { os: 'macos-11', backend: '[email protected]', shared_libs: 'on' }
- { os: 'macos-12', backend: 'openssl@3', shared_libs: 'on' }
- { os: 'macos-12', backend: 'botan', shared_libs: 'off' }
- { os: 'macos-14', backend: 'openssl@3', shared_libs: 'on' }
- { os: 'macos-14', backend: 'botan', shared_libs: 'off' }
- { os: 'macos-14', backend: 'botan3', shared_libs: 'on' }

if: "!contains(github.event.head_commit.message, 'skip ci')"
timeout-minutes: 250
Expand All @@ -98,14 +100,6 @@ jobs:
echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl@3)" >> $GITHUB_ENV
echo "CRYPTO_BACKEND=openssl" >> $GITHUB_ENV

# Brew installs Botan3 now and it is not supported yet
#
# - name: Configure botan backend
# if: ${{ matrix.backend == 'botan' }}
# run: |
# echo "brew \"botan\"" >> Brewfile
# echo "CRYPTO_BACKEND=botan" >> $GITHUB_ENV

- name: Install dependencies
run: brew bundle

Expand Down Expand Up @@ -133,6 +127,11 @@ jobs:
sudo make install
cd ..

- name: Install Botan3
if: matrix.backend == 'botan3'
run: |
brew install botan

- name: Configure
run: |
echo "CORES=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
Expand All @@ -141,6 +140,7 @@ jobs:
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$PWD/rnp-install" \
-DDOWNLOAD_GTEST=OFF \
-DCMAKE_CXX_FLAGS="-DS2K_MINIMUM_TUNING_RATIO=4"\
-DCRYPTO_BACKEND=${{ env.CRYPTO_BACKEND }} .

- name: Build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
with:
fetch-depth: 1
submodules: true
- uses: cachix/install-nix-action@v15
- uses: cachix/install-nix-action@v22
with:
nix_path: nixpkgs=channel:nixos-unstable
- run: nix build .?submodules=1
Loading
Loading