Skip to content

Commit 6ac0f84

Browse files
committed
chore(rust): release 1.2.1
1 parent 5b322b4 commit 6ac0f84

File tree

8 files changed

+80
-58
lines changed

8 files changed

+80
-58
lines changed

AwsEncryptionSDK/runtimes/rust/Cargo.toml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[package]
22
name = "aws-esdk"
3-
version = "1.2.0"
3+
version = "1.2.1"
44
edition = "2021"
5-
rust-version = "1.86.0"
5+
rust-version = "1.88.0"
66
keywords = ["cryptography", "security", "dynamodb", "encryption", "client-side"]
77
license = "ISC AND (Apache-2.0 OR ISC)"
88
description = "aws-esdk is a library for implementing client side encryption."
@@ -16,22 +16,22 @@ readme = "README.md"
1616
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1717

1818
[dependencies]
19-
aws-config = "1.8.5"
20-
aws-lc-rs = {version = "1.13.3"}
21-
aws-lc-sys = { version = "0.30", optional = true }
19+
aws-config = "1.8.10"
20+
aws-lc-rs = {version = "1.15.0"}
21+
aws-lc-sys = { version = "0.33", optional = true }
2222
aws-lc-fips-sys = { version = "0.13", optional = true }
23-
aws-sdk-dynamodb = "1.90.0"
24-
aws-sdk-kms = "1.84.0"
25-
aws-smithy-runtime-api = {version = "1.9.0", features = ["client"] }
26-
aws-smithy-types = "1.3.2"
27-
chrono = "0.4.41"
23+
aws-sdk-dynamodb = "1.98.0"
24+
aws-sdk-kms = "1.94.0"
25+
aws-smithy-runtime-api = {version = "1.9.2", features = ["client"] }
26+
aws-smithy-types = "1.3.4"
27+
chrono = "0.4.42"
2828
cpu-time = "1.0.0"
2929
dafny_runtime = { path = "../../../mpl/smithy-dafny/TestModels/dafny-dependencies/dafny_runtime_rust", features = ["sync","small-int"]}
3030
dashmap = "6.1.0"
31-
pem = "3.0.5"
31+
pem = "3.0.6"
3232
rand = "0.9.2"
33-
tokio = {version = "1.47.1", features = ["full"] }
34-
uuid = { version = "1.18.0", features = ["v4"] }
33+
tokio = {version = "1.48.0", features = ["full"] }
34+
uuid = { version = "1.18.1", features = ["v4"] }
3535

3636
[[example]]
3737
name = "main"

AwsEncryptionSDK/runtimes/rust/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ pub(crate) use crate::implementation_from_dafny::ECDH;
111111
pub(crate) use crate::implementation_from_dafny::HMAC;
112112
pub(crate) use crate::implementation_from_dafny::UTF8;
113113
pub(crate) use crate::implementation_from_dafny::UUID;
114+
pub(crate) use crate::deps::com_amazonaws_kms::client::Client as KmsClient;
114115

115116
// Import smithy-generated modules
116117
pub(crate) mod conversions;

mpl

Submodule mpl updated from 1ac31b6 to 6878377

releases/rust/esdk/Cargo.toml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[package]
22
name = "aws-esdk"
3-
version = "1.2.0"
3+
version = "1.2.1"
44
edition = "2021"
5-
rust-version = "1.86.0"
5+
rust-version = "1.88.0"
66
keywords = ["cryptography", "security", "dynamodb", "encryption", "client-side"]
77
license = "ISC AND (Apache-2.0 OR ISC)"
88
description = "aws-esdk is a library for implementing client side encryption."
@@ -16,21 +16,21 @@ readme = "README.md"
1616
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1717

1818
[dependencies]
19-
aws-config = "1.8.5"
20-
aws-lc-rs = {version = "1.13.3"}
21-
aws-lc-sys = { version = "0.30", optional = true }
19+
aws-config = "1.8.10"
20+
aws-lc-rs = {version = "1.15.0"}
21+
aws-lc-sys = { version = "0.33", optional = true }
2222
aws-lc-fips-sys = { version = "0.13", optional = true }
23-
aws-sdk-dynamodb = "1.90.0"
24-
aws-sdk-kms = "1.84.0"
25-
aws-smithy-runtime-api = {version = "1.9.0", features = ["client"] }
26-
aws-smithy-types = "1.3.2"
27-
chrono = "0.4.41"
23+
aws-sdk-dynamodb = "1.98.0"
24+
aws-sdk-kms = "1.94.0"
25+
aws-smithy-runtime-api = {version = "1.9.2", features = ["client"] }
26+
aws-smithy-types = "1.3.4"
27+
chrono = "0.4.42"
2828
cpu-time = "1.0.0"
2929
dashmap = "6.1.0"
30-
pem = "3.0.5"
30+
pem = "3.0.6"
3131
rand = "0.9.2"
32-
tokio = {version = "1.47.1", features = ["full"] }
33-
uuid = { version = "1.18.0", features = ["v4"] }
32+
tokio = {version = "1.48.0", features = ["full"] }
33+
uuid = { version = "1.18.1", features = ["v4"] }
3434
dafny-runtime = { version = "0.3.1", features = ["sync", "small-int"] }
3535

3636
[[example]]

releases/rust/esdk/src/concurrent_call.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@
1010
pub mod ConcurrentCall {
1111

1212
fn de_const(
13-
p: *const dafny_runtime::Object<(dyn Callee + 'static)>,
14-
) -> *mut dafny_runtime::Object<(dyn Callee + 'static)> {
13+
p: *const dafny_runtime::Object<dyn Callee + 'static>,
14+
) -> *mut dafny_runtime::Object<dyn Callee + 'static> {
1515
p as _
1616
}
1717

1818
pub struct FakeCallee {
19-
callee: *const dafny_runtime::Object<(dyn Callee + 'static)>,
19+
callee: *const dafny_runtime::Object<dyn Callee + 'static>,
2020
}
2121
impl FakeCallee {
22-
fn new(callee: &dafny_runtime::Object<(dyn Callee + 'static)>) -> Self {
22+
fn new(callee: &dafny_runtime::Object<dyn Callee + 'static>) -> Self {
2323
Self {
2424
callee: std::ptr::from_ref(callee),
2525
}
2626
}
2727
fn call(&self, x: u32, y: u32) {
2828
let mptr = de_const(self.callee);
29-
let value: &mut dafny_runtime::Object<(dyn Callee + 'static)> = unsafe { &mut *mptr };
29+
let value: &mut dafny_runtime::Object<dyn Callee + 'static> = unsafe { &mut *mptr };
3030
value.as_mut().call(x, y);
3131
}
3232
}
@@ -37,7 +37,7 @@ pub mod ConcurrentCall {
3737
use crate::ConcurrentCall::Callee;
3838
impl _default {
3939
pub fn ConcurrentCall(
40-
callee: &dafny_runtime::Object<(dyn Callee + 'static)>,
40+
callee: &dafny_runtime::Object<dyn Callee + 'static>,
4141
serial_iters: u32,
4242
concurrent_iters: u32,
4343
) {

releases/rust/esdk/src/ecdh.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ pub mod ECDH {
442442
&public_key,
443443
);
444444
let shared: Vec<u8> =
445-
aws_lc_rs::agreement::agree(&private_key, &public_key, "foo", |x| Ok(x.to_vec()))
445+
aws_lc_rs::agreement::agree(&private_key, public_key, "foo", |x| Ok(x.to_vec()))
446446
.map_err(|_e| "Failure in aws_lc_rs::agreement::agree.".to_string())?;
447447
Ok(shared)
448448
}

releases/rust/esdk/src/kms.rs

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
#![deny(nonstandard_style)]
66
#![deny(clippy::all)]
77

8-
use aws_config::Region;
8+
use aws_config::{AppName, Region, SdkConfig};
99
use std::sync::LazyLock;
10-
1110
static DAFNY_TOKIO_RUNTIME: LazyLock<tokio::runtime::Runtime> = LazyLock::new(|| {
1211
tokio::runtime::Builder::new_multi_thread()
1312
.enable_all()
@@ -17,12 +16,7 @@ static DAFNY_TOKIO_RUNTIME: LazyLock<tokio::runtime::Runtime> = LazyLock::new(||
1716

1817
impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_default {
1918
#[allow(non_snake_case)]
20-
pub fn KMSClientForRegion(region: &::dafny_runtime::Sequence<::dafny_runtime::DafnyCharUTF16>) -> ::dafny_runtime::Rc<crate::r#_Wrappers_Compile::Result<::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>, ::dafny_runtime::Rc<crate::software::amazon::cryptography::services::kms::internaldafny::types::Error>>>{
21-
let region =
22-
dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(
23-
region,
24-
);
25-
19+
fn CreateSdkConfig() -> SdkConfig {
2620
let shared_config = match tokio::runtime::Handle::try_current() {
2721
Ok(curr) => tokio::task::block_in_place(|| {
2822
curr.block_on(async {
@@ -34,12 +28,23 @@ impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_def
3428
)),
3529
};
3630

31+
Self::AddUserAgentStringToConfig(&shared_config)
32+
}
33+
34+
#[allow(non_snake_case)]
35+
pub fn KMSClientForRegion(region: &::dafny_runtime::Sequence<::dafny_runtime::DafnyCharUTF16>) -> ::dafny_runtime::Rc<crate::r#_Wrappers_Compile::Result<::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>, ::dafny_runtime::Rc<crate::software::amazon::cryptography::services::kms::internaldafny::types::Error>>>{
36+
let region =
37+
dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(
38+
region,
39+
);
40+
41+
let shared_config = &Self::CreateSdkConfig();
3742
let shared_config = shared_config
3843
.to_builder()
3944
.region(Region::new(region))
4045
.build();
4146
let inner = aws_sdk_kms::Client::new(&shared_config);
42-
let client = crate::deps::com_amazonaws_kms::client::Client { inner };
47+
let client = crate::KmsClient { inner };
4348
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));
4449
dafny_runtime::Rc::new(crate::r#_Wrappers_Compile::Result::Success {
4550
value: dafny_client,
@@ -48,25 +53,41 @@ impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_def
4853

4954
#[allow(non_snake_case)]
5055
pub fn KMSClient() -> ::dafny_runtime::Rc<crate::r#_Wrappers_Compile::Result<::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>, ::dafny_runtime::Rc<crate::software::amazon::cryptography::services::kms::internaldafny::types::Error>>>{
51-
let shared_config = match tokio::runtime::Handle::try_current() {
52-
Ok(curr) => tokio::task::block_in_place(|| {
53-
curr.block_on(async {
54-
aws_config::load_defaults(aws_config::BehaviorVersion::latest()).await
55-
})
56-
}),
57-
Err(_) => DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
58-
aws_config::BehaviorVersion::latest(),
59-
)),
60-
};
61-
62-
let inner = aws_sdk_kms::Client::new(&shared_config);
63-
let client = crate::deps::com_amazonaws_kms::client::Client { inner };
56+
let shared_config = &Self::CreateSdkConfig();
57+
let inner = aws_sdk_kms::Client::new(shared_config);
58+
let client = crate::KmsClient { inner };
6459
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));
6560
dafny_runtime::Rc::new(crate::r#_Wrappers_Compile::Result::Success {
6661
value: dafny_client,
6762
})
6863
}
6964

65+
#[allow(non_snake_case)]
66+
fn AddUserAgentStringToConfig(sdkConfig: &SdkConfig) -> SdkConfig {
67+
let runtime = "Rust".to_string();
68+
let runtime_msg =
69+
dafny_runtime::dafny_runtime_conversions::unicode_chars_false::string_to_dafny_string(
70+
&runtime,
71+
);
72+
// sadly rust doesn't allow for '/' in the app name which the dafny function adds
73+
// so we will replace '/' with '-' which is allowed
74+
let user_agent_string = dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(
75+
&crate::software::amazon::cryptography::services::kms::internaldafny::_default::DafnyUserAgentSuffix(&runtime_msg)
76+
);
77+
let replaced_user_agent_string = user_agent_string.replace("/", "-");
78+
// To update the user agent string we take the application name and update it.
79+
let current_app_name = sdkConfig
80+
.app_name()
81+
.map(|app_name| app_name.to_string())
82+
.unwrap_or_default();
83+
let new_app_name = if current_app_name.is_empty() {
84+
replaced_user_agent_string.to_string()
85+
} else {
86+
format!("{} {} ", current_app_name, replaced_user_agent_string)
87+
};
88+
let app_name = AppName::new(new_app_name).expect("Valid app name");
89+
sdkConfig.to_builder().app_name(app_name).build()
90+
}
7091
#[allow(non_snake_case)]
7192
pub fn RegionMatch(
7293
kmsClient: &::dafny_runtime::Object<dyn crate::software::amazon::cryptography::services::kms::internaldafny::types::IKMSClient>,
@@ -77,8 +98,7 @@ impl crate::r#software::amazon::cryptography::services::kms::internaldafny::_def
7798
region,
7899
);
79100
let any = dafny_runtime::cast_any_object!(kmsClient);
80-
let client =
81-
dafny_runtime::cast_object!(any, crate::deps::com_amazonaws_kms::client::Client);
101+
let client = dafny_runtime::cast_object!(any, crate::KmsClient);
82102
let flag = match client.as_ref().inner.config().region() {
83103
Some(r) => r.as_ref() == region,
84104
None => false,

releases/rust/esdk/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ mod standard_library_conversions;
9696
mod standard_library_externs;
9797

9898
pub(crate) mod implementation_from_dafny;
99+
pub(crate) use crate::deps::com_amazonaws_kms::client::Client as KmsClient;
99100
pub(crate) use crate::implementation_from_dafny::r#_Wrappers_Compile;
100101
pub(crate) use crate::implementation_from_dafny::software;
101102
pub(crate) use crate::implementation_from_dafny::AesKdfCtr;

0 commit comments

Comments
 (0)