-
Notifications
You must be signed in to change notification settings - Fork 0
project structure
Multi-Key Wallet implementation consists several independent projects, interacting with each other through exported APIs. This article will go through their structure, relationships, and responsibility.
We maintain an extensible system for cryptographic operations, allowing several independent cryptography providers to take place, based on user configuration, platform, etc.
The cryptography provider API along with several common helpers are defined
in the MKW.Cryptography library. Each cryptography provider should
reference this assembly, and implement the MKW.Cryptography.ICryptographyProvider
interface.
Currently, we have the following cryptography providers:
The MKW.Cryptography.BouncyCastle library implements the abstract
cryptography provider using the Bouncy Castle library.
The MKW.Cryptography.System library implements the cryptography
provider using built-in .NET Cryptography API, available in the
System.Security.Cryptography namespace.
However, this does exist only in .NET core projects, and is quite limited on several platforms. This cryptography provider is not available in .NET framework projects. Please consider using Bouncy Castle provider instead.
When referencing cryptography providers from outside, please consider using
the MKW.Cryptography.Loader library, which will handle all platform
specific logic and produce an abstract ICryptographyProvider based on user's
needs.
Please refer to the api-crypto.md article for more.