diff options
Diffstat (limited to 'winsup/w32api/include/wincrypt.h')
-rw-r--r-- | winsup/w32api/include/wincrypt.h | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/winsup/w32api/include/wincrypt.h b/winsup/w32api/include/wincrypt.h new file mode 100644 index 0000000..db6bd1e --- /dev/null +++ b/winsup/w32api/include/wincrypt.h @@ -0,0 +1,184 @@ +#ifndef _WINCRYPT_H +#define _WINCRYPT_H +#ifdef __cplusplus +extern "C" { +#endif +#define MS_DEF_PROV_A "Microsoft Base Cryptographic Provider v1.0" +#define MS_DEF_PROV_W L"Microsoft Base Cryptographic Provider v1.0" +#define GET_ALG_CLASS(x) (x&57344) +#define GET_ALG_TYPE(x) (x&7680) +#define GET_ALG_SID(x) (x&511) +#define ALG_CLASS_ANY 0 +#define ALG_CLASS_SIGNATURE 8192 +#define ALG_CLASS_MSG_ENCRYPT 16384 +#define ALG_CLASS_DATA_ENCRYPT 24576 +#define ALG_CLASS_HASH 32768 +#define ALG_CLASS_KEY_EXCHANGE 40960 +#define ALG_TYPE_ANY 0 +#define ALG_TYPE_DSS 512 +#define ALG_TYPE_RSA 1024 +#define ALG_TYPE_BLOCK 1536 +#define ALG_TYPE_STREAM 2048 +#define ALG_SID_ANY 0 +#define ALG_SID_RSA_ANY 0 +#define ALG_SID_RSA_PKCS 1 +#define ALG_SID_RSA_MSATWORK 2 +#define ALG_SID_RSA_ENTRUST 3 +#define ALG_SID_RSA_PGP 4 +#define ALG_SID_DSS_ANY 0 +#define ALG_SID_DSS_PKCS 1 +#define ALG_SID_DSS_DMS 2 +#define ALG_SID_DES 1 +#define ALG_SID_RC2 2 +#define ALG_SID_RC4 1 +#define ALG_SID_SEAL 2 +#define ALG_SID_MD2 1 +#define ALG_SID_MD4 2 +#define ALG_SID_MD5 3 +#define ALG_SID_SHA 4 +#define ALG_SID_MAC 5 +#define ALG_SID_EXAMPLE 80 +#define CALG_MD2 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD2) +#define CALG_MD4 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD4) +#define CALG_MD5 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD5) +#define CALG_SHA (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_SHA) +#define CALG_MAC (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MAC) +#define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) +#define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE|ALG_TYPE_DSS|ALG_SID_DSS_ANY) +#define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) +#define CALG_DES (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES) +#define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2) +#define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4) +#define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL) +#define CRYPT_VERIFYCONTEXT 0xF0000000 +#define CRYPT_NEWKEYSET 8 +#define CRYPT_DELETEKEYSET 16 +#define CRYPT_EXPORTABLE 1 +#define CRYPT_USER_PROTECTED 2 +#define CRYPT_CREATE_SALT 4 +#define CRYPT_UPDATE_KEY 8 +#define SIMPLEBLOB 1 +#define PUBLICKEYBLOB 6 +#define AT_KEYEXCHANGE 1 +#define AT_SIGNATURE 2 +#define CRYPT_USERDATA 1 +#define KP_IV 1 +#define KP_SALT 2 +#define KP_PADDING 3 +#define KP_MODE 4 +#define KP_MODE_BITS 5 +#define KP_PERMISSIONS 6 +#define KP_ALGID 7 +#define KP_BLOCKLEN 8 +#define PKCS5_PADDING 1 +#define CRYPT_MODE_CBC 1 +#define CRYPT_MODE_ECB 2 +#define CRYPT_MODE_OFB 3 +#define CRYPT_MODE_CFB 4 +#define CRYPT_MODE_CTS 5 +#define CRYPT_ENCRYPT 1 +#define CRYPT_DECRYPT 2 +#define CRYPT_EXPORT 4 +#define CRYPT_READ 8 +#define CRYPT_WRITE 16 +#define CRYPT_MAC 32 +#define HP_ALGID 1 +#define HP_HASHVAL 2 +#define HP_HASHSIZE 4 +#define CRYPT_FAILED FALSE +#define CRYPT_SUCCEED TRUE +#define RCRYPT_SUCCEEDED(r) ((r)==CRYPT_SUCCEED) +#define RCRYPT_FAILED(r) ((r)==CRYPT_FAILED) +#define PP_ENUMALGS 1 +#define PP_ENUMCONTAINERS 2 +#define PP_IMPTYPE 3 +#define PP_NAME 4 +#define PP_VERSION 5 +#define PP_CONTAINER 6 +#define CRYPT_FIRST 1 +#define CRYPT_NEXT 2 +#define CRYPT_IMPL_HARDWARE 1 +#define CRYPT_IMPL_SOFTWARE 2 +#define CRYPT_IMPL_MIXED 3 +#define CRYPT_IMPL_UNKNOWN 4 +#define PROV_RSA_FULL 1 +#define PROV_RSA_SIG 2 +#define PROV_DSS 3 +#define PROV_FORTEZZA 4 +#define PROV_MS_MAIL 5 +#define PROV_SSL 6 +#define PROV_STT_MER 7 +#define PROV_STT_ACQ 8 +#define PROV_STT_BRND 9 +#define PROV_STT_ROOT 10 +#define PROV_STT_ISS 11 +#define MAXUIDLEN 64 +#define CUR_BLOB_VERSION 2 +typedef UINT ALG_ID; +typedef struct _VTableProvStruc {FARPROC FuncVerifyImage;} VTableProvStruc,*PVTableProvStruc; +typedef ULONG HCRYPTPROV; +typedef ULONG HCRYPTKEY; +typedef ULONG HCRYPTHASH; +typedef struct _PROV_ENUMALGS { + ALG_ID aiAlgid; + DWORD dwBitLen; + DWORD dwNameLen; + CHAR szName[20]; +} PROV_ENUMALGS; +typedef struct _PUBLICKEYSTRUC { + BYTE bType; + BYTE bVersion; + WORD reserved; + ALG_ID aiKeyAlg; +} PUBLICKEYSTRUC; +typedef struct _RSAPUBKEY { + DWORD magic; + DWORD bitlen; + DWORD pubexp; +} RSAPUBKEY; +BOOL WINAPI CryptAcquireContextA(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD); +BOOL WINAPI CryptAcquireContextW(HCRYPTPROV*,LPCWSTR,LPCWSTR,DWORD,DWORD); +BOOL WINAPI CryptReleaseContext(HCRYPTPROV,DWORD); +BOOL WINAPI CryptGenKey(HCRYPTPROV,ALG_ID,DWORD,HCRYPTKEY*); +BOOL WINAPI CryptDeriveKey(HCRYPTPROV,ALG_ID,HCRYPTHASH,DWORD,HCRYPTKEY*); +BOOL WINAPI CryptDestroyKey(HCRYPTKEY); +BOOL WINAPI CryptSetKeyParam(HCRYPTKEY,DWORD,PBYTE,DWORD); +BOOL WINAPI CryptGetKeyParam(HCRYPTKEY,DWORD,PBYTE,PDWORD,DWORD); +BOOL WINAPI CryptSetHashParam(HCRYPTHASH,DWORD,PBYTE,DWORD); +BOOL WINAPI CryptGetHashParam(HCRYPTHASH,DWORD,PBYTE,PDWORD,DWORD); +BOOL WINAPI CryptSetProvParam(HCRYPTPROV,DWORD,PBYTE,DWORD); +BOOL WINAPI CryptGetProvParam(HCRYPTPROV,DWORD,PBYTE,PDWORD,DWORD); +BOOL WINAPI CryptGenRandom(HCRYPTPROV,DWORD,PBYTE); +BOOL WINAPI CryptGetUserKey(HCRYPTPROV,DWORD,HCRYPTKEY*); +BOOL WINAPI CryptExportKey(HCRYPTKEY,HCRYPTKEY,DWORD,DWORD,PBYTE,PDWORD); +BOOL WINAPI CryptImportKey(HCRYPTPROV,PBYTE,DWORD,HCRYPTKEY,DWORD,HCRYPTKEY*); +BOOL WINAPI CryptEncrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD,DWORD); +BOOL WINAPI CryptDecrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD); +BOOL WINAPI CryptCreateHash(HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH*); +BOOL WINAPI CryptHashData(HCRYPTHASH,PBYTE,DWORD,DWORD); +BOOL WINAPI CryptHashSessionKey(HCRYPTHASH,HCRYPTKEY,DWORD); +BOOL WINAPI CryptGetHashValue(HCRYPTHASH,DWORD,PBYTE,PDWORD); +BOOL WINAPI CryptDestroyHash(HCRYPTHASH); +BOOL WINAPI CryptSignHashA(HCRYPTHASH,DWORD,LPCSTR,DWORD,PBYTE,PDWORD); +BOOL WINAPI CryptSignHashW(HCRYPTHASH,DWORD,LPCWSTR,DWORD,PBYTE,PDWORD); +BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCSTR,DWORD); +BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCWSTR,DWORD); +BOOL WINAPI CryptSetProviderA(LPCSTR,DWORD); +BOOL WINAPI CryptSetProviderW(LPCWSTR,DWORD); +#ifdef UNICODE +#define CryptAcquireContext CryptAcquireContextW +#define CryptSignHash CryptSignHashW +#define CryptVerifySignature CryptVerifySignatureW +#define CryptSetProvider CryptSetProviderW +#define MS_DEF_PROV MS_DEF_PROV_W +#else +#define CryptAcquireContext CryptAcquireContextA +#define CryptSignHash CryptSignHashA +#define CryptVerifySignature CryptVerifySignatureA +#define CryptSetProvider CryptSetProviderA +#define MS_DEF_PROV MS_DEF_PROV_A +#endif +#ifdef __cplusplus +} +#endif +#endif |