Common.Security.Cryptography 0.1.0

Suggested Alternatives

OSK.Security.Cryptography

Additional Details

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.1.0
NuGet\Install-Package Common.Security.Cryptography -Version 0.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Common.Security.Cryptography" Version="0.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Common.Security.Cryptography --version 0.1.0
#r "nuget: Common.Security.Cryptography, 0.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Common.Security.Cryptography as a Cake Addin
#addin nuget:?package=Common.Security.Cryptography&version=0.1.0

// Install Common.Security.Cryptography as a Cake Tool
#tool nuget:?package=Common.Security.Cryptography&version=0.1.0

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.

Available on nuget

https://www.nuget.org/packages/Common.Security.Cryptography#readme-body-tab

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
0.1.0 223 8/27/2023
0.0.2 162 7/25/2023