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;