Rust Attribute-Based Encryption library rabe's C# binding , support multiple CP-ABE and KP-ABE encrypt and decrypt algorithms.
Provide cipher and key json serialization and deserialization with System.Text.Json.
Support windows-x64, linux-x64, osx-arm64 and osx-x64.
Georg Bramm, Mark Gall, Julian Schütte , "Blockchain based Distributed Attribute-based Encryption". In Proceedings of the 15th International Joint Conference on e-Business and Telecommunications (ICETE 2018) - Volume 2: SECRYPT, pages 99-110. Available from https://doi.org/10.5220/0006852602650276
Shashank Agrawal, Melissa Chase, "FAME: Fast Attribute-based Message Encryption", (Section 3). In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security 2017. Available from https://eprint.iacr.org/2017/807.pdf
Lewko, Allison, and Brent Waters, "Decentralizing Attribute-Based Encryption.", (Appendix D). In Eurocrypt 2011. Available from http://eprint.iacr.org/2010/351.pdf
John Bethencourt, Amit Sahai, Brent Waters, "Ciphertext-Policy Attribute-Based Encryption" In IEEE Symposion on Security and Privacy, 2007. Available from https://doi.org/10.1109/SP.2007.11
S Müller, S Katzenbeisser, C Eckert , "Distributed Attribute-based Encryption". Published in International Conference on Information Security and Cryptology, Heidelberg, 2008. Available from http://www2.seceng.informatik.tu-darmstadt.de/assets/mueller/icisc08.pdf
Shashank Agrawal, Melissa Chase, "FAME: Fast Attribute-based Message Encryption". In Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security 2017. Available from https://eprint.iacr.org/2017/807.pdf
Allison Lewko, Amit Sahai and Brent Waters, "Revocation Systems with Very Small Private Keys". In IEEE Symposium on Security and Privacy, 2010. SP'10. Available from http://eprint.iacr.org/2008/309.pdf
Xuanxia Yao, Zhi Chen, Ye Tian, "A lightweight attribute-based encryption scheme for the Internet of things". In Future Generation Computer Systems. Available from http://www.sciencedirect.com/science/article/pii/S0167739X14002039
Rabe.Core can be installed directly from nuget.org.
dotnet add package Rabe.Core
To learn more about Rabe.Core, check out the Test Example
If you want to support other platforms and need to build from source:
-
clone project with native library submodule
git clone https://github.com/Aya0wind/Rabe.Core.git --recursive
-
Build rust native library
cd Rabe.Core/Rabe-ffirustup default nightlyNeed nightly rust toolchain to build!!!!cargo build --release
-
Copy native runtime library to Rabe.Core
cp target/release/librabe_core.so ../Rabe.Core/Rabe/libs/runtimes/linux-x64/native/librabe_ffi.so(linux)cp target/release/librabe_core.dylib ../Rabe.Core/Rabe/libs/runtimes/osx-x64/native/librabe_ffi.dylib(osx)xcopy target/release/rabe_core.dll ../Rabe.Core/Rabe/libs/runtimes/win-x64/native/rabe_ffi.dll(windows)- ...do the same operation on other platforms.
-
Build project
- Install .NET 6.0 SDK
dotnet build -c Release
C# Pinvoke binding is generated by ClangSharpPInvokeGenerator.