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.6 $     
00018  *
00019  *      $Date: 2008/07/01 08:32:51 $
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   unsigned long KeyLen;    
00191   unsigned long ValLen;    
00192   unsigned long EsmRet;    
00193 } SafAdminArgTbl;
00194 
00196 #define safadmin_argtbl SafAdminArgTbl
00197 
00198 #define Safadmin_Argtbl SafAdminArgTbl
00199 
00205 #define safadmin_argkeyptr    KeyPtr    
00206 #define safadmin_argvalptr    ValPtr    
00207 #define safadmin_argkeylen    KeyLen    
00208 #define safadmin_argvallen    ValLen    
00209 #define safadmin_argesmword   EsmRet    
00211 
00212 
00214 struct SafAdminListItem
00215 {
00216    mf_uns16    Count;      
00217    mf_uns16    unused;     
00218    char      **Key;        
00219    char      **Value;      
00220 };
00221 
00223 struct SafAdminList
00224 {
00225    mf_uns16    Count;      
00226    mf_uns8     EsmIdx;     
00227    mf_uns8     unused;     
00229    struct SafAdminListItem *Item;
00230 };
00231 
00232 
00233 /* ---------------------------------------------------------------- */
00234 /* S A F A P I   p a r a m e t e r   l i s t                        */
00235 /* ---------------------------------------------------------------- */
00236 
00243 struct safpb_verify
00244 {
00245    unsigned short safpb_verify_USERID_len;  
00246    unsigned short safpb_verify_PWRD_len;    
00247    unsigned short safpb_verify_NEWPWRD_len; 
00248    unsigned short safpb_verify_TOKEN_len;   
00249    char           safpb_verify_group[8];    
00250    void *         safpb_verify_ACEE_ptr;    
00251    char *         safpb_verify_USERID_ptr;  
00252    char *         safpb_verify_PWRD_ptr;    
00253    char *         safpb_verify_NEWPWRD_ptr; 
00254    void *         safpb_verify_TOKEN_ptr;   
00255 };
00256 
00257 
00264 struct safpb_auth
00265 {
00266    unsigned short safpb_auth_ENTITY_len;     
00267    unsigned short safpb_auth_FACILITY_len;   
00268    unsigned short safpb_auth_TRANSACTION_len;
00269    unsigned short safpb_auth_name_04_len;    
00270    char           safpb_auth_class[8];       
00271    void *         safpb_auth_ACEE_ptr;       
00272    char *         safpb_auth_ENTITY_ptr;     
00273    char *         safpb_auth_FACILITY_ptr;   
00274    char *         safpb_auth_TRANSACTION_ptr;
00275    char *         safpb_auth_name_04_ptr;    
00276 };
00277 
00278 
00285 struct safpb_xauth
00286 {
00287    unsigned short safpb_xauth_ENTITY_len;    
00288    unsigned short safpb_xauth_STRING1_len;   
00289    unsigned short safpb_xauth_STRING2_len;   
00290    unsigned short safpb_xauth_CLASS_len;     
00291    unsigned long  safpb_xauth_PERMISSIONS;   
00293    unsigned long  safpb_xauth_available;     
00294    void *         safpb_xauth_ACEE_ptr;      
00295    char *         safpb_xauth_ENTITY_ptr;    
00296    char *         safpb_xauth_STRING1_ptr;   
00297    char *         safpb_xauth_STRING2_ptr;   
00298    char *         safpb_xauth_CLASS_ptr;     
00299 };
00300 
00301 
00308 struct safpb_audit
00309 {
00310    unsigned short safpb_audit_ENTITY_len;    
00311    unsigned short safpb_audit_LOGSTR_len;    
00312    unsigned short safpb_audit_name_03__len;  
00313    unsigned short safpb_audit_name_04_len;   
00314    char           safpb_audit_avail_char[8]; 
00315    void *         safpb_audit_ACEE_ptr;      
00316    char *         safpb_audit_ENTITY_ptr;    
00317    char *         safpb_audit_LOGSTR_ptr;    
00318    char *         safpb_audit_name_03_ptr;   
00319    char *         safpb_audit_name_04_ptr;   
00320 };
00321 
00322 
00329 struct safpb_stat
00330 {
00331    unsigned short safpb_stat_QUERY_NAME_len; 
00332    unsigned short safpb_stat_NEXT_len;       
00333    unsigned short safpb_stat_RETURN_AREA_len;
00334    unsigned short safpb_stat_name_04_len;    
00335    char           safpb_stat_avail_char[8];  
00336    void *         safpb_stat_avail_ptr;      
00337    char *         safpb_stat_QUERY_NAME_ptr; 
00338    char *         safpb_stat_NEXT_ptr;       
00339    char *         safpb_stat_RETURN_AREA_ptr;
00340    char *         safpb_stat_name_04_ptr;    
00341 };
00342 
00343 
00350 struct safpb_admin
00351 {
00353    unsigned short safpb_admin_ARGSTR_len;
00355    unsigned short safpb_admin_ARGTBL_count;
00357    unsigned short safpb_admin_LIST_count;
00358    unsigned short safpb_admin_name_04_len;   
00359    char           safpb_admin_avail_char[8]; 
00360    void *         safpb_admin_ACEE_ptr;      
00362    char *         safpb_admin_ARGSTR_ptr;
00364    struct SafAdminArgTbl
00365                  *safpb_admin_ARGTBL_ptr;
00367    struct SafAdminList
00368                  *safpb_admin_LIST_ptr;
00369    char *         safpb_admin_name_04_ptr;   
00370 };
00371 
00372 
00379 struct safpb_update
00380 {
00381    unsigned short safpb_update_ENTITY_len;   
00382    unsigned short safpb_update_ACTION;       
00384    unsigned short safpb_update_name_03_len;  
00385    unsigned short safpb_update_name_04_len;  
00386    char           safpb_update_avail_char[8];
00387    void *         safpb_update_ACEE_ptr;     
00388    char *         safpb_update_ENTITY_ptr;   
00389    char *         safpb_update_unused_ptr;   
00390    char *         safpb_update_name_03_ptr;  
00391    char *         safpb_update_name_04_ptr;  
00392 };
00393 
00394 
00452 typedef struct safpb_parameter_block
00453 {
00454   unsigned long  safpb_version;      
00456   unsigned char  safpb_request;      
00457   unsigned char  safpb_type;         
00459   unsigned char  safpb_modifier;     
00461   unsigned char  safpb_flag;         
00462   unsigned short safpb_codeset;      
00464   unsigned char  safpb_availchar1;   
00465   unsigned char  safpb_availchar2;   
00467   /* Return codes */
00468   union
00469     {
00470     unsigned char safpb_api_rc_aggregate[3]; 
00471     struct safpb_Api_Rc_Aggregate
00472       {
00473       unsigned char safpb_api_rc;     
00474       unsigned char safpb_mgr_return; 
00475       unsigned char safpb_mgr_reason; 
00476       } DISCRETE;                     
00477     } RETCODES;                       
00479   unsigned char safpb_safesm_index;   
00481   union
00482     {
00483     struct safpb_verify VERIFY;                 
00484     struct safpb_auth   AUTH;                   
00485     struct safpb_xauth  XAUTH;                  
00486     struct safpb_audit  AUDIT;                  
00487     struct safpb_stat   STAT;                   
00488     struct safpb_admin  ADMIN;                  
00489     struct safpb_update UPDATE;                 
00490     } REQUESTS;                                 
00492 } Safpb_Parameter_Block;
00493 
00494 /* ---------------------------------------------------------------- */
00495 /* E n d   o f   S A F A P I   p a r a m e t e r   l i s t          */
00496 /* ---------------------------------------------------------------- */
00497 
00498 
00499 /* ---------------------------------------------------------------- */
00500 /* S A F A P I   7 8 - l e v e l   c o n s t a n t s                */
00501 /* ---------------------------------------------------------------- */
00502 /*                                                                  */
00503 /* SAP API version (safpb_version)                                  */
00504 /* ---------------------------------------------------------------- */
00505 #define saf78_VERSION_1                  1     
00507 /*                                                                  */
00508 /* SAF request types (safpb_request)                                */
00509 /* ---------------------------------------------------------------- */
00512 #define saf78_REQUEST_VERIFY             1   
00513 #define saf78_REQUEST_AUTH               2   
00514 #define saf78_REQUEST_AUDIT              3   
00515 #define saf78_REQUEST_STAT               4   
00516 #define saf78_REQUEST_XAUTH              5   
00517 #define saf78_REQUEST_ADMIN              6   
00518 #define saf78_REQUEST_UPDATE             7   
00520 
00521 
00523 
00524 /*                                                                  */
00525 /* VERIFY request qualifiers (safpb_type)                           */
00526 /* ---------------------------------------------------------------- */
00527 #define saf78_TYPE_ENVIR_CREATE          1   
00528 #define saf78_TYPE_ENVIR_DESTROY         2   
00529 #define saf78_TYPE_TOKEN_CREATE          3   
00530 #define saf78_TYPE_TOKEN_DELETE          4   
00532 /*                                                                  */
00533 /* AUTH access attributes (safpb_type)                              */
00534 /* ---------------------------------------------------------------- */
00535 #define saf78_TYPE_ATTR_NONE             0   
00536 #define saf78_TYPE_ATTR_STATUS_ACC       1   
00537 #define saf78_TYPE_ATTR_READ             2   
00538 #define saf78_TYPE_ATTR_UPDATE           4   
00539 #define saf78_TYPE_ATTR_CONTROL          8   
00540 #define saf78_TYPE_ATTR_EXECUTE         16   
00541 #define saf78_TYPE_ATTR_ALTER          128   
00543 /*                                                                  */
00544 /* AUDIT result qualifiers (safpb_type)                             */
00545 /* ---------------------------------------------------------------- */
00546 #define saf78_TYPE_RESULT_SUCCESS        1   
00547 #define saf78_TYPE_RESULT_FAILURE        2   
00549 /*                                                                  */
00550 /* STAT query types (safpb_type)                                    */
00551 /* ---------------------------------------------------------------- */
00552 #define saf78_TYPE_QUERY_ESM             1   
00553 #define saf78_TYPE_QUERY_CLASS           2   
00555 
00556 /*                                                                  */
00557 /* ADMIN subcommand types (safpb_type)                              */
00558 /* ---------------------------------------------------------------- */
00561 #define saf78_TYPE_ADMIN_ADDUSER         1  
00562 #define saf78_TYPE_ADMIN_ADDGROUP        2  
00563 #define saf78_TYPE_ADMIN_ADDCLASS       13  
00564 #define saf78_TYPE_ADMIN_ADDRES          3  
00565 #define saf78_TYPE_ADMIN_ALTUSER         4  
00566 #define saf78_TYPE_ADMIN_ALTGROUP        5  
00567 #define saf78_TYPE_ADMIN_ALTCLASS       14  
00568 #define saf78_TYPE_ADMIN_ALTRES          6  
00569 #define saf78_TYPE_ADMIN_DELUSER         7  
00570 #define saf78_TYPE_ADMIN_DELGROUP        8  
00571 #define saf78_TYPE_ADMIN_DELCLASS       20  
00572 #define saf78_TYPE_ADMIN_DELRES          9  
00573 #define saf78_TYPE_ADMIN_LISTUSER       10  
00574 #define saf78_TYPE_ADMIN_LISTGROUP      11  
00575 #define saf78_TYPE_ADMIN_LISTCLASS      19  
00576 #define saf78_TYPE_ADMIN_LISTRES        12  
00577 #define saf78_TYPE_ADMIN_SETPSWD        15  
00578 #define saf78_TYPE_ADMIN_PERMIT         16  
00579 #define saf78_TYPE_ADMIN_SETOPTS        17  
00580 #define saf78_TYPE_ADMIN_FREELIST       18  
00582 
00583 /*                                                                  */
00584 /* UPDATE object types (safpb_type)                                 */
00585 /* ---------------------------------------------------------------- */
00588 #define saf78_TYPE_UPDATE_USER          1   
00589 #define saf78_TYPE_UPDATE_GROUP         2   
00590 #define saf78_TYPE_UPDATE_RESOURCE      3   
00591 #define saf78_TYPE_UPDATE_USERS         4   
00592 #define saf78_TYPE_UPDATE_GROUPS        5   
00593 #define saf78_TYPE_UPDATE_RESOURCES     6   
00594 #define saf78_TYPE_UPDATE_ALL           0   
00596 
00597 /*                                                                  */
00598 /* Subsystem identifiers (safpb_modifier)                           */
00599 /* ---------------------------------------------------------------- */
00602 #define saf78_MODIFIER_NONE              0   
00603 #define saf78_MODIFIER_CICS              1   
00604 #define saf78_MODIFIER_IMS               2   
00605 #define saf78_MODIFIER_JCL               3   
00606 #define saf78_MODIFIER_ESMAC             4   
00607 #define saf78_MODIFIER_WEB               5   
00608 #define saf78_MODIFIER_BINP              6   
00609 #define saf78_MODIFIER_CGI               7   
00610 #define saf78_MODIFIER_MFDS              8   
00612 
00613 /*                                                                  */
00614 /* Flags (safpb_flag)                                               */
00615 /* ---------------------------------------------------------------- */
00618 #define saf78_FLAG_PW_ENCRYPT            1   
00619 #define saf78_VER_NO_PASSWORD            2   
00620 #define saf78_VER_PT_TICKET              4   
00621 #define saf78_VER_PASSTOKEN              8   
00622 #define saf78_VER_PT_SURROGATE          16   
00623 #define saf78_FLAG_API_TEST             64   
00624 #define saf78_FLAG_API_DISPLAY         128   
00626 
00627 /*                                                                  */
00628 /* String codeset identifier (safpb_codeset)                        */
00629 /* ---------------------------------------------------------------- */
00632 #define saf78_CODESET_UTF8               0   
00634 
00635 
00636 /*                                                                  */
00637 /* z/OS system resource classes (REQUESTS.AUTH.safpb_auth_class)    */
00638 /* ---------------------------------------------------------------- */
00641 #define saf78_CLASS_DATASET              "DATASET "  
00642 /* ---------------------------------------------------------------- */
00643 #define saf78_CLASS_ALCSAUTH             "ALCSAUTH"  
00644 #define saf78_CLASS_APPCLU               "APPCLU  "  
00645 #define saf78_CLASS_APPCPORT             "APPCPORT"  
00646 #define saf78_CLASS_APPCSERV             "APPCSERV"  
00647 #define saf78_CLASS_APPCSI               "APPCSI  "  
00648 #define saf78_CLASS_APPCTP               "APPCTP  "  
00649 #define saf78_CLASS_APPL                 "APPL    "  
00650 #define saf78_CLASS_CACHECLS             "CACHECLS"  
00651 #define saf78_CLASS_CBIND                "CBIND   "  
00652 #define saf78_CLASS_CDT                  "CDT     "  
00653 #define saf78_CLASS_CONSOLE              "CONSOLE "  
00654 #define saf78_CLASS_CSFKEYS              "CSFKEYS "  
00655 #define saf78_CLASS_CSFSERV              "CSFSERV "  
00656 #define saf78_CLASS_DASDVOL              "DASDVOL "  
00657 #define saf78_CLASS_DBNFORM              "DBNFORM "  
00658 #define saf78_CLASS_DEVICES              "DEVICES "  
00659 #define saf78_CLASS_DIGTCERT             "DIGTCERT"  
00660 #define saf78_CLASS_DIGTCRIT             "DIGTCRIT"  
00661 #define saf78_CLASS_DIGTNMAP             "DIGTNMAP"  
00662 #define saf78_CLASS_DIGTRING             "DIGTRING"  
00663 #define saf78_CLASS_DIRAUTH              "DIRAUTH "  
00664 #define saf78_CLASS_DLFCLASS             "DLFCLASS"  
00665 #define saf78_CLASS_FACILITY             "FACILITY"  
00666 #define saf78_CLASS_FIELD                "FIELD   "  
00667 #define saf78_CLASS_GCSFKEYS             "GCSFKEYS"  
00668 #define saf78_CLASS_GDASDVOL             "GDASDVOL"  
00669 #define saf78_CLASS_GLOBAL               "GLOBAL  "  
00670 #define saf78_CLASS_GMBR                 "GMBR    "  
00671 #define saf78_CLASS_GSDSF                "GSDSF   "  
00672 #define saf78_CLASS_GTERMINL             "GTERMINL"  
00673 #define saf78_CLASS_GXFACILI             "GXFACILI"  
00674 #define saf78_CLASS_IBMOPC               "IBMOPC  "  
00675 #define saf78_CLASS_JESINPUT             "JESINPUT"  
00676 #define saf78_CLASS_JESJOBS              "JESJOBS "  
00677 #define saf78_CLASS_JESSPOOL             "JESSPOOL"  
00678 #define saf78_CLASS_KEYSMSTR             "KEYSMSTR"  
00679 #define saf78_CLASS_LDAPBIND             "LDAPBIND"  
00680 #define saf78_CLASS_LOGSTRM              "LOGSTRM "  
00681 #define saf78_CLASS_NODES                "NODES   "  
00682 #define saf78_CLASS_NODMBR               "NODMBR  "  
00683 #define saf78_CLASS_OPERCMDS             "OPERCMDS"  
00684 #define saf78_CLASS_PMBR                 "PMBR    "  
00685 #define saf78_CLASS_PROGRAM              "PROGRAM "  
00686 #define saf78_CLASS_PROPCNTL             "PROPCNTL"  
00687 #define saf78_CLASS_PSFMPL               "PSFMPL  "  
00688 #define saf78_CLASS_PTKTDATA             "PTKTDATA"  
00689 #define saf78_CLASS_RACGLIST             "RACGLIST"  
00690 #define saf78_CLASS_RACFEVNT             "RACFEVNT"  
00691 #define saf78_CLASS_RRSFDATA             "RRSFDATA"  
00692 #define saf78_CLASS_RVARSMBR             "RVARSMBR"  
00693 #define saf78_CLASS_SCDMBR               "SCDMBR  "  
00694 #define saf78_CLASS_SDSF                 "SDSF    "  
00695 #define saf78_CLASS_SECDATA              "SECDATA "  
00696 #define saf78_CLASS_SECLABEL             "SECLABEL"  
00697 #define saf78_CLASS_SECLMBR              "SECLMBR "  
00698 #define saf78_CLASS_SERVAUTH             "SERVAUTH"  
00699 #define saf78_CLASS_SERVER               "SERVER  "  
00700 #define saf78_CLASS_SMESSAGE             "SMESSAGE"  
00701 #define saf78_CLASS_SOMDOBJS             "SOMDOBJS"  
00702 #define saf78_CLASS_STARTED              "STARTED "  
00703 #define saf78_CLASS_SURROGAT             "SURROGAT"  
00704 #define saf78_CLASS_SYSMVIEW             "SYSMVIEW"  
00705 #define saf78_CLASS_TAPEVOL              "TAPEVOL "  
00706 #define saf78_CLASS_TEMPDSN              "TEMPDSN "  
00707 #define saf78_CLASS_TERMINAL             "TERMINAL"  
00708 #define saf78_CLASS_VTAMAPPL             "VTAMAPPL"  
00709 #define saf78_CLASS_WRITER               "WRITER  "  
00710 #define saf78_CLASS_XFACILIT             "XFACILIT"  
00711 /*                                                                  */
00712 /* CICS resource classes                                            */
00713 /* ---------------------------------------------------------------- */
00714 #define saf78_CLASS_ACICSPCT             "ACICSPCT"  
00715 #define saf78_CLASS_BCICSPCT             "BCICSPCT"  
00716 #define saf78_CLASS_CCICSCMD             "CCICSCMD"  
00717 #define saf78_CLASS_CPSMOBJ              "CPSMOBJ "  
00718 #define saf78_CLASS_CPSMXMP              "CPSMXMP "  
00719 #define saf78_CLASS_DCICSDCT             "DCICSDCT"  
00720 #define saf78_CLASS_ECICSDCT             "ECICSDCT"  
00721 #define saf78_CLASS_FCICSFCT             "FCICSFCT"  
00722 #define saf78_CLASS_GCICSTRN             "GCICSTRN"  
00723 #define saf78_CLASS_GCPSMOBJ             "GCPSMOBJ"  
00724 #define saf78_CLASS_HCICSFCT             "HCICSFCT"  
00725 #define saf78_CLASS_JCICSJCT             "JCICSJCT"  
00726 #define saf78_CLASS_KCICSJCT             "KCICSJCT"  
00727 #define saf78_CLASS_MCICSPPT             "MCICSPPT"  
00728 #define saf78_CLASS_NCICSPPT             "NCICSPPT"  
00729 #define saf78_CLASS_PCICSPSB             "PCICSPSB"  
00730 #define saf78_CLASS_QCICSPSB             "QCICSPSB"  
00731 #define saf78_CLASS_SCICSTST             "SCICSTST"  
00732 #define saf78_CLASS_TCICSTRN             "TCICSTRN"  
00733 #define saf78_CLASS_UCICSTST             "UCICSTST"  
00734 #define saf78_CLASS_VCICSCMD             "VCICSCMD"  
00735 /*                                                                  */
00736 /* DB2 resource classes                                             */
00737 /* ---------------------------------------------------------------- */
00738 #define saf78_CLASS_DSNADM               "DSNADM  "  
00739 #define saf78_CLASS_DSNR                 "DSNR    "  
00740 #define saf78_CLASS_GDSNBP               "GDSNBP  "  
00741 #define saf78_CLASS_GDSNCL               "GDSNCL  "  
00742 #define saf78_CLASS_GDSNDB               "GDSNDB  "  
00743 #define saf78_CLASS_GDSNJR               "GDSNJR  "  
00744 #define saf78_CLASS_GDSNPK               "GDSNPK  "  
00745 #define saf78_CLASS_GDSNPN               "GDSNPN  "  
00746 #define saf78_CLASS_GDSNSC               "GDSNSC  "  
00747 #define saf78_CLASS_GDSNSG               "GDSNSG  "  
00748 #define saf78_CLASS_GDSNSM               "GDSNSM  "  
00749 #define saf78_CLASS_GDSNSP               "GDSNSP  "  
00750 #define saf78_CLASS_GDSNSQ               "GDSNSQ  "  
00751 #define saf78_CLASS_GDSNTB               "GDSNTB  "  
00752 #define saf78_CLASS_GDSNTS               "GDSNTS  "  
00753 #define saf78_CLASS_GDSNUT               "GDSNUT  "  
00754 #define saf78_CLASS_MDSNBP               "MDSNBP  "  
00755 #define saf78_CLASS_MDSNCL               "MDSNCL  "  
00756 #define saf78_CLASS_MDSNDB               "MDSNDB  "  
00757 #define saf78_CLASS_MDSNJR               "MDSNJR  "  
00758 #define saf78_CLASS_MDSNPK               "MDSNPK  "  
00759 #define saf78_CLASS_MDSNPN               "MDSNPN  "  
00760 #define saf78_CLASS_MDSNSC               "MDSNSC  "  
00761 #define saf78_CLASS_MDSNSG               "MDSNSG  "  
00762 #define saf78_CLASS_MDSNSM               "MDSNSM  "  
00763 #define saf78_CLASS_MDSNSP               "MDSNSP  "  
00764 #define saf78_CLASS_MDSNSQ               "MDSNSQ  "  
00765 #define saf78_CLASS_MDSNTB               "MDSNTB  "  
00766 #define saf78_CLASS_MDSNTS               "MDSNTS  "  
00767 #define saf78_CLASS_MDSNUF               "MDSNUF  "  
00768 #define saf78_CLASS_MDSNUT               "MDSNUT  "  
00769 /*                                                                  */
00770 /* DCE resource classes                                             */
00771 /* ---------------------------------------------------------------- */
00772 #define saf78_CLASS_DCEUUIDS             "DCEUUIDS"  
00773 #define saf78_CLASS_RAUDITX              "RAUDITX "  
00774 #define saf78_CLASS_EJBROLE              "EJBROLE "  
00775 #define saf78_CLASS_GEJBROLE             "GEJBROLE"  
00776 #define saf78_CLASS_JAVA                 "JAVA    "  
00777 /*                                                                  */
00778 /* IMS resource classes                                             */
00779 /* ---------------------------------------------------------------- */
00780 #define saf78_CLASS_AIMS                 "AIMS    "  
00781 #define saf78_CLASS_CIMS                 "CIMS    "  
00782 #define saf78_CLASS_DIMS                 "DIMS    "  
00783 #define saf78_CLASS_FIMS                 "FIMS    "  
00784 #define saf78_CLASS_GIMS                 "GIMS    "  
00785 #define saf78_CLASS_HIMS                 "HIMS    "  
00786 #define saf78_CLASS_IIMS                 "IIMS    "  
00787 #define saf78_CLASS_JIMS                 "JIMS    "  
00788 #define saf78_CLASS_LIMS                 "LIMS    "  
00789 #define saf78_CLASS_MIMS                 "MIMS    "  
00790 #define saf78_CLASS_OIMS                 "OIMS    "  
00791 #define saf78_CLASS_PIMS                 "PIMS    "  
00792 #define saf78_CLASS_QIMS                 "QIMS    "  
00793 #define saf78_CLASS_SIMS                 "SIMS    "  
00794 #define saf78_CLASS_TIMS                 "TIMS    "  
00795 #define saf78_CLASS_UIMS                 "UIMS    "  
00796 #define saf78_CLASS_WIMS                 "WIMS    "  
00797 /*                                                                  */
00798 /* Infoprint Server classes                                         */
00799 /* ---------------------------------------------------------------- */
00800 #define saf78_CLASS_PRINTSRV             "PRINTSRV"  
00801 /*                                                                  */
00802 /* Info/Mgmt (Tivoli Service Desk) classes                          */
00803 /* ---------------------------------------------------------------- */
00804 #define saf78_CLASS_GINFOMAN             "GINFOMAN"  
00805 #define saf78_CLASS_INFOMAN              "INFOMAN "  
00806 /*                                                                  */
00807 /* LFS/ESA classes                                                  */
00808 /* ---------------------------------------------------------------- */
00809 #define saf78_CLASS_LFSCLASS             "LFSCLASS"  
00810 /*                                                                  */
00811 /* License Manager classes                                          */
00812 /* ---------------------------------------------------------------- */
00813 #define saf78_CLASS_ILMADMIN             "ILMADMIN"  
00814 /*                                                                  */
00815 /* Lotus Notes for z/OS classes                                     */
00816 /* ---------------------------------------------------------------- */
00817 #define saf78_CLASS_NDSLINK              "NDSLINK "  
00818 #define saf78_CLASS_NOTELINK             "NOTELINK"  
00819 /*                                                                  */
00820 /* MQSeries classes                                                 */
00821 /* ---------------------------------------------------------------- */
00822 #define saf78_CLASS_GMQADMIN             "GMQADMIN"  
00823 #define saf78_CLASS_GMQCHAN              "GMQCHAN "  
00824 #define saf78_CLASS_GMQNLIST             "GMQNLIST"  
00825 #define saf78_CLASS_GMQPROC              "GMQPROC "  
00826 #define saf78_CLASS_GMQQUEUE             "GMQQUEUE"  
00827 #define saf78_CLASS_MQADMIN              "MQADMIN "  
00828 #define saf78_CLASS_MQCHAN               "MQCHAN  "  
00829 #define saf78_CLASS_MQCMDS               "MQCMDS  "  
00830 #define saf78_CLASS_MQCONN               "MQCONN  "  
00831 #define saf78_CLASS_MQNLIST              "MQNLIST "  
00832 #define saf78_CLASS_MQPROC               "MQPROC  "  
00833 #define saf78_CLASS_MQQUEUE              "MQQUEUE "  
00834 /*                                                                  */
00835 /* NetView classes                                                  */
00836 /* ---------------------------------------------------------------- */
00837 #define saf78_CLASS_NETCMDS              "NETCMDS "  
00838 #define saf78_CLASS_NETSPAN              "NETSPAN"  
00839 #define saf78_CLASS_NVASAPDT             "NVASAPDT"  
00840 #define saf78_CLASS_PTKTVAL              "PTKTVAL "  
00841 #define saf78_CLASS_RMTOPS               "RMTOPS  "  
00842 #define saf78_CLASS_RODMMGR              "RODMMGR "  
00843 /*                                                                  */
00844 /* Network Authentication Service classes                           */
00845 /* ---------------------------------------------------------------- */
00846 #define saf78_CLASS_KERBLINK             "KERBLINK"  
00847 #define saf78_CLASS_REALM                "REALM   "  
00848 /*                                                                  */
00849 /* SMS (DFSMSdfp) classes                                           */
00850 /* ---------------------------------------------------------------- */
00851 #define saf78_CLASS_MGMTCLAS             "MGMTCLAS"  
00852 #define saf78_CLASS_STORCLAS             "STORCLAS"  
00853 #define saf78_CLASS_SUBSYSNM             "SUBSYSNM"  
00854 /*                                                                  */
00855 /* Tivoli classes                                                   */
00856 /* ---------------------------------------------------------------- */
00857 #define saf78_CLASS_ROLE                 "ROLE    "  
00858 #define saf78_CLASS_TMEADMIN             "TMEADMIN"  
00859 /*                                                                  */
00860 /* TSO classes                                                      */
00861 /* ---------------------------------------------------------------- */
00862 #define saf78_CLASS_ACCTNUM              "ACCTNUM "  
00863 #define saf78_CLASS_PERFGRP              "PERFGRP "  
00864 #define saf78_CLASS_TSOAUTH              "TSOAUTH "  
00865 #define saf78_CLASS_TSOPROC              "TSOPROC "  
00866 /*                                                                  */
00867 /* z/OS UNIX classes                                                */
00868 /* ---------------------------------------------------------------- */
00869 #define saf78_CLASS_DIRACC               "DIRACC  "  
00870 #define saf78_CLASS_DIRSRCH              "DIRSRCH "  
00871 #define saf78_CLASS_FSOBJ                "FSOBJ   "  
00872 #define saf78_CLASS_FSSEC                "FSSEC   "  
00873 #define saf78_CLASS_IPCOBJ               "IPCOBJ  "  
00874 #define saf78_CLASS_PROCACT              "PROCACT "  
00875 #define saf78_CLASS_PROCESS              "PROCESS "  
00876 #define saf78_CLASS_UNIXMAP              "UNIXMAP "  
00877 #define saf78_CLASS_UNIXPRIV             "UNIXPRIV"  
00878 /*                                                                  */
00879 /* ES resource classes                                              */
00880 /* ---------------------------------------------------------------- */
00881 #define saf78_CLASS_ESRDCT               "ESRDCT  "  
00882 #define saf78_CLASS_ESRFCT               "ESRFCT  "  
00883 #define saf78_CLASS_ESRGRP               "ESRGRP  "  
00884 #define saf78_CLASS_ESRICE               "ESRICE  "  
00885 #define saf78_CLASS_ESRIMS               "ESRIMS  "  
00886 #define saf78_CLASS_ESRJCT               "ESRJCT  "  
00887 #define saf78_CLASS_ESRJES               "ESRJES  "  
00888 #define saf78_CLASS_ESRMPR               "ESRMPR  "  
00889 #define saf78_CLASS_ESRPCT               "ESRPCT  "  
00890 #define saf78_CLASS_ESRPLT               "ESRPLT  "  
00891 #define saf78_CLASS_ESRPPT               "ESRPPT  "  
00892 #define saf78_CLASS_ESRSIT               "ESRSIT  "  
00893 #define saf78_CLASS_ESRSNT               "ESRSNT  "  
00894 #define saf78_CLASS_ESRSUP               "ESRSUP  "  
00895 #define saf78_CLASS_ESRSYS6              "ESRSYS6 "  
00896 #define saf78_CLASS_ESRSYSC              "ESRSYSC "  
00897 #define saf78_CLASS_ESRTABLE             "ESRTABLE"  
00898 #define saf78_CLASS_ESRTCT               "ESRTCT  "  
00899 #define saf78_CLASS_ESRTERM              "ESRTERM "  
00900 #define saf78_CLASS_ESRTST               "ESRTST  "  
00901 #define saf78_CLASS_ESRTTYPE             "ESRTTYPE"  
00902 #define saf78_CLASS_ESRXAT               "ESRXAT  "  
00903 #define saf78_CLASS_ESRXLT               "ESRXLT  "  
00904 #define saf78_CLASS_ESRCP                "ESRCP   "     
00905 #define saf78_CLASS_ESRIIN               "ESRIIN  "    
00906 #define saf78_CLASS_ESRIMPR              "ESRIMPR "   
00907 #define saf78_CLASS_ESRJIN               "ESRJIN  "    
00908 #define saf78_CLASS_ESRJPR               "ESRJPR  "    
00909 #define saf78_CLASS_ESRLIS               "ESRLIS  "    
00910 #define saf78_CLASS_ESRPKG               "ESRPKG  "    
00911 #define saf78_CLASS_ESRRQH               "ESRRQH  "    
00912 #define saf78_CLASS_ESRSRV               "ESRSRV  "    
00913 #define saf78_CLASS_ESRSVC               "ESRSVC  "    
00914 #define saf78_CLASS_ESRXRM               "ESRXRM  "    
00915 #define saf78_CLASS_MFDSADMN             "MFDSADMN"  
00916 #define saf78_CLASS_MFDSREP              "MFDSREP "    
00917 
00919 /*                                                                  */
00920 /* ADMIN well-known keywords                                        */
00921 /* ---------------------------------------------------------------- */
00924 #define saf78_ADMIN_ACL             "ACL"       
00925 #define saf78_ADMIN_ALLOW_ON        "ALLOW"     
00926 #define saf78_ADMIN_CLASS           "CLASS"     
00927 #define saf78_ADMIN_CUST_TXT        "CUSTOM"    
00928 #define saf78_ADMIN_DEF_GROUP       "DEFGROUP"  
00929 #define saf78_ADMIN_DESCRIPT        "DESC"      
00930 #define saf78_ADMIN_DSP_NAME        "NAME"      
00931 #define saf78_ADMIN_EXPIRATION      "EXPIRES"   
00932 #define saf78_ADMIN_GROUPNAME       "GROUP"     
00933 #define saf78_ADMIN_GROUPS          "GROUPS"    
00934 #define saf78_ADMIN_GRP_PREFIX      "GRPPFX"    
00935 #define saf78_ADMIN_MEMBERS         "MEMBERS"   
00936 #define saf78_ADMIN_OPER_CLASS      "OPCLASS"   
00937 #define saf78_ADMIN_OPER_ID         "OPID"      
00938 #define saf78_ADMIN_PASS_CHG        "PASSCHG"   
00939 #define saf78_ADMIN_PASS_EXP        "PASSEXP"   
00940 #define saf78_ADMIN_PASSWORD        "PASSWORD"  
00941 #define saf78_ADMIN_PRIORITY        "PRIORITY"  
00942 #define saf78_ADMIN_RESNAME         "RESOURCE"  
00943 #define saf78_ADMIN_TIMEOUT         "TIMEOUT"   
00944 #define saf78_ADMIN_TOK_CREATE      "GETTOKEN"  
00945 #define saf78_ADMIN_TOK_USE         "USETOKEN"  
00946 #define saf78_ADMIN_UID             "UID"       
00947 #define saf78_ADMIN_USERNAME        "USER"      
00949 
00950 /*                                                                  */
00951 /* XAUTH permissions bits (REQUESTS.XAUTH.safpb_xauth_PERMISSIONS)  */
00952 /* ---------------------------------------------------------------- */
00955 #define saf78_PERM_EXECUTE               (1<<0) 
00956 #define saf78_PERM_READ                  (1<<1) 
00957 #define saf78_PERM_UPDATE                (1<<2) 
00958 #define saf78_PERM_ADD                   (1<<3) 
00959 #define saf78_PERM_DELETE                (1<<4) 
00960 #define saf78_PERM_CONTROL               (1<<5) 
00961 #define saf78_PERM_ALTER                 (1<<6) 
00963 
00964 
00965 /*                                                                  */
00966 /* Admin Update Notification action types (safpb_update_ACTION)     */
00967 /* ---------------------------------------------------------------- */
00970 #define saf78_UPDATE_ADD                 1
00971 #define saf78_UPDATE_MODIFY              2
00972 #define saf78_UPDATE_DELETE              3
00973 #define saf78_UPDATE_OTHER               0
00974 
00977 /* ---------------------------------------------------------------- */
00978 /* S A F A P I   r e t u r n   &   r e a s o n   c o d e s          */
00979 /* ---------------------------------------------------------------- */
00980 
01001 
01006 /* VERIFY return and reason codes                                   */
01007 /* ---------------------------------------------------------------- */
01008 
01010    #define saf78_SAF_RC_SUCCESS              0 
01012      #define saf78_RC_NORMAL                   0
01013 
01014          #define saf78_RS_NORMAL                   0
01015          #define saf78_RS_PWRD_CHANGED             4
01016 
01017      #define saf78_RC_TOKEN_INFO               4
01018 
01020          #define saf78_RS_TOKEN_TOO_LARGE          12
01021          #define saf78_RS_STOKEN_TOO_LARGE         16
01022 
01025    #define saf78_SAF_RC_NOT_COMPLETE         4 
01027      #define saf78_RC_NO_DECISION              0 
01029          #define saf78_RS_ESM_NOT_CALLED           0
01030 
01031      #define saf78_RC_NO_USER_PROFILE          4
01032 
01033      #define saf78_RC_SECURITY_NOT_ACTIVE      32
01034 
01035      #define saf78_RC_NO_FACILITY_CLASS        88
01036 
01038    #define saf78_SAF_RC_FAILURE             8 
01039 /* #define saf78_RC_NO_USER_PROFILE            4 */
01040 
01042      #define saf78_RC_PWRD_INVALID             8
01043      #define saf78_RC_PWRD_EXPIRED             12
01044      #define saf78_RC_PWRD_CHANGE_ERR          16
01045      #define saf78_RC_USER_NOT_IN_GROUP        20
01046      #define saf78_RC_INST_EXIT                24
01047      #define saf78_RC_USER_REVOKED             28
01048      #define saf78_RC_GROUP_REVOKED            36
01049      #define saf78_RC_OID_REQUIRED             40
01050      #define saf78_RC_OID_INVALID              44
01051      #define saf78_RC_PORT_OF_ENTRY_ERR        48
01052 
01055          #define saf78_RS_PORT                     0
01056          #define saf78_RS_USER_TIME                4
01057          #define saf78_RS_PORT_TIME                8
01058 
01061      #define saf78_RC_NOT_AUTH_FOR_APPL        52
01062      #define saf78_RC_SECLABEL_FAIL            56
01063 
01066          #define saf78_RS_MLACTIVE_REQUIRES        4
01067          #define saf78_RS_NOT_AUTH_SECLABEL        8
01068          #define saf78_RS_MULTILEVEL_DOM           12
01069          #define saf78_RS_DISJOINT                 16
01070          #define saf78_RS_NOT_EQUIVALENT           20
01071 
01074      #define saf78_RC_DEFAULT_TOKEN_USED       68
01075      #define saf78_RC_UNPRIV_TRANQUIL          72
01076      #define saf78_RC_NODES_CHECK_FAIL         76
01077 
01080          #define saf78_RS_NODE_NOT_ALLOWED         0
01081          #define saf78_RS_USERID_UACC_NONE         4
01082          #define saf78_RS_GROUP_UACC_NONE          8
01083          #define saf78_RS_SECLABEL_UACC_NONE       12
01084          #define saf78_RS_NO_LOCAL_SUBMIT          16
01085          #define saf78_RS_REVERIFY_FAIL            20
01086 
01088      #define saf78_RC_SURROGATE_SUB_FAIL       80
01089 
01091          #define saf78_RS_SURROGATE_INACTIVE       4
01092          #define saf78_RS_SUB_NOT_PERMITTED        8
01093          #define saf78_RS_JOB_SECLABEL             12
01094 
01097      #define saf78_RC_JESJOBS_CHECK_FAIL       84
01098      #define saf78_RC_DATABASE_ERROR           92
01099      #define saf78_RC_CHECK_SUBPARAM           100
01100      #define saf78_RC_TOKEN_REFUSED            104 
01104          #define saf78_RS_TOKEN_FORMAT             4 
01105          #define saf78_RS_TOKEN_EXPIRED            8 
01106          #define saf78_RS_TOKEN_TYPE              12 
01107          #define saf78_RS_TOKEN_INVALID           16 
01108          #define saf78_RS_TOKEN_ERROR             20
01109 
01111 
01112 /* AUTH return and reason codes                                     */
01113 /* ---------------------------------------------------------------- */
01114 
01115 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01116            #define saf78_RC_USER_IS_AUTH             0
01117 /* #define saf78_RS_NORMAL 0                                        */
01118                #define saf78_RS_RESOURCE_WARN            4
01119                #define saf78_RS_TAPE_VTOC                16
01120                #define saf78_RS_TAPE_CAN_VTOC            32
01121                #define saf78_RS_TAPE_NO_VTOC             36
01122            #define saf78_RC_ACCESS_INFO              20
01123                #define saf78_RS_ACCESS_NONE              0
01124                #define saf78_RS_ACCESS_READ              4
01125                #define saf78_RS_ACCESS_UPDATE            8
01126                #define saf78_RS_ACCESS_CONTROL           12
01127                #define saf78_RS_ACCESS_ALTER             16
01128 
01129 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01130 /* #define saf78_RC_NO_DECISION 0                                   */
01131 /* #define saf78_RS_ESM_NOT_CALLED 0                                */
01132            #define saf78_RC_RESOURCE_NOT_PROT        4
01133                #define saf78_RS_NO_RESOURCE_PROF         0
01134                #define saf78_RS_STATUS_ERASE             4
01135 
01136 /* #define saf78_SAF_RC_FAILURE 8                                   */
01137            #define saf78_RC_USER_NOT_AUTH            8
01138                #define saf78_RS_PROTALL_NO_PROF          0
01139                #define saf78_RS_USER_ERASE               4
01140                #define saf78_RS_USER_TAPEVOL             8
01141                #define saf78_RS_USER_TAPE_DS             12
01142                #define saf78_RS_USER_TAPE_BLP            16
01143                #define saf78_RS_NON_CATALOGED            20
01144                #define saf78_RS_USER_AUTH_TRANQ          24
01145                #define saf78_RS_EXEC_ATTEMPT_READ        28
01146                #define saf78_RS_SECLABEL_NOT_DOM         32
01147                #define saf78_RS_SECLABEL_NEV_DOM         36
01148                #define saf78_RS_USER_NO_SECLABEL         40
01149                #define saf78_RS_COND_ACCESS              44
01150            #define saf78_RC_OLDVOL_ERROR             12
01151            #define saf78_RC_THIRD_PARTY_FAIL         16
01152 /* #define saf78_RC_CHECK_SUBPARAM 100                              */
01153 /*                                                                  */
01154 /* AUDIT return and reason codes                                    */
01155 /* ---------------------------------------------------------------- */
01156 
01157 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01158 /* #define saf78_RC_NORMAL 0                                        */
01159 /* #define saf78_RS_NORMAL 0                                        */
01160 
01161 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01162 /* #define saf78_RC_NO_DECISION 0                                   */
01163 /* #define saf78_RS_ESM_NOT_CALLED 0                                */
01164 /* #define saf78_RC_MACT_CINACT 4                                   */
01165 
01166 /* #define saf78_SAF_RC_FAILURE 8                                   */
01167            #define saf78_RC_NO_CLASS                 8
01168            #define saf78_RC_INTERNAL_ERROR           12
01169            #define saf78_RC_PARAM_ERROR              16
01170                #define saf78_RS_EVENT_INVALID            0
01171                #define saf78_RS_QUAL_INVALID             4
01172                #define saf78_RS_BAD_LIST_VER             8
01173                #define saf78_RS_BAD_LIST_LEN             12
01174                #define saf78_RS_ENTITY_INVALID           16
01175            #define saf78_RC_NO_AUDIT_DONE            20
01176 /*                                                                  */
01177 /* STAT return and reason codes                                     */
01178 /* ---------------------------------------------------------------- */
01179 
01180 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01181 /* #define saf78_RC_NORMAL 0                                        */
01182 /* #define saf78_RS_NORMAL 0                                        */
01183 
01184 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01185 /* #define saf78_RC_NO_DECISION 0                                   */
01186 /* #define saf78_RS_ESM_NOT_CALLED 0                                */
01187            #define saf78_RC_MACT_CINACT              4
01188            #define saf78_RC_MACT_NO_CLASS            8
01189            #define saf78_RC_MINACT_CACT              12
01190            #define saf78_RC_MINACT_CINACT            16
01191            #define saf78_RC_MINACT_NO_CLASS          20
01192            #define saf78_RC_NO_ESM                   24
01193            #define saf78_RC_BAD_PARMLIST             28
01194 /* #define saf78_RC_CHECK_SUBPARAM 100                              */
01195 
01196 /*                                                                  */
01197 /* ADMIN return and reason codes                                    */
01198 /* ---------------------------------------------------------------- */
01199 
01200 /*     #define saf78_SAF_RC_SUCCESS              0                  */
01201 /*         #define saf78_RC_NORMAL                   0              */
01202 /*             #define saf78_RS_NORMAL                   0          */
01203 
01204 /*     #define saf78_SAF_RC_NOT_COMPLETE         4                  */
01205 /*         #define saf78_RC_NO_DECISION              0              */
01206 /*             #define saf78_RS_ESM_NOT_CALLED           0          */
01207                #define saf78_RS_ESM_DECLINED             4
01208            #define saf78_RC_KEYWORD_ERROR            4  
01209                #define saf78_RS_KEYWORD_UNKNOWN          4
01210 
01211 /*     #define saf78_SAF_RC_FAILURE              8                  */
01212            #define saf78_RC_VALUE_ERROR              4
01213                #define saf78_RS_VALUE_INVALID            4
01214                #define saf78_RS_VALUE_LENGTH             8
01215            #define saf78_RC_DENIED                   8
01216 /*                                                                  */
01217 /* STAT return and reason codes                                     */
01218 /* ---------------------------------------------------------------- */
01219 
01220 /* #define saf78_SAF_RC_SUCCESS 0                                   */
01221 /* #define saf78_RC_NORMAL 0                                        */
01222 /* #define saf78_RS_NORMAL 0                                        */
01223 
01224 /* #define saf78_SAF_RC_NOT_COMPLETE 4                              */
01225 
01226 /*                                                                  */
01227 /* Return and reason codes common to all requests                   */
01228 /* ---------------------------------------------------------------- */
01229 
01230        #define saf78_SAF_RC_PARM_ERROR           12
01231            #define saf78_RC_VERSION                  1
01232            #define saf78_RC_REQUEST                  2
01233            #define saf78_RC_TYPE                     3
01234            #define saf78_RC_MODIFIER                 4
01235            #define saf78_RC_FLAG                     5
01236            #define saf78_RC_CODESET                  6
01237            #define saf78_RC_SAFESM_INDEX             7
01238            #define saf78_RC_USERID                   8
01239            #define saf78_RC_PWRD                     9
01240            #define saf78_RC_NEWPWRD                  10
01241            #define saf78_RC_ENTITY                   11
01242            #define saf78_RC_FACILITY                 12
01243            #define saf78_RC_TRANSACTION              13
01244            #define saf78_RC_LOGSTR                   14
01245            #define saf78_RC_QUERY_NAME               15
01246            #define saf78_RC_NEXT                     16
01247            #define saf78_RC_RETURN_AREA              17
01248            #define saf78_RC_ACEE_PTR                 18
01249            #define saf78_RC_GROUP                    19
01250            #define saf78_RC_CLASS                    20
01251            #define saf78_RC_STRING1                  21
01252            #define saf78_RC_STRING2                  22
01253            #define saf78_RC_PERMISSIONS              23
01254            #define saf78_RC_ARGSTR                   24
01255            #define saf78_RC_ARGTBL                   25
01256            #define saf78_RC_ARGTBL_KEYPTR            26
01257            #define saf78_RC_ARGTBL_KEYLEN            27
01258            #define saf78_RC_ARGTBL_VALPTR            28
01259            #define saf78_RC_ARGTBL_VALLEN            29
01260            #define saf78_RC_TICKET                   30
01261            #define saf78_RC_TOKEN                    31
01262            #define saf78_RC_LIST                     32
01263                #define saf78_RS_BAD_POINTER              1
01264                #define saf78_RS_BAD_VALUE                2
01265 
01268 /* ---------------------------------------------------------------- */
01269 /* S A F A P I   8 8 - l e v e l   c o n s t a n t s                */
01270 /* ---------------------------------------------------------------- */
01271 #define safpb_cur_ver_88                 1
01272 
01273 #define safpb_verify_req_88              1
01274 #define safpb_auth_req_88                2
01275 #define safpb_audit_req_88               3
01276 #define safpb_stat_req_88                4
01277 
01278 #define safpb_verify_create_88           1
01279 #define safpb_verify_destroy_88          2
01280 
01281 #define safpb_auth_none_88               0
01282 #define safpb_auth_stat_access_88        1
01283 #define safpb_auth_read_88               2
01284 #define safpb_auth_update_88             4
01285 #define safpb_auth_control_88            8
01286 #define safpb_auth_exec_88               16
01287 #define safpb_auth_alter_88              128
01288 
01289 #define safpb_audit_success_88           1
01290 #define safpb_audit_failure_88           2
01291 
01292 #define safpb_stat_esm_88                1
01293 #define safpb_stat_class_88              2
01294 
01295 #define safpb_mod_CICS_88                1
01296 #define safpb_mod_IMS_88                 2
01297 #define safpb_mod_JCL_88                 3
01298 #define safpb_mod_ESMAC_88               4
01299 #define safpb_mod_WEB_88                 5
01300 #define safpb_mod_BINP_88                6
01301 #define safpb_mod_CGI_88                 7
01302 #define safpb_mod_MFDS_88                8
01303 
01304 #define safpb_flag_PW_encrypt_88         1
01305 #define safpb_ver_no_password_88         2
01306 #define safpb_flag_api_test_88           64
01307 #define safpb_flag_api_display_88        128
01308 
01309 #define safpb_codeset_utf8_88            0
01310 
01311 #define safpb_api_ag_ok_88           "\x00\x00\x00"
01312 #define safpb_api_ag_authorized_88   "\x00\x00\x00"
01313 #define safpb_api_ag_not_auth_88     "\x08\x08\x00"
01314 #define safpb_api_ag_pw_changed_88   "\x00\x00\x04"
01315 #define safpb_api_ag_pw_error_88     "\x08\x08\x00"
01316 #define safpb_api_ag_pw_expired_88   "\x08\x0C\x00"
01317 #define safpb_api_ag_pw_upd_error_88 "\x08\x18\x18"
01318 #define safpb_api_ag_id_error_88     "\x08\x04\x00"
01319 #define safpb_api_ag_id_revoked_88   "\x08\x1C\x00"
01320 #define safpb_api_ag_id_g_revoked_88 "\x08\x24\x00"
01321 #define safpb_api_ag_version_err_88  "\x08\x18\x1C"
01322 #define safpb_api_ag_parm_null_88    "\x08\x18\x20"
01323 #define safpb_api_ag_parm_invalid_88 "\x08\x18\x24"
01324 #define safpb_api_ag_parm_unsup_88   "\x08\x18\x28"
01325 #define safpb_api_ag_cl_dont_care_88 "\x08\x18\x2C"
01326 #define safpb_api_ag_rs_dont_care_88 "\x08\x18\x30"
01327 #define safpb_api_ag_not_protect_88  "\x04\x04\x00"
01328 #define safpb_api_ag_esm_error_88    "\x08\x18\x34"
01329 #define safpb_api_ag_access_set_88   "\x00\x14\x00"
01330 
01331 #define safpb_api_rc_ok_88           0
01332 #define safpb_api_rc_incomp_88       4
01333 #define safpb_api_rc_failed_88       8
01334 
01335 #define safpb_mgr_rc_ok_88           0
01336 #define safpb_mgr_not_protect_88     4
01337 #define safpb_mgr_not_auth_88        8
01338 #define safpb_mgr_access_88          20
01339 #define safpb_mgr_error_88           24
01340 
01341 #define safpb_access_not_auth_88     0
01342 #define safpb_access_read_88         4
01343 #define safpb_access_update_88       8
01344 #define safpb_access_control_88      12
01345 #define safpb_access_alter_88        16
01346 
01347 #define safpb_auth_jes_DATASET_88    "DATASET"
01348 #define safpb_auth_jes_JESINPUT_88   "JESINPUT"
01349 #define safpb_auth_jes_JESJOBS_88    "JESJOBS"
01350 #define safpb_auth_jes_JESSPOOL_88   "JESSPOOL"
01351 #define safpb_auth_jes_SURROGAT_88   "SURROGAT" 
01352 #define safpb_auth_mfd_ESRCP_88      "ESRCP"
01353 #define safpb_auth_mfd_ESRIIN_88     "ESRIIN"
01354 #define safpb_auth_mfd_ESRIMPR_88    "ESRIMPR"
01355 #define safpb_auth_mfd_ESRJIN_88     "ESRJIN"
01356 #define safpb_auth_mfd_ESRJPR_88     "ESRJPR"
01357 #define safpb_auth_mfd_ESRLIS_88     "ESRLIS"
01358 #define safpb_auth_mfd_ESRPKG_88     "ESRPKG"
01359 #define safpb_auth_mfd_ESRRQH_88     "ESRRQH"
01360 #define safpb_auth_mfd_ESRSRV_88     "ESRSRV"
01361 #define safpb_auth_mfd_ESRSVC_88     "ESRSVC"
01362 #define safpb_auth_mfd_ESRXRM_88     "ESRXRM"
01363 #define safpb_auth_mfd_MFDSADMN_88   "MFDSADMN"
01364 #define safpb_auth_mfd_MFDSREP_88    "MFDSREP"
01365 
01366 
01367 /* ---------------------------------------------------------------- */
01368 /* S A F   A D M I N   s u b c o m m a n d   t a b l e              */
01369 /* ---------------------------------------------------------------- */
01370 
01371 #ifdef saf78_SAFADMIN_DATA_AREAS
01372 typedef struct safadmin_cmdtbl
01373 {
01374   char          safadmin_cmdname[16];   /* subcmd name         */ 
01375   unsigned char safadmin_cmdtype;       /* subcmd internal id  */
01376   unsigned char safadmin_cmdlen;        /* subcmd name length  */ 
01377 } Safadmin_Cmdtbl[21];
01378 
01379 
01380 /* These must be in order by safpb_TYPE_ADMIN* value */
01381 static Safadmin_Cmdtbl sSafCommands =
01382 {
01383       "ADDUSER        ",saf78_TYPE_ADMIN_ADDUSER,  7,
01384       "ADDGROUP       ",saf78_TYPE_ADMIN_ADDGROUP, 8,
01385       "ADDRESOURCE    ",saf78_TYPE_ADMIN_ADDRES,   11,
01386       "ALTUSER        ",saf78_TYPE_ADMIN_ALTUSER,  7,
01387       "ALTGROUP       ",saf78_TYPE_ADMIN_ALTGROUP, 8,
01388       "ALTRESOURCE    ",saf78_TYPE_ADMIN_ALTRES,   11,
01389       "DELUSER        ",saf78_TYPE_ADMIN_DELUSER,  7,
01390       "DELGROUP       ",saf78_TYPE_ADMIN_DELGROUP, 8,
01391       "DELRESOURCE    ",saf78_TYPE_ADMIN_DELRES,   11,
01392       "LISTUSER       ",saf78_TYPE_ADMIN_LISTUSER, 8,
01393       "LISTGROUP      ",saf78_TYPE_ADMIN_LISTGROUP,9,
01394       "LISTRESOURCE   ",saf78_TYPE_ADMIN_LISTRES,  12,
01395       "ADDCLASS       ",saf78_TYPE_ADMIN_ADDCLASS, 8,
01396       "ALTCLASS       ",saf78_TYPE_ADMIN_ALTCLASS, 8,
01397       "SETPASSWORD    ",saf78_TYPE_ADMIN_SETPSWD,  11,
01398       "PERMIT         ",saf78_TYPE_ADMIN_PERMIT,   6,
01399       "SETOPTIONS     ",saf78_TYPE_ADMIN_SETOPTS,  10,
01400       "FREELIST       ",saf78_TYPE_ADMIN_FREELIST, 8,
01401       "LISTCLASS      ",saf78_TYPE_ADMIN_LISTCLASS,9,
01402       "DELCLASS       ",saf78_TYPE_ADMIN_DELCLASS, 8,
01403       "               ",0,                         0
01404 };
01405 #endif
01406 
01407 /* ---------------------------------------------------------------- */
01408 /* 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      */ 
01409 /* ---------------------------------------------------------------- */
01410 
01411 /* ---------------------------------------------------------------- */
01412 /* End of SAFAPI.H                                                  */
01413 /* ---------------------------------------------------------------- */
01414 
01415 #endif