diff --git a/.github/workflows/library_rust_tests.yml b/.github/workflows/library_rust_tests.yml index 9c09840ab..84b9e08c1 100644 --- a/.github/workflows/library_rust_tests.yml +++ b/.github/workflows/library_rust_tests.yml @@ -125,6 +125,13 @@ jobs: ' implementation_from_dafny.rs fi + - name: Test Linter for Rust examples and implementation_from_dafny.rs + working-directory: ./AwsEncryptionSDK/runtimes/rust + shell: bash + run: | + cargo clippy + cargo clippy --example main + - name: Test Rust working-directory: ./AwsEncryptionSDK shell: bash diff --git a/AwsEncryptionSDK/runtimes/rust/CHANGELOG.md b/AwsEncryptionSDK/runtimes/rust/CHANGELOG.md new file mode 100644 index 000000000..4dc68c6ff --- /dev/null +++ b/AwsEncryptionSDK/runtimes/rust/CHANGELOG.md @@ -0,0 +1,2 @@ +# Changelog + diff --git a/AwsEncryptionSDK/runtimes/rust/README.md b/AwsEncryptionSDK/runtimes/rust/README.md index afa6cf631..c48ae96c6 100644 --- a/AwsEncryptionSDK/runtimes/rust/README.md +++ b/AwsEncryptionSDK/runtimes/rust/README.md @@ -6,6 +6,8 @@ AWS Encryption SDK for Rust The AWS Encryption SDK is available on [Crates.io](https://www.crates.io/). +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). + ## Building the AWS Encryption SDK for Rust To build, the AWS Encryption SDK requires the most up to date version of [Dafny](https://github.com/dafny-lang/dafny) on your PATH. diff --git a/AwsEncryptionSDK/runtimes/rust/src/lib.rs b/AwsEncryptionSDK/runtimes/rust/src/lib.rs index 846c5cf20..8f8fb2cf5 100644 --- a/AwsEncryptionSDK/runtimes/rust/src/lib.rs +++ b/AwsEncryptionSDK/runtimes/rust/src/lib.rs @@ -1,5 +1,10 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + #![allow(warnings, unconditional_panic)] #![allow(nonstandard_style)] +#![allow(clippy::never_loop)] +#![allow(clippy::absurd_extreme_comparisons)] pub mod client; pub mod conversions; diff --git a/README.md b/README.md index 42fe1874c..8da6716c8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,12 @@ ![Build Status - master branch](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiVmIzeGwwQmY5bXdMQXg2aVBneWtDc3FHSWRHTjYrNnVUem9nNXJFUmY2Rk1yRnJvSjJvK3JCL2RScFRjSVF1UjA1elR3L0xpTVpiNmRZS0RyWjJpTnBFPSIsIml2UGFyYW1ldGVyU3BlYyI6InBBQm1tT1BPNjB3RU9XUS8iLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master) -AWS Encryption SDK for Dafny +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. + +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). + +📣 Note: This repository contains the source code and related files for the +[supported language](#supported-languages) implementations of the AWS Encryption SDK. [Security issue notifications](./CONTRIBUTING.md#security-issue-notifications) @@ -86,6 +91,11 @@ To view the report, look at the generated `specification_compliance_report.html` cargo +stable install duvet ``` +## Supported Languages +- .NET +- Dafny +- Rust + ## License This library is licensed under the Apache 2.0 License. diff --git a/AwsEncryptionSDK/runtimes/net/SUPPORT_POLICY.rst b/SUPPORT_POLICY.rst similarity index 66% rename from AwsEncryptionSDK/runtimes/net/SUPPORT_POLICY.rst rename to SUPPORT_POLICY.rst index 6fb537e1f..15259aedc 100644 --- a/AwsEncryptionSDK/runtimes/net/SUPPORT_POLICY.rst +++ b/SUPPORT_POLICY.rst @@ -9,9 +9,9 @@ Major Version Lifecycle ======================== The AWS Encryption SDK follows the same major version lifecycle as the AWS SDK. For details on this lifecycle, see `AWS SDKs and Tools Maintenance Policy`_. -Version Support Matrix -====================== -This table describes the current support status of each major version of the AWS Encryption SDK for Java. It also shows the next status each major version will transition to, and the date at which that transition will happen. +Version Support Matrix for .NET +=============================== +This table describes the current support status of each major version of the AWS Encryption SDK for .NET. It also shows the next status each major version will transition to, and the date at which that transition will happen. .. list-table:: :widths: 30 50 50 50 @@ -30,5 +30,26 @@ This table describes the current support status of each major version of the AWS - - -.. _AWS SDKs and Tools Maintenance Policy: https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle +Version Support Matrix for Rust +=============================== +This table describes the current support status of each major version of the AWS Encryption SDK for Rust. It also shows the next status each major version will transition to, and the date at which that transition will happen. + +.. list-table:: + :widths: 30 50 50 50 + :header-rows: 1 + + * - Major version + - Current status + - Next status + - Next status date + * - 0.x + - Beta Version + - End of Support + - 2024-12-14 + * - 4.x + - Generally Available + - + - + +.. _AWS SDKs and Tools Maintenance Policy: https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle diff --git a/TestVectors/runtimes/rust/src/main.rs b/TestVectors/runtimes/rust/src/main.rs index 48762ea1b..7ad5d60d9 100644 --- a/TestVectors/runtimes/rust/src/main.rs +++ b/TestVectors/runtimes/rust/src/main.rs @@ -1,3 +1,6 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + #![allow(warnings, unconditional_panic)] #![allow(nonstandard_style)] diff --git a/AwsEncryptionSDK/runtimes/net/VERSIONING.rst b/VERSIONING.rst similarity index 100% rename from AwsEncryptionSDK/runtimes/net/VERSIONING.rst rename to VERSIONING.rst diff --git a/mpl b/mpl index 370be9c25..b5c3522da 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit 370be9c25900681687b36f022f0e3ba740c933b9 +Subproject commit b5c3522da3cfafddd2b180e5fe110e1cf1fc1129