feat(tls): update embedded-tls to git
This commit is contained in:
parent
d6dd2d90e4
commit
97934dc6f8
41
Cargo.lock
generated
41
Cargo.lock
generated
@ -308,6 +308,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"block-buffer",
|
"block-buffer",
|
||||||
|
"const-oid",
|
||||||
"crypto-common",
|
"crypto-common",
|
||||||
"subtle",
|
"subtle",
|
||||||
]
|
]
|
||||||
@ -321,6 +322,19 @@ dependencies = [
|
|||||||
"litrs",
|
"litrs",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ecdsa"
|
||||||
|
version = "0.16.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
|
||||||
|
dependencies = [
|
||||||
|
"der",
|
||||||
|
"digest",
|
||||||
|
"elliptic-curve",
|
||||||
|
"rfc6979",
|
||||||
|
"signature",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "elliptic-curve"
|
name = "elliptic-curve"
|
||||||
version = "0.13.8"
|
version = "0.13.8"
|
||||||
@ -559,12 +573,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "embedded-tls"
|
name = "embedded-tls"
|
||||||
version = "0.17.0"
|
version = "0.17.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "git+https://github.com/drogue-iot/embedded-tls.git?rev=f788e02#f788e02deda787542a079cbddb5226af37aa818c"
|
||||||
checksum = "a6efb76fdd004a4ef787640177237b83449e6c5847765ea50bf15900061fd601"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes-gcm",
|
"aes-gcm",
|
||||||
"atomic-polyfill",
|
"atomic-polyfill",
|
||||||
"digest",
|
"digest",
|
||||||
|
"ecdsa",
|
||||||
"embedded-io",
|
"embedded-io",
|
||||||
"embedded-io-adapters",
|
"embedded-io-adapters",
|
||||||
"embedded-io-async",
|
"embedded-io-async",
|
||||||
@ -576,6 +590,7 @@ dependencies = [
|
|||||||
"p256",
|
"p256",
|
||||||
"rand_core",
|
"rand_core",
|
||||||
"sha2",
|
"sha2",
|
||||||
|
"signature",
|
||||||
"typenum",
|
"typenum",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1290,8 +1305,10 @@ version = "0.13.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
|
checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"ecdsa",
|
||||||
"elliptic-curve",
|
"elliptic-curve",
|
||||||
"primeorder",
|
"primeorder",
|
||||||
|
"sha2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1478,6 +1495,16 @@ version = "0.8.3"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
|
checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rfc6979"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
|
||||||
|
dependencies = [
|
||||||
|
"hmac",
|
||||||
|
"subtle",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rgb"
|
name = "rgb"
|
||||||
version = "0.8.36"
|
version = "0.8.36"
|
||||||
@ -1600,6 +1627,16 @@ dependencies = [
|
|||||||
"digest",
|
"digest",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "signature"
|
||||||
|
version = "2.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
|
||||||
|
dependencies = [
|
||||||
|
"digest",
|
||||||
|
"rand_core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "smart-leds"
|
name = "smart-leds"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
|
@ -17,7 +17,7 @@ embassy-net = { version = "0.4.0", features = ["dhcpv4", "dhcpv4-hostname", "dns
|
|||||||
embassy-sync = { git = "https://github.com/embassy-rs/embassy.git", rev = "4b4777" }
|
embassy-sync = { git = "https://github.com/embassy-rs/embassy.git", rev = "4b4777" }
|
||||||
embassy-time = { version = "0.3.0" }
|
embassy-time = { version = "0.3.0" }
|
||||||
embedded-io-async = "0.6.1"
|
embedded-io-async = "0.6.1"
|
||||||
embedded-tls = { version = "0.17.0", default-features = false, features = ["embedded-io-adapters"] }
|
embedded-tls = { git = "https://github.com/drogue-iot/embedded-tls.git", rev = "f788e02", default-features = false, features = ["embedded-io-adapters"] }
|
||||||
esp-alloc = "0.3.0"
|
esp-alloc = "0.3.0"
|
||||||
esp-backtrace = { version = "0.11.0", features = ["esp32c3", "exception-handler", "panic-handler", "println"] }
|
esp-backtrace = { version = "0.11.0", features = ["esp32c3", "exception-handler", "panic-handler", "println"] }
|
||||||
esp-hal = { version = "0.16.1", features = ["embassy", "embassy-time-timg0", "esp32c3"] }
|
esp-hal = { version = "0.16.1", features = ["embassy", "embassy-time-timg0", "esp32c3"] }
|
||||||
|
21
src/mqtt.rs
21
src/mqtt.rs
@ -3,7 +3,9 @@ use core::fmt::Debug;
|
|||||||
use embassy_net::tcp::TcpSocket;
|
use embassy_net::tcp::TcpSocket;
|
||||||
use embassy_net::{dns::Error as DnsError, tcp::ConnectError};
|
use embassy_net::{dns::Error as DnsError, tcp::ConnectError};
|
||||||
use embassy_time::{with_timeout, Duration, Instant, TimeoutError, Timer};
|
use embassy_time::{with_timeout, Duration, Instant, TimeoutError, Timer};
|
||||||
use embedded_tls::{Aes128GcmSha256, NoVerify, TlsConfig, TlsConnection, TlsContext, TlsError};
|
use embedded_tls::{
|
||||||
|
Aes128GcmSha256, NoVerify, TlsConfig, TlsConnection, TlsContext, TlsError, UnsecureProvider, TLS_RECORD_OVERHEAD,
|
||||||
|
};
|
||||||
use esp_backtrace as _;
|
use esp_backtrace as _;
|
||||||
use log::{debug, error, info};
|
use log::{debug, error, info};
|
||||||
use rand::rngs::StdRng;
|
use rand::rngs::StdRng;
|
||||||
@ -115,25 +117,32 @@ pub async fn send_message(
|
|||||||
if let (Some(user), Some(pass)) = (option_env!("MQTT_USER"), option_env!("MQTT_PASSWORD")) {
|
if let (Some(user), Some(pass)) = (option_env!("MQTT_USER"), option_env!("MQTT_PASSWORD")) {
|
||||||
mqtt_config.add_username(user);
|
mqtt_config.add_username(user);
|
||||||
mqtt_config.add_password(pass);
|
mqtt_config.add_password(pass);
|
||||||
info!("{user}:{pass}");
|
debug!("{user}:{pass}");
|
||||||
}
|
}
|
||||||
|
|
||||||
// TLS layer
|
// TLS layer
|
||||||
const TLS_BUF_LEN: usize = 1 << 12;
|
const TLS_BUF_LEN: usize = (1 << 11) + TLS_RECORD_OVERHEAD;
|
||||||
let mut tls_read_record_buffer = [0; TLS_BUF_LEN];
|
let mut tls_read_record_buffer = [0; TLS_BUF_LEN];
|
||||||
let mut tls_write_record_buffer = [0; TLS_BUF_LEN];
|
let mut tls_write_record_buffer = [0; TLS_BUF_LEN];
|
||||||
|
|
||||||
#[cfg(feature = "tls")]
|
#[cfg(feature = "tls")]
|
||||||
let tls = {
|
let tls = {
|
||||||
let config = TlsConfig::new();
|
let mut config = TlsConfig::new();
|
||||||
|
#[cfg(feature = "tls-sni")]
|
||||||
|
config
|
||||||
|
.with_max_fragment_length(embedded_tls::MaxFragmentLength::Bits11)
|
||||||
|
.with_server_name(MQTT_SERVER_HOSTNAME);
|
||||||
let mut tls = TlsConnection::new(
|
let mut tls = TlsConnection::new(
|
||||||
socket,
|
socket,
|
||||||
&mut tls_read_record_buffer,
|
&mut tls_read_record_buffer,
|
||||||
&mut tls_write_record_buffer,
|
&mut tls_write_record_buffer,
|
||||||
);
|
);
|
||||||
|
|
||||||
tls.open::<_, NoVerify>(TlsContext::<Aes128GcmSha256, _>::new(&config, &mut rng))
|
tls.open(TlsContext::<UnsecureProvider<Aes128GcmSha256, _>>::new(
|
||||||
.await?;
|
&config,
|
||||||
|
UnsecureProvider::new(&mut rng),
|
||||||
|
))
|
||||||
|
.await?;
|
||||||
tls.flush().await?;
|
tls.flush().await?;
|
||||||
tls
|
tls
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user