AWS.Cryptography.MaterialProviders
1.3.0
Prefix Reserved
See the version list below for details.
dotnet add package AWS.Cryptography.MaterialProviders --version 1.3.0
NuGet\Install-Package AWS.Cryptography.MaterialProviders -Version 1.3.0
<PackageReference Include="AWS.Cryptography.MaterialProviders" Version="1.3.0" />
paket add AWS.Cryptography.MaterialProviders --version 1.3.0
#r "nuget: AWS.Cryptography.MaterialProviders, 1.3.0"
// Install AWS.Cryptography.MaterialProviders as a Cake Addin #addin nuget:?package=AWS.Cryptography.MaterialProviders&version=1.3.0 // Install AWS.Cryptography.MaterialProviders as a Cake Tool #tool nuget:?package=AWS.Cryptography.MaterialProviders&version=1.3.0
AWS Cryptographic Material Providers Library
📣 Note: This repository contains the source code and related files for all language implementations of the AWS Cryptographic Material Providers Library. See our supported languages section for more information.
The AWS Cryptographic Material Providers Library abstracts lower level cryptographic materials management of encryption and decryption materials. It uses cryptographic best practices to protect the data keys that protect your data. The data key is protected with a key encryption key called a wrapping key. The encryption method returns the data key and one or more encrypted data keys. Supported libraries use this information to perform envelope encryption. The data key is used to protect your data, and the encrypted data keys are stored alongside your data so you don't need to keep track of the data keys separately. You can use AWS KMS keys in AWS Key Management Service(AWS KMS) as wrapping keys. The AWS Cryptographic Material Providers Library also provides APIs to define and use wrapping keys from other key providers.
The AWS Cryptographic Material Providers Library provides methods for encrypting and decrypting cryptographic materials used in higher level client side encryption libraries.
Security
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public GitHub issue.
Getting Started
Repository structure
This repository is a top level repository which houses all source code in order to compile this library into different runtimes.
This library is written in Dafny, a formally verifiable programming language that can be compiled into different runtimes. This library is currently ONLY supported in Java and .NET
Optional Prerequisites
AWS Integration
You don't need an Amazon Web Services (AWS) account to use the AWS Cryptographic Material Providers Library, but some APIs require an AWS account, an AWS KMS key, or an Amazon DynamoDB Table. If you are using the AWS Cryptographic Material Providers Library for Java you will need the AWS SDK for Java V2. If you are using the AWS Cryptographic Material Providers Library for .NET you will need the AWS SDK for .NET V3.
NOTE: The KmsAsyncClient
and DynamoDBAsyncClient
are not supported, only the synchronous clients.
To create an AWS account, go to Sign In or Create an AWS Account and then choose I am a new user. Follow the instructions to create an AWS account.
To create a symmetric encryption KMS key in AWS KMS, see Creating Keys.
To download and install the AWS SDK for Java 2.x, see Installing the AWS SDK for Java 2.x.
To download and install the AWS SDK for .Net 3.x see Installing the AWS SDK for .Net v3
Supported Languages
- Java
- .NET
- Dafny
FAQ
See the Frequently Asked Questions page in the official documentation.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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 Framework | net48 is compatible. net481 was computed. |
-
.NETFramework 4.8
- AWS.Cryptography.Internal.AwsCryptographyPrimitives (>= 1.3.0)
- AWS.Cryptography.Internal.ComAmazonawsDynamodb (>= 1.3.0)
- AWS.Cryptography.Internal.ComAmazonawsKms (>= 1.3.0)
- AWS.Cryptography.Internal.StandardLibrary (>= 1.3.0)
- AWSSDK.Core (>= 3.7.300.2)
- BouncyCastle.Cryptography (>= 2.2.1)
- DafnyRuntime (>= 4.2.0)
- System.Collections.Immutable (>= 1.7.0)
- System.ValueTuple (>= 4.5.0)
-
net6.0
- AWS.Cryptography.Internal.AwsCryptographyPrimitives (>= 1.3.0)
- AWS.Cryptography.Internal.ComAmazonawsDynamodb (>= 1.3.0)
- AWS.Cryptography.Internal.ComAmazonawsKms (>= 1.3.0)
- AWS.Cryptography.Internal.StandardLibrary (>= 1.3.0)
- AWSSDK.Core (>= 3.7.300.2)
- BouncyCastle.Cryptography (>= 2.2.1)
- DafnyRuntime (>= 4.2.0)
- System.Collections.Immutable (>= 1.7.0)
- System.ValueTuple (>= 4.5.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on AWS.Cryptography.MaterialProviders:
Package | Downloads |
---|---|
AWS.Cryptography.EncryptionSDK
The AWS Encryption SDK is a client-side encryption library designed to make it easy for everyone to encrypt and decrypt data using industry standards and best practices. |
|
AWS.Cryptography.DbEncryptionSDK.DynamoDb
The AWS Database Encryption SDK for DyanamoDB in .NET abstracts client-side encryption for Amazon DynamoDB operations. It uses cryptographic best practices to protect the data keys that protect your data. |
GitHub repositories
This package is not used by any popular GitHub repositories.