⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kfm.h

📁 IBM Lotus C++ API 7.0a for IBM Lotus Notes/Domino Directory Release --------- ------------------
💻 H
字号:

#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
#pragma datamodel(P128)
#endif

/*********************************************************************/
/*                                                                   */
/* Licensed Materials - Property of IBM                              */
/*                                                                   */
/* L-GHUS-5VMPGW, L-GHUS-5S3PEE                                      */
/* (C) Copyright IBM Corp. 1989, 2005  All Rights Reserved           */
/*                                                                   */
/* US Government Users Restricted Rights - Use, duplication or       */
/* disclosure restricted by GSA ADP Schedule Contract with           */
/* IBM Corp.                                                         */
/*                                                                   */
/*********************************************************************/



#ifndef KFM_DEFS
#define KFM_DEFS

#ifndef NSF_DATA_DEFS         /* NOTEHANDLE */
#include "nsfdata.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef	NULLKFHANDLE
typedef void far * KFHANDLE;
#define NULLKFHANDLE ((KFHANDLE)0)
#endif

/*	Structure returned by KFMCreatePassword to encode a password securely
	in memory to avoid scavenging. 

	NOTE:	This structure is to inclue information on the password hash
			ONLY.  The 'Type' field is expected to take other values as the
			product evolves, but will always have the semanitics of how
			the hash was constructed, and which bytes in the 
			'HashedPassword' field contain the actual hash bytes.  Sometimes
			more than one hash will be stored in the hash array.
*/

typedef struct
	{
	BYTE	Type;				/* Type of hash.  This value should be		*/
								/* interpreted only by the lower Notes 		*/
								/* layers and never by software above the	*/
								/* ABPI layer.								*/
								/* hook for future compatibility.			*/
	BYTE	HashedPassword [48];  /* Hashed password						*/
	}
	KFM_PASSWORD;

typedef HANDLE HCERTIFIER;	
#define NULLHCERTIFIER ((HCERTIFIER)0)
#define KFM_ui_GetUserInfo				 1

/*	Function codes for routine SECKFMGetPublicKey
*/

#define KFM_pubkey_Primary				0
#define KFM_pubkey_International		1

STATUS LNPUBLIC SECKFMUserInfo			(WORD Function, 
										 char far *lpName, 
										 LICENSEID far *lpLicense);
STATUS LNPUBLIC SECKFMGetUserName		(char far *retUserName);

STATUS LNPUBLIC SECKFMSwitchToIDFile	(char	*pIDFileName
										,char	*pPassword
										,char	*pUserName
										,WORD	MaxUserNameLength
										,DWORD	ReservedFlags
										,void	*pReserved
										);								

typedef BOOL (LNCALLBACKPTR SECNABENUMPROC) (void  *pCallCtx,
											 void  *pCert,
											 DWORD CertSize,
											 WORD  Reserved1,
											 WORD  Reserved2);


STATUS LNPUBLIC SECGetSignerInfoFromMail(HANDLE	hMailNote,
									   BOOL (FAR PASCAL *vCallBack)
									  				(void  *pCallCtx
													,void  *pCert
													,DWORD CertSize
													,WORD  Reserved1
													,WORD  Reserved2),
						   				 void 	*pCallCtx,
										 DWORD	ReservedFlags,
										 void	*pReserved);

STATUS LNPUBLIC SECNABEnumerateCertificates (NOTEHANDLE	hNote,
											 SECNABENUMPROC CallBack,
											 void	*pCallCtx,
											 DWORD	ReservedFlags,
											 void	*pReserved);

STATUS LNPUBLIC SECNABAddCertificate	(NOTEHANDLE	hNote
										,void		*pCertificate
										,DWORD		CertificateSize
										,DWORD		ReservedFlags
										,void		*pReserved
										);

STATUS LNPUBLIC SECNABRemoveCertificate (NOTEHANDLE	hNote
										,void	*pCertificate
										,DWORD  CertificateSize
										,DWORD	ReservedFlags
										,void	*pReserved
										);

#define fKFM_switchid_DontSetEnvVar			0x0008

STATUS LNPUBLIC SECKFMGetCertifierCtx   (char far		  *pCertFile, 
										 KFM_PASSWORD far *pKfmPW,
										 char far		  *pLogFile, 
										 TIMEDATE far	  *pExpDate, 
										 char far		  *retCertName,
										 HCERTIFIER far   *rethKfmCertCtx,
										 BOOL far		  *retfIsHierarchical, 
										 WORD far		  *retwFileVersion);

VOID   LNPUBLIC SECKFMFreeCertifierCtx	(HCERTIFIER hKfmCertCtx);

VOID   LNPUBLIC SECKFMCreatePassword	(char far		  *pPassword
										,KFM_PASSWORD far *retHashedPassword
										);
STATUS LNPUBLIC SECKFMSetCertifierExpiration   (HCERTIFIER hKfmCertCtx,
												TIMEDATE far *pExpirationDate);
STATUS LNPUBLIC SECKFMGetPublicKey		(char far	*pName
										,WORD		Function
										,WORD		Flags
										,HANDLE far *rethPubKey
										);
STATUS LNPUBLIC SECKFMChangePassword    (char far   *pIDFile
										,char far   *pOldPassword
										,char far   *pNewPassword
										);


/*	Constants used to indicate various types of IDs that can be created. */

#define KFM_IDFILE_TYPE_FLAT	0	/* Flat name space (V2 compatible)		*/
#define KFM_IDFILE_TYPE_STD		1	/* Standard (user/server hierarchical)	*/
#define KFM_IDFILE_TYPE_ORG		2	/* Organization certifier				*/
#define KFM_IDFILE_TYPE_ORGUNIT	3	/* Organizational unit certifier		*/
#define KFM_IDFILE_TYPE_DERIVED 4	/* Derived from certifer context.		*/
									/*  hierarchical => STD					*/
									/*  non-hierarchical => FLAT			*/ 
#define KFM_IDFILE_TYPE_INET	5	/*	Internet certifier.					*/

typedef void far * SCMCTX;
#define NULLSCMCTX ((SCMCTX) 0)
#define SC_MANIP_VERSION 7

/* Opcodes defined for SECManipulateSC
*/
#define SC_manip_GetVersion		   1
#define SC_manip_InitializeContext 2
#define SC_manip_TerminateContext  3
#define SC_manip_CheckCard         4
#define SC_manip_EnterIDFile	   5
#define SC_manip_EnterPIN		   6
#define SC_manip_SCEnableID		   7
#define SC_manip_PushInetKey	   8
#define SC_manip_FindMatchedCerts  9
#define SC_manip_GetMatchedCert	  10
#define SC_manip_ImportInetCert   11
/* Opcode added in 6.0.3 */
#define SC_manip_RefreshTokenInfo 12
/* Opcodes added in 7.0 */
#define SC_manip_PushKyrKey       13
#define SC_manip_PushNotesKey	  14
#define SC_manip_EnterIDPassword  15
#define SC_manip_FindAllKeys      16
#define SC_manip_LockIDWithKeyRO  17
#define SC_manip_LockIDWithKeyRnd 18


/* Structure used for SC_manip_GetMatchedCerts 
*/
typedef struct
{
	DWORD Version;     /* This typedef describes version 0 */
	DWORD dwSize; 
	DWORD dwUnused;
	DWORD retIDLen;
	DWORD retLabelLen;
	DWORD retCertLen;
	DWORD IDOffset;    /* Offset in bytes from beginning of structure */
	DWORD LabelOffset; /* Offset in bytes from beginning of structure */
	DWORD CertOffset;  /* Offset in bytes from beginning of structure */
	/* ID */
	/* Label */
	/* Cert */
}
SC_MANIP_IMPORTABLE_CERT;

STATUS LNPUBLIC SECManipulateSC (DWORD  OpCode,
								 SCMCTX *pContext,
								 DWORD  *pdwFlags,
								 DWORD  *pdwParam1,
								 void   *pvParam2);


#define SECKFM_open_All				0x00000001

#define SECKFM_close_WriteIdFile	0x00000001

STATUS LNPUBLIC SECKFMOpen (KFHANDLE *phKFC,
							char	 *pIDFileName,
							char	 *pPassword,
							DWORD	 Flags,
							DWORD	 Reserved,
							void	 *pReserved);

STATUS LNPUBLIC SECKFMClose (KFHANDLE *phKFC,
							 DWORD 	  Flags,
							 DWORD 	  Reserved,
							 void	  *pReserved);

STATUS LNPUBLIC SECAttachIdFileToDB (DBHANDLE hDB,
										char  	*pProfileNoteName,
										DWORD 	ProfileNoteNameLength,
										char  	*pUserName,
										DWORD	UserNameLength,
										char	*pIDFileName,
										char	*pPassword,
							   			DWORD 	Reserved,
							   			void	 *pReserved);


STATUS LNPUBLIC SECExtractIdFileFromDB (DBHANDLE hDB,
										char  	*pProfileNoteName,
										DWORD 	ProfileNoteNameLength,
										char  	*pUserName,
										DWORD	UserNameLength,
										char	*pPassword,
										char	*pPutIDFileHere,
							   			DWORD 	Reserved,
							   			void	 *pReserved);

#define SEC_refreshed_NotesCerts	0x00000001
#define SEC_refreshed_InternetCerts	0x00000002
#define SEC_refreshed_UserName		0x00000004

STATUS LNPUBLIC SECRefreshIdFile (char	*pIDFileName, 
								  char	*pPassword,
								  char	*pServer,
								  DWORD	*retFlags,
								  DWORD Reserved,
							   	  void	 *pReserved);
STATUS LNPUBLIC NSFDB2GetUsernamePW(char *ServerName, 
										char * pFilename, 
										KFM_PASSWORD *pKfmPW, 
										char *retUserName, 
										char *retPassword);
STATUS LNPUBLIC NSFDB2PutUsernamePW(char *ServerName, 
										char * pFilename, 
										char *UserName, 
										char *Password, 
										KFM_PASSWORD *pKfmPW);
STATUS LNPUBLIC NSFDB2DeleteUsernamePW(char *ServerName, 
											char * pFilename, 
											KFM_PASSWORD *pKfmPW);

#ifdef __cplusplus
/* End brace for extern "C" */
}
#endif

#endif /* KFM_DEFS */



#if defined(OS400) && (__OS400_TGTVRM__ >= 510)
#pragma datamodel(pop)
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -