/usr/include/openh323/h235plugin.h is in libh323plus-dev 1.24.0~dfsg2-1.3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | /*
* h235pugin.h
*
* h235 Implementation for the h323plus library.
*
* Copyright (c) 2006 ISVO (Asia) Pte Ltd. All Rights Reserved.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Alternatively, the contents of this file may be used under the terms
* of the General Public License (the "GNU License"), in which case the
* provisions of GNU License are applicable instead of those
* above. If you wish to allow use of your version of this file only
* under the terms of the GNU License and not to allow others to use
* your version of this file under the MPL, indicate your decision by
* deleting the provisions above and replace them with the notice and
* other provisions required by the GNU License. If you do not delete
* the provisions above, a recipient may use your version of this file
* under either the MPL or the GNU License."
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
*
* Contributor(s): ______________________________________.
*
* $Log: h235plugin.h,v $
* Revision 1.1 2007/08/06 20:50:49 shorne
* First commit of h323plus
*
*
*
*
*/
#ifndef __h235PLUGIN_H
#define __h235PLUGIN_H
#include <time.h>
#ifdef __cplusplus
extern "C" {
#endif
/////////////////////////////////////////////////////////////////////////////////
//
// h235 Plugins
#define PWLIB_PLUGIN_API_VERSION 0
#define PLUGIN_H235_VERSION 1
// Function calls
static const char H235_BuildClear[] = "Build_Clear";
static const char H235_BuildCrypto[] = "Build_Crypto";
static const char H235_FinaliseCrypto[] = "Finalise_Crypto";
static const char H235_ValidateClear[] = "Validate_Clear";
static const char H235_ValidateCrypto[] = "Validate_Crypto";
// Settings direction
static const char GET_PLUGINH235_SETTINGS[] = "get_h235_settings";
static const char SET_PLUGINH235_SETTINGS[] = "set_h235_settings";
// Validation Constants
#define Pluginh235_Val_OK 0 ///< Security parameters and Msg are ok, no security attacks
#define Pluginh235_Val_Absent 1 ///< Security parameters are expected but absent
#define Pluginh235_Val_Error 2 ///< Security parameters are present but incorrect
#define Pluginh235_Val_InvalidTime 3 ///< Security parameters indicate peer has bad real time clock
#define Pluginh235_Val_BadPassword 4 ///< Security parameters indicate bad password in token
#define Pluginh235_Val_ReplyAttack 5 ///< Security parameters indicate an attack was made
#define Pluginh235_Val_Disabled 6 ///< Security is disabled by local system
// Application Constants
#define Pluginh235_App_GKAdmission 0 ///< To Be Used for GK Admission
#define Pluginh235_App_EPAuthentication 1 ///< To Be Used for EP Authentication
#define Pluginh235_App_LRQOnly 2 ///< To Be Used for Location Request Authentication
#define Pluginh235_App_AnyApplication 3 ///< To Be Used for Any Application
// Settings constants
static const char Pluginh235_Set_Application[] ="Application";
static const char Pluginh235_Set_UseGkAndEpIdentifiers[] ="UseGkAndEpIdentifiers";
static const char Pluginh235_Set_IsSecuredPDU[] ="IsSecuredPDU";
static const char Pluginh235_Set_IsSecuredSignalPDU[] ="IsSecuredSignalPDU";
static const char Pluginh235_Set_IsActive[] ="IsActive";
static const char Pluginh235_Set_RemoteId[] ="RemoteId";
static const char Pluginh235_Set_LocalId[] ="LocalId";
static const char Pluginh235_Set_Password[] ="Password";
static const char Pluginh235_Set_TimestampGracePeriod[] ="TimestampGracePeriod";
// Ras Message constants
#define Pluginh235_msg_gatekeeperRequest 0
#define Pluginh235_msg_gatekeeperConfirm 1
#define Pluginh235_msg_gatekeeperReject 2
#define Pluginh235_msg_registrationRequest 3
#define Pluginh235_msg_registrationConfirm 4
#define Pluginh235_msg_registrationReject 5
#define Pluginh235_msg_unregistrationRequest 6
#define Pluginh235_msg_unregistrationConfirm 7
#define Pluginh235_msg_unregistrationReject 8
#define Pluginh235_msg_admissionRequest 9
#define Pluginh235_msg_admissionConfirm 10
#define Pluginh235_msg_admissionReject 11
#define Pluginh235_msg_bandwidthRequest 12
#define Pluginh235_msg_bandwidthConfirm 13
#define Pluginh235_msg_bandwidthReject 14
#define Pluginh235_msg_disengageRequest 15
#define Pluginh235_msg_disengageConfirm 16
#define Pluginh235_msg_disengageReject 17
#define Pluginh235_msg_locationRequest 18
#define Pluginh235_msg_locationConfirm 19
#define Pluginh235_msg_locationReject 20
#define Pluginh235_msg_infoRequest 21
#define Pluginh235_msg_infoRequestResponse 22
// Signal message constants
#define Pluginh235_msg_setup 0
#define Pluginh235_msg_callProceeding 1
#define Pluginh235_msg_connect 2
#define Pluginh235_msg_alerting 3
#define Pluginh235_msg_information 4
#define Pluginh235_msg_releaseComplete 5
#define Pluginh235_msg_facility 6
#define Pluginh235_msg_progress 7
#define Pluginh235_msg_empty 8
#define Pluginh235_msg_status 9
#define Pluginh235_msg_statusInquiry 10
#define Pluginh235_msg_setupAcknowledge 11
#define Pluginh235_msg_notify 12
/////////////////////////////////////////////////////////////////////////////////
enum Pluginh235_Flags {
// Token type
Pluginh235_TokenTypeMask = 0x000f,
Pluginh235_TokenTypeclear = 0x0000,
Pluginh235_TokenTypecrypto = 0x0001,
Pluginh235_TokenTypeBoth = 0x0002,
// CryptoToken Style
Pluginh235_TokenStyleMask = 0x0010,
Pluginh235_TokenStyleHash = 0x0010,
Pluginh235_TokenStyleSigned = 0x0011,
Pluginh235_TokenStyleEncrypted = 0x0012
};
struct Pluginh235_Definition;
struct Pluginh235_ControlDefn {
const char * name;
int (*control)(const struct Pluginh235_Definition * def, void * context,
const char * parm, const char * value);
};
/////////////////////////////////////////////////////////////////////////////////
struct Pluginh235_information {
// start of version 1 fields
time_t timestamp; // codec creation time and date - obtain with command: date -u "+%c = %s"
const char * sourceAuthor; // source code author
const char * sourceVersion; // source code version
const char * sourceEmail; // source code email contact information
const char * sourceURL; // source code web site
const char * sourceCopyright; // source code copyright
const char * sourceLicense; // source code license
unsigned char sourceLicenseCode; // source code license
const char * h235Description; // h235 description
const char * h235Manufacturer; // h235 Manufacturer
const char * h235Model; // h235 Model
const char * h235Email; // h235 email contact information
const char * h235URL; // h235 Manufacturer web site
// end of version 1 fields
};
struct Pluginh235_Definition {
unsigned int version; // codec structure version
// start of version 1 fields
struct Pluginh235_information * info; // license information
unsigned int flags; // Pluginh235_Flags,
const char * desc; // text decription
const char * identifier; // OID Identifier
const void * userData; // user data value
void *(*createh235)(const struct Pluginh235_Definition * def); // create h235
void (*destroyh235)(const struct Pluginh235_Definition * def); // destroy h235
int (*h235function)(const struct Pluginh235_Definition * def, void * context, // do H235 function
const char * function,const void * data, unsigned * dataLen,
const void * raw, unsigned * rawLen);
struct Pluginh235_ControlDefn * h235Controls; // do control function
// end of version 1 fields
};
typedef struct Pluginh235_Definition * (* Pluginh235_Geth235Function)(unsigned int *, unsigned int);
typedef unsigned (* Pluginh235_GetAPIVersionFunction)();
//////////////////////////////////////////////////////////////////////////////
//
// Plugin Definition
//
// API version
#define PLUGIN_H235_API_VER_FN PWLibPlugin_GetAPIVersion
#define PLUGIN_H235_API_VER_FN_STR "PWLibPlugin_GetAPIVersion"
// Harware Input Device
#define PLUGIN_H235_GET_DEVICE_FN Opalh235Plugin_GetDevice
#define PLUGIN_H235_GET_DEVICE_FN_STR "Opalh235Plugin_GetDevice"
# define PLUGIN_H235_IMPLEMENT(name) \
PLUGIN_CODEC_DLL_API unsigned int PLUGIN_H235_API_VER_FN() \
{ return PWLIB_PLUGIN_API_VERSION; } \
#ifdef __cplusplus
};
#endif
#endif // __h235PLUGIN_H
|