-
Notifications
You must be signed in to change notification settings - Fork 21
Using the AWS Encryption SDK for .NET on macOS
Using the AWS Encryption SDK for .NET requires additional setup on macOS.
First, ensure Homebrew is installed, as well as your desired .NET SDK (brew install dotnet-sdk
).
Then follow the instructions under either Apple M1-based Macs or Intel-based Macs
according to the type of Mac you're running.
If you're unsure which type of Mac you're running, run uname -m
in a shell.
This prints "arm64" if running on M1, or prints "x86_64" instead if running on Intel
(or on M1 in x64 emulation mode / Rosetta).
These instructions are based on the .NET SDK M1 documentation issue: https://github.com/dotnet/sdk/issues/22380. If you run into issues, please first check the troubleshooting tips in that thread before opening an issue here.
In addition to the arm64-native Homebrew installation, you'll need to create an x64-native Homebrew installation as follows:
$ arch x64_64 zsh
$ cd /usr/local
$ mkdir homebrew
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
Next, install OpenSSL 1.1 for x64 and a x64-native .NET runtime:
$ arch -x86_64 /usr/local/homebrew/bin/brew install [email protected]/lib
# This .NET SDK installation will coexist with the native installation, but in a separate directory
$ arch -x86_64 /usr/local/homebrew/bin/brew install dotnet-sdk
When running a .NET application that uses the AWS Encryption SDK for .NET,
you must include the OpenSSL directory in the dynamic linker path at runtime,
and specify the x64
architecture for dotnet
commands:
$ export DYLD_LIBRARY_PATH="/usr/local/homebrew/opt/[email protected]/lib"
$ dotnet run -a x64 [ARGS...]
Install OpenSSL 1.1:
$ brew install [email protected]
When running a .NET application that uses the AWS Encryption SDK for .NET, you must include the OpenSSL directory in the dynamic linker path at runtime:
$ export DYLD_LIBRARY_PATH="/usr/local/opt/[email protected]/lib"
$ dotnet run [ARGS...]
If the .NET runtime cannot locate your OpenSSL 1.1 libraries, you may encounter an error that says:
No usable version of libssl was found
Ensure that you set the DYLD_LIBRARY_PATH
environment variable as instructed above.
If you are using an M1-based Mac and did not correctly install the x64-native .NET SDK/runtime, you may encounter an error that says one of the following:
AES encrypt error: Algorithm 'AesGcm' is not supported on this platform.
AES decrypt error: Algorithm 'AesGcm' is not supported on this platform.
Ensure that you install the x64-native .NET SDK/runtime as instructed above.