📄 pgpkeyserver.h
字号:
/*____________________________________________________________________________
Copyright (C) 1997 Network Associates Inc. and affiliated companies.
All rights reserved.
$Id: pgpKeyServer.h,v 1.43 1999/04/12 18:59:57 jason Exp $
____________________________________________________________________________*/
#ifndef Included_pgpKeyServer_h
#define Included_pgpKeyServer_h
#include "pgpOptionList.h"
#include "pgpErrors.h"
#include "pgpGroups.h"
#include "pgpTLS.h"
enum PGPKeyServerState_
{
kPGPKeyServerState_Invalid = 0,
kPGPKeyServerState_Opening = 1,
kPGPKeyServerState_Querying = 2,
kPGPKeyServerState_ReceivingResults = 3,
kPGPKeyServerState_ProcessingResults = 4,
kPGPKeyServerState_Uploading = 5,
kPGPKeyServerState_Deleting = 6,
kPGPKeyServerState_Disabling = 7,
kPGPKeyServerState_Closing = 8,
kPGPKeyServerState_TLSUnableToSecureConnection = 9,
kPGPKeyServerState_TLSConnectionSecured = 10,
PGP_ENUM_FORCE(PGPKeyServerState_)
};
PGPENUM_TYPEDEF(PGPKeyServerState_, PGPKeyServerState);
enum PGPKeyServerProtocol_
{
kPGPKeyServerProtocol_Invalid = 0,
kPGPKeyServerProtocol_LDAP = 1,
kPGPKeyServerProtocol_HTTP = 2,
kPGPKeyServerProtocol_LDAPS = 3,
kPGPKeyServerProtocol_HTTPS = 4,
PGP_ENUM_FORCE( PGPKeyServerProtocol_ )
};
PGPENUM_TYPEDEF( PGPKeyServerProtocol_, PGPKeyServerProtocol );
enum PGPKeyServerClass_
{
kPGPKeyServerClass_Invalid = 0,
kPGPKeyServerClass_PGP = 1,
kPGPKeyServerClass_NetToolsCA = 2,
kPGPKeyServerClass_Verisign = 3,
kPGPKeyServerClass_Entrust = 4,
PGP_ENUM_FORCE( PGPKeyServerClass_ )
};
PGPENUM_TYPEDEF( PGPKeyServerClass_, PGPKeyServerClass );
enum PGPKeyServerKeySpace_ /* These are only valid for LDAP keyservers */
{
kPGPKeyServerKeySpace_Invalid = 0,
kPGPKeyServerKeySpace_Default = 1,
kPGPKeyServerKeySpace_Normal = 2,
kPGPKeyServerKeySpace_Pending = 3,
PGP_ENUM_FORCE( PGPKeyServerKeySpace_ )
};
PGPENUM_TYPEDEF( PGPKeyServerKeySpace_, PGPKeyServerKeySpace );
enum PGPKeyServerAccessType_ /* These are only valid for LDAP keyservers */
{
kPGPKeyServerAccessType_Invalid = 0,
kPGPKeyServerAccessType_Default = 1,
kPGPKeyServerAccessType_Normal = 2,
kPGPKeyServerAccessType_Administrator = 3,
PGP_ENUM_FORCE( PGPKeyServerAccessType_ )
};
PGPENUM_TYPEDEF( PGPKeyServerAccessType_, PGPKeyServerAccessType );
/* PGPKeyServerMonitorValues are null terminated linked lists.
The values member is a null terminated array of char*s.
*/
typedef struct PGPKeyServerMonitorValues
{
char * name;
char ** values;
struct PGPKeyServerMonitorValues * next;
} PGPKeyServerMonitorValues;
typedef struct PGPKeyServerMonitor
{
PGPKeyServerRef keyServerRef;
PGPKeyServerMonitorValues * valuesHead;
} PGPKeyServerMonitor;
typedef struct PGPKeyServerThreadStorage * PGPKeyServerThreadStorageRef;
# define kInvalidPGPKeyServerThreadStorageRef \
((PGPKeyServerThreadStorageRef) NULL)
#define PGPKeyServerThreadStorageRefIsValid(ref) \
((ref) != kInvalidPGPKeyServerThreadStorageRef)
#if PGP_DEPRECATED /* [ */
#define kPGPKeyServerType_Invalid kPGPKeyServerProtocol_Invalid
#define kPGPKeyServerType_LDAP kPGPKeyServerProtocol_LDAP
#define kPGPKeyServerType_HTTP kPGPKeyServerProtocol_HTTP
#define kPGPKeyServerType_LDAPS kPGPKeyServerProtocol_LDAPS
#define kPGPKeyServerType_HTTPS kPGPKeyServerProtocol_HTTPS
typedef PGPKeyServerProtocol PGPKeyServerType;
#endif /* ] PGP_DEPRECATED */
PGP_BEGIN_C_DECLARATIONS
#if PRAGMA_IMPORT_SUPPORTED
#pragma import on
#endif
/* Use the idle event handler to receive periodic idle events during
network calls. Usually this is used only in non-preemptive multi-tasking
OSes to allow yielding in threads. Pre-emptive multi-tasking systems
should probably not use the call as it interrupts the efficient wait state
of threads waiting on network calls.
Idle event handlers need to be added on a per thread basis.
Returning an error from the idle event handler will cause the keyserver
to quit processing and to return a kPGPError_UserAbort. */
PGPError PGPSetKeyServerIdleEventHandler(
PGPEventHandlerProcPtr inCallback,
PGPUserValue inUserData);
PGPError PGPGetKeyServerIdleEventHandler(
PGPEventHandlerProcPtr * outCallback,
PGPUserValue * outUserData);
/* Network library options */
PGPOptionListRef PGPONetURL(PGPContextRef context, const char *url);
PGPOptionListRef PGPONetHostName(PGPContextRef context,
const char *hostName, PGPUInt16 port);
PGPOptionListRef PGPONetHostAddress(PGPContextRef context,
PGPUInt32 hostAddress, PGPUInt16 port);
PGPOptionListRef PGPOKeyServerProtocol(PGPContextRef context,
PGPKeyServerProtocol serverProtocol);
PGPOptionListRef PGPOKeyServerKeySpace(PGPContextRef context,
PGPKeyServerKeySpace serverSpace);
PGPOptionListRef PGPOKeyServerAccessType(PGPContextRef context,
PGPKeyServerAccessType accessType);
PGPOptionListRef PGPOKeyServerCAKey(PGPContextRef context,
PGPKeyRef caKey);
PGPOptionListRef PGPOKeyServerRequestKey(PGPContextRef context,
PGPKeyRef requestKey);
PGPOptionListRef PGPOKeyServerSearchKey(PGPContextRef context,
PGPKeyRef searchKey);
PGPOptionListRef PGPOKeyServerSearchFilter(PGPContextRef context,
PGPFilterRef searchFilter);
/* Static storage creation */
PGPError PGPKeyServerCreateThreadStorage(
PGPKeyServerThreadStorageRef * outPreviousStorage);
PGPError PGPKeyServerDisposeThreadStorage(
PGPKeyServerThreadStorageRef inPreviousStorage);
/* Initialize and close the keyserver library */
PGPError PGPKeyServerInit(void);
PGPError PGPKeyServerCleanup(void);
/* Creating and freeing a keyserver ref. */
PGPError PGPNewKeyServer(
PGPContextRef inContext,
PGPKeyServerClass inClass,
PGPKeyServerRef *outKeyServerRef,
PGPOptionListRef firstOption,
... );
PGPError PGPFreeKeyServer(PGPKeyServerRef inKeyServerRef);
PGPError PGPIncKeyServerRefCount(PGPKeyServerRef inKeyServerRef);
/* Set and get the keyserver's event handler. Note that returning an error
for a keyserver event will abort the current call. */
PGPError PGPSetKeyServerEventHandler(
PGPKeyServerRef inKeyServerRef,
PGPEventHandlerProcPtr inCallback,
PGPUserValue inUserData);
PGPError PGPGetKeyServerEventHandler(
PGPKeyServerRef inKeyServerRef,
PGPEventHandlerProcPtr * outCallback,
PGPUserValue * outUserData);
/* Canceling a call to a keyserver. This is the only call that can be made
to a keyserver that is currently in another call. Also, once you have
returned from a canceled call, you may only close the keyserver. */
PGPError PGPCancelKeyServerCall(PGPKeyServerRef inKeyServerRef);
/* Opening and closing the keyserver. A keyserver ref can be opened and
closed multiple times as necessary. */
PGPError PGPKeyServerOpen(PGPKeyServerRef inKeyServerRef,
PGPtlsSessionRef inTLSSessionRef);
PGPError PGPKeyServerClose(PGPKeyServerRef inKeyServerRef);
/* Get keyserver info. */
PGPError PGPGetKeyServerTLSSession(PGPKeyServerRef inKeyServerRef,
PGPtlsSessionRef * outTLSSessionRef);
PGPError PGPGetKeyServerProtocol(PGPKeyServerRef inKeyServerRef,
PGPKeyServerProtocol * outType);
PGPError PGPGetKeyServerAccessType(PGPKeyServerRef inKeyServerRef,
PGPKeyServerAccessType * outAccessType);
PGPError PGPGetKeyServerKeySpace(PGPKeyServerRef inKeyServerRef,
PGPKeyServerKeySpace * outKeySpace);
PGPError PGPGetKeyServerPort(PGPKeyServerRef inKeyServerRef,
PGPUInt16 * outPort);
PGPError PGPGetKeyServerHostName(PGPKeyServerRef inKeyServerRef,
char ** outHostName); /* Use PGPFreeData to free */
PGPError PGPGetKeyServerAddress(PGPKeyServerRef inKeyServerRef,
PGPUInt32 * outAddress);
PGPError PGPGetKeyServerPath(PGPKeyServerRef inKeyServerRef,
char ** outPath); /* Use PGPFreeData to free */
PGPContextRef PGPGetKeyServerContext(PGPKeyServerRef inKeyServerRef);
/* If there was an error string returned from the server, you can get it with
this function. Note that if there is no string, the function will return
kPGPError_NoErr and *outErrorString will be NULL */
PGPError PGPGetLastKeyServerErrorString(
PGPKeyServerRef inKeyServerRef,
char ** outErrorString); /* Use PGPFreeData to free */
/* These functions may be used with both HTTP and LDAP keyservers */
PGPError PGPQueryKeyServer(PGPKeyServerRef inKeyServerRef,
PGPFilterRef inFilterRef,
PGPKeySetRef * outFoundKeys);
PGPError PGPUploadToKeyServer(PGPKeyServerRef inKeyServerRef,
PGPKeySetRef inKeysToUpload,
PGPKeySetRef * outKeysThatFailed);
/* These functions may only be used with LDAP keyservers */
PGPError PGPDeleteFromKeyServer(PGPKeyServerRef inKeyServerRef,
PGPKeySetRef inKeysToDelete,
PGPKeySetRef * outKeysThatFailed);
PGPError PGPDisableFromKeyServer(PGPKeyServerRef inKeyServerRef,
PGPKeySetRef inKeysToDisable,
PGPKeySetRef * outKeysThatFailed);
PGPError PGPSendGroupsToServer(PGPKeyServerRef inKeyServerRef,
PGPGroupSetRef inGroupSetRef);
PGPError PGPRetrieveGroupsFromServer(
PGPKeyServerRef inKeyServerRef,
PGPGroupSetRef * outGroupSetRef);
PGPError PGPNewServerMonitor(PGPKeyServerRef inKeyServerRef,
PGPKeyServerMonitor ** outMonitor);
PGPError PGPFreeServerMonitor(PGPKeyServerMonitor * inMonitor);
/* X.509 Certificate Request functions */
PGPError PGPSendCertificateRequest(
PGPKeyServerRef inKeyServerRef,
PGPOptionListRef firstOption,
... );
PGPError PGPRetrieveCertificate(
PGPKeyServerRef inKeyServerRef,
PGPOptionListRef firstOption,
... );
PGPError PGPRetrieveCertificateRevocationList(
PGPKeyServerRef inKeyServerRef,
PGPOptionListRef firstOption,
... );
/***************************************************************************
****************************************************************************
NOTE: These functions are deprecated and should not be used
PGPGetKeyServerType -> PGPGetKeyServerProtocol
PGPNewKeyServerFromURL -> PGPNewKeyServer
PGPNewKeyServerFromHostName -> PGPNewKeyServer
PGPNewKeyServerFromHostAddress -> PGPNewKeyServer
****************************************************************************
***************************************************************************/
#if PGP_DEPRECATED /* [ */
PGPError PGPNewKeyServerFromURL(PGPContextRef inContext,
const char * inURL,
PGPKeyServerAccessType inAccessType,
PGPKeyServerKeySpace inKeySpace,
PGPKeyServerRef * outKeyServerRef);
PGPError PGPNewKeyServerFromHostName(PGPContextRef inContext,
const char * inHostName,
PGPUInt16 inPort, /* default for protocol if 0 */
PGPKeyServerProtocol inType,
PGPKeyServerAccessType inAccessType,
PGPKeyServerKeySpace inKeySpace,
PGPKeyServerRef * outKeyServerRef);
PGPError PGPNewKeyServerFromHostAddress(PGPContextRef inContext,
PGPUInt32 inAddress,
PGPUInt16 inPort, /* default for protocol if 0 */
PGPKeyServerProtocol inType,
PGPKeyServerAccessType inAccessType,
PGPKeyServerKeySpace inKeySpace,
PGPKeyServerRef * outKeyServerRef);
PGPError PGPGetKeyServerType(PGPKeyServerRef inKeyServerRef,
PGPKeyServerType * outType);
#endif /* ] PGP_DEPRECATED */
#if PRAGMA_IMPORT_SUPPORTED
#pragma import reset
#endif
PGP_END_C_DECLARATIONS
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -