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 22 mod proto_adapter; 23 mod state_machine; 24 #[cfg(test)] 25 mod tests; 26 mod ukey2_handshake; 27 28 pub use proto_adapter::NextProtocol; 29 pub use state_machine::{SendAlert, StateMachine}; 30 pub use ukey2_handshake::{ 31 CompletedHandshake, HandshakeImplementation, Ukey2Client, Ukey2ClientStage1, Ukey2Server, 32 Ukey2ServerStage1, Ukey2ServerStage2, WireCompatibilityLayer, 33 }; 34