#![crate_name = "yubihsm"]
#![crate_type = "rlib"]
#![cfg_attr(clippy, feature(tool_lints))]
#![deny(warnings, missing_docs, trivial_casts, trivial_numeric_casts)]
#![deny(unsafe_code, unused_import_braces, unused_qualifications)]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/tendermint/yubihsm-rs/master/img/logo.png",
html_root_url = "https://docs.rs/yubihsm/0.17.3"
)]
extern crate aes;
#[macro_use]
extern crate bitflags;
extern crate block_modes;
extern crate byteorder;
extern crate clear_on_drop;
extern crate cmac;
#[macro_use]
extern crate failure;
#[macro_use]
extern crate failure_derive;
#[cfg(feature = "hmac")]
extern crate hmac;
#[cfg(feature = "usb")]
#[macro_use]
extern crate lazy_static;
#[cfg(feature = "usb")]
extern crate libusb;
#[macro_use]
extern crate log;
#[cfg(feature = "pbkdf2")]
extern crate pbkdf2;
extern crate rand;
#[cfg(feature = "mockhsm")]
extern crate ring;
extern crate serde;
#[macro_use]
extern crate serde_derive;
#[cfg(feature = "sha2")]
extern crate sha2;
extern crate subtle;
#[cfg(feature = "mockhsm")]
extern crate untrusted;
extern crate uuid;
#[macro_use]
pub mod error;
#[macro_use]
mod serialization;
pub mod adapter;
pub mod algorithm;
pub(crate) mod audit;
pub mod auth_key;
pub mod capability;
pub mod command;
pub mod credentials;
pub mod domain;
#[cfg(feature = "mockhsm")]
pub mod mockhsm;
pub mod object;
pub mod response;
mod securechannel;
mod serial_number;
pub mod session;
pub mod wrap;
#[cfg(feature = "http")]
pub use adapter::http::{HttpAdapter, HttpConfig};
#[cfg(feature = "usb")]
pub use adapter::usb::{UsbAdapter, UsbConfig, UsbDevices, UsbTimeout};
pub use adapter::Adapter;
pub use algorithm::*;
pub use audit::AuditOption;
pub use auth_key::{AuthKey, AUTH_KEY_SIZE};
pub use capability::Capability;
pub use command::{
attest_asymmetric::*, blink::*, delete_object::*, device_info::*, echo::*, export_wrapped::*,
generate_asymmetric_key::*, generate_hmac_key::*, generate_wrap_key::*, get_logs::*,
get_object_info::*, get_opaque::*, get_option::*, get_pseudo_random::*, get_pubkey::*, hmac::*,
import_wrapped::*, list_objects::*, put_asymmetric_key::*, put_auth_key::*, put_hmac_key::*,
put_opaque::*, put_option::*, put_otp_aead_key::*, put_wrap_key::*, reset::*, set_log_index::*,
sign_ecdsa::*, sign_eddsa::*, storage_status::*, unwrap_data::*, verify_hmac::*, wrap_data::*,
CommandType,
};
#[cfg(feature = "rsa")]
pub use command::{sign_rsa_pkcs1v15::*, sign_rsa_pss::*};
pub use credentials::Credentials;
pub use domain::Domain;
pub use error::*;
#[cfg(feature = "mockhsm")]
pub use mockhsm::{MockAdapter, MockSession};
pub use object::*;
pub use response::ResponseCode;
pub use securechannel::SessionId;
pub use serial_number::SerialNumber;
#[cfg(feature = "http")]
pub use session::HttpSession;
#[cfg(feature = "usb")]
pub use session::UsbSession;
pub use session::{Session, SessionError};
pub use uuid::Uuid;
pub use wrap::{WrapMessage, WrapNonce};