• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2023 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 //! This crate is an implementation of the UKEY2 handshake protocol.
16 //!
17 //! UKEY2 is a Diffie-Hellman based authentication exchange protocol that allows two devices to
18 //! establish a secure channel.
19 //!
20 //! For a full description of the protocol, see <https://github.com/google/ukey2>.
21 #![forbid(unsafe_code)]
22 #![deny(
23     missing_docs,
24     trivial_casts,
25     trivial_numeric_casts,
26     unused_extern_crates,
27     unused_import_braces,
28     unused_results
29 )]
30 
31 mod proto_adapter;
32 mod state_machine;
33 #[cfg(test)]
34 mod tests;
35 mod ukey2_handshake;
36 
37 pub use state_machine::{SendAlert, StateMachine};
38 pub use ukey2_handshake::{
39     CompletedHandshake, HandshakeImplementation, Ukey2Client, Ukey2ClientStage1, Ukey2Server,
40     Ukey2ServerStage1, Ukey2ServerStage2, WireCompatibilityLayer,
41 };
42