From 12bbfbff0b8640e26e188bddabefeccdb43faa95 Mon Sep 17 00:00:00 2001 From: Andrew Jewell <107044381+ajewellamz@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:36:22 -0500 Subject: [PATCH] fix: support new input validation (#1518) * fix: support new input validation --- DynamoDbEncryption/runtimes/rust/.gitignore | 1 + DynamoDbEncryption/runtimes/rust/Cargo.toml | 19 ++++++++++--------- .../rust/examples/basic_get_put_example.rs | 2 +- .../clientsupplier/client_supplier_example.rs | 4 ++-- .../examples/keyring/hierarchical_keyring.rs | 2 +- .../rust/examples/keyring/kms_rsa_keyring.rs | 2 +- .../keyring/mrk_discovery_multi_keyring.rs | 4 ++-- .../rust/examples/keyring/multi_keyring.rs | 4 ++-- .../examples/keyring/multi_mrk_keyring.rs | 6 +++--- .../rust/examples/keyring/raw_aes_keyring.rs | 2 +- .../rust/examples/keyring/raw_rsa_keyring.rs | 2 +- .../rust/examples/multi_get_put_example.rs | 2 +- .../basic_searchable_encryption.rs | 2 +- .../beacon_styles_searchable_encryption.rs | 2 +- .../complexexample/beacon_config.rs | 2 +- .../compound_beacon_searchable_encryption.rs | 2 +- .../virtual_beacon_searchable_encryption.rs | 2 +- .../runtimes/rust/src/intercept.rs | 6 +++--- DynamoDbEncryption/runtimes/rust/src/lib.rs | 1 + TestVectors/runtimes/rust/.gitignore | 1 + TestVectors/runtimes/rust/Cargo.toml | 19 ++++++++++--------- TestVectors/runtimes/rust/src/lib.rs | 1 + submodules/MaterialProviders | 2 +- submodules/smithy-dafny | 2 +- 24 files changed, 49 insertions(+), 43 deletions(-) diff --git a/DynamoDbEncryption/runtimes/rust/.gitignore b/DynamoDbEncryption/runtimes/rust/.gitignore index f39a07024..143cdfc50 100644 --- a/DynamoDbEncryption/runtimes/rust/.gitignore +++ b/DynamoDbEncryption/runtimes/rust/.gitignore @@ -32,4 +32,5 @@ src/time.rs src/types src/types.rs src/uuid.rs +src/validation.rs target diff --git a/DynamoDbEncryption/runtimes/rust/Cargo.toml b/DynamoDbEncryption/runtimes/rust/Cargo.toml index beedebb42..ee3c14e48 100644 --- a/DynamoDbEncryption/runtimes/rust/Cargo.toml +++ b/DynamoDbEncryption/runtimes/rust/Cargo.toml @@ -2,7 +2,7 @@ name = "aws-db-esdk" version = "0.1.1" edition = "2021" -rust-version = "1.80.0" +rust-version = "1.81.0" keywords = ["cryptography", "security", "dynamodb", "encryption", "client-side"] license = "ISC AND (Apache-2.0 OR ISC)" description = "aws-db-esdk is a library for implementing client side encryption with DynamoDB." @@ -16,18 +16,19 @@ readme = "README.md" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -aws-config = "1.5.10" -aws-lc-rs = "1.11.1" -aws-lc-sys = "0.23.1" -aws-sdk-dynamodb = "1.54.0" -aws-sdk-kms = "1.50.0" +aws-config = "1.5.11" +aws-lc-rs = "1.12.0" +aws-lc-sys = "0.22.0" +aws-sdk-dynamodb = "1.56.0" +aws-sdk-kms = "1.52.0" aws-smithy-runtime-api = {version = "1.7.3", features = ["client"] } -aws-smithy-types = "1.2.9" -chrono = "0.4.38" +aws-smithy-types = "1.2.10" +chrono = "0.4.39" +cpu-time = "1.0.0" dafny-runtime = "0.1.1" dashmap = "6.1.0" pem = "3.0.4" -tokio = {version = "1.41.1", features = ["full"] } +tokio = {version = "1.42.0", features = ["full"] } uuid = { version = "1.11.0", features = ["v4"] } [[example]] diff --git a/DynamoDbEncryption/runtimes/rust/examples/basic_get_put_example.rs b/DynamoDbEncryption/runtimes/rust/examples/basic_get_put_example.rs index c3e68e6b5..ba656dab6 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/basic_get_put_example.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/basic_get_put_example.rs @@ -116,7 +116,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 5. Create a new AWS SDK DynamoDb client using the TableEncryptionConfigs let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/clientsupplier/client_supplier_example.rs b/DynamoDbEncryption/runtimes/rust/examples/clientsupplier/client_supplier_example.rs index 0dbae3b73..07e3b5d99 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/clientsupplier/client_supplier_example.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/clientsupplier/client_supplier_example.rs @@ -123,7 +123,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 5. Create a new AWS SDK DynamoDb client using the DynamoDb Config above let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); @@ -215,7 +215,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { .build()?; let only_replica_dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(only_replica_table_configs)) + .interceptor(DbEsdkInterceptor::new(only_replica_table_configs)?) .build(); let only_replica_ddb = aws_sdk_dynamodb::Client::from_conf(only_replica_dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/keyring/hierarchical_keyring.rs b/DynamoDbEncryption/runtimes/rust/examples/keyring/hierarchical_keyring.rs index 90f350f69..741e2025a 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/keyring/hierarchical_keyring.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/keyring/hierarchical_keyring.rs @@ -181,7 +181,7 @@ pub async fn put_item_get_item( // 7. Create a new AWS SDK DynamoDb client using the DynamoDb Encryption Interceptor above let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/keyring/kms_rsa_keyring.rs b/DynamoDbEncryption/runtimes/rust/examples/keyring/kms_rsa_keyring.rs index 61468c27b..601eca2ca 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/keyring/kms_rsa_keyring.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/keyring/kms_rsa_keyring.rs @@ -151,7 +151,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 6. Create a new AWS SDK DynamoDb client using the DynamoDb Encryption Interceptor above let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/keyring/mrk_discovery_multi_keyring.rs b/DynamoDbEncryption/runtimes/rust/examples/keyring/mrk_discovery_multi_keyring.rs index 3cbb12e9e..5d6d57a3a 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/keyring/mrk_discovery_multi_keyring.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/keyring/mrk_discovery_multi_keyring.rs @@ -115,7 +115,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 5. Create a new AWS SDK DynamoDb client using the config above let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); @@ -182,7 +182,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { .build()?; let dynamo_config_for_decrypt = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs_for_decrypt)) + .interceptor(DbEsdkInterceptor::new(table_configs_for_decrypt)?) .build(); let ddb_for_decrypt = aws_sdk_dynamodb::Client::from_conf(dynamo_config_for_decrypt); diff --git a/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_keyring.rs b/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_keyring.rs index 9ad1d8180..c4b128e8a 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_keyring.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_keyring.rs @@ -148,7 +148,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 7. Create a new AWS SDK DynamoDb client using the config above let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); @@ -217,7 +217,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { .build()?; let only_aes_dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(only_aes_table_configs)) + .interceptor(DbEsdkInterceptor::new(only_aes_table_configs)?) .build(); let only_aes_ddb = aws_sdk_dynamodb::Client::from_conf(only_aes_dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_mrk_keyring.rs b/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_mrk_keyring.rs index 20bd6c5e6..f6c5fecd3 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_mrk_keyring.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/keyring/multi_mrk_keyring.rs @@ -136,7 +136,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 5. Create the DynamoDb Encryption Interceptor let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); @@ -218,7 +218,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { .build()?; let only_replica_dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(only_replica_table_configs)) + .interceptor(DbEsdkInterceptor::new(only_replica_table_configs)?) .build(); let only_replica_ddb = aws_sdk_dynamodb::Client::from_conf(only_replica_dynamo_config); @@ -266,7 +266,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { .build()?; let only_srk_dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(only_srk_table_configs)) + .interceptor(DbEsdkInterceptor::new(only_srk_table_configs)?) .build(); let only_srk_ddb = aws_sdk_dynamodb::Client::from_conf(only_srk_dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_aes_keyring.rs b/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_aes_keyring.rs index ecf8d7d03..6cb91e0c2 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_aes_keyring.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_aes_keyring.rs @@ -113,7 +113,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 5. Create a new AWS SDK DynamoDb client using the Config above let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_rsa_keyring.rs b/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_rsa_keyring.rs index 88f32ac60..7510bc1b8 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_rsa_keyring.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/keyring/raw_rsa_keyring.rs @@ -151,7 +151,7 @@ pub async fn put_item_get_item() -> Result<(), crate::BoxError> { // 6. Create a new AWS SDK DynamoDb client using the config above let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/multi_get_put_example.rs b/DynamoDbEncryption/runtimes/rust/examples/multi_get_put_example.rs index b5b5e11ca..559be27fc 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/multi_get_put_example.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/multi_get_put_example.rs @@ -116,7 +116,7 @@ pub async fn multi_put_get() -> Result<(), crate::BoxError> { // 5. Create a new AWS SDK DynamoDb client using the TableEncryptionConfigs let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/basic_searchable_encryption.rs b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/basic_searchable_encryption.rs index 55d0fd05d..94456cfa7 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/basic_searchable_encryption.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/basic_searchable_encryption.rs @@ -249,7 +249,7 @@ pub async fn put_and_query_with_beacon(branch_key_id: &str) -> Result<(), crate: // 7. Create a new AWS SDK DynamoDb client using the TableEncryptionConfigs let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/beacon_styles_searchable_encryption.rs b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/beacon_styles_searchable_encryption.rs index a7d359dfc..e62d0a175 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/beacon_styles_searchable_encryption.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/beacon_styles_searchable_encryption.rs @@ -268,7 +268,7 @@ pub async fn put_and_query_with_beacon(branch_key_id: &str) -> Result<(), crate: // 10. Create a new AWS SDK DynamoDb client using the DynamoDb Config above let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(encryption_config)) + .interceptor(DbEsdkInterceptor::new(encryption_config)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/complexexample/beacon_config.rs b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/complexexample/beacon_config.rs index 5d248c425..0e8e4acc7 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/complexexample/beacon_config.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/complexexample/beacon_config.rs @@ -547,7 +547,7 @@ pub async fn setup_beacon_config( // 13. Create a new AWS SDK DynamoDb client using the config above let sdk_config = aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await; let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(table_configs)) + .interceptor(DbEsdkInterceptor::new(table_configs)?) .build(); Ok(aws_sdk_dynamodb::Client::from_conf(dynamo_config)) diff --git a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/compound_beacon_searchable_encryption.rs b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/compound_beacon_searchable_encryption.rs index c78f14576..736e1a486 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/compound_beacon_searchable_encryption.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/compound_beacon_searchable_encryption.rs @@ -260,7 +260,7 @@ pub async fn put_and_query_with_beacon(branch_key_id: &str) -> Result<(), crate: // 12. Create a new AWS SDK DynamoDb client using the DynamoDb Encryption Interceptor above let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(encryption_config)) + .interceptor(DbEsdkInterceptor::new(encryption_config)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/virtual_beacon_searchable_encryption.rs b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/virtual_beacon_searchable_encryption.rs index 6de40463e..dd107c7f5 100644 --- a/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/virtual_beacon_searchable_encryption.rs +++ b/DynamoDbEncryption/runtimes/rust/examples/searchableencryption/virtual_beacon_searchable_encryption.rs @@ -350,7 +350,7 @@ pub async fn put_and_query_with_beacon(branch_key_id: &str) -> Result<(), crate: // 13. Create a new AWS SDK DynamoDb client using the DynamoDb Encryption Interceptor above let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&sdk_config) - .interceptor(DbEsdkInterceptor::new(encryption_config)) + .interceptor(DbEsdkInterceptor::new(encryption_config)?) .build(); let ddb = aws_sdk_dynamodb::Client::from_conf(dynamo_config); diff --git a/DynamoDbEncryption/runtimes/rust/src/intercept.rs b/DynamoDbEncryption/runtimes/rust/src/intercept.rs index b7d08723a..5300ef35b 100644 --- a/DynamoDbEncryption/runtimes/rust/src/intercept.rs +++ b/DynamoDbEncryption/runtimes/rust/src/intercept.rs @@ -84,9 +84,9 @@ pub struct DbEsdkInterceptor { impl DbEsdkInterceptor { pub fn new( config: crate::types::dynamo_db_tables_encryption_config::DynamoDbTablesEncryptionConfig, - ) -> Self { - let client = crate::client::Client::from_conf(config).unwrap(); // FIXME - DbEsdkInterceptor { client } + ) -> Result { + let client = crate::client::Client::from_conf(config)?; + Ok(DbEsdkInterceptor { client }) } } diff --git a/DynamoDbEncryption/runtimes/rust/src/lib.rs b/DynamoDbEncryption/runtimes/rust/src/lib.rs index 9832c4c17..62facc93b 100644 --- a/DynamoDbEncryption/runtimes/rust/src/lib.rs +++ b/DynamoDbEncryption/runtimes/rust/src/lib.rs @@ -67,3 +67,4 @@ pub(crate) mod software_externs; pub(crate) mod storm_tracker; pub(crate) mod time; pub(crate) mod uuid; +pub(crate) mod validation; diff --git a/TestVectors/runtimes/rust/.gitignore b/TestVectors/runtimes/rust/.gitignore index b5d9045cf..96a010207 100644 --- a/TestVectors/runtimes/rust/.gitignore +++ b/TestVectors/runtimes/rust/.gitignore @@ -36,4 +36,5 @@ src/types.rs src/uuid.rs src/wrapped src/wrapped.rs +src/validation.rs target diff --git a/TestVectors/runtimes/rust/Cargo.toml b/TestVectors/runtimes/rust/Cargo.toml index ec9a73e9c..83da9ef73 100644 --- a/TestVectors/runtimes/rust/Cargo.toml +++ b/TestVectors/runtimes/rust/Cargo.toml @@ -2,21 +2,22 @@ name = "aws-db-esdk-test-vectors" version = "0.1.0" edition = "2021" -rust-version = "1.80.0" +rust-version = "1.81.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -aws-config = "1.5.10" -aws-lc-rs = "1.11.1" -aws-lc-sys = "0.23.1" -aws-sdk-dynamodb = "1.54.0" -aws-sdk-kms = "1.50.0" +aws-config = "1.5.11" +aws-lc-rs = "1.12.0" +aws-lc-sys = "0.22.0" +aws-sdk-dynamodb = "1.56.0" +aws-sdk-kms = "1.52.0" aws-smithy-runtime-api = {version = "1.7.3", features = ["client"] } -aws-smithy-types = "1.2.9" -chrono = "0.4.38" +aws-smithy-types = "1.2.10" +chrono = "0.4.39" +cpu-time = "1.0.0" dafny_runtime = { path = "../../../submodules/MaterialProviders/smithy-dafny/TestModels/dafny-dependencies/dafny_runtime_rust"} dashmap = "6.1.0" pem = "3.0.4" -tokio = {version = "1.41.1", features = ["full"] } +tokio = {version = "1.42.0", features = ["full"] } uuid = { version = "1.11.0", features = ["v4"] } diff --git a/TestVectors/runtimes/rust/src/lib.rs b/TestVectors/runtimes/rust/src/lib.rs index e43f4a1db..43e76f8ae 100644 --- a/TestVectors/runtimes/rust/src/lib.rs +++ b/TestVectors/runtimes/rust/src/lib.rs @@ -12,6 +12,7 @@ pub mod error; /// All operations that this crate can perform. pub mod operation; pub mod types; +pub mod validation; #[cfg(feature = "wrapped-client")] pub mod wrapped; diff --git a/submodules/MaterialProviders b/submodules/MaterialProviders index b5c3522da..0e2859d43 160000 --- a/submodules/MaterialProviders +++ b/submodules/MaterialProviders @@ -1 +1 @@ -Subproject commit b5c3522da3cfafddd2b180e5fe110e1cf1fc1129 +Subproject commit 0e2859d43710373c0df06783db7d38afe3f0bea7 diff --git a/submodules/smithy-dafny b/submodules/smithy-dafny index caef7793d..f67c21075 160000 --- a/submodules/smithy-dafny +++ b/submodules/smithy-dafny @@ -1 +1 @@ -Subproject commit caef7793d4bf85ae5eb488b2159b693f478c990d +Subproject commit f67c21075ebac40e052204b6827a4db641e65862