Skip to content

Commit

Permalink
Merge pull request #174 from expressvpn/arm64-win
Browse files Browse the repository at this point in the history
Windows ARM64 build
  • Loading branch information
xv-raihaan-m authored Sep 25, 2024
2 parents db3dbc5 + 8b629b0 commit 15926d5
Show file tree
Hide file tree
Showing 5 changed files with 449 additions and 3 deletions.
9 changes: 7 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ jobs:
[
{ project: windows_64, arch: x64 },
{ project: windows_32, arch: x86 },
{ project: windows_arm64, arch: amd64_arm64 },
]
steps:
- uses: actions/checkout@v4
Expand All @@ -177,13 +178,17 @@ jobs:
- name: Check Ceedling version
run: ceedling version
- name: Set up Visual Studio shell
uses: egor-tensin/vs-shell@v2
uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: ${{ matrix.config.arch }}
- name: Build dependencies
run: ceedling project:${{ matrix.config.project }} verbosity[4] clobber dependencies:make
- name: Run build and test
- if: ${{ matrix.config.project != 'windows_arm64' }}
name: Run build and test
run: ceedling project:${{ matrix.config.project }} verbosity[4] test:all
- if: ${{ matrix.config.project == 'windows_arm64' }}
name: Run build
run: ceedling project:${{ matrix.config.project }} verbosity[4] release
ios:
runs-on: macos-latest
steps:
Expand Down
6 changes: 6 additions & 0 deletions windows/ceedlingarm64.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
echo off
for /f "usebackq tokens=*" %%a in (`"\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath`) do set BASE=%%a
call "%BASE%"/VC\Auxiliary\Build\vcvarsamd64_arm64.bat
echo on
echo Running: ceedling %*
ceedling %*
198 changes: 198 additions & 0 deletions windows/wolfssl-user_settings-arm-64.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
#ifndef _WIN_USER_SETTINGS_H_
#define _WIN_USER_SETTINGS_H_

/* Verify this is Windows */
#ifndef _WIN32
#error This user_settings.h header is only designed for Windows
#endif

/* Check HAVE_SECURE_RENEGOTIATION */
#ifndef HAVE_SECURE_RENEGOTIATION
#error HAVE_SECURE_RENEGOTIATION is not defined
#endif

/* Configurations */
#undef USE_WINDOWS_API
#define USE_WINDOWS_API

#undef WOLFSSL_TLS13
#define WOLFSSL_TLS13

#undef HAVE_TLS_EXTENSIONS
#define HAVE_TLS_EXTENSIONS

#undef HAVE_SUPPORTED_CURVES
#define HAVE_SUPPORTED_CURVES

#undef WOLFSSL_DTLS_MTU
#define WOLFSSL_DTLS_MTU

#undef WOLFSSL_DTLS
#define WOLFSSL_DTLS

#undef WOLFSSL_DTLS13
#define WOLFSSL_DTLS13

#undef WOLFSSL_SEND_HRR_COOKIE
#define WOLFSSL_SEND_HRR_COOKIE

#undef SINGLE_THREADED
#define SINGLE_THREADED

#undef HAVE_THREAD_LS
#define HAVE_THREAD_LS

#undef TFM_TIMING_RESISTANT
#define TFM_TIMING_RESISTANT

#undef ECC_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT

#undef WC_RSA_BLINDING
#define WC_RSA_BLINDING

#undef HAVE_AESGCM
#define HAVE_AESGCM

#undef WOLFSSL_AESNI
//#define WOLFSSL_AESNI // Only for x86_64

#undef HAVE_INTEL_RDSEED
//#define HAVE_INTEL_RDSEED // Only on x86_64

#undef USE_INTEL_SPEEDUP
//#define USE_INTEL_SPEEDUP // Only on x86_64

#undef WOLFSSL_SHA512
#define WOLFSSL_SHA512

#undef WOLFSSL_SHA384
#define WOLFSSL_SHA384

#undef HAVE_HKDF
#define HAVE_HKDF

#undef NO_DSA
#define NO_DSA

#undef HAVE_ECC
#define HAVE_ECC

#undef TFM_ECC256
#define TFM_ECC256

#undef ECC_SHAMIR
#define ECC_SHAMIR

#undef HAVE_CURVE25519
#define HAVE_CURVE25519

#undef NO_OLD_TLS
#define NO_OLD_TLS

#undef WC_RSA_PSS
#define WC_RSA_PSS

#undef NO_DH
#define NO_DH

#undef WOLFSSL_BASE64_ENCODE
#define WOLFSSL_BASE64_ENCODE

#undef NO_RC4
#define NO_RC4

#undef NO_HC128
#define NO_HC128

#undef NO_RABBIT
#define NO_RABBIT

#undef WOLFSSL_SHA224
#define WOLFSSL_SHA224

#undef HAVE_POLY1305
#define HAVE_POLY1305

#undef HAVE_ONE_TIME_AUTH
#define HAVE_ONE_TIME_AUTH

#undef HAVE_CHACHA
#define HAVE_CHACHA

#undef HAVE_HASHDRBG
#define HAVE_HASHDRBG

#undef HAVE_SNI
#define HAVE_SNI

#undef HAVE_SUPPORTED_CURVES
#define HAVE_SUPPORTED_CURVES

#undef HAVE_EXTENDED_MASTER
#define HAVE_EXTENDED_MASTER

#undef WOLFCRYPT_HAVE_SRP
#define WOLFCRYPT_HAVE_SRP

#undef NO_RC4
#define NO_RC4

#undef HAVE_ENCRYPT_THEN_MAC
#define HAVE_ENCRYPT_THEN_MAC

#undef NO_PSK
#define NO_PSK

#undef NO_MD4
#define NO_MD4

#undef NO_PWDBASED
#define NO_PWDBASED

#undef USE_FAST_MATH
#define USE_FAST_MATH

#undef WOLFSSL_AARCH64_BUILD
#define WOLFSSL_AARCH64_BUILD

#undef WOLFSSL_HAVE_SP_RSA
#define WOLFSSL_HAVE_SP_RSA

#undef WOLFSSL_SP_4096
#define WOLFSSL_SP_4096

#undef WOLFSSL_HAVE_SP_ECC
#define WOLFSSL_HAVE_SP_ECC

#undef HAVE_ECC384
#define HAVE_ECC384

#undef WOLFSSL_SP_384
#define WOLFSSL_SP_384

#undef WOLFSSL_SP_ASM
//#define WOLFSSL_SP_ASM

#undef WOLFSSL_SP_X86_64_ASM
//#define WOLFSSL_SP_X86_64_ASM

#undef WC_NO_ASYNC_THREADING
#define WC_NO_ASYNC_THREADING

#undef HAVE_DH_DEFAULT_PARAMS
#define HAVE_DH_DEFAULT_PARAMS

#undef NO_DES3
#define NO_DES3

#undef WOLFSSL_SYS_CA_CERTS
//#define WOLFSSL_SYS_CA_CERTS

#undef HAVE_LIBOQS
#define HAVE_LIBOQS

#undef WOLFSSL_NO_SPHINCS
#define WOLFSSL_NO_SPHINCS

#endif /* _WIN_USER_SETTINGS_H_ */
Loading

0 comments on commit 15926d5

Please sign in to comment.