Changeset 2976 for trunk/include
- Timestamp:
- Mar 3, 2000, 12:08:23 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/win/wincrypt.h
r4 r2976 1 /* $Id: wincrypt.h,v 1. 1 1999-05-24 20:19:21 ktkExp $ */1 /* $Id: wincrypt.h,v 1.2 2000-03-02 23:07:56 sandervl Exp $ */ 2 2 3 3 #ifndef __WINE_WINCRYPT_H 4 4 #define __WINE_WINCRYPT_H 5 5 6 /* FIXME: this whole file plus the implementation */7 8 6 /* some typedefs for function parameters */ 7 #define GET_ALG_CLASS(x) (x & (7 << 13)) 8 #define GET_ALG_TYPE(x) (x & (15 << 9)) 9 #define GET_ALG_SID(x) (x & (511)) 10 11 #define ALG_CLASS_ANY (0) 12 #define ALG_CLASS_SIGNATURE (1 << 13) 13 #define ALG_CLASS_MSG_ENCRYPT (2 << 13) 14 #define ALG_CLASS_DATA_ENCRYPT (3 << 13) 15 #define ALG_CLASS_HASH (4 << 13) 16 #define ALG_CLASS_KEY_EXCHANGE (5 << 13) 17 18 #define ALG_TYPE_ANY (0) 19 #define ALG_TYPE_DSS (1 << 9) 20 #define ALG_TYPE_RSA (2 << 9) 21 #define ALG_TYPE_BLOCK (3 << 9) 22 #define ALG_TYPE_STREAM (4 << 9) 23 24 #define ALG_SID_ANY (0) 25 26 #define ALG_SID_RSA_ANY 0 27 #define ALG_SID_RSA_PKCS 1 28 #define ALG_SID_RSA_MSATWORK 2 29 #define ALG_SID_RSA_ENTRUST 3 30 #define ALG_SID_RSA_PGP 4 31 32 #define ALG_SID_DSS_ANY 0 33 #define ALG_SID_DSS_PKCS 1 34 #define ALG_SID_DSS_DMS 2 35 36 #define ALG_SID_DES 1 37 #define ALG_SID_3DES 3 38 #define ALG_SID_DESX 4 39 #define ALG_SID_IDEA 5 40 #define ALG_SID_CAST 6 41 #define ALG_SID_SAFERSK64 7 42 #define ALD_SID_SAFERSK128 8 43 44 #define CRYPT_MODE_CBCI 6 45 #define CRYPT_MODE_CFBP 7 46 #define CRYPT_MODE_OFBP 8 47 #define CRYPT_MODE_CBCOFM 9 48 #define CRYPT_MODE_CBCOFMI 10 49 50 #define ALG_SID_RC2 2 51 52 #define ALG_SID_RC4 1 53 #define ALG_SID_SEAL 2 54 55 #define ALG_SID_MD2 1 56 #define ALG_SID_MD4 2 57 #define ALG_SID_MD5 3 58 #define ALG_SID_SHA 4 59 #define ALG_SID_MAC 5 60 #define ALG_SID_RIPEMD 6 61 #define ALG_SID_RIPEMD160 7 62 #define ALG_SID_SSL3SHAMD5 8 63 #define ALG_SID_EXAMPLE 80 64 65 #undef ALGIDDEF 66 #define ALGIDDEF 9 67 typedef unsigned int ALG_ID; 68 69 #define CALG_MD2 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2) 70 #define CALG_MD4 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4) 71 #define CALG_MD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5) 72 #define CALG_SHA (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA) 73 #define CALG_MAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC) 74 #define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) 75 #define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) 76 #define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) 77 #define CALG_DES (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES) 78 #define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2) 79 #define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4) 80 #define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL) 81 82 #define CRYPT_VERIFYCONTEXT 0xF0000000 83 #define CRYPT_NEWKEYSET 0x8 84 #define CRYPT_DELETEKEYSET 0x10 85 86 #define CRYPT_EXPORTABLE 0x00000001 87 #define CRYPT_USER_PROTECTED 0x00000002 88 #define CRYPT_CREATE_SALT 0x00000004 89 #define CRYPT_UPDATE_KEY 0x00000008 90 91 #define SIMPLEBLOB 0x1 92 #define PUBLICKEYBLOB 0x6 93 #define PRIVATEKEYBLOB 0x7 94 95 #define AT_KEYEXCHANGE 1 96 #define AT_SIGNATURE 2 97 98 #define CRYPT_USERDATA 1 99 100 #define KP_IV 1 101 #define KP_SALT 2 102 #define KP_PADDING 3 103 #define KP_MODE 4 104 #define KP_MODE_BITS 5 105 #define KP_PERMISSIONS 6 106 #define KP_ALGID 7 107 #define KP_BLOCKLEN 8 108 109 #define PKCS5_PADDING 1 110 111 #define CRYPT_MODE_CBC 1 112 #define CRYPT_MODE_ECB 2 113 #define CRYPT_MODE_OFB 3 114 #define CRYPT_MODE_CFB 4 115 #define CRYPT_MODE_CTS 5 116 117 #define CRYPT_ENCRYPT 0x0001 118 #define CRYPT_DECRYPT 0x0002 119 #define CRYPT_EXPORT 0x0004 120 #define CRYPT_READ 0x0008 121 #define CRYPT_WRITE 0x0010 122 #define CRYPT_MAC 0x0020 123 124 #define HP_ALGID 0x0001 125 #define HP_HASHVAL 0x0002 126 #define HP_HASHSIZE 0x0004 127 128 129 #define CRYPT_FAILED FALSE 130 #define CRYPT_SUCCEED TRUE 131 132 #define RCRYPT_SUCCEEDED(rt) ((rt) == CRYPT_SUCCEED) 133 #define RCRYPT_FAILED(rt) ((rt) == CRYPT_FAILED) 134 135 #define PP_ENUMALGS 1 136 #define PP_ENUMCONTAINERS 2 137 #define PP_IMPTYPE 3 138 #define PP_NAME 4 139 #define PP_VERSION 5 140 #define PP_CONTAINER 6 141 142 #define CRYPT_FIRST 1 143 #define CRYPT_NEXT 2 144 145 #define CRYPT_IMPL_HARDWARE 1 146 #define CRYPT_IMPL_SOFTWARE 2 147 #define CRYPT_IMPL_MIXED 3 148 #define CRYPT_IMPL_UNKNOWN 4 149 150 #define PP_CLIENT_HWND 1 151 152 #define PROV_RSA_FULL 1 153 #define PROV_RSA_SIG 2 154 #define PROV_DSS 3 155 #define PROV_FORTEZZA 4 156 #define PROV_MS_EXCHANGE 5 157 #define PROV_SSL 6 158 159 #define PROV_STT_MER 7 160 #define PROV_STT_ACQ 8 161 #define PROV_STT_BRND 9 162 #define PROV_STT_ROOT 10 163 #define PROV_STT_ISS 11 164 165 #define MAXUIDLEN 64 166 167 #define CUR_BLOB_VERSION 2 168 169 typedef struct _VTableProvStruc { 170 DWORD Version; 171 FARPROC FuncVerifyImage; 172 FARPROC FuncReturnhWnd; 173 } VTableProvStruc, *PVTableProvStruc; 174 10 175 typedef unsigned long HCRYPTPROV; 11 176 typedef unsigned long HCRYPTKEY; 12 177 typedef unsigned long HCRYPTHASH; 13 178 179 typedef struct _PROV_ENUMALGS { 180 ALG_ID aiAlgid; 181 DWORD dwBitLen; 182 DWORD dwNameLen; 183 CHAR szName[20]; 184 } PROV_ENUMALGS; 185 186 typedef struct _PUBLICKEYSTRUC { 187 BYTE bType; 188 BYTE bVersion; 189 WORD reserved; 190 ALG_ID aiKeyAlg; 191 } PUBLICKEYSTRUC; 192 193 typedef struct _RSAPUBKEY { 194 DWORD magic; 195 DWORD bitlen; 196 DWORD pubexp; 197 } RSAPUBKEY; 198 14 199 /* function declarations */ 15 200 16 201 BOOL WINAPI CryptAcquireContextA(HCRYPTPROV *phProv, LPCSTR pszContainer, 17 LPCSTR pszProvider, DWORD dwProvType, 18 DWORD dwFlags); 202 LPCSTR pszProvider, DWORD dwProvType, 203 DWORD dwFlags); 204 BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, 205 LPCWSTR pszProvider, DWORD dwProvType, 206 DWORD dwFlags); 207 #define CryptAcquireContext WINELIB_NAME_AW(CryptAcquireContext) 208 209 BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags); 210 BOOL WINAPI CryptGenKey(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, 211 HCRYPTKEY *phKey); 212 BOOL WINAPI CryptDeriveKey(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTHASH hBaseData, 213 DWORD dwFlags, HCRYPTKEY *phKey); 214 BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey); 215 BOOL WINAPI CryptSetKeyParam(HCRYPTKEY hKey,DWORD dwParam,BYTE *pbData,DWORD dwFlags); 216 BOOL WINAPI CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags); 217 BOOL WINAPI CryptSetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD dwFlags); 218 BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen,DWORD dwFlags); 219 BOOL WINAPI CryptSetProvParam(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData,DWORD dwFlags); 220 BOOL WINAPI CryptGetProvParam(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData,DWORD *pdwDataLen, 221 DWORD dwFlags); 222 BOOL WINAPI CryptGenRandom(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer); 223 BOOL WINAPI CryptGetUserKey(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey); 224 BOOL WINAPI CryptExportKey(HCRYPTKEY hKey,HCRYPTKEY hExpKey, DWORD dwBlobType, DWORD dwFlags, 225 BYTE *pbData, DWORD *pdwDataLen); 226 BOOL WINAPI CryptImportKey(HCRYPTPROV hProv,CONST BYTE *pbData, DWORD dwDataLen, 227 HCRYPTKEY hPubKey, DWORD dwFlags,HCRYPTKEY *phKey); 228 BOOL WINAPI CryptEncrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, 229 DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, 230 DWORD dwBufLen); 231 BOOL WINAPI CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, 232 BYTE *pbData, DWORD *pdwDataLen); 233 BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, 234 HCRYPTHASH *phHash); 235 BOOL WINAPI CryptHashData(HCRYPTHASH hHash, CONST BYTE *pbData, DWORD dwDataLen, 236 DWORD dwFlags); 237 BOOL WINAPI CryptHashSessionKey(HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags); 238 BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash); 239 BOOL WINAPI CryptSignHashA(HCRYPTHASH hHash, DWORD dwKeySpec, LPCSTR sDescription, 240 DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen); 241 BOOL WINAPI CryptSignHashW(HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription, 242 DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen); 243 #define CryptSignHash WINELIB_NAME_AW(CryptSignHash) 244 245 BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen, 246 HCRYPTKEY hPubKey, LPCSTR sDescription, DWORD dwFlags); 247 BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen, 248 HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags); 249 #define CryptVerifySignature WINELIB_NAME_AW(CryptVerifySignature) 250 251 BOOL WINAPI CryptSetProviderA(LPCSTR pszProvName, DWORD dwProvType); 252 BOOL WINAPI CryptSetProviderW(LPCWSTR pszProvName, DWORD dwProvType); 253 #define CryptSetProvider WINELIB_NAME_AW(CryptSetProvider) 254 19 255 #endif
Note:
See TracChangeset
for help on using the changeset viewer.