You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.8 KiB
C

1 year ago
/************************************************************************/
/* SISCO SOFTWARE MODULE HEADER *****************************************/
/************************************************************************/
/* (c) Copyright Systems Integration Specialists Company, Inc., */
/* 1995-2004, All Rights Reserved */
/* */
/* MODULE NAME : acseauth.h */
/* PRODUCT(S) : */
/* */
/* MODULE DESCRIPTION : */
/* ACSE Authentication header file. */
/* */
/* GLOBAL FUNCTIONS DEFINED IN THIS MODULE : */
/* */
/* MODIFICATION LOG : */
/* Date Who Rev Comments */
/* -------- --- ------ ------------------------------------------- */
/* 02/05/04 EJV 07 Added MACE_MECH_ID and PASWORD_MECH_ID defs. */
/* 02/04/04 EJV 06 Removed extern maceMechId. */
/* 08/20/03 EJV 05 Added extern maceMechId. */
/* 07/08/03 EJV 04 Del old password auth (OBSOLETE_ACSE_AUTH) */
/* 03/19/03 MDE 03 Added ACSE_AUTH_MECH_MACE_CERT */
/* 03/13/03 EJV 02 Added asn1r.h. */
/* 09/30/02 ASK 01 Created */
/************************************************************************/
#ifndef ACSEAUTH_INCLUDED
#define ACSEAUTH_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#include "asn1r.h" /* for MMS_OBJ_ID */
/************************************************************************/
/* New Authentication stuff */
/************************************************************************/
#define ACSE_MAX_LEN_PASSWORD 16
typedef ST_INT16 ST_ACSE_AUTH;
/* Authentication mechanisms MMS_OBJ_ID */
#define PASS_MECH_ID {4, {2 ,2 ,3 ,1 }}
#define MACE_MECH_ID \
{ 8, /* num_comps */ \
{ /* comps */ \
1, /* ??? */ \
0, /* ??? */ \
840, /* iso member-body usa */ \
0, /* ansi-t1-259-1997 */ \
1, /* stase */ \
0, /* stase-authentication value */ \
1, /* abstractSyntax */ \
1 /* version */ \
} \
}
/* The ACSE user shall return one of the falling codes once they have */
/* taken a look at the partner's ACSE_AUTH_INFO structure. */
/* These return codes map to the ABRT-diagnostic of the Abort PDU. */
/* Returning any of these will result in an abort PDU being sent with */
/* the specified diagnostic code. */
#define ACSE_AUTH_SUCCESS 0
#define ACSE_DIAG_NO_REASON 1
#define ACSE_DIAG_PROTOCOL_ERROR 2
#define ACSE_DIAG_AUTH_MECH_NAME_NOT_RECOGNIZED 3
#define ACSE_DIAG_AUTH_MECH_NAME_REQUIRED 4
#define ACSE_DIAG_AUTH_FAILURE 5
#define ACSE_DIAG_AUTH_REQUIRED 6
/* Mechanism types */
#define ACSE_AUTH_MECH_PASSWORD 0
#define ACSE_AUTH_MECH_MACE_CERT 1
#define ACSE_AUTH_MECH_OTHER 2
/* This structure is used for any mechanism data that must be */
/* encoded/decoded by the user instead of the ACSE. */
typedef struct
{
ST_INT len; /* Length of encoded data. */
ST_UCHAR *ptr; /* Pointer to encoded data. */
ST_UCHAR *buf; /* User buffer (chk_free'd if != NULL) */
} USR_AUTH_BUFFER;
/* User-Supplied Authentication Structure */
typedef struct
{
ST_BOOLEAN auth_pres; /* If this structure is filled out */
ST_INT mech_type; /* One of the mechanism types, defined above */
union
{
struct
{
ST_CHAR password[ACSE_MAX_LEN_PASSWORD + 1];
} pw_auth;
struct
{
MMS_OBJ_ID mech_id; /* User must set to desired id */
USR_AUTH_BUFFER auth_value; /* User must encode/decode ASN.1 */
} other_auth;
} u;
} ACSE_AUTH_INFO;
/************************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* ACSEAUTH_INCLUDED */
/************************************************************************/