diff --git a/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml b/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml
index f60407b50..ceb6e6a45 100644
--- a/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml
+++ b/.github/actions/install_smithy_dafny_codegen_dependencies/action.yml
@@ -27,7 +27,7 @@ runs:
- shell: bash
run: |
python -m pip install --upgrade pip
- python -m pip install --upgrade black
+ python -m pip install black==25.1
python -m pip install --upgrade docformatter
- name: Install Go
diff --git a/AwsEncryptionSDK/runtimes/net/ESDK.csproj b/AwsEncryptionSDK/runtimes/net/ESDK.csproj
index cc8aa4a9e..2dcdef83b 100644
--- a/AwsEncryptionSDK/runtimes/net/ESDK.csproj
+++ b/AwsEncryptionSDK/runtimes/net/ESDK.csproj
@@ -31,7 +31,7 @@
-
+
-
+
diff --git a/AwsEncryptionSDK/runtimes/net/tests/Test-ESDK.csproj b/AwsEncryptionSDK/runtimes/net/tests/Test-ESDK.csproj
index d124768b5..4ac3d755b 100644
--- a/AwsEncryptionSDK/runtimes/net/tests/Test-ESDK.csproj
+++ b/AwsEncryptionSDK/runtimes/net/tests/Test-ESDK.csproj
@@ -17,7 +17,7 @@
-->
-
+
diff --git a/AwsEncryptionSDK/runtimes/rust/Cargo.toml b/AwsEncryptionSDK/runtimes/rust/Cargo.toml
index cf144c248..c8522b2da 100644
--- a/AwsEncryptionSDK/runtimes/rust/Cargo.toml
+++ b/AwsEncryptionSDK/runtimes/rust/Cargo.toml
@@ -2,7 +2,6 @@
name = "aws-esdk"
version = "1.2.1"
edition = "2021"
-rust-version = "1.88.0"
keywords = ["cryptography", "security", "dynamodb", "encryption", "client-side"]
license = "ISC AND (Apache-2.0 OR ISC)"
description = "aws-esdk is a library for implementing client side encryption."
@@ -16,22 +15,22 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-aws-config = "1.8.10"
-aws-lc-rs = {version = "1.15.0"}
-aws-lc-sys = { version = "0.36", optional = true }
+aws-config = "1.8.12"
+aws-lc-rs = {version = "1.15.4"}
+aws-lc-sys = { version = "0.37", optional = true }
aws-lc-fips-sys = { version = "0.13", optional = true }
-aws-sdk-dynamodb = "1.98.0"
-aws-sdk-kms = "1.94.0"
-aws-smithy-runtime-api = {version = "1.9.2", features = ["client"] }
-aws-smithy-types = "1.3.4"
-chrono = "0.4.42"
+aws-sdk-dynamodb = "1.103.0"
+aws-sdk-kms = "1.98.0"
+aws-smithy-runtime-api = {version = "1.10.0", features = ["client"] }
+aws-smithy-types = "1.3.6"
+chrono = "0.4.43"
cpu-time = "1.0.0"
dafny_runtime = { path = "../../../mpl/smithy-dafny/TestModels/dafny-dependencies/dafny_runtime_rust", features = ["sync","small-int"]}
dashmap = "6.1.0"
pem = "3.0.6"
rand = "0.9.2"
-tokio = {version = "1.48.0", features = ["full"] }
-uuid = { version = "1.18.1", features = ["v4"] }
+tokio = {version = "1.49.0", features = ["full"] }
+uuid = { version = "1.19.0", features = ["v4"] }
[[example]]
name = "main"
diff --git a/AwsEncryptionSDK/runtimes/rust/copy_externs.sh b/AwsEncryptionSDK/runtimes/rust/copy_externs.sh
index 25f854091..2b0976d5f 100755
--- a/AwsEncryptionSDK/runtimes/rust/copy_externs.sh
+++ b/AwsEncryptionSDK/runtimes/rust/copy_externs.sh
@@ -12,6 +12,7 @@ cp $SRC/ddb.rs src
cp $SRC/digest.rs src
cp $SRC/ecdh.rs src
cp $SRC/ecdsa.rs src
+cp $SRC/escape.rs src
cp $SRC/hmac.rs src
cp $SRC/kms.rs src
cp $SRC/local_cmc.rs src
diff --git a/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_keyring_example.rs b/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_keyring_example.rs
index 09ea2507f..01cac824c 100644
--- a/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_keyring_example.rs
+++ b/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_keyring_example.rs
@@ -108,7 +108,7 @@ pub async fn encrypt_and_decrypt_with_keyring(
Ok(())
}
-#[tokio::test(flavor = "multi_thread")]
+#[tokio::test]
pub async fn test_encrypt_and_decrypt_with_keyring() -> Result<(), crate::BoxError2> {
// Test function for encrypt and decrypt using the AWS KMS Keyring example
use crate::example_utils::utils;
diff --git a/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_mrk_multi_keyring_example.rs b/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_mrk_multi_keyring_example.rs
index 070c997a8..5740bf7af 100644
--- a/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_mrk_multi_keyring_example.rs
+++ b/AwsEncryptionSDK/runtimes/rust/examples/keyring/aws_kms_mrk_multi_keyring_example.rs
@@ -163,7 +163,7 @@ pub async fn encrypt_and_decrypt_with_keyring(
Ok(())
}
-#[tokio::test(flavor = "multi_thread")]
+#[tokio::test]
pub async fn test_encrypt_and_decrypt_with_keyring() -> Result<(), crate::BoxError2> {
// Test function for encrypt and decrypt using the AWS KMS MRK Multi Keyring example
use crate::example_utils::utils;
diff --git a/AwsEncryptionSDK/runtimes/rust/src/lib.rs b/AwsEncryptionSDK/runtimes/rust/src/lib.rs
index 1f50612bc..65934a608 100644
--- a/AwsEncryptionSDK/runtimes/rust/src/lib.rs
+++ b/AwsEncryptionSDK/runtimes/rust/src/lib.rs
@@ -112,6 +112,7 @@ pub(crate) use crate::implementation_from_dafny::HMAC;
pub(crate) use crate::implementation_from_dafny::UTF8;
pub(crate) use crate::implementation_from_dafny::UUID;
pub(crate) use crate::deps::com_amazonaws_kms::client::Client as KmsClient;
+pub(crate) use crate::deps::com_amazonaws_dynamodb::client::Client as DdbClient;
// Import smithy-generated modules
pub(crate) mod conversions;
@@ -127,6 +128,7 @@ pub(crate) mod ddb;
pub(crate) mod digest;
pub(crate) mod ecdh;
pub(crate) mod ecdsa;
+pub(crate) mod escape;
pub(crate) mod hmac;
pub(crate) mod kms;
pub(crate) mod local_cmc;
diff --git a/TestVectors/runtimes/net/ESDKTestVectors.csproj b/TestVectors/runtimes/net/ESDKTestVectors.csproj
index ba1a57559..7e651d5ec 100644
--- a/TestVectors/runtimes/net/ESDKTestVectors.csproj
+++ b/TestVectors/runtimes/net/ESDKTestVectors.csproj
@@ -17,7 +17,7 @@
-->
-
+
diff --git a/TestVectors/runtimes/net/tests/TestVectors-Tests.csproj b/TestVectors/runtimes/net/tests/TestVectors-Tests.csproj
index 962166e20..332695f87 100644
--- a/TestVectors/runtimes/net/tests/TestVectors-Tests.csproj
+++ b/TestVectors/runtimes/net/tests/TestVectors-Tests.csproj
@@ -17,7 +17,7 @@
-->
-
+
diff --git a/TestVectors/runtimes/rust/Cargo.toml b/TestVectors/runtimes/rust/Cargo.toml
index 9b08443d1..79184759a 100644
--- a/TestVectors/runtimes/rust/Cargo.toml
+++ b/TestVectors/runtimes/rust/Cargo.toml
@@ -2,7 +2,6 @@
name = "aws-esdk-test-vectors"
version = "0.1.0"
edition = "2021"
-rust-version = "1.86.0"
description = "aws-esdk-test-vectors is a library for testing aws-esdk."
authors = ["AWS-CryptoTools"]
autoexamples = false
@@ -11,22 +10,22 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-aws-config = "1.8.5"
-aws-lc-rs = {version = "1.13.3"}
-aws-lc-sys = { version = "0.30", optional = true }
+aws-config = "1.8.12"
+aws-lc-rs = {version = "1.15.4"}
+aws-lc-sys = { version = "0.37", optional = true }
aws-lc-fips-sys = { version = "0.13", optional = true }
-aws-sdk-dynamodb = "1.90.0"
-aws-sdk-kms = "1.84.0"
-aws-smithy-runtime-api = {version = "1.9.0", features = ["client"] }
-aws-smithy-types = "1.3.2"
-chrono = "0.4.41"
+aws-sdk-dynamodb = "1.103.0"
+aws-sdk-kms = "1.98.0"
+aws-smithy-runtime-api = {version = "1.10.0", features = ["client"] }
+aws-smithy-types = "1.3.6"
+chrono = "0.4.43"
cpu-time = "1.0.0"
dafny_runtime = { path = "../../../mpl/smithy-dafny/TestModels/dafny-dependencies/dafny_runtime_rust", features = ["sync","small-int"]}
dashmap = "6.1.0"
-pem = "3.0.5"
+pem = "3.0.6"
rand = "0.9.2"
-tokio = {version = "1.47.1", features = ["full"] }
-uuid = { version = "1.18.0", features = ["v4"] }
+tokio = {version = "1.49.0", features = ["full"] }
+uuid = { version = "1.19.0", features = ["v4"] }
ring = "=0.17.14"
[dev-dependencies]
diff --git a/TestVectors/runtimes/rust/copy_externs.sh b/TestVectors/runtimes/rust/copy_externs.sh
index 25f854091..2b0976d5f 100755
--- a/TestVectors/runtimes/rust/copy_externs.sh
+++ b/TestVectors/runtimes/rust/copy_externs.sh
@@ -12,6 +12,7 @@ cp $SRC/ddb.rs src
cp $SRC/digest.rs src
cp $SRC/ecdh.rs src
cp $SRC/ecdsa.rs src
+cp $SRC/escape.rs src
cp $SRC/hmac.rs src
cp $SRC/kms.rs src
cp $SRC/local_cmc.rs src
diff --git a/TestVectors/runtimes/rust/src/main.rs b/TestVectors/runtimes/rust/src/main.rs
index c66f7b1ec..5bbbcee31 100644
--- a/TestVectors/runtimes/rust/src/main.rs
+++ b/TestVectors/runtimes/rust/src/main.rs
@@ -52,6 +52,7 @@ pub(crate) use crate::implementation_from_dafny::UTF8;
pub(crate) use crate::implementation_from_dafny::UUID;
pub(crate) use crate::implementation_from_dafny::_TestWrappedESDKMain_Compile;
pub(crate) use crate::deps::com_amazonaws_kms::client::Client as KmsClient;
+pub(crate) use crate::deps::com_amazonaws_dynamodb::client::Client as DdbClient;
pub(crate) mod aes_gcm;
pub(crate) mod aes_kdf_ctr;
@@ -61,6 +62,7 @@ pub(crate) mod ddb;
pub(crate) mod digest;
pub(crate) mod ecdh;
pub(crate) mod ecdsa;
+pub(crate) mod escape;
pub(crate) mod hmac;
pub(crate) mod kms;
pub(crate) mod local_cmc;
diff --git a/esdk-performance-testing/benchmarks/rust/Cargo.toml b/esdk-performance-testing/benchmarks/rust/Cargo.toml
index 8c493549b..517625021 100644
--- a/esdk-performance-testing/benchmarks/rust/Cargo.toml
+++ b/esdk-performance-testing/benchmarks/rust/Cargo.toml
@@ -13,7 +13,7 @@ path = "src/main.rs"
aws-esdk = { path = "../../../AwsEncryptionSDK/runtimes/rust" }
# Async runtime
-tokio = { version = "1.47", features = ["full"] }
+tokio = { version = "1.49", features = ["full"] }
# Serialization
serde = { version = "1.0", features = ["derive"] }
@@ -49,14 +49,14 @@ stats_alloc = "0.1"
# Async utilities
futures = "0.3"
-aws-config = "1.8.6"
-aws-sdk-dynamodb = "1.92.0"
-aws-sdk-kms = "1.86.0"
-aws-sdk-sso = "1.83.0"
-aws-sdk-ssooidc = "1.84.0"
-aws-sdk-sts = "1.85.0"
+aws-config = "1.8.12"
+aws-sdk-dynamodb = "1.103.0"
+aws-sdk-kms = "1.98.0"
+aws-sdk-sso = "1.92.0"
+aws-sdk-ssooidc = "1.94.0"
+aws-sdk-sts = "1.96.0"
aws-smithy-types = "1.3"
cpu-time = "1.0.0"
[dev-dependencies]
-criterion = { version = "0.7", features = ["html_reports"] }
+criterion = { version = "0.8", features = ["html_reports"] }
diff --git a/mpl b/mpl
index 687837704..3ea116182 160000
--- a/mpl
+++ b/mpl
@@ -1 +1 @@
-Subproject commit 687837704534fccf7764767b7057a7b83a3f1a17
+Subproject commit 3ea116182a442607720330c102f086ebf3c6975f