Common.Security.Cryptography
0.0.2
Project has been updated and will be maintained within an open source organization instead. Please see https://github.com/OpenSourceKingdom/OSK.Security.Cryptography for the comparable project and the rest of the OSK open source projects for other tools and libraries that may be of use to you.
Note: Package will become unavailable by April 30, 2024 (4/30/2024)
dotnet add package Common.Security.Cryptography --version 0.0.2
NuGet\Install-Package Common.Security.Cryptography -Version 0.0.2
<PackageReference Include="Common.Security.Cryptography" Version="0.0.2" />
paket add Common.Security.Cryptography --version 0.0.2
#r "nuget: Common.Security.Cryptography, 0.0.2"
// Install Common.Security.Cryptography as a Cake Addin #addin nuget:?package=Common.Security.Cryptography&version=0.0.2 // Install Common.Security.Cryptography as a Cake Tool #tool nuget:?package=Common.Security.Cryptography&version=0.0.2
Common.Security.Cryptography
Cryptography should be easy to use and access and provide this capability in a way that is extensible and updatable. Rather than needing to handle and manage resources around the various cryptography implementations, this library provides an alternative to the normal patterns for using cryptographic functions and allows the use of the async/await and dependency injection patterns.
Security Keys
A security key
is an entity that is able to provide the requirements of encyption, decryption, signing, and validating signatures. These are backed by strong cryptographic functions such as AES, RSA, and others.
The security key domain is made up of subdomains of many types of security key. Each subdomain will include the following objects and entities:
Models
:
- KeyGenerationParameters
- KeyExchangeInformation
- KeyInformation
Services
:
- SecurityKeyGenerator
- SecurityKey
Dependency Injection
:
- SecurityKeyDescriptor
The model objects are used by the SecurityKeyDescriptor
, ISecurityKeyProvider
, and SecurityKeyGenerator
to create the security through the points of entry into the library. They act as the gatway to the subdomain and allows the subdomain to be implemented as needed without adding major complexity to the base library. Additionally, generator and allows for clear separation of any necessary initialization tasks from the underlying security key itself.
KeyInformation
is the central data component that allows the security key to operate, containing the necessary data to construct the key. KeyExchangeInformation
is the publicly transmittable data that can be sent across the network and then used to reconstruct the required security key on the partner's connection. This provides the ease of use for a consumer of the library by not needing to know what data can/can not be transmitted for secure data transmission.
Additionally, this design should allow the ease of creating and experimenting with new cryptographic algorithms by allowing a simple set of core interfaces and parent models to integrate new security keys into the library for other projects, without needing updates to the main repository -- though updates to strong cryptographic functions or security enhancements to the library in general are welcome!
Cryptography
The main point of entry into the APIs is via the ICryptographyService
. In this way, the usage of a broad number of different cryptographic algorithms and related hash functions can be consolidated to one place, providing ease of access. Simply providing the necessary model parameters will generate a usable key for cryptographic purposes. All that should be required to construct the desired security key is simply the parameters desired for the function to operate.
Contributions
Cryptography and data security are important for network and other data management. Feel free to create issues and updates to the library to help it grow and gain access to further security keys.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|