mscat.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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. #ifndef __WINE_MSCAT_H
  19. #define __WINE_MSCAT_H
  20. #include <mssip.h>
  21. typedef HANDLE HCATADMIN;
  22. typedef HANDLE HCATINFO;
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. #define CRYPTCAT_ATTR_NAMEASCII 0x00000001
  27. #define CRYPTCAT_ATTR_NAMEOBJID 0x00000002
  28. #define CRYPTCAT_ATTR_DATAASCII 0x00010000
  29. #define CRYPTCAT_ATTR_DATAOBJID 0x00020000
  30. #define CRYPTCAT_ATTR_DATAREPLACE 0x00040000
  31. #define CRYPTCAT_ATTR_NO_AUTO_COMPAT_ENTRY 0x01000000
  32. #define CRYPTCAT_ATTR_AUTHENTICATED 0x10000000
  33. #define CRYPTCAT_ATTR_UNAUTHENTICATED 0x20000000
  34. #define CRYPTCAT_OPEN_CREATENEW 0x00000001
  35. #define CRYPTCAT_OPEN_ALWAYS 0x00000002
  36. #define CRYPTCAT_OPEN_EXISTING 0x00000004
  37. #define CRYPTCAT_OPEN_EXCLUDE_PAGE_HASHES 0x00010000
  38. #define CRYPTCAT_OPEN_INCLUDE_PAGE_HASHES 0x00020000
  39. #define CRYPTCAT_OPEN_VERIFYSIGHASH 0x10000000
  40. #define CRYPTCAT_OPEN_NO_CONTENT_HCRYPTMSG 0x20000000
  41. #define CRYPTCAT_OPEN_SORTED 0x40000000
  42. #define CRYPTCAT_OPEN_FLAGS_MASK 0xffff0000
  43. #define CRYPTCAT_E_AREA_HEADER 0x00000000
  44. #define CRYPTCAT_E_AREA_MEMBER 0x00010000
  45. #define CRYPTCAT_E_AREA_ATTRIBUTE 0x00020000
  46. #define CRYPTCAT_E_CDF_UNSUPPORTED 0x00000001
  47. #define CRYPTCAT_E_CDF_DUPLICATE 0x00000002
  48. #define CRYPTCAT_E_CDF_TAGNOTFOUND 0x00000004
  49. #define CRYPTCAT_E_CDF_MEMBER_FILE_PATH 0x00010001
  50. #define CRYPTCAT_E_CDF_MEMBER_INDIRECTDATA 0x00010002
  51. #define CRYPTCAT_E_CDF_MEMBER_FILENOTFOUND 0x00010004
  52. #define CRYPTCAT_E_CDF_BAD_GUID_CONV 0x00020001
  53. #define CRYPTCAT_E_CDF_ATTR_TOOFEWVALUES 0x00020002
  54. #define CRYPTCAT_E_CDF_ATTR_TYPECOMBO 0x00020004
  55. #define CRYPTCAT_VERSION_1 0x100
  56. #define CRYPTCAT_VERSION_2 0x200
  57. #include <pshpack8.h>
  58. typedef struct CRYPTCATATTRIBUTE_
  59. {
  60. DWORD cbStruct;
  61. LPWSTR pwszReferenceTag;
  62. DWORD dwAttrTypeAndAction;
  63. DWORD cbValue;
  64. BYTE *pbValue;
  65. DWORD dwReserved;
  66. } CRYPTCATATTRIBUTE;
  67. typedef struct CRYPTCATMEMBER_
  68. {
  69. DWORD cbStruct;
  70. LPWSTR pwszReferenceTag;
  71. LPWSTR pwszFileName;
  72. GUID gSubjectType;
  73. DWORD fdwMemberFlags;
  74. struct SIP_INDIRECT_DATA_* pIndirectData;
  75. DWORD dwCertVersion;
  76. DWORD dwReserved;
  77. HANDLE hReserved;
  78. CRYPT_ATTR_BLOB sEncodedIndirectData;
  79. CRYPT_ATTR_BLOB sEncodedMemberInfo;
  80. } CRYPTCATMEMBER;
  81. typedef struct CATALOG_INFO_
  82. {
  83. DWORD cbStruct;
  84. WCHAR wszCatalogFile[MAX_PATH];
  85. } CATALOG_INFO;
  86. typedef struct CRYPTCATCDF_
  87. {
  88. DWORD cbStruct;
  89. HANDLE hFile;
  90. DWORD dwCurFilePos;
  91. DWORD dwLastMemberOffset;
  92. WINBOOL fEOF;
  93. LPWSTR pwszResultDir;
  94. HANDLE hCATStore;
  95. } CRYPTCATCDF;
  96. #include <poppack.h>
  97. typedef void (WINAPI *PFN_CDF_PARSE_ERROR_CALLBACK)(DWORD, DWORD, WCHAR *);
  98. WINBOOL WINAPI CryptCATAdminAcquireContext(HCATADMIN*,const GUID*,DWORD);
  99. WINBOOL WINAPI CryptCATAdminAcquireContext2(HCATADMIN*,const GUID*,const WCHAR*,const CERT_STRONG_SIGN_PARA*,DWORD);
  100. HCATINFO WINAPI CryptCATAdminAddCatalog(HCATADMIN,PWSTR,PWSTR,DWORD);
  101. WINBOOL WINAPI CryptCATAdminCalcHashFromFileHandle(HANDLE,DWORD*,BYTE*,DWORD);
  102. WINBOOL WINAPI CryptCATAdminCalcHashFromFileHandle2(HCATADMIN,HANDLE,DWORD*,BYTE*,DWORD);
  103. HCATINFO WINAPI CryptCATAdminEnumCatalogFromHash(HCATADMIN,BYTE*,DWORD,DWORD,HCATINFO*);
  104. WINBOOL WINAPI CryptCATAdminReleaseCatalogContext(HCATADMIN,HCATINFO,DWORD);
  105. WINBOOL WINAPI CryptCATAdminReleaseContext(HCATADMIN,DWORD);
  106. WINBOOL WINAPI CryptCATAdminRemoveCatalog(HCATADMIN,LPCWSTR,DWORD);
  107. WINBOOL WINAPI CryptCATAdminResolveCatalogPath(HCATADMIN, WCHAR *, CATALOG_INFO *, DWORD);
  108. WINBOOL WINAPI CryptCATCatalogInfoFromContext(HCATINFO, CATALOG_INFO *, DWORD);
  109. WINBOOL WINAPI CryptCATCDFClose(CRYPTCATCDF *);
  110. CRYPTCATATTRIBUTE * WINAPI CryptCATCDFEnumCatAttributes(CRYPTCATCDF *, CRYPTCATATTRIBUTE *,
  111. PFN_CDF_PARSE_ERROR_CALLBACK);
  112. LPWSTR WINAPI CryptCATCDFEnumMembersByCDFTagEx(CRYPTCATCDF *, LPWSTR,
  113. PFN_CDF_PARSE_ERROR_CALLBACK,
  114. CRYPTCATMEMBER **, WINBOOL, LPVOID);
  115. CRYPTCATCDF * WINAPI CryptCATCDFOpen(LPWSTR, PFN_CDF_PARSE_ERROR_CALLBACK);
  116. WINBOOL WINAPI CryptCATClose(HANDLE);
  117. CRYPTCATATTRIBUTE * WINAPI CryptCATEnumerateAttr(HANDLE, CRYPTCATMEMBER *, CRYPTCATATTRIBUTE *);
  118. CRYPTCATATTRIBUTE * WINAPI CryptCATEnumerateCatAttr(HANDLE, CRYPTCATATTRIBUTE *);
  119. CRYPTCATMEMBER * WINAPI CryptCATEnumerateMember(HANDLE,CRYPTCATMEMBER *);
  120. CRYPTCATATTRIBUTE * WINAPI CryptCATGetAttrInfo(HANDLE, CRYPTCATMEMBER *, LPWSTR);
  121. CRYPTCATATTRIBUTE * WINAPI CryptCATGetCatAttrInfo(HANDLE, LPWSTR);
  122. CRYPTCATMEMBER * WINAPI CryptCATGetMemberInfo(HANDLE, LPWSTR);
  123. HANDLE WINAPI CryptCATOpen(LPWSTR,DWORD,HCRYPTPROV,DWORD,DWORD);
  124. WINBOOL WINAPI CryptCATPersistStore(HANDLE catalog);
  125. CRYPTCATATTRIBUTE * WINAPI CryptCATPutAttrInfo(HANDLE catalog, CRYPTCATMEMBER *member, WCHAR *name, DWORD flags, DWORD size, BYTE *data);
  126. CRYPTCATATTRIBUTE * WINAPI CryptCATPutCatAttrInfo(HANDLE catalog, WCHAR *name, DWORD flags, DWORD size, BYTE *data);
  127. CRYPTCATMEMBER * WINAPI CryptCATPutMemberInfo(HANDLE catalog, WCHAR *filename, WCHAR *member, GUID *subject, DWORD version, DWORD size, BYTE *data);
  128. #ifdef __cplusplus
  129. }
  130. #endif
  131. #endif