Changeset 2976 for trunk/include


Ignore:
Timestamp:
Mar 3, 2000, 12:08:23 AM (26 years ago)
Author:
sandervl
Message:

crypt api update

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 ktk Exp $ */
     1/* $Id: wincrypt.h,v 1.2 2000-03-02 23:07:56 sandervl Exp $ */
    22
    33#ifndef __WINE_WINCRYPT_H
    44#define __WINE_WINCRYPT_H
    55
    6 /* FIXME: this whole file plus the implementation */
    7 
    86/* 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
    967typedef 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
     169typedef struct _VTableProvStruc {
     170    DWORD   Version;
     171    FARPROC FuncVerifyImage;
     172    FARPROC FuncReturnhWnd;
     173} VTableProvStruc, *PVTableProvStruc;
     174
    10175typedef unsigned long HCRYPTPROV;
    11176typedef unsigned long HCRYPTKEY;
    12177typedef unsigned long HCRYPTHASH;
    13178
     179typedef struct _PROV_ENUMALGS {
     180    ALG_ID    aiAlgid;
     181    DWORD     dwBitLen;
     182    DWORD     dwNameLen;
     183    CHAR      szName[20];
     184} PROV_ENUMALGS;
     185
     186typedef struct _PUBLICKEYSTRUC {
     187        BYTE    bType;
     188        BYTE    bVersion;
     189        WORD    reserved;
     190        ALG_ID  aiKeyAlg;
     191} PUBLICKEYSTRUC;
     192
     193typedef struct _RSAPUBKEY {
     194        DWORD   magic;
     195        DWORD   bitlen;
     196        DWORD   pubexp;
     197} RSAPUBKEY;
     198
    14199/* function declarations */
    15200
    16201BOOL WINAPI CryptAcquireContextA(HCRYPTPROV *phProv, LPCSTR pszContainer,
    17                                    LPCSTR pszProvider, DWORD dwProvType,
    18                                    DWORD dwFlags);
     202                                 LPCSTR pszProvider, DWORD dwProvType,
     203                                 DWORD dwFlags);
     204BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer,
     205                                 LPCWSTR pszProvider, DWORD dwProvType,
     206                                 DWORD dwFlags);
     207#define     CryptAcquireContext WINELIB_NAME_AW(CryptAcquireContext)
     208
     209BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags);
     210BOOL WINAPI CryptGenKey(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags,
     211                        HCRYPTKEY *phKey);
     212BOOL WINAPI CryptDeriveKey(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTHASH hBaseData,
     213                           DWORD dwFlags, HCRYPTKEY *phKey);
     214BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey);
     215BOOL WINAPI CryptSetKeyParam(HCRYPTKEY hKey,DWORD dwParam,BYTE *pbData,DWORD dwFlags);
     216BOOL WINAPI CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags);
     217BOOL WINAPI CryptSetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD dwFlags);
     218BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen,DWORD dwFlags);
     219BOOL WINAPI CryptSetProvParam(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData,DWORD dwFlags);
     220BOOL WINAPI CryptGetProvParam(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData,DWORD *pdwDataLen,
     221                              DWORD dwFlags);
     222BOOL WINAPI CryptGenRandom(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer);
     223BOOL WINAPI CryptGetUserKey(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey);
     224BOOL WINAPI CryptExportKey(HCRYPTKEY hKey,HCRYPTKEY hExpKey, DWORD dwBlobType, DWORD dwFlags,
     225                           BYTE *pbData, DWORD *pdwDataLen);
     226BOOL WINAPI CryptImportKey(HCRYPTPROV hProv,CONST BYTE *pbData, DWORD dwDataLen,
     227                           HCRYPTKEY hPubKey, DWORD dwFlags,HCRYPTKEY *phKey);
     228BOOL WINAPI CryptEncrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final,
     229                         DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen,
     230                         DWORD dwBufLen);
     231BOOL WINAPI CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags,
     232                         BYTE *pbData, DWORD *pdwDataLen);
     233BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags,
     234                            HCRYPTHASH *phHash);
     235BOOL WINAPI CryptHashData(HCRYPTHASH hHash, CONST BYTE *pbData, DWORD dwDataLen,
     236                          DWORD dwFlags);
     237BOOL WINAPI CryptHashSessionKey(HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags);
     238BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash);
     239BOOL WINAPI CryptSignHashA(HCRYPTHASH hHash, DWORD dwKeySpec, LPCSTR sDescription,
     240                           DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen);
     241BOOL WINAPI CryptSignHashW(HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription,
     242                           DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen);
     243#define     CryptSignHash WINELIB_NAME_AW(CryptSignHash)
     244
     245BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen,
     246                                  HCRYPTKEY hPubKey, LPCSTR sDescription, DWORD dwFlags);
     247BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen,
     248                                  HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags);
     249#define     CryptVerifySignature WINELIB_NAME_AW(CryptVerifySignature)
     250
     251BOOL WINAPI CryptSetProviderA(LPCSTR pszProvName, DWORD dwProvType);
     252BOOL WINAPI CryptSetProviderW(LPCWSTR pszProvName, DWORD dwProvType);
     253#define     CryptSetProvider WINELIB_NAME_AW(CryptSetProvider)
     254
    19255#endif
Note: See TracChangeset for help on using the changeset viewer.