s2n_quic_crypto/
lib.rs

1// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2// SPDX-License-Identifier: Apache-2.0
3
4#[cfg(all(feature = "fips", target_os = "windows"))]
5std::compile_error!("feature `fips` is not supported on windows");
6
7#[macro_use]
8mod negotiated;
9#[macro_use]
10mod header_key;
11
12mod aead;
13mod cipher_suite;
14mod iv;
15
16#[doc(hidden)]
17pub use aws_lc_rs::{
18    aead as aws_lc_aead, aead::MAX_TAG_LEN, constant_time, digest, hkdf, hkdf::Prk, hmac,
19};
20
21#[derive(Clone)]
22pub struct SecretPair {
23    pub server: Prk,
24    pub client: Prk,
25}
26
27pub mod handshake;
28pub mod initial;
29pub mod one_rtt;
30pub mod retry;
31pub mod zero_rtt;
32
33#[derive(Clone, Copy, Debug, Default)]
34pub struct Suite;
35
36impl s2n_quic_core::crypto::CryptoSuite for Suite {
37    type HandshakeKey = handshake::HandshakeKey;
38    type HandshakeHeaderKey = handshake::HandshakeHeaderKey;
39    type InitialKey = initial::InitialKey;
40    type InitialHeaderKey = initial::InitialHeaderKey;
41    type OneRttKey = one_rtt::OneRttKey;
42    type OneRttHeaderKey = one_rtt::OneRttHeaderKey;
43    type ZeroRttKey = zero_rtt::ZeroRttKey;
44    type ZeroRttHeaderKey = zero_rtt::ZeroRttHeaderKey;
45    type RetryKey = retry::RetryKey;
46}