Current section

Files

Jump to
kerlberos include ms_pac.hrl
Raw

include/ms_pac.hrl

%% kerlberos
%%
%% Copyright 2020 Alex Wilson <alex@uq.edu.au>
%% The University of Queensland
%% All rights reserved.
%%
%% Redistribution and use in source and binary forms, with or without
%% modification, are permitted provided that the following conditions
%% are met:
%% 1. Redistributions of source code must retain the above copyright
%% notice, this list of conditions and the following disclaimer.
%% 2. Redistributions in binary form must reproduce the above copyright
%% notice, this list of conditions and the following disclaimer in the
%% documentation and/or other materials provided with the distribution.
%%
%% THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
%% IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
%% OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
%% IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
%% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
%% NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
%% DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
%% THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
%% (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
%% THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
%%
-record(sid, {
revision :: integer(),
identifier_auth :: integer(),
sub_auths :: [integer()]}).
-record(sid_and_attributes, {
sid_ptr :: ms_rpce:rpce_ptr(),
sid = deferred :: krb_ms_pac:sid() | deferred,
attrs :: [krb_ms_pac:sid_attr()]}).
-record(group_membership, {
rid :: integer(),
attrs :: [krb_ms_pac:sid_attr()]}).
-record(pac, {version :: integer(), buffers :: [krb_ms_pac:pac_buffer()]}).
-record(pac_unknown, {type :: integer(), data :: binary()}).
-record(pac_client_info, {tgt_time :: integer(), name :: binary()}).
-record(pac_upn_dns, {upn :: binary(), dns_name :: binary()}).
-record(pac_logon_info, {
times = #{} :: #{atom() => integer() | never | null},
ename :: binary(),
fname :: binary(),
logon_script :: binary(),
profile_path :: binary(),
homedir :: binary(),
home_drive :: binary(),
logon_count :: integer(),
bad_pw_count :: integer(),
userid :: integer(),
groups :: [#group_membership{}],
logon_server :: binary(),
domain :: binary(),
domain_sid :: krb_ms_pac:sid(),
sids = [krb_ms_pac:sid()]
}).