• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

safapi.h

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