zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

mscat.h (6195B) - Raw


      1 /*
      2  * Copyright (C) 2004 Francois Gouget
      3  *
      4  * This library is free software; you can redistribute it and/or
      5  * modify it under the terms of the GNU Lesser General Public
      6  * License as published by the Free Software Foundation; either
      7  * version 2.1 of the License, or (at your option) any later version.
      8  *
      9  * This library is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12  * Lesser General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU Lesser General Public
     15  * License along with this library; if not, write to the Free Software
     16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
     17  */
     18 
     19 #ifndef __WINE_MSCAT_H
     20 #define __WINE_MSCAT_H
     21 
     22 #include <mssip.h>
     23 
     24 typedef HANDLE HCATADMIN;
     25 typedef HANDLE HCATINFO;
     26 
     27 #ifdef __cplusplus
     28 extern "C" {
     29 #endif
     30 
     31 #define CRYPTCAT_ATTR_NAMEASCII             0x00000001
     32 #define CRYPTCAT_ATTR_NAMEOBJID             0x00000002
     33 #define CRYPTCAT_ATTR_DATAASCII             0x00010000
     34 #define CRYPTCAT_ATTR_DATAOBJID             0x00020000
     35 #define CRYPTCAT_ATTR_DATAREPLACE           0x00040000
     36 #define CRYPTCAT_ATTR_NO_AUTO_COMPAT_ENTRY  0x01000000
     37 #define CRYPTCAT_ATTR_AUTHENTICATED         0x10000000
     38 #define CRYPTCAT_ATTR_UNAUTHENTICATED       0x20000000
     39 
     40 #define CRYPTCAT_OPEN_CREATENEW             0x00000001
     41 #define CRYPTCAT_OPEN_ALWAYS                0x00000002
     42 #define CRYPTCAT_OPEN_EXISTING              0x00000004
     43 #define CRYPTCAT_OPEN_EXCLUDE_PAGE_HASHES   0x00010000
     44 #define CRYPTCAT_OPEN_INCLUDE_PAGE_HASHES   0x00020000
     45 #define CRYPTCAT_OPEN_VERIFYSIGHASH         0x10000000
     46 #define CRYPTCAT_OPEN_NO_CONTENT_HCRYPTMSG  0x20000000
     47 #define CRYPTCAT_OPEN_SORTED                0x40000000
     48 #define CRYPTCAT_OPEN_FLAGS_MASK            0xffff0000
     49 
     50 #define CRYPTCAT_E_AREA_HEADER              0x00000000
     51 #define CRYPTCAT_E_AREA_MEMBER              0x00010000
     52 #define CRYPTCAT_E_AREA_ATTRIBUTE           0x00020000
     53 
     54 #define CRYPTCAT_E_CDF_UNSUPPORTED          0x00000001
     55 #define CRYPTCAT_E_CDF_DUPLICATE            0x00000002
     56 #define CRYPTCAT_E_CDF_TAGNOTFOUND          0x00000004
     57 
     58 #define CRYPTCAT_E_CDF_MEMBER_FILE_PATH     0x00010001
     59 #define CRYPTCAT_E_CDF_MEMBER_INDIRECTDATA  0x00010002
     60 #define CRYPTCAT_E_CDF_MEMBER_FILENOTFOUND  0x00010004
     61 
     62 #define CRYPTCAT_E_CDF_BAD_GUID_CONV        0x00020001
     63 #define CRYPTCAT_E_CDF_ATTR_TOOFEWVALUES    0x00020002
     64 #define CRYPTCAT_E_CDF_ATTR_TYPECOMBO       0x00020004
     65 
     66 #define CRYPTCAT_VERSION_1  0x100
     67 #define CRYPTCAT_VERSION_2  0x200
     68 
     69 #pragma pack(push,8)
     70 
     71 typedef struct CRYPTCATATTRIBUTE_
     72 {
     73     DWORD cbStruct;
     74     LPWSTR pwszReferenceTag;
     75     DWORD dwAttrTypeAndAction;
     76     DWORD cbValue;
     77     BYTE *pbValue;
     78     DWORD dwReserved;
     79 } CRYPTCATATTRIBUTE;
     80 
     81 typedef struct CRYPTCATMEMBER_
     82 {
     83     DWORD cbStruct;
     84     LPWSTR pwszReferenceTag;
     85     LPWSTR pwszFileName;
     86     GUID gSubjectType;
     87     DWORD fdwMemberFlags;
     88     struct SIP_INDIRECT_DATA_* pIndirectData;
     89     DWORD dwCertVersion;
     90     DWORD dwReserved;
     91     HANDLE hReserved;
     92     CRYPT_ATTR_BLOB sEncodedIndirectData;
     93     CRYPT_ATTR_BLOB sEncodedMemberInfo;
     94 } CRYPTCATMEMBER;
     95 
     96 typedef struct CATALOG_INFO_
     97 {
     98     DWORD cbStruct;
     99     WCHAR wszCatalogFile[MAX_PATH];
    100 } CATALOG_INFO;
    101 
    102 typedef struct CRYPTCATCDF_
    103 {
    104     DWORD cbStruct;
    105     HANDLE hFile;
    106     DWORD dwCurFilePos;
    107     DWORD dwLastMemberOffset;
    108     WINBOOL fEOF;
    109     LPWSTR pwszResultDir;
    110     HANDLE hCATStore;
    111 } CRYPTCATCDF;
    112 
    113 #pragma pack(pop)
    114 
    115 typedef void (WINAPI *PFN_CDF_PARSE_ERROR_CALLBACK)(DWORD, DWORD, WCHAR *);
    116 
    117 WINBOOL   WINAPI CryptCATAdminAcquireContext(HCATADMIN*,const GUID*,DWORD);
    118 WINBOOL   WINAPI CryptCATAdminAcquireContext2(HCATADMIN*,const GUID*,const WCHAR*,const CERT_STRONG_SIGN_PARA*,DWORD);
    119 HCATINFO  WINAPI CryptCATAdminAddCatalog(HCATADMIN,PWSTR,PWSTR,DWORD);
    120 WINBOOL   WINAPI CryptCATAdminCalcHashFromFileHandle(HANDLE,DWORD*,BYTE*,DWORD);
    121 WINBOOL   WINAPI CryptCATAdminCalcHashFromFileHandle2(HCATADMIN,HANDLE,DWORD*,BYTE*,DWORD);
    122 HCATINFO  WINAPI CryptCATAdminEnumCatalogFromHash(HCATADMIN,BYTE*,DWORD,DWORD,HCATINFO*);
    123 WINBOOL   WINAPI CryptCATAdminReleaseCatalogContext(HCATADMIN,HCATINFO,DWORD);
    124 WINBOOL   WINAPI CryptCATAdminReleaseContext(HCATADMIN,DWORD);
    125 WINBOOL   WINAPI CryptCATAdminRemoveCatalog(HCATADMIN,LPCWSTR,DWORD);
    126 WINBOOL   WINAPI CryptCATAdminResolveCatalogPath(HCATADMIN, WCHAR *, CATALOG_INFO *, DWORD);
    127 WINBOOL   WINAPI CryptCATCatalogInfoFromContext(HCATINFO, CATALOG_INFO *, DWORD);
    128 WINBOOL   WINAPI CryptCATCDFClose(CRYPTCATCDF *);
    129 CRYPTCATATTRIBUTE * WINAPI CryptCATCDFEnumCatAttributes(CRYPTCATCDF *, CRYPTCATATTRIBUTE *,
    130                                                         PFN_CDF_PARSE_ERROR_CALLBACK);
    131 LPWSTR              WINAPI CryptCATCDFEnumMembersByCDFTagEx(CRYPTCATCDF *, LPWSTR,
    132                                                             PFN_CDF_PARSE_ERROR_CALLBACK,
    133                                                             CRYPTCATMEMBER **, WINBOOL, LPVOID);
    134 CRYPTCATCDF       * WINAPI CryptCATCDFOpen(LPWSTR, PFN_CDF_PARSE_ERROR_CALLBACK);
    135 WINBOOL             WINAPI CryptCATClose(HANDLE);
    136 CRYPTCATATTRIBUTE * WINAPI CryptCATEnumerateAttr(HANDLE, CRYPTCATMEMBER *, CRYPTCATATTRIBUTE *);
    137 CRYPTCATATTRIBUTE * WINAPI CryptCATEnumerateCatAttr(HANDLE, CRYPTCATATTRIBUTE *);
    138 CRYPTCATMEMBER    * WINAPI CryptCATEnumerateMember(HANDLE,CRYPTCATMEMBER *);
    139 CRYPTCATATTRIBUTE * WINAPI CryptCATGetAttrInfo(HANDLE, CRYPTCATMEMBER *, LPWSTR);
    140 CRYPTCATATTRIBUTE * WINAPI CryptCATGetCatAttrInfo(HANDLE, LPWSTR);
    141 CRYPTCATMEMBER    * WINAPI CryptCATGetMemberInfo(HANDLE, LPWSTR);
    142 HANDLE    WINAPI CryptCATOpen(LPWSTR,DWORD,HCRYPTPROV,DWORD,DWORD);
    143 WINBOOL   WINAPI CryptCATPersistStore(HANDLE catalog);
    144 CRYPTCATATTRIBUTE * WINAPI CryptCATPutAttrInfo(HANDLE catalog, CRYPTCATMEMBER *member, WCHAR *name, DWORD flags, DWORD size, BYTE *data);
    145 CRYPTCATATTRIBUTE * WINAPI CryptCATPutCatAttrInfo(HANDLE catalog, WCHAR *name, DWORD flags, DWORD size, BYTE *data);
    146 CRYPTCATMEMBER    * WINAPI CryptCATPutMemberInfo(HANDLE catalog, WCHAR *filename, WCHAR *member, GUID *subject, DWORD version, DWORD size, BYTE *data);
    147 
    148 #ifdef __cplusplus
    149 }
    150 #endif
    151 
    152 #endif