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

chacha20 poly1305 #439

Open
wants to merge 83 commits into
base: chacha20_poly1305_dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
ff1b3c9
Add fuzzer
guidovranken Jan 24, 2018
89d1395
Build with -g (debugging information) for more detailed sanitizer sta…
guidovranken Jan 24, 2018
60b59a5
Merge branch 'master' into fuzzing
guidovranken Feb 28, 2018
451dcfd
Remove --debug mode
guidovranken Mar 1, 2018
3d05ffa
Merge branch 'master' into fuzzing
guidovranken Mar 22, 2018
6655fd5
Add corpus
guidovranken Mar 22, 2018
79d516c
Merge branch 'master' into fuzzing
guidovranken Jul 31, 2018
35816c7
Merge branch 'master' into fuzzing
guidovranken Feb 24, 2019
1cd7152
Makefile: fix clean
guidovranken Feb 24, 2019
3ae9f85
libFuzzer.a -> $(LIBFUZZER)
guidovranken Feb 24, 2019
f7c9d7f
Use CXXFLAGS
guidovranken Feb 24, 2019
ef704df
Merge changes from master
guidovranken Mar 28, 2019
849ab5e
Remove calls to custom allocator
guidovranken Mar 28, 2019
608838f
Remove --enable-asan, --enable-ubsan, --enable-code-coverage: compile…
guidovranken Mar 28, 2019
b0f6ff9
Remove LDFLAGS from fuzzer Makefile
guidovranken May 11, 2019
64a3957
Add build instructions to fuzzer README.md
guidovranken May 11, 2019
eaa8a9b
output counters of rtp_decoder
pabuhler May 15, 2019
7486bcc
change ssrc type of rtp_decoder to ssrc_any_inbound
pabuhler May 15, 2019
5a63104
extend rtp_decoder to support rtcp
pabuhler May 15, 2019
4d80578
rtp_decoder fix checking against tag size
pabuhler Jun 3, 2019
4ef280d
fix is rtp check
pabuhler Jun 4, 2019
1090fea
Merge pull request #447 from pabuhler/rtp_decoder_check_tag_size
pabuhler Jun 5, 2019
b0f48a7
Merge pull request #444 from pabuhler/extend-rtp-decoder
pabuhler Jun 11, 2019
23a3ce1
Add CMake build file
Jun 13, 2019
c4bd93d
Make compilable in C89
Jun 13, 2019
803fcb2
Format code based on libSRTP code format guide.
pabuhler Jun 20, 2019
ac97f3e
regenerate configure
pabuhler Jun 26, 2019
277eaaf
Add building of fuzzer to travis
pabuhler Jun 20, 2019
eb27e85
Merge branch 'master'
pabuhler Jun 26, 2019
20cd0d4
crypto/cipher: Reset the EVP_CIPHER_CTX structure before each test
henribak-te Jun 26, 2019
f668f20
Merge pull request #442 from guidovranken/fuzzing
pabuhler Jul 1, 2019
5c3c739
Merge pull request #449 from Jopie64/master
pabuhler Jul 1, 2019
0912953
Use EVP_CIPHER_CTX_cleanup instead
pabuhler Jul 2, 2019
bff011b
Merge pull request #452 from hbakken/work/reset-cipher-ctx-before-reuse
pabuhler Jul 4, 2019
d268abd
add windows build to travis using cmake
pabuhler Jul 1, 2019
3b35432
Update cmake to support most of the options available with configure
pabuhler Jul 8, 2019
12ab659
add missing check for endianness with CMake
pabuhler Jul 8, 2019
ac1d740
When using cmake generate config.h into CMAKE_CURRENT_BINARY_DIR
pabuhler Jul 9, 2019
9b77ac5
Merge pull request #455 from pabuhler/cmake-support
pabuhler Jul 10, 2019
6dd5f6a
Add cmake check for inline
pabuhler Jul 10, 2019
4ade1cb
compile some tests with vc2010
pabuhler Jul 10, 2019
3e29307
remove support for rand_s in tests
pabuhler Jul 10, 2019
adfe809
if inline is not supported check for __inline
pabuhler Jul 11, 2019
b173a64
Fix docs crypto_policy_* -> srtp_crypto_policy_*
Sean-Der Jul 11, 2019
e95cf69
Merge pull request #457 from Sean-Der/master
pabuhler Jul 12, 2019
e8629b7
Merge pull request #456 from pabuhler/vc2010-support
pabuhler Jul 18, 2019
21c114f
Add missing symbols to export into srtp.def
xhaakon Apr 17, 2019
670ed79
support building shared library on windows
pabuhler Aug 6, 2019
46755e2
Merge pull request #459 from xhaakon/msvc-build
pabuhler Aug 6, 2019
8bd2113
problem on srtp_aes_icm_openssl_encrypt #462
Aug 21, 2019
e5567d8
Merge pull request #463 from juancarlossanchez/master
pabuhler Aug 27, 2019
56a0655
add oss-fuzz badge to readme
pabuhler Sep 3, 2019
d6e87f8
add debug_print0 for use with zero arguments
pabuhler Sep 19, 2019
835fbed
use PRIx64 instead of llx in format string
pabuhler Sep 19, 2019
6d9601f
Merge pull request #467 from pabuhler/coverity-format-warnings
pabuhler Nov 6, 2019
9c6e915
set xcode version in travis for some osx builds
pabuhler Nov 7, 2019
d92328b
Merge pull request #469 from pabuhler/fix-osx-travis-builds
pabuhler Nov 7, 2019
38fa163
Add extra command line options for more flexibility
Nov 20, 2019
3ef1d8f
Merge pull request #471 from michaelmalonenz/add-flexibility
pabuhler Nov 22, 2019
17ac1c6
use brew --prefix in osx ci builds
pabuhler Dec 2, 2019
65b21dc
add android build to ci
pabuhler Dec 2, 2019
cf776df
add ios build to ci
pabuhler Dec 2, 2019
0ec8614
Merge pull request #472 from pabuhler/add-ci-builds-for-ios-and-android
pabuhler Dec 3, 2019
29f419b
change remaining debug_print with NULL to debug_print0
pabuhler Dec 4, 2019
59fe48d
use zu for size_t format specifier
pabuhler Dec 4, 2019
7b34553
Merge pull request #473 from pabuhler/coverity-fixes
pabuhler Dec 9, 2019
425bf6e
enable a flag to disable pcap dependency when build test apps
pabuhler Dec 12, 2019
92ec3aa
Merge pull request #474 from pabuhler/add-pcap-flag
pabuhler Dec 12, 2019
9b09c87
Update changes preparing for 2.2.0 release
pabuhler Dec 18, 2019
d02d211
2.3.0 release
pabuhler Dec 23, 2019
f55b0f7
bump version post release
pabuhler Dec 23, 2019
46ce8ef
Update CHANGES
pabuhler Dec 23, 2019
ef9d54d
Modify cmake to install crypto_types.h instead of cipher_types.h
Jan 3, 2020
920f86d
Merge pull request #478 from bwalden/cmake-install-fix
pabuhler Jan 6, 2020
d3ac6cb
Don't set LD_LIBRARY_PATH if CRYPTO_LIBDIR is not set.
Lastique Jan 21, 2020
1057b86
Spelling and typo corrections.
sipsorcery Jan 24, 2020
08adae2
Merge pull request #483 from Lastique/fix-ld_library_path-in-tests
pabuhler Jan 24, 2020
32b628d
Merge pull request #484 from sipsorcery/typos
pabuhler Jan 24, 2020
716a738
Fix building with gcc-10
stha09 Jan 27, 2020
90b3124
Merge pull request #486 from stha09/gcc10
pabuhler Feb 4, 2020
5529951
Fix two-byte RTP header extension encryption
lgrahl May 18, 2020
72c7541
Merge pull request #491 from lgrahl/patch-1
paulej Jun 2, 2020
e7c5081
chacha20 poly1305
Feb 24, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ old?
*.app

# srtp things
build
Debug
Makefile
Root
Expand Down
113 changes: 107 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
dist: trusty
dist: xenial
sudo: false
language: c

Expand All @@ -25,6 +25,11 @@ matrix:
- make
- make runtest
- make runtest-valgrind
- make distclean
- mkdir build && cd build
- cmake ..
- make
- make test

# linux build with openssl
- os: linux
Expand All @@ -42,6 +47,16 @@ matrix:
- make
- make runtest
- make runtest-valgrind
- make distclean
- mkdir build && cd build
- cmake -DENABLE_OPENSSL=ON ..
- make
- make test
- cd ..
- mkdir build_shared && cd build_shared
- cmake -DENABLE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON ..
- make
- make test

# linux build with openssl and clang
- os: linux
Expand Down Expand Up @@ -82,26 +97,36 @@ matrix:
- EXTRA_CFLAGS=-Werror ./configure
- make
- make runtest
- make distclean
- mkdir build && cd build
- cmake ..
- make
- make test

# osx build with openssl
- os: osx
osx_image: xcode11.2
env:
- TEST="osx openssl"
before_install:
- brew install openssl
- brew install openssl@1.1
script:
- PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-openssl
- PKG_CONFIG_PATH=$(brew --prefix openssl@1.1)/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-openssl
- make
- make runtest
- make distclean
- mkdir build && cd build
- cmake -DOPENSSL_ROOT_DIR=$(brew --prefix [email protected]) -DENABLE_OPENSSL=ON ..
- make
- make test

# osx build with nss
- os: osx
osx_image: xcode11.2
env:
- TEST="osx nss"
before_install:
- brew install nss
script:
- PKG_CONFIG_PATH=/usr/local/opt/nss/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-nss
- PKG_CONFIG_PATH=$(brew --prefix nss)/lib/pkgconfig EXTRA_CFLAGS=-Werror ./configure --enable-nss
- make
- make runtest

Expand Down Expand Up @@ -140,6 +165,18 @@ matrix:
- file test/srtp_driver
- make runtest

# linux build of fuzzer
- os: linux
env:
- TEST="fuzzer (build only)"
addons:
apt:
packages:
- clang
script:
- CC=clang CXX=clang++ CXXFLAGS="-fsanitize=fuzzer-no-link,address,undefined -g -O3" CFLAGS="-fsanitize=fuzzer-no-link,address,undefined -g -O3" LDFLAGS="-fsanitize=fuzzer-no-link,address,undefined" ./configure
- LIBFUZZER="-fsanitize=fuzzer" make srtp-fuzzer

# coverity scan
- os: linux
env:
Expand All @@ -156,3 +193,67 @@ matrix:
branch_pattern: master
script:
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-

# windows build
- os: windows
env:
- TEST="windows"
script:
- export PATH="c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin":$PATH
- mkdir build && cd build
- cmake -G "Visual Studio 15 2017" ..
- msbuild.exe libsrtp2.sln -p:Configuration=Release
- msbuild.exe RUN_TESTS.vcxproj -p:Configuration=Release
- cd ..
- mkdir build_shared && cd build_shared
- cmake -G "Visual Studio 15 2017" -DBUILD_SHARED_LIBS=ON ..
- msbuild.exe libsrtp2.sln -p:Configuration=Release
- msbuild.exe RUN_TESTS.vcxproj -p:Configuration=Release

# android build
- os: linux
env:
- TEST="android"
script:
- wget -q https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip
- unzip -qq android-ndk-r20b-linux-x86_64.zip
- ANDROID_NDK=`pwd`/android-ndk-r20b
- mkdir build_android
- cd build_android
- cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a ..
- make
- cd ..
- TOOLCHAIN=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64
AR=$TOOLCHAIN/bin/aarch64-linux-android-ar
AS=$TOOLCHAIN/bin/aarch64-linux-android-as
CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++
LD=$TOOLCHAIN/bin/aarch64-linux-android-ld
RANLIB=$TOOLCHAIN/bin/aarch64-linux-android-ranlib
STRIP=$TOOLCHAIN/bin/aarch64-linux-android-strip
./configure --host aarch64-linux-android
- make

# ios build with openssl
- os: osx
osx_image: xcode11.2
env:
- TEST="ios"
script:
- wget -q https://raw.githubusercontent.com/leetal/ios-cmake/master/ios.toolchain.cmake
- mkdir build && cd build
- cmake -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DPLATFORM=OS64 ..
- make
- cd ..
- CFLAGS="-arch arm64 --sysroot=$(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=8.0 -fembed-bitcode"
LDFLAGS="-arch arm64 --sysroot=$(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=8.0 -fembed-bitcode"
AR="$(xcrun --find --sdk iphoneos ar)"
AS="$(xcrun --find --sdk iphoneos as)"
CC="$(xcrun --find --sdk iphoneos clang)"
CXX="$(xcrun --find --sdk iphoneos clang++)"
LD="$(xcrun --find --sdk iphoneos ld)"
RANLIB="$(xcrun --find --sdk iphoneos ranlib)"
STRIP="$(xcrun --find --sdk iphoneos strip)"
./configure --host arm-apple-darwin
- make
- make shared_library
38 changes: 37 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,42 @@
Changelog

2.2.0-pre (This version)
2.4.0-pre (This version)

2.3.0

Major changes

A fuzzer was added to the project based on libFuzzer. This is run as part of Google oss-fuzz, the current status can be found at https://oss-fuzz-build-logs.storage.googleapis.com/index.html#libsrtp . Details available in PR #442 and issue #393.

CMake support was added as an alternative build system. This was primarily added to replace the Visual Studio project files currently checked in but has been extend to support building on all platforms. Initial PR #449 and #455 but has been support has been continuously improved.

NSS support for crypto backend was added. This is can be used as an alternative to openssl. Initial PR #413 but there has been numerous improvements.

PR #474 - Add flag to disable pcap dependency when build test apps.

PR #472 - Add ci builds for ios and android.

PR #463 - problem on srtp_aes_icm_openssl_encrypt.

PR #471 - Allow the pcap file to be read from a physical file.

PR #457 - Fix docs crypto_policy_* -> srtp_crypto_policy_* .

PR #452 - crypto/cipher: Reset the EVP_CIPHER_CTX structure before each test.

PR #444 - Extend rtp_ecoder to support RTCP and multiplexed SSRC's.

PR #443 - rtp_decoder avoid crash when no packets found.

PR #429 - Rand for test only.

PR #421 - Fix GCM IV logging.

PR #415 - Fixes unaligned trailer access.

PR #414 - Detect and handle broken "OPENSSL_cleanse".

2.2.0

Major changes

Expand Down
Loading