From e609b3303cc7579e57de2b5cb4b6b4e47441ffe2 Mon Sep 17 00:00:00 2001 From: finga Date: Sun, 11 Jun 2023 15:03:00 +0200 Subject: [PATCH] cargo: Bump `hmac` dependency to `0.12` Bump `hmac` dependency to `0.12`, therefor remove deprecated `NewMac`. --- Cargo.lock | 47 +++++++++++++++++++++++++++++++++-------------- Cargo.toml | 2 +- src/hooks.rs | 5 +++-- 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ecb122e..09afa5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -155,6 +155,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "bumpalo" version = "3.13.0" @@ -248,13 +257,13 @@ dependencies = [ ] [[package]] -name = "crypto-mac" -version = "0.11.1" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "subtle", + "typenum", ] [[package]] @@ -299,6 +308,17 @@ dependencies = [ "generic-array", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + [[package]] name = "dirs" version = "4.0.0" @@ -581,12 +601,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hmac" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "crypto-mac", - "digest", + "digest 0.10.7", ] [[package]] @@ -1193,9 +1212,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" dependencies = [ "bitflags 1.3.2", "errno", @@ -1328,10 +1347,10 @@ version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ - "block-buffer", + "block-buffer 0.9.0", "cfg-if", "cpufeatures", - "digest", + "digest 0.9.0", "opaque-debug", ] @@ -1416,9 +1435,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" diff --git a/Cargo.toml b/Cargo.toml index 494260b..180450f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ clap = { version = "4.3", features = ["derive"] } dirs = "4.0" env_logger = "0.9" hex = "0.4" -hmac = "0.11" +hmac = "0.12" ipnet = { version = "2.3", features = ["serde"] } log = "0.4" regex = "1.5" diff --git a/src/hooks.rs b/src/hooks.rs index b51a47f..b653b00 100644 --- a/src/hooks.rs +++ b/src/hooks.rs @@ -3,7 +3,7 @@ use crate::{ Config, Metrics, WebhookeyError, }; use anyhow::{anyhow, bail, Result}; -use hmac::{Hmac, Mac, NewMac}; +use hmac::{Hmac, Mac}; use log::{debug, error, info, trace, warn}; use rocket::{ data::{FromData, ToByteUnit}, @@ -44,7 +44,8 @@ fn validate_request(secret: &str, signature: &str, data: &[u8]) -> Result<()> { .map_err(|e| anyhow!("Could not create hasher with secret: {}", e))?; mac.update(data); let raw_signature = hex::decode(signature.as_bytes())?; - mac.verify(&raw_signature).map_err(|e| anyhow!("{}", e)) + mac.verify_slice(&raw_signature) + .map_err(|e| anyhow!("{}", e)) } #[derive(Debug, Deserialize, Serialize)]