/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:27:06 by OpenVMS SDL EV3-3 */ /* Source: 08-JUL-1998 11:03:45 $1$DGA7274:[LIB_H.SRC]PXBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PXBDEF ***/ #ifndef __PXBDEF_LOADED #define __PXBDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _pxb { #pragma __nomember_alignment struct _pxb *pxb$l_flink; /* forward link */ struct _pxb *pxb$l_blink; /* backward link */ unsigned short int pxb$w_size; /* size */ unsigned char pxb$b_type; /* type code */ unsigned char pxb$b_subtype; /* subtype code */ } PXB; #define PXB$K_LENGTH 12 /* Length of header */ /* */ /* PXB Array (Persona Extension Block Array) */ /* */ #define PXB_ARRAY_ELEMENTS 16 #define PXB_ARRAY$K_PXB_ARRAY_HEADER 12 #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _pxb_array { #pragma __nomember_alignment struct _pxb_array *pxb_array$l_flink; /* forward link */ struct _pxb_array *pxb_array$l_blink; /* backward link */ unsigned short int pxb_array$w_size; /* size */ unsigned char pxb_array$b_type; /* type code */ unsigned char pxb_array$b_subtype; /* subtype code */ unsigned int pxb_array$ar_elements [16]; /* The array cells */ } PXB_ARRAY; /* */ /* delegate block */ /* */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _delbk { #pragma __nomember_alignment struct _delbk *delbk$l_flink; /* forward link */ struct _delbk *delbk$l_blink; /* backward link */ unsigned short int delbk$w_size; /* size */ unsigned char delbk$b_type; /* type code */ unsigned char delbk$b_subtype; /* subtype cod */ unsigned int delbk$l_persona_id; /* Persona ID */ unsigned int delbk$l_persona_address; /* Persona address */ unsigned int delbk$l_client_epid; /* Client's EPID */ unsigned int delbk$l_client_tpid; /* Client's Thread PID */ unsigned int delbk$l_bytcnt; /* BYTCNT/BYTLM to be debited upon delegation */ unsigned int delbk$l_imgcnt; /* Value of PHD$L_IMGCNT when we started */ unsigned int delbk$l_status; /* status */ } DELBK; #define DELBK$C_DELEGATE_BLOCK_SIZE 40 /* Length of DELBK struct */ /* */ /* Persona Security Extension Registration Block definitions */ /* */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _pxrb { #pragma __nomember_alignment struct _pxrb *pxrb$l_flink; /* forward link */ struct _pxrb *pxrb$l_blink; /* backward link */ unsigned short int pxrb$w_size; /* size */ unsigned char pxrb$b_type; /* type code */ unsigned char pxrb$b_subtype; /* subtype cod */ unsigned int pxrb$l_flags; /* */ unsigned int pxrb$l_eid; /* Extension ID */ unsigned int pxrb$l_name_desc [2]; /* Extension name descriptor */ char pxrb$ar_name [32]; /* Extension name string */ void *pxrb$a_create; /* Pointer to CREATE routine */ void *pxrb$a_clone; /* Pointer to CLONE routine */ void *pxrb$a_delegate; /* Pointer to DELEGATE routine */ void *pxrb$a_delete; /* Pointer to DELETE routine */ void *pxrb$a_modify; /* Pointer to MODIFY routine */ void *pxrb$a_query; /* Pointer to QUERY routine */ void *pxrb$a_make_tlv; /* Pointer to MAKE_TLV routine */ } PXRB; #define PXRB$K_LENGTH 88 /* Length of PXRB struct */ /* */ /* Persona Security Extension Dispatch Vector Block definitions */ /* */ #define PXDV$K_VERSION 1 #define PXDV$K_MIN_VERSION 1 #define PXDV$K_MAX_VERSION 1 #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _pxdv { #pragma __nomember_alignment unsigned int pxdv$l_version; /* Version of dispatch vector */ unsigned int pxdv$l_flags; /* */ void *pxdv$a_create; /* Address to CREATE routine */ void *pxdv$a_clone; /* Address to CLONE routine */ void *pxdv$a_delegate; /* Address to DELEGATE routine */ void *pxdv$a_delete; /* Address to DELETE routine */ void *pxdv$a_modify; /* Address to MODIFY routine */ void *pxdv$a_query; /* Address to QUERY routine */ void *pxdv$a_make_tlv; /* Address to MAKE_TLV routine */ char pxdv$b_fill_0_ [4]; } PXDV; /* */ /* Persona Security Extension Block definitions for NT */ /* */ #define PXBNT$K_VERSION_1 1 /* version number 1 */ #define PXBNT$K_CURRENT_VERSION 1 /* current protocol */ #define PXBNT$M_CLONE 0x1 #define PXBNT$M_DELEGATE 0x2 #define PXBNT$M_FILL_3 0x4 #define PXBNT$M_FILL_4 0x8 #define PXBNT$M_FILL_5 0x10 #define PXBNT$M_FILL_6 0x20 #define PXBNT$M_FILL_7 0x40 #define PXBNT$M_DEBIT 0x80 #define PXBNT$K_LENGTH 88 /* Length of PXBNT structure */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _pxbnt { #pragma __nomember_alignment struct _pxbnt *pxbnt$l_flink; /* forward link */ struct _pxbnt *pxbnt$l_blink; /* backward link */ unsigned short int pxbnt$w_size; /* size, in bytes */ unsigned char pxbnt$b_type; /* type code for PXBNT (DYN$C_SECURITY) */ unsigned char pxbnt$b_subtype; /* subtype code (DYN$C_SECURITY_PSB) */ unsigned int pxbnt$l_version; /* version number */ __union { unsigned int pxbnt$l_flags; /* flags */ __struct { unsigned pxbnt$v_clone : 1; /* Clone operation */ unsigned pxbnt$v_delegate : 1; /* Delegate operation */ unsigned pxbnt$v_fill_3 : 1; unsigned pxbnt$v_fill_4 : 1; unsigned pxbnt$v_fill_5 : 1; unsigned pxbnt$v_fill_6 : 1; unsigned pxbnt$v_fill_7 : 1; unsigned pxbnt$v_debit : 1; /* DEBIT */ /* This bit must be in */ /* synch with PSB flag. */ } pxbnt$r_fill_2_; } pxbnt$r_fill_1_; __union { unsigned __int64 pxbnt$q_doi; __struct { unsigned int pxbnt$l_doi; unsigned int pxbnt$l_doi_pid; } pxbnt$r_fill_4_; } pxbnt$r_fill_3_; unsigned int pxbnt$l_user_refcount; unsigned short int pxbnt$w_nt_owf_password_length; unsigned short int pxbnt$w_lm_owf_password_length; char pxbnt$t_nt_owf_password [16]; char pxbnt$t_lm_owf_password [16]; unsigned short int pxbnt$w_username_o; unsigned short int pxbnt$w_username_s; unsigned short int pxbnt$w_domain_o; unsigned short int pxbnt$w_domain_s; unsigned short int pxbnt$w_user_session_key_o; unsigned short int pxbnt$w_user_session_key_s; unsigned short int pxbnt$w_lm_session_key_o; unsigned short int pxbnt$w_lm_session_key_s; unsigned int pxbnt$l_data_size; /* size of data area */ #if defined(__VAXC) char pxbnt$t_data[]; #else /* Warning: empty char[] member for pxbnt$t_data at end of structure not created */ #endif /* #if defined(__VAXC) */ } PXBNT; #if !defined(__VAXC) #define pxbnt$l_flags pxbnt$r_fill_1_.pxbnt$l_flags #define pxbnt$v_clone pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_clone #define pxbnt$v_delegate pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_delegate #define pxbnt$v_fill_3 pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_fill_3 #define pxbnt$v_fill_4 pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_fill_4 #define pxbnt$v_fill_5 pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_fill_5 #define pxbnt$v_fill_6 pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_fill_6 #define pxbnt$v_fill_7 pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_fill_7 #define pxbnt$v_debit pxbnt$r_fill_1_.pxbnt$r_fill_2_.pxbnt$v_debit #define pxbnt$q_doi pxbnt$r_fill_3_.pxbnt$q_doi #define pxbnt$l_doi pxbnt$r_fill_3_.pxbnt$r_fill_4_.pxbnt$l_doi #define pxbnt$l_doi_pid pxbnt$r_fill_3_.pxbnt$r_fill_4_.pxbnt$l_doi_pid #endif /* #if !defined(__VAXC) */ /* */ /* PXB_FLAGS - These are generic PXB flags common to all Extensions. */ /* */ #define PXB$M_FILL_1 0x1 #define PXB$M_FILL_2 0x2 #define PXB$M_FILL_3 0x4 #define PXB$M_FILL_4 0x8 #define PXB$M_FILL_5 0x10 #define PXB$M_FILL_6 0x20 #define PXB$M_FILL_7 0x40 #define PXB$M_DEBIT 0x80 #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _pxb_flags { /* flags */ #pragma __nomember_alignment unsigned pxb$v_fill_1 : 1; /* Clone operation */ unsigned pxb$v_fill_2 : 1; /* Delegate operation */ unsigned pxb$v_fill_3 : 1; unsigned pxb$v_fill_4 : 1; unsigned pxb$v_fill_5 : 1; unsigned pxb$v_fill_6 : 1; unsigned pxb$v_fill_7 : 1; unsigned pxb$v_debit : 1; /* DEBIT */ /* This bit must be in */ /* synch with PSB flag. */ char pxb$b_fill_5_ [3]; } PXB_FLAGS; /* */ /* CREATE_FLAGS - Flags used for calls to CREATE_EXTENSION. */ /* */ #define PXB$M_PRIMARY_EXTENSION 0x1 #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _create_flags { /* flags */ #pragma __nomember_alignment unsigned pxb$v_primary_extension : 1; /* Clone operation */ unsigned pxb$v_fill_6_ : 31; } CREATE_FLAGS; /* */ /* define the offset and size for user session key and lm session key */ /* */ #define TOKEN$K_USERSESSIONKEY_OFFSET 120 /* user session key offset */ #define TOKEN$K_USERSESSIONKEY_SIZE 16 /* user session key size */ #define TOKEN$K_LMSESSIONKEY_OFFSET 136 /* LM session key offset */ #define TOKEN$K_LMSESSIONKEY_SIZE 8 /* LM session key offset */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __PXBDEF_LOADED */