safapi.h

Go to the documentation of this file.
00001 /****************************************************************************
00002  *
00003  * Copyright (C) 2006-2007 Micro Focus (IP) Limited.
00004  * All rights reserved.
00005  *
00006  * The software and information contained herein are proprietary to, and
00007  * comprise valuable trade secrets of, Micro Focus International Ltd., 
00008  * which intends to preserve as trade secrets such software and 
00009  * information. This software is an unpublished copyright of Micro Focus  
00010  * and may not be used, copied, transmitted, or stored in any manner.  
00011  * This software and information or any other copies thereof may not be
00012  * provided or otherwise made available to any other person.
00013  *
00014  *      Enterprise Server SAF (Security) Manager
00015  *      API
00016  *
00017  *      @(#)safapi.h    $Revision: 1.8 $     
00018  *
00019  *      $Date: 2009/04/07 14:56:54 $
00020  *
00021  ****************************************************************************/
00022 
00023 #ifndef SAFAPI_H
00024 #define SAFAPI_H
00025 
00026 /* ---------------------------------------------------------------- */
00027 /*                                                                  */
00028 /* Name: SAFAPI.H                                                   */
00029 /*                                                                  */
00030 /* Project: ES SAF API                                              */
00031 /*                                                                  */
00032 /* Related source elements:                                         */
00033 /*                                                                  */
00034 /* SAFAPI.CPY - SAF API definition copybook                         */
00035 /* safapi.h - SAF API definition header file                        */
00036 /* SAFROUTE.CBL - SAF API routine                                   */
00037 /* SAFROUTE.RC - SAF API routine Windows resource file              */
00038 /* SAFROUTE.LIB - SAF API routine DLL lib for C                     */
00039 /* SAFROUTE.DLL - SAF API routine runtime                           */
00040 /* SAFADMIN.CBL - SAFADMIN command source                           */
00041 /* SAFADMIN.EXE - SAFADMIN command executable                       */
00042 /* tsafapi.c - SAF API C usage examples                             */
00043 /* TSAFAPI.CBL - SAF API COBOL usage examples                       */
00044 /* SAFAPI.WIN - Makefile                                            */
00045 /*                                                                  */
00046 /* Description:                                                     */
00047 /*                                                                  */
00048 /* This is the header file that defines the data elements for       */
00049 /* ES SAF security request calls.                                   */
00050 /*                                                                  */
00051 /* The safPARMLIST structure defines the parameter list             */
00052 /* that is used for all SAF API calls.                              */
00053 /*                                                                  */
00054 /* This copybook contains the following major sections:             */
00055 /* SAF API parameter list structure (safpb_parameter-block)         */
00056 /* SAF API constants                                                */
00057 /* SAF API return and reason codes                                  */
00058 /* ---------------------------------------------------------------- */
00059 /* Request parameter list usage common to all requests              */
00060 /* ---------------------------------------------------------------- */
00061 /*                                                                  */
00062 /* #include "safapi.h" <-- include definitions                      */
00063 /*                                                                  */
00064 /* Saf_Parameter_Block sSAFlist; <-- create an instance             */
00065 /*                                                                  */
00066 /* sSAFlist.safpb_version <-- in                                    */
00067 /* sSAFlist.safpb_request <-- in                                    */
00068 /* sSAFlist.safpb_type <-- in                                       */
00069 /* sSAFlist.safpb_modifier <-- in                                   */
00070 /* sSAFlist.safpb_flag <-- in                                       */
00071 /* sSAFlist.safpb_codeset <-- in                                    */
00072 /* sSAFlist.RETCODES.DISCRETE.safpb_api_rc <-- OUT                  */
00073 /* sSAFlist.RETCODES.DISCRETE.safpb_mgr_return <-- OUT              */
00074 /* sSAFlist.RETCODES.DISCRETE.safpb_mgr_reason <-- OUT              */
00075 /* sSAFlist.safpb_safesm_index <-- OUT                              */
00076 /* ---------------------------------------------------------------- */
00077 /* VERIFY request-specific parameter list usage                     */
00078 /* ---------------------------------------------------------------- */
00079 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_USERID_len <-- in          */
00080 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_PWRD_len <-- in            */
00081 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_NEWPWRD_len <-- in         */
00082 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_group <-- in               */
00083 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_ACEE_ptr <-- OUT           */
00084 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_USERID_ptr <-- in          */
00085 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_PWRD_ptr <-- in            */
00086 /* sSAFlist.REQUESTS.VERIFY.safpb_verify_NEWPWRD_ptr <-- in         */
00087 /* ---------------------------------------------------------------- */
00088 /* AUTH request-specific parameter list usage                       */
00089 /* ---------------------------------------------------------------- */
00090 /* sSAFlist.REQUESTS.AUTH.safpb_auth_ENTITY_len <-- in              */
00091 /* sSAFlist.REQUESTS.AUTH.safpb_auth_FACILITY_len <-- in            */
00092 /* sSAFlist.REQUESTS.AUTH.safpb_auth_TRANSACTION_len <-- in         */
00093 /* sSAFlist.REQUESTS.AUTH.safpb_auth_class <-- in                   */
00094 /* sSAFlist.REQUESTS.AUTH.safpb_auth_ACEE_ptr <-- in                */
00095 /* sSAFlist.REQUESTS.AUTH.safpb_auth_ENTITY_ptr <-- in              */
00096 /* sSAFlist.REQUESTS.AUTH.safpb_auth_FACILITY_ptr <-- in            */
00097 /* sSAFlist.REQUESTS.AUTH.safpb_auth_TRANSACTION_ptr <-- in         */
00098 /* ---------------------------------------------------------------- */
00099 /* XAUTH request-specific parameter list usage                      */
00100 /* ---------------------------------------------------------------- */
00101 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_ENTITY_len <-- in            */
00102 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_STRING1_len <-- in           */
00103 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_STRING2_len <-- in           */
00104 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_CLASS_len <-- in             */
00105 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_PERMISSIONS <-- in/OUT       */
00106 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_ACEE_ptr <-- in              */
00107 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_ENTITY_ptr <-- in            */
00108 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_STRING1_ptr <-- in           */
00109 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_STRING2_ptr <-- in           */
00110 /* sSAFlist.REQUESTS.XAUTH.safpb_xauth_CLASS_ptr <-- in             */
00111 /* ---------------------------------------------------------------- */
00112 /* AUDIT request-specific parameter list usage                      */
00113 /* ---------------------------------------------------------------- */
00114 /* sSAFlist.REQUESTS.AUDIT.safpb_audit_ENTITY_len <-- in            */
00115 /* sSAFlist.REQUESTS.AUDIT.safpb_audit_LOGSTR_len <-- in            */
00116 /* sSAFlist.REQUESTS.AUDIT.safpb_audit_ACEE_ptr <-- in              */
00117 /* sSAFlist.REQUESTS.AUDIT.safpb_audit_ENTITY_ptr <-- in            */
00118 /* sSAFlist.REQUESTS.AUDIT.safpb_audit_LOGSTR_ptr <-- in            */
00119 /* ---------------------------------------------------------------- */
00120 /* STAT request-specific parameter list usage                       */
00121 /* ---------------------------------------------------------------- */
00122 /* sSAFlist.REQUESTS.STAT.safpb_stat_QUERY-NAME_len <-- in          */
00123 /* sSAFlist.REQUESTS.STAT.safpb_stat_NEXT_len <-- in                */
00124 /* sSAFlist.REQUESTS.STAT.safpb_stat_RETURN-AREA_len <-- in/OUT     */
00125 /* sSAFlist.REQUESTS.STAT.safpb_stat_QUERY-NAME_ptr <-- in          */
00126 /* sSAFlist.REQUESTS.STAT.safpb_stat_NEXT_ptr <-- in                */
00127 /* sSAFlist.REQUESTS.STAT.safpb_stat_RETURN-AREA_ptr <-- in/OUT     */
00128 /*----------------------------------------------------------------- */
00129 /* ADMIN request-specific parameter list usage                      */
00130 /*----------------------------------------------------------------- */
00131 /* sSAFlist.REQUESTS.ADMIN.safpb_admin_ARGSTR_len <-- in (opt/0)    */
00132 /* sSAFlist.REQUESTS.ADMIN.safpb_admin_ARGTBL_count <-- in          */     
00133 /* sSAFlist.REQUESTS.ADMIN.safpb_admin_ARGSTR_ptr <-- in (opt/NULL) */
00134 /* sSAFlist.REQUESTS.ADMIN.safpb_admin_ARGTBL_ptr <-- in            */
00135 /*----------------------------------------------------------------- */
00136 /* Conditional assembly variable - saf78-SAFADMIN-DATA-AREAS        */
00137 /*----------------------------------------------------------------- */
00138 /* #define this variable to cause SAFAPI header file processing     */
00139 /* to include the data area definitions for SAF ADMIN API calls.    */
00140 /* #define saf78-SAFADMIN-DATA-AREAS  <=== example                  */
00141 /* ---------------------------------------------------------------- */
00142 /* Change Log                                                       */
00143 /* ---------------------------------------------------------------- */
00144 /*                                                                  */
00145 /* Date Initials Reason                                             */
00146 /* -------- -------- -------------------------------------------    */
00147 /* 04/25/06 rlw Initial version                                     */
00148 /* 05/08/06 rlw Refinements and cascbsaf compatibility              */
00149 /* 05/10/06 rlw Convergence with cascbsaf; one API def              */
00150 /* 05/18/06 mww Bring into conformance with C90                     */
00151 /* 05/23/06 rlw Simplify structure names                            */
00152 /* 05/25/06 rlw Include all IBM-defined classes                     */
00153 /* 05/30/06 rlw Updates for cascbsaf.cpy revision 1.20              */
00154 /* 06/03/06 mww Minimal Doxygen markup                              */
00155 /* 06/08/06 rlw Remove obsolete flags per Stu;add api modes         */
00156 /* 06/23/06 rlw Correct UTF8 constant value in level78              */
00157 /* 06/29/06 rlw New XAUTH call for extended authorizations          */
00158 /* 08/01/06 rlw New ADMIN call for repository modifications         */
00159 /* ---------------------------------------------------------------- */
00160 
00161 /* ---------------------------------------------------------------- */
00162 /* D o x y g e n   d o c u m e n t a t i o n   b l o c k            */
00163 /* ---------------------------------------------------------------- */
00164 
00171 /* ---------------------------------------------------------------- */
00172 /* S A F A P I   f u n c t i o n   p r o t o t y p e                */
00173 /* ---------------------------------------------------------------- */
00174 
00175 #if !defined DOXYGEN
00176 struct safpb_parameter_block;
00177 int SAFROUTE(struct safpb_parameter_block *);
00178 #endif
00179 
00180 
00181 /* ---------------------------------------------------------------- */
00182 /* S A F   A D M I N   a r g u m e n t   t a b l e                  */
00183 /* ---------------------------------------------------------------- */
00184 
00186 typedef struct SafAdminArgTbl
00187 {
00188   char     *KeyPtr;    
00189   char     *ValPtr;    
00190   mf_uns32  KeyLen;    
00191   mf_uns32  ValLen;    
00192   mf_uns32  EsmRet;    
00193   /* In 64-bit, there should be padding here for alignment */
00194 } SafAdminArgTbl;
00195 
00197 #define safadmin_argtbl SafAdminArgTbl
00198 
00199 #define Safadmin_Argtbl SafAdminArgTbl
00200 
00206 #define safadmin_argkeyptr    KeyPtr    
00207 #define safadmin_argvalptr    ValPtr    
00208 #define safadmin_argkeylen    KeyLen    
00209 #define safadmin_argvallen    ValLen    
00210 #define safadmin_argesmword   EsmRet    
00212 
00213 
00215 struct SafAdminListItem
00216 {
00217    mf_uns16    Count;      
00218    mf_uns16    unused;     
00219    /* In 64-bit, there will likely be padding here for alignment */
00220    char      **Key;        
00221    char      **Value;      
00222 };
00223 
00225 struct SafAdminList
00226 {
00227    mf_uns16    Count;      
00228    mf_uns8     EsmIdx;     
00229    mf_uns8     unused;     
00230    /* In 64-bit, there will likely be padding here for alignment */
00232    struct SafAdminListItem *Item;
00233 };
00234 
00235 
00236 /* ---------------------------------------------------------------- */
00237 /* S A F A P I   p a r a m e t e r   l i s t                        */
00238 /* ---------------------------------------------------------------- */
00239 
00246 struct safpb_verify
00247 {
00248    unsigned short safpb_verify_USERID_len;  
00249    unsigned short safpb_verify_PWRD_len;    
00250    unsigned short safpb_verify_NEWPWRD_len; 
00251    unsigned short safpb_verify_TOKEN_len;   
00252    char           safpb_verify_group[8];    
00253    void *         safpb_verify_ACEE_ptr;    
00254    char *         safpb_verify_USERID_ptr;  
00255    char *         safpb_verify_PWRD_ptr;    
00256    char *         safpb_verify_NEWPWRD_ptr; 
00257    void *         safpb_verify_TOKEN_ptr;   
00258 };
00259 
00260 
00267 struct safpb_auth
00268 {
00269    unsigned short safpb_auth_ENTITY_len;     
00270    unsigned short safpb_auth_FACILITY_len;   
00271    unsigned short safpb_auth_TRANSACTION_len;
00272    unsigned short safpb_auth_name_04_len;    
00273    char           safpb_auth_class[8];       
00274    void *         safpb_auth_ACEE_ptr;       
00275    char *         safpb_auth_ENTITY_ptr;     
00276    char *         safpb_auth_FACILITY_ptr;   
00277    char *         safpb_auth_TRANSACTION_ptr;
00278    char *         safpb_auth_name_04_ptr;    
00279 };
00280 
00281 
00288 struct safpb_xauth
00289 {
00290    unsigned short safpb_xauth_ENTITY_len;    
00291    unsigned short safpb_xauth_STRING1_len;   
00292    unsigned short safpb_xauth_STRING2_len;   
00293    unsigned short safpb_xauth_CLASS_len;     
00294    unsigned long  safpb_xauth_PERMISSIONS;   
00296    unsigned long  safpb_xauth_available;     
00297    void *         safpb_xauth_ACEE_ptr;      
00298    char *         safpb_xauth_ENTITY_ptr;    
00299    char *         safpb_xauth_STRING1_ptr;   
00300    char *         safpb_xauth_STRING2_ptr;   
00301    char *         safpb_xauth_CLASS_ptr;     
00302 };
00303 
00304 
00311 struct safpb_audit
00312 {
00313    unsigned short safpb_audit_ENTITY_len;    
00314    unsigned short safpb_audit_LOGSTR_len;    
00315    unsigned short safpb_audit_name_03__len;  
00316    unsigned short safpb_audit_name_04_len;   
00317    char           safpb_audit_avail_char[8]; 
00318    void *         safpb_audit_ACEE_ptr;      
00319    char *         safpb_audit_ENTITY_ptr;    
00320    char *         safpb_audit_LOGSTR_ptr;    
00321    char *         safpb_audit_name_03_ptr;   
00322    char *         safpb_audit_name_04_ptr;   
00323 };
00324 
00325 
00332 struct safpb_stat
00333 {
00334    unsigned short safpb_stat_QUERY_NAME_len; 
00335    unsigned short safpb_stat_NEXT_len;       
00336    unsigned short safpb_stat_RETURN_AREA_len;
00337    unsigned short safpb_stat_name_04_len;    
00338    char           safpb_stat_avail_char[8];  
00339    void *         safpb_stat_avail_ptr;      
00340    char *         safpb_stat_QUERY_NAME_ptr; 
00341    char *         safpb_stat_NEXT_ptr;       
00342    char *         safpb_stat_RETURN_AREA_ptr;
00343    char *         safpb_stat_name_04_ptr;    
00344 };
00345 
00346 
00353 struct safpb_admin
00354 {
00356    unsigned short safpb_admin_ARGSTR_len;
00358    unsigned short safpb_admin_ARGTBL_count;
00360    unsigned short safpb_admin_LIST_count;
00361    unsigned short safpb_admin_name_04_len;   
00362    char           safpb_admin_avail_char[8]; 
00363    void *         safpb_admin_ACEE_ptr;      
00365    char *         safpb_admin_ARGSTR_ptr;
00367    struct SafAdminArgTbl
00368                  *safpb_admin_ARGTBL_ptr;
00370    struct SafAdminList
00371                  *safpb_admin_LIST_ptr;
00372    char *         safpb_admin_name_04_ptr;   
00373 };
00374 
00375 
00382 struct safpb_update
00383 {
00384    unsigned short safpb_update_ENTITY_len;   
00385    unsigned short safpb_update_ACTION;       
00387    unsigned short safpb_update_name_03_len;  
00388    unsigned short safpb_update_name_04_len;  
00389    char           safpb_update_avail_char[8];
00390    void *         safpb_update_ACEE_ptr;     
00391    char *         safpb_update_ENTITY_ptr;   
00392    char *         safpb_update_unused_ptr;   
00393    char *         safpb_update_name_03_ptr;  
00394    char *         safpb_update_name_04_ptr;  
00395 };
00396 
00397 
00455 typedef struct safpb_parameter_block
00456 {
00457   unsigned long  safpb_version;      
00459   unsigned char  safpb_request;      
00460   unsigned char  safpb_type;         
00462   unsigned char  safpb_modifier;     
00464   unsigned char  safpb_flag;         
00465   unsigned short safpb_codeset;      
00467   unsigned char  safpb_availchar1;   
00468   unsigned char  safpb_availchar2;   
00470   /* Return codes */
00471   union
00472     {
00473     unsigned char safpb_api_rc_aggregate[3]; 
00474     struct safpb_Api_Rc_Aggregate
00475       {
00476       unsigned char safpb_api_rc;     
00477       unsigned char safpb_mgr_return; 
00478       unsigned char safpb_mgr_reason; 
00479       } DISCRETE;                     
00480     } RETCODES;                       
00482   unsigned char safpb_safesm_index;   
00484   union
00485     {
00486     struct safpb_verify VERIFY;                 
00487     struct safpb_auth   AUTH;                   
00488     struct safpb_xauth  XAUTH;                  
00489     struct safpb_audit  AUDIT;                  
00490     struct safpb_stat   STAT;                   
00491     struct safpb_admin  ADMIN;                  
00492     struct safpb_update UPDATE;                 
00493     } REQUESTS;                                 
00495 } Safpb_Parameter_Block;
00496 
00497 /* ---------------------------------------------------------------- */
00498 /* E n d   o f   S A F A P I   p a r a m e t e r   l i s t          */
00499 /* ---------------------------------------------------------------- */
00500 
00501 
00502 /* ---------------------------------------------------------------- */
00503 /* S A F A P I   7 8 - l e v e l   c o n s t a n t s                */
00504 /* ---------------------------------------------------------------- */
00505 /*                                                                  */
00506 /* SAP API version (safpb_version)                                  */
00507 /* ---------------------------------------------------------------- */
00508 #define saf78_VERSION_1                  1     
00510 /*                                                                  */
00511 /* SAF request types (safpb_request)                                */
00512 /* ---------------------------------------------------------------- */
00515 #define saf78_REQUEST_VERIFY             1   
00516 #define saf78_REQUEST_AUTH               2   
00517 #define saf78_REQUEST_AUDIT              3   
00518 #define saf78_REQUEST_STAT               4   
00519 #define saf78_REQUEST_XAUTH              5   
00520 #define saf78_REQUEST_ADMIN              6   
00521 #define saf78_REQUEST_UPDATE             7   
00523 
00524 
00526 
00527 /*                                                                  */
00528 /* VERIFY request qualifiers (safpb_type)                           */
00529 /* ---------------------------------------------------------------- */
00530 #define saf78_TYPE_ENVIR_CREATE          1   
00531 #define saf78_TYPE_ENVIR_DESTROY         2   
00532 #define saf78_TYPE_TOKEN_CREATE          3   
00533 #define saf78_TYPE_TOKEN_DELETE          4   
00535 /*                                                                  */
00536 /* AUTH access attributes (safpb_type)                              */
00537 /* ---------------------------------------------------------------- */
00538 #define saf78_TYPE_ATTR_NONE             0   
00539 #define saf78_TYPE_ATTR_STATUS_ACC       1   
00540 #define saf78_TYPE_ATTR_READ             2   
00541 #define saf78_TYPE_ATTR_UPDATE           4   
00542 #define saf78_TYPE_ATTR_CONTROL          8   
00543 #define saf78_TYPE_ATTR_EXECUTE         16   
00544 #define saf78_TYPE_ATTR_ALTER          128   
00546 /*                                                                  */
00547 /* AUDIT result qualifiers (safpb_type)                             */
00548 /* ---------------------------------------------------------------- */
00549 #define saf78_TYPE_RESULT_SUCCESS        1   
00550 #define saf78_TYPE_RESULT_FAILURE        2   
00552 /*                                                                  */
00553 /* STAT query types (safpb_type)                                    */
00554 /* ---------------------------------------------------------------- */
00555 #define saf78_TYPE_QUERY_ESM             1   
00556 #define saf78_TYPE_QUERY_CLASS           2   
00558 
00559 /*                                                                  */
00560 /* ADMIN subcommand types (safpb_type)                              */
00561 /* ---------------------------------------------------------------- */
00564 #define saf78_TYPE_ADMIN_ADDUSER         1  
00565 #define saf78_TYPE_ADMIN_ADDGROUP        2  
00566 #define saf78_TYPE_ADMIN_ADDCLASS       13  
00567 #define saf78_TYPE_ADMIN_ADDRES          3  
00568 #define saf78_TYPE_ADMIN_ALTUSER         4  
00569 #define saf78_TYPE_ADMIN_ALTGROUP        5  
00570 #define saf78_TYPE_ADMIN_ALTCLASS       14  
00571 #define saf78_TYPE_ADMIN_ALTRES          6  
00572 #define saf78_TYPE_ADMIN_DELUSER         7  
00573 #define saf78_TYPE_ADMIN_DELGROUP        8  
00574 #define saf78_TYPE_ADMIN_DELCLASS       20  
00575 #define saf78_TYPE_ADMIN_DELRES          9  
00576 #define saf78_TYPE_ADMIN_LISTUSER       10  
00577 #define saf78_TYPE_ADMIN_LISTGROUP      11  
00578 #define saf78_TYPE_ADMIN_LISTCLASS      19  
00579 #define saf78_TYPE_ADMIN_LISTRES        12  
00580 #define saf78_TYPE_ADMIN_SETPSWD        15  
00581 #define saf78_TYPE_ADMIN_PERMIT         16  
00582 #define saf78_TYPE_ADMIN_SETOPTS        17  
00583 #define saf78_TYPE_ADMIN_FREELIST       18  
00585 
00586 /*                                                                  */
00587 /* UPDATE object types (safpb_type)                                 */
00588 /* ---------------------------------------------------------------- */
00591 #define saf78_TYPE_UPDATE_USER          1   
00592 #define saf78_TYPE_UPDATE_GROUP         2   
00593 #define saf78_TYPE_UPDATE_RESOURCE      3   
00594 #define saf78_TYPE_UPDATE_USERS         4   
00595 #define saf78_TYPE_UPDATE_GROUPS        5   
00596 #define saf78_TYPE_UPDATE_RESOURCES     6   
00597 #define saf78_TYPE_UPDATE_ALL           0   
00599 
00600 /*                                                                  */
00601 /* Subsystem identifiers (safpb_modifier)                           */
00602 /* ---------------------------------------------------------------- */
00605 #define saf78_MODIFIER_NONE              0   
00606 #define saf78_MODIFIER_CICS              1   
00607 #define saf78_MODIFIER_IMS               2   
00608 #define saf78_MODIFIER_JCL               3   
00609 #define saf78_MODIFIER_ESMAC             4   
00610 #define saf78_MODIFIER_WEB               5   
00611 #define saf78_MODIFIER_BINP              6   
00612 #define saf78_MODIFIER_CGI               7   
00613 #define saf78_MODIFIER_MFDS              8   
00615 
00616 /*                                                                  */
00617 /* Flags (safpb_flag)                                               */
00618 /* ---------------------------------------------------------------- */
00621 #define saf78_FLAG_PW_ENCRYPT            1   
00622 #define saf78_VER_NO_PASSWORD            2   
00623 #define saf78_VER_PT_TICKET              4   
00624 #define saf78_VER_PASSTOKEN              8   
00625 #define saf78_VER_PT_SURROGATE          16   
00626 #define saf78_FLAG_API_TEST             64   
00627 #define saf78_FLAG_API_DISPLAY         128   
00629 
00630 /*                                                                  */
00631 /* String codeset identifier (safpb_codeset)                        */
00632 /* ---------------------------------------------------------------- */
00635 #define saf78_CODESET_UTF8               0   
00637 
00638 
00639 /*                                                                  */
00640 /* z/OS system resource classes (REQUESTS.AUTH.safpb_auth_class)    */
00641 /* ---------------------------------------------------------------- */
00644 #define saf78_CLASS_DATASET              "DATASET "  
00645 /* ---------------------------------------------------------------- */
00646 #define saf78_CLASS_ALCSAUTH             "ALCSAUTH"  
00647 #define saf78_CLASS_APPCLU               "APPCLU  "  
00648 #define saf78_CLASS_APPCPORT             "APPCPORT"  
00649 #define saf78_CLASS_APPCSERV             "APPCSERV"  
00650 #define saf78_CLASS_APPCSI               "APPCSI  "  
00651 #define saf78_CLASS_APPCTP               "APPCTP  "  
00652 #define saf78_CLASS_APPL                 "APPL    "  
00653 #define saf78_CLASS_CACHECLS             "CACHECLS"  
00654 #define saf78_CLASS_CBIND                "CBIND   "  
00655 #define saf78_CLASS_CDT                  "CDT     "  
00656 #define saf78_CLASS_CONSOLE              "CONSOLE "  
00657 #define saf78_CLASS_CSFKEYS              "CSFKEYS "  
00658 #define saf78_CLASS_CSFSERV              "CSFSERV "  
00659 #define saf78_CLASS_DASDVOL              "DASDVOL "  
00660 #define saf78_CLASS_DBNFORM              "DBNFORM "  
00661 #define saf78_CLASS_DEVICES              "DEVICES "  
00662 #define saf78_CLASS_DIGTCERT             "DIGTCERT"  
00663 #define saf78_CLASS_DIGTCRIT             "DIGTCRIT"  
00664 #define saf78_CLASS_DIGTNMAP             "DIGTNMAP"  
00665 #define saf78_CLASS_DIGTRING             "DIGTRING"  
00666 #define saf78_CLASS_DIRAUTH              "DIRAUTH "  
00667 #define saf78_CLASS_DLFCLASS             "DLFCLASS"  
00668 #define saf78_CLASS_FACILITY             "FACILITY"  
00669 #define saf78_CLASS_FIELD                "FIELD   "  
00670 #define saf78_CLASS_GCSFKEYS             "GCSFKEYS"  
00671 #define saf78_CLASS_GDASDVOL             "GDASDVOL"  
00672 #define saf78_CLASS_GLOBAL               "GLOBAL  "  
00673 #define saf78_CLASS_GMBR                 "GMBR    "  
00674 #define saf78_CLASS_GSDSF                "GSDSF   "  
00675 #define saf78_CLASS_GTERMINL             "GTERMINL"  
00676 #define saf78_CLASS_GXFACILI             "GXFACILI"  
00677 #define saf78_CLASS_IBMOPC               "IBMOPC  "  
00678 #define saf78_CLASS_JESINPUT             "JESINPUT"  
00679 #define saf78_CLASS_JESJOBS              "JESJOBS "  
00680 #define saf78_CLASS_JESSPOOL             "JESSPOOL"  
00681 #define saf78_CLASS_KEYSMSTR             "KEYSMSTR"  
00682 #define saf78_CLASS_LDAPBIND             "LDAPBIND"  
00683 #define saf78_CLASS_LOGSTRM              "LOGSTRM "  
00684 #define saf78_CLASS_NODES                "NODES   "  
00685 #define saf78_CLASS_NODMBR               "NODMBR  "  
00686 #define saf78_CLASS_OPERCMDS             "OPERCMDS"  
00687 #define saf78_CLASS_PMBR                 "PMBR    "  
00688 #define saf78_CLASS_PROGRAM              "PROGRAM "  
00689 #define saf78_CLASS_PROPCNTL             "PROPCNTL"  
00690 #define saf78_CLASS_PSFMPL               "PSFMPL  "  
00691 #define saf78_CLASS_PTKTDATA             "PTKTDATA"  
00692 #define saf78_CLASS_RACGLIST             "RACGLIST"  
00693 #define saf78_CLASS_RACFEVNT             "RACFEVNT"  
00694 #define saf78_CLASS_RRSFDATA             "RRSFDATA"  
00695 #define saf78_CLASS_RVARSMBR             "RVARSMBR"  
00696 #define saf78_CLASS_SCDMBR               "SCDMBR  "  
00697 #define saf78_CLASS_SDSF                 "SDSF    "  
00698 #define saf78_CLASS_SECDATA              "SECDATA "  
00699 #define saf78_CLASS_SECLABEL             "SECLABEL"  
00700 #define saf78_CLASS_SECLMBR              "SECLMBR "  
00701 #define saf78_CLASS_SERVAUTH             "SERVAUTH"  
00702 #define saf78_CLASS_SERVER               "SERVER  "  
00703 #define saf78_CLASS_SMESSAGE             "SMESSAGE"  
00704 #define saf78_CLASS_SOMDOBJS             "SOMDOBJS"  
00705 #define saf78_CLASS_STARTED              "STARTED "  
00706 #define saf78_CLASS_SURROGAT             "SURROGAT"  
00707 #define saf78_CLASS_SYSMVIEW             "SYSMVIEW"  
00708 #define saf78_CLASS_TAPEVOL              "TAPEVOL "  
00709 #define saf78_CLASS_TEMPDSN              "TEMPDSN "  
00710 #define saf78_CLASS_TERMINAL             "TERMINAL"  
00711 #define saf78_CLASS_VTAMAPPL             "VTAMAPPL"  
00712 #define saf78_CLASS_WRITER               "WRITER  "  
00713 #define saf78_CLASS_XFACILIT             "XFACILIT"  
00714 /*                                                                  */
00715 /* CICS resource classes                                            */
00716 /* ---------------------------------------------------------------- */
00717 #define saf78_CLASS_ACICSPCT             "ACICSPCT"  
00718 #define saf78_CLASS_BCICSPCT             "BCICSPCT"  
00719 #define saf78_CLASS_CCICSCMD             "CCICSCMD"  
00720 #define saf78_CLASS_CPSMOBJ              "CPSMOBJ "  
00721 #define saf78_CLASS_CPSMXMP              "CPSMXMP "  
00722 #define saf78_CLASS_DCICSDCT             "DCICSDCT"  
00723 #define saf78_CLASS_ECICSDCT             "ECICSDCT"  
00724 #define saf78_CLASS_FCICSFCT             "FCICSFCT"  
00725 #define saf78_CLASS_GCICSTRN             "GCICSTRN"  
00726 #define saf78_CLASS_GCPSMOBJ             "GCPSMOBJ"  
00727 #define saf78_CLASS_HCICSFCT             "HCICSFCT"  
00728 #define saf78_CLASS_JCICSJCT             "JCICSJCT"  
00729 #define saf78_CLASS_KCICSJCT             "KCICSJCT"  
00730 #define saf78_CLASS_MCICSPPT             "MCICSPPT"  
00731 #define saf78_CLASS_NCICSPPT             "NCICSPPT"  
00732 #define saf78_CLASS_PCICSPSB             "PCICSPSB"  
00733 #define saf78_CLASS_QCICSPSB             "QCICSPSB"  
00734 #define saf78_CLASS_SCICSTST             "SCICSTST"  
00735 #define saf78_CLASS_TCICSTRN             "TCICSTRN"  
00736 #define saf78_CLASS_UCICSTST             "UCICSTST"  
00737 #define saf78_CLASS_VCICSCMD             "VCICSCMD"  
00738 /*                                                                  */
00739 /* DB2 resource classes                                             */
00740 /* ---------------------------------------------------------------- */
00741 #define saf78_CLASS_DSNADM               "DSNADM  "  
00742 #define saf78_CLASS_DSNR                 "DSNR    "  
00743 #define saf78_CLASS_GDSNBP               "GDSNBP  "  
00744 #define saf78_CLASS_GDSNCL               "GDSNCL  "  
00745 #define saf78_CLASS_GDSNDB               "GDSNDB  "  
00746 #define saf78_CLASS_GDSNJR               "GDSNJR  "  
00747 #define saf78_CLASS_GDSNPK               "GDSNPK  "  
00748 #define saf78_CLASS_GDSNPN               "GDSNPN  "  
00749 #define saf78_CLASS_GDSNSC               "GDSNSC  "  
00750 #define saf78_CLASS_GDSNSG               "GDSNSG  "  
00751 #define saf78_CLASS_GDSNSM               "GDSNSM  "  
00752 #define saf78_CLASS_GDSNSP               "GDSNSP  "  
00753 #define saf78_CLASS_GDSNSQ               "GDSNSQ  "  
00754 #define saf78_CLASS_GDSNTB               "GDSNTB  "  
00755 #define saf78_CLASS_GDSNTS               "GDSNTS  "  
00756 #define saf78_CLASS_GDSNUT               "GDSNUT  "  
00757 #define saf78_CLASS_MDSNBP               "MDSNBP  "  
00758 #define saf78_CLASS_MDSNCL               "MDSNCL  "  
00759 #define saf78_CLASS_MDSNDB               "MDSNDB  "  
00760 #define saf78_CLASS_MDSNJR               "MDSNJR  "  
00761 #define saf78_CLASS_MDSNPK               "MDSNPK  "  
00762 #define saf78_CLASS_MDSNPN               "MDSNPN  "  
00763 #define saf78_CLASS_MDSNSC               "MDSNSC  "  
00764 #define saf78_CLASS_MDSNSG               "MDSNSG  "  
00765 #define saf78_CLASS_MDSNSM               "MDSNSM  "  
00766 #define saf78_CLASS_MDSNSP               "MDSNSP  "  
00767 #define saf78_CLASS_MDSNSQ               "MDSNSQ  "  
00768 #define saf78_CLASS_MDSNTB               "MDSNTB  "  
00769 #define saf78_CLASS_MDSNTS               "MDSNTS  "  
00770 #define saf78_CLASS_MDSNUF               "MDSNUF  "  
00771 #define saf78_CLASS_MDSNUT               "MDSNUT  "  
00772 /*                                                                  */
00773 /* DCE resource classes                                             */
00774 /* ---------------------------------------------------------------- */
00775 #define saf78_CLASS_DCEUUIDS             "DCEUUIDS"  
00776 #define saf78_CLASS_RAUDITX              "RAUDITX "  
00777 #define saf78_CLASS_EJBROLE              "EJBROLE "  
00778 #define saf78_CLASS_GEJBROLE             "GEJBROLE"  
00779 #define saf78_CLASS_JAVA                 "JAVA    "  
00780 /*                                                                  */
00781 /* IMS resource classes                                             */
00782 /* ---------------------------------------------------------------- */
00783 #define saf78_CLASS_AIMS                 "AIMS    "  
00784 #define saf78_CLASS_CIMS                 "CIMS    "  
00785 #define saf78_CLASS_DIMS                 "DIMS    "  
00786 #define saf78_CLASS_FIMS                 "FIMS    "  
00787 #define saf78_CLASS_GIMS                 "GIMS    "  
00788 #define saf78_CLASS_HIMS                 "HIMS    "  
00789 #define saf78_CLASS_IIMS                 "IIMS    "  
00790 #define saf78_CLASS_JIMS                 "JIMS    "  
00791 #define saf78_CLASS_LIMS                 "LIMS    "  
00792 #define saf78_CLASS_MIMS                 "MIMS    "  
00793 #define saf78_CLASS_OIMS                 "OIMS    "  
00794 #define saf78_CLASS_PIMS                 "PIMS    "  
00795 #define saf78_CLASS_QIMS                 "QIMS    "  
00796 #define saf78_CLASS_SIMS                 "SIMS    "  
00797 #define saf78_CLASS_TIMS                 "TIMS    "  
00798 #define saf78_CLASS_UIMS                 "UIMS    "  
00799 #define saf78_CLASS_WIMS                 "WIMS    "  
00800 /*                                                                  */
00801 /* Infoprint Server classes                                         */
00802 /* ---------------------------------------------------------------- */
00803 #define saf78_CLASS_PRINTSRV             "PRINTSRV"  
00804 /*                                                                  */
00805 /* Info/Mgmt (Tivoli Service Desk) classes                          */
00806 /* ---------------------------------------------------------------- */
00807 #define saf78_CLASS_GINFOMAN             "GINFOMAN"  
00808 #define saf78_CLASS_INFOMAN              "INFOMAN "  
00809 /*                                                                  */
00810 /* LFS/ESA classes                                                  */
00811 /* ---------------------------------------------------------------- */
00812 #define saf78_CLASS_LFSCLASS             "LFSCLASS"  
00813 /*                                                                  */
00814 /* License Manager classes                                          */
00815 /* ---------------------------------------------------------------- */
00816 #define saf78_CLASS_ILMADMIN             "ILMADMIN"  
00817 /*                                                                  */
00818 /* Lotus Notes for z/OS classes                                     */
00819 /* ---------------------------------------------------------------- */
00820 #define saf78_CLASS_NDSLINK              "NDSLINK "  
00821 #define saf78_CLASS_NOTELINK             "NOTELINK"  
00822 /*                                                                  */
00823 /* MQSeries classes                                                 */
00824 /* ---------------------------------------------------------------- */
00825 #define saf78_CLASS_GMQADMIN             "GMQADMIN"  
00826 #define saf78_CLASS_GMQCHAN              "GMQCHAN "  
00827 #define saf78_CLASS_GMQNLIST             "GMQNLIST"  
00828 #define saf78_CLASS_GMQPROC              "GMQPROC "  
00829 #define saf78_CLASS_GMQQUEUE             "GMQQUEUE"  
00830 #define saf78_CLASS_MQADMIN              "MQADMIN "  
00831 #define saf78_CLASS_MQCHAN               "MQCHAN  "  
00832 #define saf78_CLASS_MQCMDS               "MQCMDS  "  
00833 #define saf78_CLASS_MQCONN               "MQCONN  "  
00834 #define saf78_CLASS_MQNLIST              "MQNLIST "  
00835 #define saf78_CLASS_MQPROC               "MQPROC  "  
00836 #define saf78_CLASS_MQQUEUE              "MQQUEUE "  
00837 /*                                                                  */
00838 /* NetView classes                                                  */
00839 /* ---------------------------------------------------------------- */
00840 #define saf78_CLASS_NETCMDS              "NETCMDS "  
00841 #define saf78_CLASS_NETSPAN              "NETSPAN"  
00842 #define saf78_CLASS_NVASAPDT             "NVASAPDT"  
00843 #define saf78_CLASS_PTKTVAL              "PTKTVAL "  
00844 #define saf78_CLASS_RMTOPS               "RMTOPS  "  
00845 #define saf78_CLASS_RODMMGR              "RODMMGR "  
00846 /*                                                                  */
00847 /* Network Authentication Service classes                           */
00848 /* ---------------------------------------------------------------- */
00849 #define saf78_CLASS_KERBLINK             "KERBLINK"  
00850 #define saf78_CLASS_REALM                "REALM   "  
00851 /*                                                                  */
00852 /* SMS (DFSMSdfp) classes                                           */
00853 /* ---------------------------------------------------------------- */
00854 #define saf78_CLASS_MGMTCLAS             "MGMTCLAS"  
00855 #define saf78_CLASS_STORCLAS             "STORCLAS"  
00856 #define saf78_CLASS_SUBSYSNM             "SUBSYSNM"  
00857 /*                                                                  */
00858 /* Tivoli classes                                                   */
00859 /* ---------------------------------------------------------------- */
00860 #define saf78_CLASS_ROLE                 "ROLE    "  
00861 #define saf78_CLASS_TMEADMIN             "TMEADMIN"  
00862 /*                                                                  */
00863 /* TSO classes                                                      */
00864 /* ---------------------------------------------------------------- */
00865 #define saf78_CLASS_ACCTNUM              "ACCTNUM "  
00866 #define saf78_CLASS_PERFGRP              "PERFGRP "  
00867 #define saf78_CLASS_TSOAUTH              "TSOAUTH "  
00868 #define saf78_CLASS_TSOPROC              "TSOPROC "  
00869 /*                                                                  */
00870 /* z/OS UNIX classes                                                */
00871 /* ---------------------------------------------------------------- */
00872 #define saf78_CLASS_DIRACC               "DIRACC  "  
00873 #define saf78_CLASS_DIRSRCH              "DIRSRCH "  
00874 #define saf78_CLASS_FSOBJ                "FSOBJ   "  
00875 #define saf78_CLASS_FSSEC                "FSSEC   "  
00876 #define saf78_CLASS_IPCOBJ               "IPCOBJ  "  
00877 #define saf78_CLASS_PROCACT              "PROCACT "  
00878 #define saf78_CLASS_PROCESS              "PROCESS "  
00879 #define saf78_CLASS_UNIXMAP              "UNIXMAP "  
00880 #define saf78_CLASS_UNIXPRIV             "UNIXPRIV"  
00881 /*                                                                  */
00882 /* ES resource classes                                              */
00883 /* ---------------------------------------------------------------- */
00884 #define saf78_CLASS_ESRDCT               "ESRDCT  "  
00885 #define saf78_CLASS_ESRFCT               "ESRFCT  "  
00886 #define saf78_CLASS_ESRGRP               "ESRGRP  "  
00887 #define saf78_CLASS_ESRICE               "ESRICE  "  
00888 #define saf78_CLASS_ESRIMS               "ESRIMS  "  
00889 #define saf78_CLASS_ESRJCT               "ESRJCT  "  
00890 #define saf78_CLASS_ESRJES               "ESRJES  "  
00891 #define saf78_CLASS_ESRMPR               "ESRMPR  "  
00892 #define saf78_CLASS_ESRPCT               "ESRPCT  "  
00893 #define saf78_CLASS_ESRPLT               "ESRPLT  "  
00894 #define saf78_CLASS_ESRPPT               "ESRPPT  "  
00895 #define saf78_CLASS_ESRSIT               "ESRSIT  "  
00896 #define saf78_CLASS_ESRSNT               "ESRSNT  "  
00897 #define saf78_CLASS_ESRSUP               "ESRSUP  "  
00898 #define saf78_CLASS_ESRSYS6              "ESRSYS6 "  
00899 #define saf78_CLASS_ESRSYSC              "ESRSYSC "  
00900 #define saf78_CLASS_ESRTABLE             "ESRTABLE"  
00901 #define saf78_CLASS_ESRTCT               "ESRTCT  "  
00902 #define saf78_CLASS_ESRTERM              "ESRTERM "  
00903 #define saf78_CLASS_ESRTST               "ESRTST  "  
00904 #define saf78_CLASS_ESRTTYPE             "ESRTTYPE"  
00905 #define saf78_CLASS_ESRXAT               "ESRXAT  "  
00906 #define saf78_CLASS_ESRXLT               "ESRXLT  "  
00907 #define saf78_CLASS_ESRCP                "ESRCP   "     
00908 #define saf78_CLASS_ESRIIN               "ESRIIN  "    
00909 #define saf78_CLASS_ESRIMPR              "ESRIMPR "   
00910 #define saf78_CLASS_ESRJIN               "ESRJIN  "    
00911 #define saf78_CLASS_ESRJPR               "ESRJPR  "    
00912 #define saf78_CLASS_ESRLIS               "ESRLIS  "    
00913 #define saf78_CLASS_ESRPKG               "ESRPKG  "    
00914 #define saf78_CLASS_ESRRQH               "ESRRQH  "    
00915 #define saf78_CLASS_ESRSRV               "ESRSRV  "    
00916 #define saf78_CLASS_ESRSVC               "ESRSVC  "    
00917 #define saf78_CLASS_ESRXRM               "ESRXRM  "    
00918 #define saf78_CLASS_MFDSADMN             "MFDSADMN"  
00919 #define saf78_CLASS_MFDSREP              "MFDSREP "    
00920 
00922 /*                                                                  */
00923 /* ADMIN well-known keywords                                        */
00924 /* ---------------------------------------------------------------- */
00927 #define saf78_ADMIN_ACL             "ACL"       
00928 #define saf78_ADMIN_ALLOW_ON        "ALLOW"     
00929 #define saf78_ADMIN_CLASS           "CLASS"     
00930 #define saf78_ADMIN_CUST_TXT        "CUSTOM"    
00931 #define saf78_ADMIN_DEF_GROUP       "DEFGROUP"  
00932 #define saf78_ADMIN_DESCRIPT        "DESC"      
00933 #define saf78_ADMIN_DSP_NAME        "NAME"      
00934 #define saf78_ADMIN_EXPIRATION      "EXPIRES"   
00935 #define saf78_ADMIN_GROUPNAME       "GROUP"     
00936 #define saf78_ADMIN_GROUPS          "GROUPS"    
00937 #define saf78_ADMIN_GRP_PREFIX      "GRPPFX"    
00938 #define saf78_ADMIN_MEMBERS         "MEMBERS"   
00939 #define saf78_ADMIN_OPER_CLASS      "OPCLASS"   
00940 #define saf78_ADMIN_OPER_ID         "OPID"      
00941 #define saf78_ADMIN_PASS_CHG        "PASSCHG"   
00942 #define saf78_ADMIN_PASS_EXP        "PASSEXP"   
00943 #define saf78_ADMIN_PASSWORD        "PASSWORD"  
00944 #define saf78_ADMIN_PRIORITY        "PRIORITY"  
00945 #define saf78_ADMIN_RESNAME         "RESOURCE"  
00946 #define saf78_ADMIN_TIMEOUT         "TIMEOUT"   
00947 #define saf78_ADMIN_TOK_CREATE      "GETTOKEN"  
00948 #define saf78_ADMIN_TOK_USE         "USETOKEN"  
00949 #define saf78_ADMIN_UID             "UID"       
00950 #define saf78_ADMIN_USERNAME        "USER"      
00952 
00953 /*                                                                  */
00954 /* XAUTH permissions bits (REQUESTS.XAUTH.safpb_xauth_PERMISSIONS)  */
00955 /* ---------------------------------------------------------------- */
00958 #define saf78_PERM_EXECUTE               (1<<0) 
00959 #define saf78_PERM_READ                  (1<<1) 
00960 #define saf78_PERM_UPDATE                (1<<2) 
00961 #define saf78_PERM_ADD                   (1<<3) 
00962 #define saf78_PERM_DELETE                (1<<4) 
00963 #define saf78_PERM_CONTROL               (1<<5) 
00964 #define saf78_PERM_ALTER                 (1<<6) 
00966 
00967 
00968 /*                                                                  */
00969 /* Admin Update Notification action types (safpb_update_ACTION)     */
00970 /* ---------------------------------------------------------------- */
00973 #define saf78_UPDATE_ADD                 1
00974 #define saf78_UPDATE_MODIFY              2
00975 #define saf78_UPDATE_DELETE              3
00976 #define saf78_UPDATE_OTHER               0
00977 
00980 /* ---------------------------------------------------------------- */
00981 /* S A F A P I   r e t u r n   &   r e a s o n   c o d e s          */
00982 /* ---------------------------------------------------------------- */
00983 
01004 
01009 /* VERIFY return and reason codes                                   */
01010 /* ---------------------------------------------------------------- */
01011 
01013    #define saf78_SAF_RC_SUCCESS              0 
01015      #define saf78_RC_NORMAL                   0
01016 
01017          #define saf78_RS_NORMAL                   0
01018          #define saf78_RS_PWRD_CHANGED             4
01019 
01020      #define saf78_RC_TOKEN_INFO               4
01021 
01023          #define saf78_RS_TOKEN_TOO_LARGE          12
01024          #define saf78_RS_STOKEN_TOO_LARGE         16
01025 
01028    #define saf78_SAF_RC_NOT_COMPLETE         4 
01030      #define saf78_RC_NO_DECISION              0 
01032          #define saf78_RS_ESM_NOT_CALLED           0
01033 
01034      #define saf78_RC_NO_USER_PROFILE          4
01035 
01036      #define saf78_RC_SECURITY_NOT_ACTIVE      32
01037 
01038      #define saf78_RC_NO_FACILITY_CLASS        88
01039 
01041    #define saf78_SAF_RC_FAILURE             8 
01042 /* #define saf78_RC_NO_USER_PROFILE            4 */
01043 
01045      #define saf78_RC_PWRD_INVALID             8
01046      #define saf78_RC_PWRD_EXPIRED             12
01047      #define saf78_RC_PWRD_CHANGE_ERR          16
01048      #define saf78_RC_USER_NOT_IN_GROUP        20
01049      #define saf78_RC_INST_EXIT                24
01050      #define saf78_RC_USER_REVOKED             28
01051      #define saf78_RC_GROUP_REVOKED            36
01052      #define saf78_RC_OID_REQUIRED             40
01053      #define saf78_RC_OID_INVALID              44
01054      #define saf78_RC_PORT_OF_ENTRY_ERR        48
01055 
01058          #define saf78_RS_PORT                     0
01059          #define saf78_RS_USER_TIME                4
01060          #define saf78_RS_PORT_TIME                8
01061 
01064      #define saf78_RC_NOT_AUTH_FOR_APPL        52
01065      #define saf78_RC_SECLABEL_FAIL            56
01066 
01069          #define saf78_RS_MLACTIVE_REQUIRES        4
01070          #define saf78_RS_NOT_AUTH_SECLABEL        8
01071          #define saf78_RS_MULTILEVEL_DOM           12
01072          #define saf78_RS_DISJOINT                 16
01073          #define saf78_RS_NOT_EQUIVALENT           20
01074 
01077      #define saf78_RC_DEFAULT_TOKEN_USED       68
01078      #define saf78_RC_UNPRIV_TRANQUIL          72
01079      #define saf78_RC_NODES_CHECK_FAIL         76
01080 
01083          #define saf78_RS_NODE_NOT_ALLOWED         0
01084          #define saf78_RS_USERID_UACC_NONE         4
01085          #define saf78_RS_GROUP_UACC_NONE          8
01086          #define saf78_RS_SECLABEL_UACC_NONE       12
01087          #define saf78_RS_NO_LOCAL_SUBMIT          16
01088          #define saf78_RS_REVERIFY_FAIL            20
01089 
01091      #define saf78_RC_SURROGATE_SUB_FAIL       80
01092 
01094          #define saf78_RS_SURROGATE_INACTIVE       4
01095          #define saf78_RS_SUB_NOT_PERMITTED        8
01096          #define saf78_RS_JOB_SECLABEL             12
01097 
01100      #define saf78_RC_JESJOBS_CHECK_FAIL       84
01101      #define saf78_RC_DATABASE_ERROR           92
01102      #define saf78_RC_CHECK_SUBPARAM           100
01103      #define saf78_RC_TOKEN_REFUSED            104 
01107          #define saf78_RS_TOKEN_FORMAT             4 
01108          #define saf78_RS_TOKEN_EXPIRED            8 
01109          #define saf78_RS_TOKEN_TYPE              12 
01110          #define saf78_RS_TOKEN_INVALID           16 
01111          #define saf78_RS_TOKEN_ERROR             20
01112 
01114 
01115 /* AUTH return and reason codes                                     */
01116 /* ---------------------------------------------------------------- */
01117 
01118 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01119            #define saf78_RC_USER_IS_AUTH             0
01120 /* #define saf78_RS_NORMAL 0                                        */
01121                #define saf78_RS_RESOURCE_WARN            4
01122                #define saf78_RS_TAPE_VTOC                16
01123                #define saf78_RS_TAPE_CAN_VTOC            32
01124                #define saf78_RS_TAPE_NO_VTOC             36
01125            #define saf78_RC_ACCESS_INFO              20
01126                #define saf78_RS_ACCESS_NONE              0
01127                #define saf78_RS_ACCESS_READ              4
01128                #define saf78_RS_ACCESS_UPDATE            8
01129                #define saf78_RS_ACCESS_CONTROL           12
01130                #define saf78_RS_ACCESS_ALTER             16
01131 
01132 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01133 /* #define saf78_RC_NO_DECISION 0                                   */
01134 /* #define saf78_RS_ESM_NOT_CALLED 0                                */
01135            #define saf78_RC_RESOURCE_NOT_PROT        4
01136                #define saf78_RS_NO_RESOURCE_PROF         0
01137                #define saf78_RS_STATUS_ERASE             4
01138 
01139 /* #define saf78_SAF_RC_FAILURE 8                                   */
01140            #define saf78_RC_USER_NOT_AUTH            8
01141                #define saf78_RS_PROTALL_NO_PROF          0
01142                #define saf78_RS_USER_ERASE               4
01143                #define saf78_RS_USER_TAPEVOL             8
01144                #define saf78_RS_USER_TAPE_DS             12
01145                #define saf78_RS_USER_TAPE_BLP            16
01146                #define saf78_RS_NON_CATALOGED            20
01147                #define saf78_RS_USER_AUTH_TRANQ          24
01148                #define saf78_RS_EXEC_ATTEMPT_READ        28
01149                #define saf78_RS_SECLABEL_NOT_DOM         32
01150                #define saf78_RS_SECLABEL_NEV_DOM         36
01151                #define saf78_RS_USER_NO_SECLABEL         40
01152                #define saf78_RS_COND_ACCESS              44
01153            #define saf78_RC_OLDVOL_ERROR             12
01154            #define saf78_RC_THIRD_PARTY_FAIL         16
01155 /* #define saf78_RC_CHECK_SUBPARAM 100                              */
01156 /*                                                                  */
01157 /* AUDIT return and reason codes                                    */
01158 /* ---------------------------------------------------------------- */
01159 
01160 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01161 /* #define saf78_RC_NORMAL 0                                        */
01162 /* #define saf78_RS_NORMAL 0                                        */
01163 
01164 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01165 /* #define saf78_RC_NO_DECISION 0                                   */
01166 /* #define saf78_RS_ESM_NOT_CALLED 0                                */
01167 /* #define saf78_RC_MACT_CINACT 4                                   */
01168 
01169 /* #define saf78_SAF_RC_FAILURE 8                                   */
01170            #define saf78_RC_NO_CLASS                 8
01171            #define saf78_RC_INTERNAL_ERROR           12
01172            #define saf78_RC_PARAM_ERROR              16
01173                #define saf78_RS_EVENT_INVALID            0
01174                #define saf78_RS_QUAL_INVALID             4
01175                #define saf78_RS_BAD_LIST_VER             8
01176                #define saf78_RS_BAD_LIST_LEN             12
01177                #define saf78_RS_ENTITY_INVALID           16
01178            #define saf78_RC_NO_AUDIT_DONE            20
01179 /*                                                                  */
01180 /* STAT return and reason codes                                     */
01181 /* ---------------------------------------------------------------- */
01182 
01183 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01184 /* #define saf78_RC_NORMAL 0                                        */
01185 /* #define saf78_RS_NORMAL 0                                        */
01186 
01187 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01188 /* #define saf78_RC_NO_DECISION 0                                   */
01189 /* #define saf78_RS_ESM_NOT_CALLED 0                                */
01190            #define saf78_RC_MACT_CINACT              4
01191            #define saf78_RC_MACT_NO_CLASS            8
01192            #define saf78_RC_MINACT_CACT              12
01193            #define saf78_RC_MINACT_CINACT            16
01194            #define saf78_RC_MINACT_NO_CLASS          20
01195            #define saf78_RC_NO_ESM                   24
01196            #define saf78_RC_BAD_PARMLIST             28
01197 /* #define saf78_RC_CHECK_SUBPARAM 100                              */
01198 
01199 /*                                                                  */
01200 /* ADMIN return and reason codes                                    */
01201 /* ---------------------------------------------------------------- */
01202 
01203 /*     #define saf78_SAF_RC_SUCCESS              0                  */
01204 /*         #define saf78_RC_NORMAL                   0              */
01205 /*             #define saf78_RS_NORMAL                   0          */
01206 
01207 /*     #define saf78_SAF_RC_NOT_COMPLETE         4                  */
01208 /*         #define saf78_RC_NO_DECISION              0              */
01209 /*             #define saf78_RS_ESM_NOT_CALLED           0          */
01210                #define saf78_RS_ESM_DECLINED             4
01211            #define saf78_RC_KEYWORD_ERROR            4  
01212                #define saf78_RS_KEYWORD_UNKNOWN          4
01213 
01214 /*     #define saf78_SAF_RC_FAILURE              8                  */
01215            #define saf78_RC_VALUE_ERROR              4
01216                #define saf78_RS_VALUE_INVALID            4
01217                #define saf78_RS_VALUE_LENGTH             8
01218            #define saf78_RC_DENIED                   8
01219 /*                                                                  */
01220 /* STAT return and reason codes                                     */
01221 /* ---------------------------------------------------------------- */
01222 
01223 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01224 /* #define saf78_RC_NORMAL 0                                        */
01225 /* #define saf78_RS_NORMAL 0                                        */
01226 
01227 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01228 
01229 /*                                                                  */
01230 /* Return and reason codes common to all requests                   */
01231 /* ---------------------------------------------------------------- */
01232 
01233        #define saf78_SAF_RC_PARM_ERROR           12
01234            #define saf78_RC_VERSION                  1
01235            #define saf78_RC_REQUEST                  2
01236            #define saf78_RC_TYPE                     3
01237            #define saf78_RC_MODIFIER                 4
01238            #define saf78_RC_FLAG                     5
01239            #define saf78_RC_CODESET                  6
01240            #define saf78_RC_SAFESM_INDEX             7
01241            #define saf78_RC_USERID                   8
01242            #define saf78_RC_PWRD                     9
01243            #define saf78_RC_NEWPWRD                  10
01244            #define saf78_RC_ENTITY                   11
01245            #define saf78_RC_FACILITY                 12
01246            #define saf78_RC_TRANSACTION              13
01247            #define saf78_RC_LOGSTR                   14
01248            #define saf78_RC_QUERY_NAME               15
01249            #define saf78_RC_NEXT                     16
01250            #define saf78_RC_RETURN_AREA              17
01251            #define saf78_RC_ACEE_PTR                 18
01252            #define saf78_RC_GROUP                    19
01253            #define saf78_RC_CLASS                    20
01254            #define saf78_RC_STRING1                  21
01255            #define saf78_RC_STRING2                  22
01256            #define saf78_RC_PERMISSIONS              23
01257            #define saf78_RC_ARGSTR                   24
01258            #define saf78_RC_ARGTBL                   25
01259            #define saf78_RC_ARGTBL_KEYPTR            26
01260            #define saf78_RC_ARGTBL_KEYLEN            27
01261            #define saf78_RC_ARGTBL_VALPTR            28
01262            #define saf78_RC_ARGTBL_VALLEN            29
01263            #define saf78_RC_TICKET                   30
01264            #define saf78_RC_TOKEN                    31
01265            #define saf78_RC_LIST                     32
01266                #define saf78_RS_BAD_POINTER              1
01267                #define saf78_RS_BAD_VALUE                2
01268 
01271 /* ---------------------------------------------------------------- */
01272 /* S A F A P I   8 8 - l e v e l   c o n s t a n t s                */
01273 /* ---------------------------------------------------------------- */
01274 #define safpb_cur_ver_88                 1
01275 
01276 #define safpb_verify_req_88              1
01277 #define safpb_auth_req_88                2
01278 #define safpb_audit_req_88               3
01279 #define safpb_stat_req_88                4
01280 
01281 #define safpb_verify_create_88           1
01282 #define safpb_verify_destroy_88          2
01283 
01284 #define safpb_auth_none_88               0
01285 #define safpb_auth_stat_access_88        1
01286 #define safpb_auth_read_88               2
01287 #define safpb_auth_update_88             4
01288 #define safpb_auth_control_88            8
01289 #define safpb_auth_exec_88               16
01290 #define safpb_auth_alter_88              128
01291 
01292 #define safpb_audit_success_88           1
01293 #define safpb_audit_failure_88           2
01294 
01295 #define safpb_stat_esm_88                1
01296 #define safpb_stat_class_88              2
01297 
01298 #define safpb_mod_CICS_88                1
01299 #define safpb_mod_IMS_88                 2
01300 #define safpb_mod_JCL_88                 3
01301 #define safpb_mod_ESMAC_88               4
01302 #define safpb_mod_WEB_88                 5
01303 #define safpb_mod_BINP_88                6
01304 #define safpb_mod_CGI_88                 7
01305 #define safpb_mod_MFDS_88                8
01306 
01307 #define safpb_flag_PW_encrypt_88         1
01308 #define safpb_ver_no_password_88         2
01309 #define safpb_flag_api_test_88           64
01310 #define safpb_flag_api_display_88        128
01311 
01312 #define safpb_codeset_utf8_88            0
01313 
01314 #define safpb_api_ag_ok_88           "\x00\x00\x00"
01315 #define safpb_api_ag_authorized_88   "\x00\x00\x00"
01316 #define safpb_api_ag_not_auth_88     "\x08\x08\x00"
01317 #define safpb_api_ag_pw_changed_88   "\x00\x00\x04"
01318 #define safpb_api_ag_pw_error_88     "\x08\x08\x00"
01319 #define safpb_api_ag_pw_expired_88   "\x08\x0C\x00"
01320 #define safpb_api_ag_pw_upd_error_88 "\x08\x18\x18"
01321 #define safpb_api_ag_id_error_88     "\x08\x04\x00"
01322 #define safpb_api_ag_id_revoked_88   "\x08\x1C\x00"
01323 #define safpb_api_ag_id_g_revoked_88 "\x08\x24\x00"
01324 #define safpb_api_ag_version_err_88  "\x08\x18\x1C"
01325 #define safpb_api_ag_parm_null_88    "\x08\x18\x20"
01326 #define safpb_api_ag_parm_invalid_88 "\x08\x18\x24"
01327 #define safpb_api_ag_parm_unsup_88   "\x08\x18\x28"
01328 #define safpb_api_ag_cl_dont_care_88 "\x08\x18\x2C"
01329 #define safpb_api_ag_rs_dont_care_88 "\x08\x18\x30"
01330 #define safpb_api_ag_not_protect_88  "\x04\x04\x00"
01331 #define safpb_api_ag_esm_error_88    "\x08\x18\x34"
01332 #define safpb_api_ag_access_set_88   "\x00\x14\x00"
01333 
01334 #define safpb_api_rc_ok_88           0
01335 #define safpb_api_rc_incomp_88       4
01336 #define safpb_api_rc_failed_88       8
01337 
01338 #define safpb_mgr_rc_ok_88           0
01339 #define safpb_mgr_not_protect_88     4
01340 #define safpb_mgr_not_auth_88        8
01341 #define safpb_mgr_access_88          20
01342 #define safpb_mgr_error_88           24
01343 
01344 #define safpb_access_not_auth_88     0
01345 #define safpb_access_read_88         4
01346 #define safpb_access_update_88       8
01347 #define safpb_access_control_88      12
01348 #define safpb_access_alter_88        16
01349 
01350 #define safpb_auth_jes_DATASET_88    "DATASET"
01351 #define safpb_auth_jes_JESINPUT_88   "JESINPUT"
01352 #define safpb_auth_jes_JESJOBS_88    "JESJOBS"
01353 #define safpb_auth_jes_JESSPOOL_88   "JESSPOOL"
01354 #define safpb_auth_jes_SURROGAT_88   "SURROGAT" 
01355 #define safpb_auth_mfd_ESRCP_88      "ESRCP"
01356 #define safpb_auth_mfd_ESRIIN_88     "ESRIIN"
01357 #define safpb_auth_mfd_ESRIMPR_88    "ESRIMPR"
01358 #define safpb_auth_mfd_ESRJIN_88     "ESRJIN"
01359 #define safpb_auth_mfd_ESRJPR_88     "ESRJPR"
01360 #define safpb_auth_mfd_ESRLIS_88     "ESRLIS"
01361 #define safpb_auth_mfd_ESRPKG_88     "ESRPKG"
01362 #define safpb_auth_mfd_ESRRQH_88     "ESRRQH"
01363 #define safpb_auth_mfd_ESRSRV_88     "ESRSRV"
01364 #define safpb_auth_mfd_ESRSVC_88     "ESRSVC"
01365 #define safpb_auth_mfd_ESRXRM_88     "ESRXRM"
01366 #define safpb_auth_mfd_MFDSADMN_88   "MFDSADMN"
01367 #define safpb_auth_mfd_MFDSREP_88    "MFDSREP"
01368 
01369 
01370 /* ---------------------------------------------------------------- */
01371 /* S A F   A D M I N   s u b c o m m a n d   t a b l e              */
01372 /* ---------------------------------------------------------------- */
01373 
01374 #ifdef saf78_SAFADMIN_DATA_AREAS
01375 typedef struct safadmin_cmdtbl
01376 {
01377   char          safadmin_cmdname[16];   /* subcmd name         */ 
01378   unsigned char safadmin_cmdtype;       /* subcmd internal id  */
01379   unsigned char safadmin_cmdlen;        /* subcmd name length  */ 
01380 } Safadmin_Cmdtbl[21];
01381 
01382 
01383 /* These must be in order by safpb_TYPE_ADMIN* value */
01384 static Safadmin_Cmdtbl sSafCommands =
01385 {
01386       "ADDUSER        ",saf78_TYPE_ADMIN_ADDUSER,  7,
01387       "ADDGROUP       ",saf78_TYPE_ADMIN_ADDGROUP, 8,
01388       "ADDRESOURCE    ",saf78_TYPE_ADMIN_ADDRES,   11,
01389       "ALTUSER        ",saf78_TYPE_ADMIN_ALTUSER,  7,
01390       "ALTGROUP       ",saf78_TYPE_ADMIN_ALTGROUP, 8,
01391       "ALTRESOURCE    ",saf78_TYPE_ADMIN_ALTRES,   11,
01392       "DELUSER        ",saf78_TYPE_ADMIN_DELUSER,  7,
01393       "DELGROUP       ",saf78_TYPE_ADMIN_DELGROUP, 8,
01394       "DELRESOURCE    ",saf78_TYPE_ADMIN_DELRES,   11,
01395       "LISTUSER       ",saf78_TYPE_ADMIN_LISTUSER, 8,
01396       "LISTGROUP      ",saf78_TYPE_ADMIN_LISTGROUP,9,
01397       "LISTRESOURCE   ",saf78_TYPE_ADMIN_LISTRES,  12,
01398       "ADDCLASS       ",saf78_TYPE_ADMIN_ADDCLASS, 8,
01399       "ALTCLASS       ",saf78_TYPE_ADMIN_ALTCLASS, 8,
01400       "SETPASSWORD    ",saf78_TYPE_ADMIN_SETPSWD,  11,
01401       "PERMIT         ",saf78_TYPE_ADMIN_PERMIT,   6,
01402       "SETOPTIONS     ",saf78_TYPE_ADMIN_SETOPTS,  10,
01403       "FREELIST       ",saf78_TYPE_ADMIN_FREELIST, 8,
01404       "LISTCLASS      ",saf78_TYPE_ADMIN_LISTCLASS,9,
01405       "DELCLASS       ",saf78_TYPE_ADMIN_DELCLASS, 8,
01406       "               ",0,                         0
01407 };
01408 #endif
01409 
01410 /* ---------------------------------------------------------------- */
01411 /* E n d   S A F   A D M I N   s u b c o m m a n d   t a b l e      */ 
01412 /* ---------------------------------------------------------------- */
01413 
01414 /* ---------------------------------------------------------------- */
01415 /* End of SAFAPI.H                                                  */
01416 /* ---------------------------------------------------------------- */
01417 
01418 #endif