SYMBOL INDEX (276 symbols across 28 files) FILE: src/cfsock.rs function set_freebind (line 7) | fn set_freebind(fd: c_int) -> Result<(), std::io::Error> { function set_freebind (line 28) | fn set_freebind(_fd: c_int) -> Result<(), std::io::Error> { function tcp_listener (line 32) | pub fn tcp_listener(addr: &SocketAddr) -> Result Result() -> App<'a, 'b> { function create_clap_ke_server_subcommand (line 51) | fn create_clap_ke_server_subcommand<'a, 'b>() -> App<'a, 'b> { function create_clap_ntp_server_subcommand (line 71) | fn create_clap_ntp_server_subcommand<'a, 'b>() -> App<'a, 'b> { function create_clap_command (line 91) | pub fn create_clap_command() -> App<'static, 'static> { FILE: src/cookie.rs constant COOKIE_SIZE (line 16) | pub const COOKIE_SIZE: usize = 100; type NTSKeys (line 18) | pub struct NTSKeys { type CookieKey (line 25) | pub struct CookieKey(Vec); method parse (line 34) | pub fn parse(filename: &str) -> Result { method as_bytes (line 43) | pub fn as_bytes(&self) -> &[u8] { method from (line 51) | fn from(bytes: &[u8]) -> CookieKey { function make_cookie (line 56) | pub fn make_cookie(keys: NTSKeys, master_key: &[u8], key_id: KeyId) -> V... function get_keyid (line 71) | pub fn get_keyid(cookie: &[u8]) -> Option { function unpack (line 79) | fn unpack(pt: Vec) -> Option { function eat_cookie (line 93) | pub fn eat_cookie(cookie: &[u8], key: &[u8]) -> Option { function check_eq (line 110) | fn check_eq(a: NTSKeys, b: NTSKeys) { function check_cookie (line 118) | fn check_cookie() { FILE: src/error.rs type WrapError (line 10) | pub trait WrapError { method wrap_err (line 15) | fn wrap_err(self) -> Result; type Item (line 26) | type Item = S; function wrap_err (line 28) | fn wrap_err(self) -> Result { type Item (line 41) | type Item = S; function wrap_err (line 43) | fn wrap_err(self) -> Result { FILE: src/key_rotator.rs type KeyId (line 38) | pub struct KeyId(u32); method new (line 42) | pub fn new(key_id: u32) -> KeyId { method from_epoch (line 48) | pub fn from_epoch(epoch: u64) -> KeyId { method from_be_bytes (line 55) | pub fn from_be_bytes(bytes: [u8; 4]) -> KeyId { method to_be_bytes (line 60) | pub fn to_be_bytes(self) -> [u8; 4] { type RotateError (line 67) | pub enum RotateError { method from (line 76) | fn from(error: MemcacheError) -> RotateError { type KeyRotator (line 82) | pub struct KeyRotator { method connect (line 121) | pub fn connect( method rotate (line 186) | pub fn rotate(&mut self) -> Result<(), RotateError> { method cache_insert (line 241) | fn cache_insert(&mut self, key_id: KeyId, value: &[u8]) { method cache_remove (line 252) | fn cache_remove(&mut self, key_id: KeyId) { method latest_key_value (line 257) | pub fn latest_key_value(&self) -> (KeyId, &hmac::Tag) { method get (line 263) | pub fn get(&self, key_id: KeyId) -> Option<&hmac::Tag> { function periodic_rotate (line 268) | pub fn periodic_rotate(rotor: Arc>) { function inner (line 277) | fn inner(rotor: &mut Arc>) { function read_sleep (line 281) | fn read_sleep(rotor: &Arc>) -> u64 { type Client (line 315) | pub struct Client; method connect (line 317) | pub fn connect(_url: &str) -> Result { method get (line 320) | pub fn get(&mut self, key: &str) -> Result>, MemcacheEr... type SystemTime (line 330) | pub struct SystemTime; method now (line 332) | pub fn now() -> std::time::SystemTime { function test_rotation (line 340) | fn test_rotation() { FILE: src/main.rs function create_logger (line 30) | fn create_logger(matches: &clap::ArgMatches<'_>) -> slog::Logger { function main (line 52) | fn main() { FILE: src/metrics.rs type MetricsConfig (line 12) | pub struct MetricsConfig { constant VERSION (line 17) | const VERSION: &str = env!("CARGO_PKG_VERSION"); function wait_for_req_or_eof (line 30) | fn wait_for_req_or_eof(dest: &net::TcpStream, logger: slog::Logger) -> R... function scrape_result (line 53) | fn scrape_result() -> String { function serve_metrics (line 62) | fn serve_metrics(mut dest: net::TcpStream, logger: slog::Logger) { function run_metrics (line 85) | pub fn run_metrics(conf: MetricsConfig, logger: &slog::Logger) -> Result... FILE: src/ntp/client.rs constant BUFF_SIZE (line 26) | const BUFF_SIZE: usize = 2048; constant TIMEOUT (line 27) | const TIMEOUT: Duration = Duration::from_secs(10); type NtpResult (line 29) | pub struct NtpResult { type NtpClientError (line 35) | pub enum NtpClientError { method description (line 42) | fn description(&self) -> &str { method cause (line 55) | fn cause(&self) -> Option<&dyn std::error::Error> { method fmt (line 61) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { function system_to_ntpfloat (line 67) | fn system_to_ntpfloat(time: SystemTime) -> f64 { function timestamp_to_float (line 75) | fn timestamp_to_float(time: u64) -> f64 { function run_nts_ntp_client (line 82) | pub fn run_nts_ntp_client( FILE: src/ntp/protocol.rs constant VERSION (line 13) | pub const VERSION: u8 = 4; constant UNIX_OFFSET (line 14) | pub const UNIX_OFFSET: u64 = 2_208_988_800; constant PHI (line 15) | pub const PHI: f64 = 15e-6; constant TWO_POW_32 (line 17) | pub const TWO_POW_32: f64 = 4294967296.0; constant HEADER_SIZE (line 19) | const HEADER_SIZE: u64 = 48; constant NONCE_LEN (line 20) | const NONCE_LEN: usize = 16; constant EXT_TYPE_UNIQUE_IDENTIFIER (line 21) | const EXT_TYPE_UNIQUE_IDENTIFIER: u16 = 0x0104; constant EXT_TYPE_NTS_COOKIE (line 22) | const EXT_TYPE_NTS_COOKIE: u16 = 0x0204; constant EXT_TYPE_NTS_COOKIE_PLACEHOLDER (line 23) | const EXT_TYPE_NTS_COOKIE_PLACEHOLDER: u16 = 0x0304; constant EXT_TYPE_NTS_AUTHENTICATOR (line 24) | const EXT_TYPE_NTS_AUTHENTICATOR: u16 = 0x0404; type LeapState (line 27) | pub enum LeapState { type PacketMode (line 35) | pub enum PacketMode { type NtpExtensionType (line 45) | pub enum NtpExtensionType { function wire_type (line 53) | fn wire_type(x: NtpExtensionType) -> u16 { function type_from_wire (line 63) | fn type_from_wire(ext: u16) -> NtpExtensionType { type NtpPacketHeader (line 76) | pub struct NtpPacketHeader { type NtpExtension (line 101) | pub struct NtpExtension { type NtsPacket (line 109) | pub struct NtsPacket { type NtpPacket (line 118) | pub struct NtpPacket { function parse_leap_indicator (line 126) | fn parse_leap_indicator(first: u8) -> LeapState { function parse_version (line 135) | fn parse_version(first: u8) -> u8 { function parse_mode (line 139) | fn parse_mode(first: u8) -> PacketMode { function create_first (line 152) | fn create_first(leap: LeapState, version: u8, mode: PacketMode) -> u8 { function parse_packet_header (line 157) | pub fn parse_packet_header(packet: &[u8]) -> Result Vec { function parse_ntp_packet (line 222) | pub fn parse_ntp_packet(buff: &[u8]) -> Result { function parse_extensions (line 230) | fn parse_extensions(buff: &[u8]) -> Result, std::io::E... function serialize_ntp_packet (line 256) | pub fn serialize_ntp_packet(pack: NtpPacket) -> Vec { function serialize_extensions (line 265) | fn serialize_extensions(exts: Vec) -> Vec { function has_extension (line 282) | pub fn has_extension(pack: &NtpPacket, kind: NtpExtensionType) -> bool { function is_nts_packet (line 291) | pub fn is_nts_packet(pack: &NtpPacket) -> bool { function extract_extension (line 298) | pub fn extract_extension(pack: &NtpPacket, kind: NtpExtensionType) -> Op... function parse_nts_packet (line 306) | pub fn parse_nts_packet( function parse_decrypt_auth_ext (line 347) | fn parse_decrypt_auth_ext( function serialize_nts_packet (line 376) | pub fn serialize_nts_packet(packet: NtsPacket, encryptor: &mut ... function test_ntp_header_parse (line 422) | fn test_ntp_header_parse() { function check_eq_ext (line 451) | fn check_eq_ext(a: &NtpExtension, b: &NtpExtension) { function check_ext_array_eq (line 458) | fn check_ext_array_eq(exts1: Vec, exts2: Vec) { function check_nts_match (line 464) | fn check_nts_match(pkt1: NtsPacket, pkt2: NtsPacket) { function roundtrip_test (line 469) | fn roundtrip_test(input: NtsPacket, enc: &mut T) { function test_nts_parse (line 482) | fn test_nts_parse() { FILE: src/ntp/server/config.rs function get_metrics_config (line 18) | fn get_metrics_config(settings: &config::Config) -> Option { type NtpServerConfig (line 33) | pub struct NtpServerConfig { method new (line 54) | pub fn new( method add_address (line 81) | pub fn add_address(&mut self, addr: SocketAddr) { method addrs (line 86) | pub fn addrs(&self) -> &[SocketAddr] { method set_logger (line 91) | pub fn set_logger(&mut self, logger: slog::Logger) { method logger (line 96) | pub fn logger(&self) -> &slog::Logger { method parse (line 120) | pub fn parse(filename: &str) -> Result Result<(), Box u32 { function ntp_timestamp (line 299) | fn ntp_timestamp(time: SystemTime) -> u64 { function create_header (line 310) | fn create_header( function response (line 336) | fn response( function process_nts (line 395) | fn process_nts( function nts_response (line 413) | fn nts_response( function send_kiss_of_death (line 454) | fn send_kiss_of_death(query_packet: NtpPacket) -> Result, std::i... function kiss_of_death (line 461) | fn kiss_of_death(query_packet: NtpPacket) -> NtpPacket { function refresh_servstate (line 491) | fn refresh_servstate( FILE: src/nts_ke/client.rs type Cookie (line 43) | type Cookie = Vec; constant DEFAULT_NTP_PORT (line 45) | const DEFAULT_NTP_PORT: u16 = 123; constant DEFAULT_KE_PORT (line 46) | const DEFAULT_KE_PORT: u16 = 4460; constant DEFAULT_SCHEME (line 47) | const DEFAULT_SCHEME: u16 = 0; constant TIMEOUT (line 48) | const TIMEOUT: Duration = Duration::from_secs(15); type NtsKeResult (line 51) | pub struct NtsKeResult { function run_nts_ke_client (line 62) | pub fn run_nts_ke_client( FILE: src/nts_ke/records/aead_algorithm.rs type KnownAeadAlgorithm (line 13) | pub enum KnownAeadAlgorithm { method as_algorithm_id (line 18) | pub fn as_algorithm_id(&self) -> u16 { type AeadAlgorithmRecord (line 25) | pub struct AeadAlgorithmRecord(Vec); method algorithms (line 28) | pub fn algorithms(&self) -> &[KnownAeadAlgorithm] { method from (line 34) | fn from(algorithms: Vec) -> AeadAlgorithmRecord { method critical (line 40) | fn critical(&self) -> bool { method record_type (line 46) | fn record_type() -> u16 { method len (line 50) | fn len(&self) -> u16 { method into_bytes (line 58) | fn into_bytes(self) -> Vec { method from_bytes (line 71) | fn from_bytes(_: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/records/end_of_message.rs type EndOfMessageRecord (line 10) | pub struct EndOfMessageRecord; method critical (line 13) | fn critical(&self) -> bool { method record_type (line 17) | fn record_type() -> u16 { method len (line 21) | fn len(&self) -> u16 { method into_bytes (line 25) | fn into_bytes(self) -> Vec { method from_bytes (line 29) | fn from_bytes(_: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/records/error.rs type ErrorKind (line 10) | enum ErrorKind { method as_code (line 16) | fn as_code(&self) -> u16 { type ErrorRecord (line 24) | pub struct ErrorRecord(ErrorKind); method critical (line 27) | fn critical(&self) -> bool { method record_type (line 31) | fn record_type() -> u16 { method len (line 35) | fn len(&self) -> u16 { method into_bytes (line 39) | fn into_bytes(self) -> Vec { method from_bytes (line 44) | fn from_bytes(_: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/records/mod.rs constant HEADER_SIZE (line 32) | pub const HEADER_SIZE: usize = 4; type KeRecord (line 34) | pub enum KeRecord { type Party (line 46) | pub enum Party { type KeRecordTrait (line 51) | pub trait KeRecordTrait: Sized { method critical (line 52) | fn critical(&self) -> bool; method record_type (line 54) | fn record_type() -> u16; method len (line 56) | fn len(&self) -> u16; method into_bytes (line 59) | fn into_bytes(self) -> Vec; method from_bytes (line 61) | fn from_bytes(sender: Party, bytes: &[u8]) -> Result; function serialize (line 69) | pub fn serialize(record: T) -> Vec { type DeserializeError (line 90) | pub enum DeserializeError { function deserialize (line 102) | pub fn deserialize(sender: Party, bytes: &[u8]) -> Result(session: &T) -> Result; type ReceivedNtsKeRecordState (line 174) | pub struct ReceivedNtsKeRecordState { type NtsKeParseError (line 184) | pub enum NtsKeParseError { method description (line 192) | fn description(&self) -> &str { method cause (line 204) | fn cause(&self) -> Option<&dyn std::error::Error> { method fmt (line 210) | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { function process_record (line 216) | pub fn process_record( FILE: src/nts_ke/records/new_cookie.rs type NewCookieRecord (line 12) | pub struct NewCookieRecord(Vec); method from (line 15) | fn from(bytes: Vec) -> NewCookieRecord { method critical (line 21) | fn critical(&self) -> bool { method record_type (line 25) | fn record_type() -> u16 { method len (line 29) | fn len(&self) -> u16 { method into_bytes (line 33) | fn into_bytes(self) -> Vec { method from_bytes (line 37) | fn from_bytes(_: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/records/next_protocol.rs type KnownNextProtocol (line 13) | pub enum KnownNextProtocol { method as_protocol_id (line 18) | pub fn as_protocol_id(&self) -> u16 { type NextProtocolRecord (line 25) | pub struct NextProtocolRecord(Vec); method protocols (line 28) | pub fn protocols(&self) -> &[KnownNextProtocol] { method from (line 34) | fn from(protocols: Vec) -> NextProtocolRecord { method critical (line 40) | fn critical(&self) -> bool { method record_type (line 44) | fn record_type() -> u16 { method len (line 48) | fn len(&self) -> u16 { method into_bytes (line 56) | fn into_bytes(self) -> Vec { method from_bytes (line 69) | fn from_bytes(_: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/records/port.rs type PortRecord (line 11) | pub struct PortRecord { method new (line 17) | pub fn new(sender: Party, port: u16) -> PortRecord { method port (line 21) | pub fn port(&self) -> u16 { method critical (line 27) | fn critical(&self) -> bool { method record_type (line 34) | fn record_type() -> u16 { method len (line 38) | fn len(&self) -> u16 { method into_bytes (line 42) | fn into_bytes(self) -> Vec { method from_bytes (line 46) | fn from_bytes(sender: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/records/server.rs type Address (line 16) | enum Address { type ServerRecord (line 22) | pub struct ServerRecord { method into_string (line 28) | pub fn into_string(self) -> String { method critical (line 38) | fn critical(&self) -> bool { method record_type (line 45) | fn record_type() -> u16 { method len (line 49) | fn len(&self) -> u16 { method into_bytes (line 62) | fn into_bytes(self) -> Vec { method from_bytes (line 66) | fn from_bytes(sender: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/records/warning.rs type WarningKind (line 10) | enum WarningKind { method as_code (line 18) | fn as_code(&self) -> u16 { type WarningRecord (line 26) | pub struct WarningRecord(WarningKind); method critical (line 29) | fn critical(&self) -> bool { method record_type (line 33) | fn record_type() -> u16 { method len (line 37) | fn len(&self) -> u16 { method into_bytes (line 41) | fn into_bytes(self) -> Vec { method from_bytes (line 46) | fn from_bytes(_: Party, bytes: &[u8]) -> Result { FILE: src/nts_ke/server/config.rs function get_metrics_config (line 21) | fn get_metrics_config(settings: &config::Config) -> Option { type KeServerConfig (line 36) | pub struct KeServerConfig { method new (line 66) | pub fn new( method add_tls_cert (line 100) | fn add_tls_cert(&mut self, cert: Certificate) { method add_tls_secret_key (line 107) | fn add_tls_secret_key(&mut self, secret_key: PrivateKey) { method add_address (line 112) | pub fn add_address(&mut self, addr: SocketAddr) { method addrs (line 117) | pub fn addrs(&self) -> &[SocketAddr] { method cookie_key (line 122) | pub fn cookie_key(&self) -> &CookieKey { method set_logger (line 127) | pub fn set_logger(&mut self, logger: slog::Logger) { method logger (line 132) | pub fn logger(&self) -> &slog::Logger { method memcached_url (line 137) | pub fn memcached_url(&self) -> &str { method timeout (line 142) | pub fn timeout(&self) -> u64 { method import_tls_certs (line 155) | fn import_tls_certs(&mut self, filename: &str) -> Result<(), std::io::... method import_tls_secret_keys (line 189) | fn import_tls_secret_keys(&mut self, filename: &str) -> Result<(), std... method parse (line 235) | pub fn parse(filename: &str) -> Result>, port: u16)... type KeServerConnState (line 79) | pub enum KeServerConnState { type KeServerConn (line 93) | pub struct KeServerConn { method new (line 120) | pub fn new( method ready (line 157) | pub fn ready(&mut self, poll: &mut mio::Poll, event: &mio::Event) { method read_ready (line 172) | fn read_ready(&mut self) { method write_ready (line 308) | fn write_ready(&mut self) { method register (line 316) | pub fn register(&self, poll: &mut mio::Poll) -> Result<(), std::io::Er... method reregister (line 326) | pub fn reregister(&self, poll: &mut mio::Poll) -> Result<(), std::io::... method interest (line 335) | fn interest(&self) -> mio::Ready { method state (line 347) | pub fn state(&self) -> KeServerConnState { method shutdown (line 351) | pub fn shutdown(&mut self) { FILE: src/nts_ke/server/ke_server.rs type KeServerState (line 20) | pub(super) struct KeServerState { type KeServer (line 39) | pub struct KeServer { method connect (line 56) | pub fn connect(config: KeServerConfig) -> Result { method start (line 104) | pub fn start(&mut self) -> Result<(), std::io::Error> { method state (line 185) | pub(super) fn state(&self) -> &Arc { FILE: src/nts_ke/server/listener.rs constant LISTENER_MIO_TOKEN_ID (line 25) | const LISTENER_MIO_TOKEN_ID: usize = 0; constant CONNECTION_MIO_TOKEN_ID_MIN (line 26) | const CONNECTION_MIO_TOKEN_ID_MIN: usize = LISTENER_MIO_TOKEN_ID + 1; constant CONNECTION_MIO_TOKEN_ID_MAX (line 28) | const CONNECTION_MIO_TOKEN_ID_MAX: usize = usize::max_value() - 1; constant LISTENER_MIO_TOKEN (line 31) | const LISTENER_MIO_TOKEN: mio::Token = mio::Token(LISTENER_MIO_TOKEN_ID); type KeServerListener (line 35) | pub struct KeServerListener { method bind (line 68) | pub fn bind(addr: SocketAddr, server: &KeServer) -> Result Result<(), std::io::Error> { method accept (line 143) | fn accept(&mut self) -> Result<(), std::io::Error> { method increment_next_conn_token_id (line 202) | fn increment_next_conn_token_id(&mut self) { method close_expired_connections (line 217) | fn close_expired_connections(&mut self) { method state (line 245) | pub(super) fn state(&self) -> &Arc { method logger (line 250) | pub(super) fn logger(&self) -> &slog::Logger { method addr (line 255) | pub(super) fn addr(&self) -> &SocketAddr { FILE: src/sub_command/client.rs type ClientConfig (line 20) | pub struct ClientConfig { function load_tls_certs (line 27) | pub fn load_tls_certs(path: String) -> Result, config::... function run (line 34) | pub fn run(matches: &clap::ArgMatches<'_>) { FILE: src/sub_command/ke_server.rs function resolve_config_filename (line 16) | fn resolve_config_filename(matches: &clap::ArgMatches<'_>) -> String { function run (line 26) | pub fn run(matches: &clap::ArgMatches<'_>) { FILE: src/sub_command/ntp_server.rs function resolve_config_filename (line 17) | fn resolve_config_filename(matches: &clap::ArgMatches<'_>) -> String { function run (line 27) | pub fn run(matches: &clap::ArgMatches<'_>) {