This repository contains the code for the Proton.Cryptography NuGet package which wraps proton-rpgp and proton-srp for use in .NET projects.
Please see LICENSE file for the license.
This assumes that the build is done on a Debian-based operating system (e.g. Ubuntu) on an x86-64 architecture.
Instead of the following instructions, you can use build/Dockerfile if you are familiar with Docker.
- Install Rust and .NET
sudo apt install dotnet-sdk-9.0
#TODO Rust- Install support for building for Windows (including ARM64)
LLVM_MINGW_VERSION=`curl "https://api.github.com/repos/mstorsjo/llvm-mingw/tags" | jq -r '.[1].name'`
wget https://github.com/mstorsjo/llvm-mingw/releases/download/$LLVM_MINGW_VERSION/llvm-mingw-$LLVM_MINGW_VERSION-ucrt-ubuntu-20.04-$(uname -m).tar.xz -O llvm-mingw.tar.xz
mkdir -p llvm-mingw && tar xf llvm-mingw.tar.xz --strip-components=1 -C llvm-mingw
export LLVM_MINGW_ROOT="$PWD/llvm-mingw"See build/Dockerfile for an example of how to build from source instead.
- Install support for building for Linux
sudo apt install gcc libc6-dev gcc-i686-linux-gnu libc6-dev-i386-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross- Install support for building for Android
wget https://dl.google.com/android/repository/android-ndk-r27c-linux.zip
unzip android-ndk-r27c-linux.zip
export NDK_ROOT="$PWD/android-ndk-r27c"- Build the Rust library for non-Apple targets, from a Linux machine
build/build-rust.sh linux/amd64 linux/arm64 windows/amd64 windows/arm64 android/arm64- Build the Rust library for Apple targets, from an Apple machine
build/build-rust.sh darwin/amd64 darwin/arm64 ios/arm64- Pack into NuGet package
dotnet pack -c Release -p:Version=1.0.0 src/dotnet/Proton.Cryptograpy.csproj --output ~/local-nuget-repositoryAdd a reference to the package in your project configuration (.csproj):
<PackageReference Include="Proton.Cryptography" Version="1.0.0" />This package currently does not support the following features:
- Signing and verification contexts
- Validation of UTF-8 content
Contributions are not accepted at the moment.