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

📄 csp.h

📁 windows的加密api源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* csp.h */

#include <windows.h>
#include <windef.h>
#include <wtypes.h>
#include "wincrypt.h"
#include "winerror.h"
#include "crypto.h"
#include "mem.h"
#include "contman.h"

// Specify which hashing algorithms are supported
#define CSP_USE_SHA1
#define CSP_USE_MD5
#define CSP_USE_RC4
#define CSP_USE_RC2
#define CSP_USE_MAC
#define CSP_USE_DES40
#define CSP_USE_DES

// Specify which encryption algorithms are supported
#ifdef STRONG 
#define CSP_USE_3DES
// domestic RC4 key and salt sizes
#define RC4_MAXKEYSIZE  16
// domestic RC2 key, salt and effective key sizes
#define RC2_MAXKEYSIZE  16
#define RC2_MAXEFFSIZE  128

#define RC_MAXSALTSIZE 256
#else
// international RC4 key and salt sizes
#define RC4_MAXKEYSIZE  7
// international RC2 key, salt and effective key sizes
#define RC2_MAXKEYSIZE  7
#define RC2_MAXEFFSIZE  56

#define RC_MAXSALTSIZE 11
#endif // _STRONG

// key sizes for france
#define RC2_MAX_FRENCH_KEYSIZE  5
#define RC4_MAX_FRENCH_KEYSIZE  5

#define RC2_DEFKEYSIZE  5
#define RC2_MINKEYSIZE  5
#define RC2_DEFEFFSIZE  40
#define RC2_MINEFFSIZE  40

#define RC4_DEFKEYSIZE  5
#define RC4_MINKEYSIZE  5

#define RC_MINSALTSIZE 0
#define RC_DEFSALTSIZE 11

#define RC2_BLOCKLEN    8

#define CSP_USE_SSL3

/*********************************/
/* Definitions                   */
/*********************************/

/*********************************/
/* Structure Definitions         */
/*********************************/

#define CALG_DES40  CALG_CYLINK_MEK

typedef struct _dhSharedNumber {
	BYTE            *shared;
	DWORD           len;
} dhSharedNumber;

/*********************************/
/* Function Definitions          */
/*********************************/

/*
 -	CPAcquireContext
 -
 *	Purpose:
 *               The CPAcquireContext function is used to acquire a context
 *               handle to a cryptographic service provider (CSP).
 *
 *
 *	Parameters:
 *               OUT phProv         -  Handle to a CSP
 *               IN  pszContainer   -  Pointer to a string which is the
 *                                     identity of the logged on user
 *               IN  dwFlags        -  Flags values
 *               IN  pVTable        -  Pointer to table of function pointers
 *
 *	Returns:
 */
BOOL CPAcquireContext(OUT HCRYPTPROV *phProv,
                      IN CHAR *pszContainer,
                      IN DWORD dwFlags,
                      IN PVTableProvStruc pVTable);

/*
 -      CPReleaseContext
 -
 *      Purpose:
 *               The CPReleaseContext function is used to release a
 *               context created by CryptAcquireContext.
 *
 *     Parameters:
 *               IN  phProv        -  Handle to a CSP
 *               IN  dwFlags       -  Flags values
 *
 *	Returns:
 */
BOOL CPReleaseContext(IN HCRYPTPROV hProv,
                      IN DWORD dwFlags);


/*
 -	CPGenKey
 -
 *	Purpose:
 *                Generate cryptographic keys
 *
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      Algid   -  Algorithm identifier
 *               IN      dwFlags -  Flags values
 *               OUT     phKey   -  Handle to a generated key
 *
 *	Returns:
 */
BOOL CPGenKey(IN HCRYPTPROV hProv,
              IN ALG_ID Algid,
              IN DWORD dwFlags,
              OUT HCRYPTKEY * phKey);


/*
 -	CPDeriveKey
 -
 *	Purpose:
 *                Derive cryptographic keys from base data
 *
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      Algid      -  Algorithm identifier
 *               IN      hBaseData -   Handle to base data
 *               IN      dwFlags    -  Flags values
 *               OUT     phKey      -  Handle to a generated key
 *
 *	Returns:
 */
BOOL CPDeriveKey(IN HCRYPTPROV hProv,
                 IN ALG_ID Algid,
                 IN HCRYPTHASH hBaseData,
                 IN DWORD dwFlags,
                 OUT HCRYPTKEY * phKey);


/*
 -	CPDestroyKey
 -
 *	Purpose:
 *                Destroys the cryptographic key that is being referenced
 *                with the hKey parameter
 *
 *
 *	Parameters:
 *               IN      hProv  -  Handle to a CSP
 *               IN      hKey   -  Handle to a key
 *
 *	Returns:
 */
BOOL CPDestroyKey(IN HCRYPTPROV hProv,
                  IN HCRYPTKEY hKey);



/*
 -	CPSetKeyParam
 -
 *	Purpose:
 *                Allows applications to customize various aspects of the
 *                operations of a key
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      hKey    -  Handle to a key
 *               IN      dwParam -  Parameter number
 *               IN      pbData  -  Pointer to data
 *               IN      dwFlags -  Flags values
 *
 *	Returns:
 */
BOOL CPSetKeyParam(IN HCRYPTPROV hProv,
                   IN HCRYPTKEY hKey,
                   IN DWORD dwParam,
                   IN BYTE *pbData,
                   IN DWORD dwFlags);



/*
 -	CPGetKeyParam
 -
 *	Purpose:
 *                Allows applications to get various aspects of the
 *                operations of a key
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      hKey       -  Handle to a key
 *               IN      dwParam    -  Parameter number
 *               OUT     pbData     -  Pointer to data
 *               IN      pdwDataLen -  Length of parameter data
 *               IN      dwFlags    -  Flags values
 *
 *	Returns:
 */
BOOL CPGetKeyParam(IN HCRYPTPROV hProv,
                   IN HCRYPTKEY hKey,
                   IN DWORD dwParam,
                   OUT BYTE *pbData,
                   IN DWORD *pdwDataLen,
                   IN DWORD dwFlags);


/*
 -	CPSetProvParam
 -
 *	Purpose:
 *                Allows applications to customize various aspects of the
 *                operations of a provider
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      dwParam -  Parameter number
 *               IN      pbData  -  Pointer to data
 *               IN      dwFlags -  Flags values
 *
 *	Returns:
 */
BOOL CPSetProvParam(IN HCRYPTPROV hProv,
                    IN DWORD dwParam,
                    IN BYTE *pbData,
                    IN DWORD dwFlags);



/*
 -	CPGetProvParam
 -
 *	Purpose:
 *                Allows applications to get various aspects of the
 *                operations of a provider
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      dwParam    -  Parameter number
 *               OUT     pbData     -  Pointer to data
 *               IN OUT  pdwDataLen -  Length of parameter data
 *               IN      dwFlags    -  Flags values
 *
 *	Returns:
 */
BOOL CPGetProvParam(IN HCRYPTPROV hProv,
                    IN DWORD dwParam,
                    OUT BYTE *pbData,
                    IN OUT DWORD *pdwDataLen,
                    IN DWORD dwFlags);


/*
 -	CPSetHashParam
 -
 *	Purpose:
 *                Allows applications to customize various aspects of the
 *                operations of a hash
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      hHash   -  Handle to a hash
 *               IN      dwParam -  Parameter number
 *               IN      pbData  -  Pointer to data
 *               IN      dwFlags -  Flags values
 *
 *	Returns:
 */
BOOL CPSetHashParam(IN HCRYPTPROV hProv,
                    IN HCRYPTHASH hHash,
                    IN DWORD dwParam,
                    IN BYTE *pbData,
                    IN DWORD dwFlags);



/*
 -	CPGetHashParam
 -
 *	Purpose:
 *                Allows applications to get various aspects of the
 *                operations of a hash
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      hHash      -  Handle to a hash
 *               IN      dwParam    -  Parameter number
 *               OUT     pbData     -  Pointer to data
 *               IN      pdwDataLen -  Length of parameter data
 *               IN      dwFlags    -  Flags values
 *

⌨️ 快捷键说明

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