|
1 | 1 | # AWS Encryption SDK for Rust
|
2 | 2 |
|
3 |
| -AWS Encryption SDK for Rust |
| 3 | +[](https://github.com/aws/aws-encryption-sdk-dafny/actions/workflows/daily_ci.yml) |
| 4 | +[](https://crates.io/crates/aws-esdk) |
| 5 | +[](https://docs.rs/aws-esdk) |
| 6 | +[](https://img.shields.io/badge/rust-1.81%2B-orange.svg) |
4 | 7 |
|
5 |
| -## Using the AWS Encryption SDK for Rust |
| 8 | +This is the official [AWS Encryption SDK for Rust](https://crates.io/crates/aws-esdk). |
6 | 9 |
|
7 |
| -The AWS Encryption SDK is available on [Crates.io](https://www.crates.io/). |
| 10 | +## [CHANGELOG](https://github.com/aws/aws-encryption-sdk-dafny/blob/mainline/AwsEncryptionSDK/runtimes/rust/CHANGELOG.md) |
8 | 11 |
|
9 |
| -For more details about the design and architecture of the AWS Encryption SDK, see the [AWS Encryption SDK Developer Guide](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html). |
10 |
| - |
11 |
| -## Building the AWS Encryption SDK for Rust |
12 |
| - |
13 |
| -To build, the AWS Encryption SDK requires the most up to date version of [Dafny](https://github.com/dafny-lang/dafny) on your PATH. |
14 |
| - |
15 |
| -You will also need to ensure that you fetch all submodules using either `git clone --recursive ...` when cloning the repository or `git submodule update --init` on an existing clone. |
16 |
| - |
17 |
| -To setup your project to use the AWS Encryption SDK in Rust, run: |
18 |
| - |
19 |
| -``` |
20 |
| -cd AwsEncryptionSDK |
21 |
| -# Polymorph smithy to Rust |
22 |
| -make polymorph_rust |
23 |
| -# Transpile Dafny to Rust |
24 |
| -make transpile_rust |
25 |
| -``` |
26 |
| - |
27 |
| -### (Optional) Set up the AWS Encryption SDK to work with AWS KMS |
28 |
| - |
29 |
| -If you set up the AWS Encryption SDK to use the AWS KMS Keyring, |
30 |
| -the AWS Encryption SDK will make calls to AWS KMS on your behalf, |
31 |
| -using the appropriate AWS SDK. |
| 12 | +## Overview |
32 | 13 |
|
33 |
| -However, you must first set up AWS credentials for use with the AWS SDK. |
| 14 | +The AWS Encryption SDK enables secure client-side encryption. It uses cryptography best practices to protect your data and protect the encryption keys that protect your data. Each data object is protected with a unique data encryption key, and the data encryption key is protected with a key encryption key called a wrapping key. The encryption method returns a single, portable [encrypted message](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/message-format.html) that contains the encrypted data and the encrypted data key, so you don't need to keep track of the data encryption keys for your data. You can use KMS keys in [AWS Key Management Service](https://aws.amazon.com/kms/) (AWS KMS) as wrapping keys. The AWS Encryption SDK also provides APIs to define and use encryption keys from other key providers. |
34 | 15 |
|
35 |
| -## Testing the AWS Encryption SDK for Rust |
36 |
| - |
37 |
| -### Configure AWS credentials |
38 |
| - |
39 |
| -To run the test suite you must first set up AWS credentials for use with the AWS SDK. |
40 |
| -This is required in order to run the integration tests, which use a KMS Keyring against a publicly accessible KMS CMK. |
41 |
| - |
42 |
| -### Run the tests |
43 |
| - |
44 |
| -Run the test suite with: |
45 |
| - |
46 |
| -``` |
47 |
| -cd AwsEncryptionSDK |
48 |
| -make test_rust |
49 |
| -``` |
50 |
| - |
51 |
| -Run tests on examples, to ensure they are up to date: |
| 16 | +For more details about the design and architecture of the AWS Encryption SDK, see the [AWS Encryption SDK Developer Guide](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html). |
52 | 17 |
|
53 |
| -``` |
54 |
| -cd AwsEncryptionSDK/runtimes/rust/ |
55 |
| -cargo test --examples |
56 |
| -``` |
| 18 | +## Examples for AWS Encryption SDK in Rust |
57 | 19 |
|
58 |
| -Please look at the Examples on how to use the Encryption SDK in Rust [here](examples). |
| 20 | +Please look at the Examples on how to use the Encryption SDK in Rust [here](https://github.com/aws/aws-encryption-sdk-dafny/tree/mainline/AwsEncryptionSDK/runtimes/rust/examples). |
59 | 21 |
|
60 |
| -Please note that tests and test vectors require internet access and valid AWS credentials, since calls to KMS are made as part of the test workflow. |
| 22 | +Please note that some examples MAY require internet access and valid AWS credentials, since calls to KMS are made. |
61 | 23 |
|
62 | 24 | ## License
|
63 | 25 |
|
|
0 commit comments