From e3b8209e4c87ff8906699f2fdf87e97c958f8ed6 Mon Sep 17 00:00:00 2001 From: Andy Jewell Date: Fri, 23 Jan 2026 18:00:03 -0500 Subject: [PATCH 1/6] chore(rust): better blocking --- .../install_smithy_dafny_codegen_dependencies/action.yml | 2 +- AwsEncryptionSDK/runtimes/rust/copy_externs.sh | 1 + .../runtimes/rust/examples/keyring/aws_kms_keyring_example.rs | 2 +- .../rust/examples/keyring/aws_kms_mrk_multi_keyring_example.rs | 2 +- AwsEncryptionSDK/runtimes/rust/src/lib.rs | 2 ++ mpl | 2 +- 6 files changed, 7 insertions(+), 4 deletions(-) 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/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/mpl b/mpl index 687837704..3ea116182 160000 --- a/mpl +++ b/mpl @@ -1 +1 @@ -Subproject commit 687837704534fccf7764767b7057a7b83a3f1a17 +Subproject commit 3ea116182a442607720330c102f086ebf3c6975f From 43989943d12783205d6e7d3c0ec531cf2db8f3c4 Mon Sep 17 00:00:00 2001 From: Andy Jewell Date: Fri, 23 Jan 2026 18:06:27 -0500 Subject: [PATCH 2/6] m --- AwsEncryptionSDK/runtimes/net/ESDK.csproj | 2 +- TestVectors/runtimes/rust/copy_externs.sh | 1 + TestVectors/runtimes/rust/src/main.rs | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/AwsEncryptionSDK/runtimes/net/ESDK.csproj b/AwsEncryptionSDK/runtimes/net/ESDK.csproj index cc8aa4a9e..527f77ae0 100644 --- a/AwsEncryptionSDK/runtimes/net/ESDK.csproj +++ b/AwsEncryptionSDK/runtimes/net/ESDK.csproj @@ -39,7 +39,7 @@ --> - + 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; From dd4a5e65fc526599ad6c018610a8625626dbdae4 Mon Sep 17 00:00:00 2001 From: Andy Jewell Date: Fri, 23 Jan 2026 18:09:47 -0500 Subject: [PATCH 3/6] m --- AwsEncryptionSDK/runtimes/net/ESDK.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AwsEncryptionSDK/runtimes/net/ESDK.csproj b/AwsEncryptionSDK/runtimes/net/ESDK.csproj index 527f77ae0..2dcdef83b 100644 --- a/AwsEncryptionSDK/runtimes/net/ESDK.csproj +++ b/AwsEncryptionSDK/runtimes/net/ESDK.csproj @@ -31,7 +31,7 @@ - + - + From f749e552e50032741267ae494787d850ade99d1f Mon Sep 17 00:00:00 2001 From: Andy Jewell Date: Fri, 23 Jan 2026 18:31:49 -0500 Subject: [PATCH 5/6] m --- AwsEncryptionSDK/runtimes/net/tests/Test-ESDK.csproj | 2 +- TestVectors/runtimes/net/tests/TestVectors-Tests.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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/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 @@ --> - + From e37a9b41ee559957cd1fd90326a64aac976299d6 Mon Sep 17 00:00:00 2001 From: Andy Jewell Date: Fri, 23 Jan 2026 19:42:17 -0500 Subject: [PATCH 6/6] m --- AwsEncryptionSDK/runtimes/rust/Cargo.toml | 21 ++++++++--------- TestVectors/runtimes/rust/Cargo.toml | 23 +++++++++---------- .../benchmarks/rust/Cargo.toml | 16 ++++++------- 3 files changed, 29 insertions(+), 31 deletions(-) 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/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/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"] }