From 0e415dd29697decff6c00302f7f45b63c95fefc1 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Sun, 10 Oct 2021 14:47:50 -0700 Subject: [PATCH] Erase crypto::HandshakeTokenKey::AeadKey --- quinn-proto/src/crypto.rs | 5 +---- quinn-proto/src/crypto/ring.rs | 6 ++---- quinn-proto/src/token.rs | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/quinn-proto/src/crypto.rs b/quinn-proto/src/crypto.rs index 0e617d9cd..dbc531c9c 100644 --- a/quinn-proto/src/crypto.rs +++ b/quinn-proto/src/crypto.rs @@ -198,11 +198,8 @@ pub struct ExportKeyingMaterialError; /// A pseudo random key for HKDF pub trait HandshakeTokenKey: Send + Sync { - /// AEAD key type - type AeadKey: AeadKey; - /// Derive AEAD using hkdf - fn aead_from_hkdf(&self, random_bytes: &[u8]) -> Self::AeadKey; + fn aead_from_hkdf(&self, random_bytes: &[u8]) -> Box; /// Method to build pseudo random key from existing bytes fn from_secret(secret: &[u8]) -> Self; } diff --git a/quinn-proto/src/crypto/ring.rs b/quinn-proto/src/crypto/ring.rs index 6a3d1826b..198076cb7 100644 --- a/quinn-proto/src/crypto/ring.rs +++ b/quinn-proto/src/crypto/ring.rs @@ -17,9 +17,7 @@ impl crypto::HmacKey for hmac::Key { } impl crypto::HandshakeTokenKey for hkdf::Prk { - type AeadKey = ring::aead::LessSafeKey; - - fn aead_from_hkdf(&self, random_bytes: &[u8]) -> Self::AeadKey { + fn aead_from_hkdf(&self, random_bytes: &[u8]) -> Box { let mut key_buffer = [0u8; 32]; let info = [random_bytes]; let okm = self.expand(&info, hkdf::HKDF_SHA256).unwrap(); @@ -27,7 +25,7 @@ impl crypto::HandshakeTokenKey for hkdf::Prk { okm.fill(&mut key_buffer).unwrap(); let key = aead::UnboundKey::new(&aead::AES_256_GCM, &key_buffer).unwrap(); - Self::AeadKey::new(key) + Box::new(aead::LessSafeKey::new(key)) } fn from_secret(bytes: &[u8]) -> Self { diff --git a/quinn-proto/src/token.rs b/quinn-proto/src/token.rs index 4ce1d9e31..84326f3cf 100644 --- a/quinn-proto/src/token.rs +++ b/quinn-proto/src/token.rs @@ -8,7 +8,7 @@ use bytes::BufMut; use crate::{ coding::{BufExt, BufMutExt}, - crypto::{AeadKey, CryptoError, HandshakeTokenKey, HmacKey}, + crypto::{CryptoError, HandshakeTokenKey, HmacKey}, shared::ConnectionId, RESET_TOKEN_SIZE, };