Merge pull request #2511 from zhibog/botan3

Add Botan3 libraries and use VS 2022 for Windows builds
This commit is contained in:
gingerBill
2023-05-03 22:14:17 +01:00
committed by GitHub
8 changed files with 32 additions and 25 deletions
+19 -14
View File
@@ -56,9 +56,9 @@ jobs:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- name: Download LLVM and setup PATH - name: Download LLVM, botan and setup PATH
run: | run: |
brew install llvm@11 brew install llvm@11 botan
echo "/usr/local/opt/llvm@11/bin" >> $GITHUB_PATH echo "/usr/local/opt/llvm@11/bin" >> $GITHUB_PATH
TMP_PATH=$(xcrun --show-sdk-path)/user/include TMP_PATH=$(xcrun --show-sdk-path)/user/include
echo "CPATH=$TMP_PATH" >> $GITHUB_ENV echo "CPATH=$TMP_PATH" >> $GITHUB_ENV
@@ -87,6 +87,11 @@ jobs:
cd tests/core cd tests/core
make make
timeout-minutes: 10 timeout-minutes: 10
- name: Vendor library tests
run: |
cd tests/vendor
make
timeout-minutes: 10
- name: Odin internals tests - name: Odin internals tests
run: | run: |
cd tests/internal cd tests/internal
@@ -99,13 +104,13 @@ jobs:
run: ./odin check examples/all -vet -strict-style -target:linux_arm64 run: ./odin check examples/all -vet -strict-style -target:linux_arm64
timeout-minutes: 10 timeout-minutes: 10
build_windows: build_windows:
runs-on: windows-2019 runs-on: windows-2022
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- name: build Odin - name: build Odin
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
./build.bat 1 ./build.bat 1
- name: Odin version - name: Odin version
run: ./odin version run: ./odin version
@@ -116,65 +121,65 @@ jobs:
- name: Odin check - name: Odin check
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
odin check examples/demo -vet odin check examples/demo -vet
timeout-minutes: 10 timeout-minutes: 10
- name: Odin run - name: Odin run
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
odin run examples/demo odin run examples/demo
timeout-minutes: 10 timeout-minutes: 10
- name: Odin run -debug - name: Odin run -debug
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
odin run examples/demo -debug odin run examples/demo -debug
timeout-minutes: 10 timeout-minutes: 10
- name: Odin check examples/all - name: Odin check examples/all
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
odin check examples/all -strict-style odin check examples/all -strict-style
timeout-minutes: 10 timeout-minutes: 10
- name: Core library tests - name: Core library tests
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
cd tests\core cd tests\core
call build.bat call build.bat
timeout-minutes: 10 timeout-minutes: 10
- name: Vendor library tests - name: Vendor library tests
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
cd tests\vendor cd tests\vendor
call build.bat call build.bat
timeout-minutes: 10 timeout-minutes: 10
- name: Odin internals tests - name: Odin internals tests
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
cd tests\internal cd tests\internal
call build.bat call build.bat
timeout-minutes: 10 timeout-minutes: 10
- name: Odin documentation tests - name: Odin documentation tests
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
cd tests\documentation cd tests\documentation
call build.bat call build.bat
timeout-minutes: 10 timeout-minutes: 10
- name: core:math/big tests - name: core:math/big tests
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
cd tests\core\math\big cd tests\core\math\big
call build.bat call build.bat
timeout-minutes: 10 timeout-minutes: 10
- name: Odin check examples/all for Windows 32bits - name: Odin check examples/all for Windows 32bits
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
odin check examples/all -strict-style -target:windows_i386 odin check examples/all -strict-style -target:windows_i386
timeout-minutes: 10 timeout-minutes: 10
+3 -3
View File
@@ -7,18 +7,18 @@ on:
jobs: jobs:
build_windows: build_windows:
runs-on: windows-2019 runs-on: windows-2022
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- name: build Odin - name: build Odin
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
./build.bat 1 1 ./build.bat 1 1
- name: Odin run - name: Odin run
shell: cmd shell: cmd
run: | run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat
odin run examples/demo odin run examples/demo
- name: Copy artifacts - name: Copy artifacts
run: | run: |
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+5 -5
View File
@@ -70,8 +70,8 @@ main :: proc() {
test_sha3_256(&t) test_sha3_256(&t)
test_sha3_384(&t) test_sha3_384(&t)
test_sha3_512(&t) test_sha3_512(&t)
test_shake_128(&t) // test_shake_128(&t)
test_shake_256(&t) // test_shake_256(&t)
test_keccak_512(&t) test_keccak_512(&t)
test_whirlpool(&t) test_whirlpool(&t)
test_gost(&t) test_gost(&t)
@@ -79,9 +79,9 @@ main :: proc() {
test_streebog_512(&t) test_streebog_512(&t)
test_blake2b(&t) test_blake2b(&t)
test_ripemd_160(&t) test_ripemd_160(&t)
test_tiger_128(&t) // test_tiger_128(&t)
test_tiger_160(&t) // test_tiger_160(&t)
test_tiger_192(&t) // test_tiger_192(&t)
test_sm3(&t) test_sm3(&t)
test_skein512_256(&t) test_skein512_256(&t)
test_skein512_512(&t) test_skein512_512(&t)
Binary file not shown.
BIN
View File
Binary file not shown.
+5 -3
View File
@@ -62,7 +62,7 @@ CRL_SIGN :: x509_cert_key_constraints(512)
ENCIPHER_ONLY :: x509_cert_key_constraints(256) ENCIPHER_ONLY :: x509_cert_key_constraints(256)
DECIPHER_ONLY :: x509_cert_key_constraints(128) DECIPHER_ONLY :: x509_cert_key_constraints(128)
HASH_SHA1 :: "SHA1" HASH_SHA1 :: "SHA-1"
HASH_SHA_224 :: "SHA-224" HASH_SHA_224 :: "SHA-224"
HASH_SHA_256 :: "SHA-256" HASH_SHA_256 :: "SHA-256"
HASH_SHA_384 :: "SHA-384" HASH_SHA_384 :: "SHA-384"
@@ -141,10 +141,12 @@ fpe_struct :: struct{}
fpe_t :: ^fpe_struct fpe_t :: ^fpe_struct
when ODIN_OS == .Windows { when ODIN_OS == .Windows {
foreign import botan_lib "botan.lib" foreign import botan_lib "botan-3.lib"
} else when ODIN_OS == .Darwin {
foreign import botan_lib "system:botan-3"
} else { } else {
foreign import botan_lib "system:botan-2" foreign import botan_lib "system:botan-2"
} }
@(default_calling_convention="c") @(default_calling_convention="c")
@(link_prefix="botan_") @(link_prefix="botan_")