Type Function ApplicationCipherT [src]

Prototype

pub fn ApplicationCipherT(comptime AeadType: type, comptime HashType: type, comptime explicit_iv_length: comptime_int) type

Parameters

AeadType: typeHashType: typeexplicit_iv_length: comptime_int

Source

pub fn ApplicationCipherT(comptime AeadType: type, comptime HashType: type, comptime explicit_iv_length: comptime_int) type { return union { pub const AEAD = AeadType; pub const Hash = HashType; pub const Hmac = crypto.auth.hmac.Hmac(Hash); pub const Hkdf = crypto.kdf.hkdf.Hkdf(Hmac); pub const enc_key_length = AEAD.key_length; pub const fixed_iv_length = AEAD.nonce_length - explicit_iv_length; pub const record_iv_length = explicit_iv_length; pub const mac_length = AEAD.tag_length; pub const mac_key_length = Hmac.key_length_min; pub const verify_data_length = 12; tls_1_2: Tls_1_2, tls_1_3: Tls_1_3, pub const Tls_1_2 = extern struct { client_write_MAC_key: [mac_key_length]u8, server_write_MAC_key: [mac_key_length]u8, client_write_key: [enc_key_length]u8, server_write_key: [enc_key_length]u8, client_write_IV: [fixed_iv_length]u8, server_write_IV: [fixed_iv_length]u8, // non-standard entropy client_salt: [record_iv_length]u8, }; pub const Tls_1_3 = struct { client_secret: [Hash.digest_length]u8, server_secret: [Hash.digest_length]u8, client_key: [AEAD.key_length]u8, server_key: [AEAD.key_length]u8, client_iv: [AEAD.nonce_length]u8, server_iv: [AEAD.nonce_length]u8, }; }; }