const unsigned long ITTAbsent = 0;
const unsigned long ITTAnonymous = 1;
const unsigned long ITTDistinguishedName = 8;
const unsigned long ITTPrincipalName = 2;
const unsigned long ITTX509CertChain = 4;
const short MTCompleteEstablishContext = 1;
const short MTContextError = 4;
const short MTEstablishContext = 0;
const short MTMessageInContext = 5;
const unsigned long OMGVMCID = 324816;
const unsigned long X509AttributeCertChain = 324817;
struct AuthorizationElement { CSI::AuthorizationElementType the_type; CSI::AuthorizationElementContents the_element; };
typedef sequence < octet > AuthorizationElementContents;
typedef unsigned long AuthorizationElementType;
typedef sequence < CSI::AuthorizationElement > AuthorizationToken;
struct CompleteEstablishContext { CSI::ContextId client_context_id; boolean context_stateful; CSI::GSSToken final_context_token; };
struct ContextError { CSI::ContextId client_context_id; long major_status; long minor_status; CSI::GSSToken error_token; };
typedef unsigned long long ContextId;
struct EstablishContext { CSI::ContextId client_context_id; CSI::AuthorizationToken authorization_token; CSI::IdentityToken identity_token; CSI::GSSToken client_authentication_token; };
typedef sequence < octet > GSS_NT_ExportedName;
typedef sequence < CSI::GSS_NT_ExportedName > GSS_NT_ExportedNameList;
typedef sequence < octet > GSSToken;
typedef sequence < octet > IdentityExtension;
union IdentityToken switch (CSI::IdentityTokenType) { case ITTAbsent: boolean absent; case ITTAnonymous: boolean anonymous; case ITTPrincipalName: CSI::GSS_NT_ExportedName principal_name; case ITTX509CertChain: CSI::X509CertificateChain certificate_chain; case ITTDistinguishedName: CSI::X501DistinguishedName dn; default: CSI::IdentityExtension id; };
typedef unsigned long IdentityTokenType;
struct MessageInContext { CSI::ContextId client_context_id; boolean discard_context; };
typedef short MsgType;
typedef sequence < octet > OID;
typedef sequence < CSI::OID > OIDList;
union SASContextBody switch (CSI::MsgType) { case MTEstablishContext: CSI::EstablishContext establish_msg; case MTCompleteEstablishContext: CSI::CompleteEstablishContext complete_msg; case MTContextError: CSI::ContextError error_msg; case MTMessageInContext: CSI::MessageInContext in_context_msg; };
typedef string StringOID;
typedef sequence < octet > UTF8String;
typedef sequence < octet > X501DistinguishedName;
typedef sequence < octet > X509CertificateChain;