Verify that the url is https

This commit is contained in:
2023-09-16 01:49:51 +02:00
parent 01860e2e7a
commit ad2ecdfa52
2 changed files with 12 additions and 5 deletions

View File

@@ -11,7 +11,7 @@ use embedded_io_async::{Read, Write};
use embedded_storage::nor_flash::NorFlash;
use embedded_tls::{Aes128GcmSha256, NoVerify, TlsConfig, TlsConnection, TlsContext};
use heapless::Vec;
use nourl::Url;
use nourl::{Url, UrlScheme};
use rand_core::{CryptoRng, RngCore};
use reqwless::{
request::{Method, Request, RequestBuilder},
@@ -150,6 +150,13 @@ where
.send_message(self.topic_status, &status, QualityOfService::QoS1, false)
.await?;
debug!("Making sure url is HTTPS");
if url.scheme() != UrlScheme::HTTPS {
return Err(Error::InvalidScheme);
}
// TODO: Clear out retained update message, currently gives implementation specific error
let ip = stack.dns_query(url.host(), DnsQueryType::A).await?[0];
let mut rx_buffer = [0; 1024];
@@ -227,9 +234,6 @@ where
self.updater
.verify_and_mark_updated(self.public_key, &signature, size)?;
// Update mqtt message should be send using retain
// TODO: Clear the message
let status = Status::UpdateComplete.json();
client
.send_message(self.topic_status, &status, QualityOfService::QoS1, false)