Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygencryptdlg.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2008 Juan Lang 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 #ifndef __CRYPTDLG_H__ 00019 #define __CRYPTDLG_H__ 00020 00021 #include <prsht.h> 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 #define CRYPTDLG_FLAGS_MASK 0xff000000 00028 #define CRYPTDLG_REVOCATION_DEFAULT 0x00000000 00029 #define CRYPTDLG_REVOCATION_ONLINE 0x80000000 00030 #define CRYPTDLG_REVOCATION_CACHE 0x40000000 00031 #define CRYPTDLG_REVOCATION_NONE 0x20000000 00032 00033 #define CRYPTDLG_POLICY_MASK 0x0000ffff 00034 #define POLICY_IGNORE_NON_CRITICAL_BC 0x00000001 00035 00036 #define CRYPTDLG_ACTION_MASK 0xffff0000 00037 #define ACTION_REVOCATION_DEFAULT_ONLINE 0x00010000 00038 #define ACTION_REVOCATION_DEFAULT_CACHE 0x00020000 00039 00040 typedef BOOL (WINAPI *PFNCMFILTERPROC)(PCCERT_CONTEXT, DWORD, DWORD, DWORD); 00041 00042 #define CERT_DISPWELL_SELECT 1 00043 #define CERT_DISPWELL_TRUST_CA_CERT 2 00044 #define CERT_DISPWELL_TRUST_LEAF_CERT 3 00045 #define CERT_DISPWELL_TRUST_ADD_CA_CERT 4 00046 #define CERT_DISPWELL_TRUST_ADD_LEAF_CERT 5 00047 #define CERT_DISPWELL_DISTRUST_CA_CERT 6 00048 #define CERT_DISPWELL_DISTRUST_LEAF_CERT 7 00049 #define CERT_DISPWELL_DISTRUST_ADD_CA_CERT 8 00050 #define CERT_DISPWELL_DISTRUST_ADD_LEAF_CERT 9 00051 00052 typedef UINT (WINAPI *PFNCMHOOKPROC)(HWND, UINT, WPARAM, LPARAM); 00053 00054 #define CSS_SELECTCERT_MASK 0x00ffffff 00055 #define CSS_HIDE_PROPERTIES 0x00000001 00056 #define CSS_ENABLEHOOK 0x00000002 00057 #define CSS_ALLOWMULTISELECT 0x00000004 00058 #define CSS_SHOW_HELP 0x00000010 00059 #define CSS_ENABLETEMPLATE 0x00000020 00060 #define CSS_ENABLETEMPLATEHANDLE 0x00000040 00061 00062 #define SELCERT_OK IDOK 00063 #define SELCERT_CANCEL IDCANCEL 00064 #define SELCERT_PROPERTIES 100 00065 #define SELCERT_FINEPRINT 101 00066 #define SELCERT_CERTLIST 102 00067 #define SELCERT_HELP IDHELP 00068 #define SELCERT_ISSUED_TO 103 00069 #define SELCERT_VALIDITY 104 00070 #define SELCERT_ALGORITHM 105 00071 #define SELCERT_SERIAL_NUM 106 00072 #define SELCERT_THUMBPRINT 107 00073 00074 typedef struct tagCSSA 00075 { 00076 DWORD dwSize; 00077 HWND hwndParent; 00078 HINSTANCE hInstance; 00079 LPCSTR pTemplateName; 00080 DWORD dwFlags; 00081 LPCSTR szTitle; 00082 DWORD cCertStore; 00083 HCERTSTORE *arrayCertStore; 00084 LPCSTR szPurposeOid; 00085 DWORD cCertContext; 00086 PCCERT_CONTEXT *arrayCertContext; 00087 DWORD lCustData; 00088 PFNCMHOOKPROC pfnHook; 00089 PFNCMFILTERPROC pfnFilter; 00090 LPCSTR szHelpFileName; 00091 DWORD dwHelpId; 00092 HCRYPTPROV hprov; 00093 } CERT_SELECT_STRUCT_A, *PCERT_SELECT_STRUCT_A; 00094 00095 typedef struct tagCSSW 00096 { 00097 DWORD dwSize; 00098 HWND hwndParent; 00099 HINSTANCE hInstance; 00100 LPCWSTR pTemplateName; 00101 DWORD dwFlags; 00102 LPCWSTR szTitle; 00103 DWORD cCertStore; 00104 HCERTSTORE *arrayCertStore; 00105 LPCSTR szPurposeOid; 00106 DWORD cCertContext; 00107 PCCERT_CONTEXT *arrayCertContext; 00108 DWORD lCustData; 00109 PFNCMHOOKPROC pfnHook; 00110 PFNCMFILTERPROC pfnFilter; 00111 LPCWSTR szHelpFileName; 00112 DWORD dwHelpId; 00113 HCRYPTPROV hprov; 00114 } CERT_SELECT_STRUCT_W, *PCERT_SELECT_STRUCT_W; 00115 00116 #define CERT_SELECT_STRUCT WINELIB_NAME_AW(CERT_SELECT_STRUCT_) 00117 00118 BOOL WINAPI CertSelectCertificateA(PCERT_SELECT_STRUCT_A pCertSelectInfo); 00119 BOOL WINAPI CertSelectCertificateW(PCERT_SELECT_STRUCT_W pCertSelectInfo); 00120 #define CertSelectCertificate WINELIB_NAME_AW(CertSelectCertificate) 00121 00122 #define CM_VIEWFLAGS_MASK 0x00ffffff 00123 #define CM_ENABLEHOOK 0x00000001 00124 #define CM_SHOW_HELP 0x00000002 00125 #define CM_SHOW_HELPICON 0x00000004 00126 #define CM_ENABLETEMPLATE 0x00000008 00127 #define CM_HIDE_ADVANCEPAGE 0x00000010 00128 #define CM_HIDE_TRUSTPAGE 0x00000020 00129 #define CM_NO_NAMECHANGE 0x00000040 00130 #define CM_NO_EDITTRUST 0x00000080 00131 #define CM_HIDE_DETAILPAGE 0x00000100 00132 #define CM_ADD_CERT_STORES 0x00000200 00133 #define CERTVIEW_CRYPTUI_LPARAM 0x00800000 00134 00135 typedef struct tagCERT_VIEWPROPERTIES_STRUCT_A 00136 { 00137 DWORD dwSize; 00138 HWND hwndParent; 00139 HINSTANCE hInstance; 00140 DWORD dwFlags; 00141 LPCSTR szTitle; 00142 PCCERT_CONTEXT pCertContext; 00143 LPSTR *arrayPurposes; 00144 DWORD cArrayPurposes; 00145 DWORD cRootStores; 00146 HCERTSTORE *rghstoreRoots; 00147 DWORD cStores; 00148 HCERTSTORE *rghstoreCAs; 00149 DWORD cTrustStores; 00150 HCERTSTORE *rghstoreTrust; 00151 HCRYPTPROV hprov; 00152 DWORD lCustData; 00153 DWORD dwPad; 00154 LPCSTR szHelpFileName; 00155 DWORD dwHelpId; 00156 DWORD nStartPage; 00157 DWORD cArrayPropSheetPages; 00158 /* FIXME: PSDK declares arrayPropSheetPages as a PROPSHEETPAGE *, which we 00159 * don't allow in our own headers. It's probably wrong, but we're not 00160 * compatible. 00161 */ 00162 PROPSHEETPAGEA *arrayPropSheetPages; 00163 } CERT_VIEWPROPERTIES_STRUCT_A, *PCERT_VIEWPROPERTIES_STRUCT_A; 00164 00165 typedef struct tagCERT_VIEWPROPERTIES_STRUCT_W 00166 { 00167 DWORD dwSize; 00168 HWND hwndParent; 00169 HINSTANCE hInstance; 00170 DWORD dwFlags; 00171 LPCWSTR szTitle; 00172 PCCERT_CONTEXT pCertContext; 00173 LPSTR *arrayPurposes; 00174 DWORD cArrayPurposes; 00175 DWORD cRootStores; 00176 HCERTSTORE *rghstoreRoots; 00177 DWORD cStores; 00178 HCERTSTORE *rghstoreCAs; 00179 DWORD cTrustStores; 00180 HCERTSTORE *rghstoreTrust; 00181 HCRYPTPROV hprov; 00182 DWORD lCustData; 00183 DWORD dwPad; 00184 LPCWSTR szHelpFileName; 00185 DWORD dwHelpId; 00186 DWORD nStartPage; 00187 DWORD cArrayPropSheetPages; 00188 /* FIXME: PSDK declares arrayPropSheetPages as a PROPSHEETPAGE *, which we 00189 * don't allow in our own headers. It's probably wrong, but we're not 00190 * compatible. 00191 */ 00192 PROPSHEETPAGEW *arrayPropSheetPages; 00193 } CERT_VIEWPROPERTIES_STRUCT_W, *PCERT_VIEWPROPERTIES_STRUCT_W; 00194 00195 #define CERT_VIEWPROPERTIES_STRUCT WINELIB_NAME_AW(CERT_VIEWPROPERTIES_STRUCT_) 00196 #define PCERT_VIEWPROPERTIES_STRUCT \ 00197 WINELIB_NAME_AW(PCERT_VIEWPROPERTIES_STRUCT_) 00198 00199 BOOL WINAPI CertViewPropertiesA(PCERT_VIEWPROPERTIES_STRUCT_A pCertViewInfo); 00200 BOOL WINAPI CertViewPropertiesW(PCERT_VIEWPROPERTIES_STRUCT_W pCertViewInfo); 00201 #define CertViewProperties WINELIB_NAME_AW(CertViewProperties) 00202 00203 #define CERT_FILTER_OP_EXISTS 1 00204 #define CERT_FILTER_OP_NOT_EXISTS 2 00205 #define CERT_FILTER_OP_EQUALITY 3 00206 00207 typedef struct tagCMOID 00208 { 00209 LPCSTR szExtensionOID; 00210 DWORD dwTestOperation; 00211 LPBYTE pbTestData; 00212 DWORD cbTestData; 00213 } CERT_FILTER_EXTENSION_MATCH; 00214 00215 #define CERT_FILTER_INCLUDE_V1_CERTS 0x0001 00216 #define CERT_FILTER_VALID_TIME_RANGE 0x0002 00217 #define CERT_FILTER_VALID_SIGNATURE 0x0004 00218 #define CERT_FILTER_LEAF_CERTS_ONLY 0x0008 00219 #define CERT_FILTER_ISSUER_CERTS_ONLY 0x0010 00220 #define CERT_FILTER_KEY_EXISTS 0x0020 00221 00222 typedef struct tagCMFLTR 00223 { 00224 DWORD dwSize; 00225 DWORD cExtensionChecks; 00226 CERT_FILTER_EXTENSION_MATCH *arrayExtensionChecks; 00227 DWORD dwCheckingFlags; 00228 } CERT_FILTER_DATA; 00229 00230 DWORD WINAPI GetFriendlyNameOfCertA(PCCERT_CONTEXT pccert, LPSTR pchBuffer, 00231 DWORD cchBuffer); 00232 DWORD WINAPI GetFriendlyNameOfCertW(PCCERT_CONTEXT pccert, LPWSTR pchBuffer, 00233 DWORD cchBuffer); 00234 #define GetFriendlyNameOfCert WINELIB_NAME_AW(GetFriendlyNameOfCert) 00235 00236 #define CERT_CERTIFICATE_ACTION_VERIFY \ 00237 { 0x7801ebd0, 0xcf4b, 0x11d0, { 0x85,0x1f,0x00,0x60,0x97,0x93,0x87,0xea }} 00238 #define szCERT_CERTIFICATE_ACTION_VERIFY \ 00239 "{7801ebd0-cf4b-11d0-851f-0060979387ea}" 00240 00241 typedef HRESULT (WINAPI *PFNTRUSTHELPER)(PCCERT_CONTEXT, DWORD, BOOL, LPBYTE); 00242 00243 #define CERT_VALIDITY_MASK_VALIDITY 0x0000ffff 00244 #define CERT_VALIDITY_BEFORE_START 0x00000001 00245 #define CERT_VALIDITY_AFTER_END 0x00000002 00246 #define CERT_VALIDITY_SIGNATURE_FAILS 0x00000004 00247 #define CERT_VALIDITY_CERTIFICATE_REVOKED 0x00000008 00248 #define CERT_VALIDITY_KEY_USAGE_EXT_FAILURE 0x00000010 00249 #define CERT_VALIDITY_EXTENDED_USAGE_FAILURE 0x00000020 00250 #define CERT_VALIDITY_NAME_CONSTRAINTS_FAILURE 0x00000040 00251 #define CERT_VALIDITY_UNKNOWN_CRITICAL_EXTENSION 0x00000080 00252 #define CERT_VALIDITY_ISSUER_INVALID 0x00000100 00253 #define CERT_VALIDITY_OTHER_EXTENSION_FAILURE 0x00000200 00254 #define CERT_VALIDITY_PERIOD_NESTING_FAILURE 0x00000400 00255 #define CERT_VALIDITY_OTHER_ERROR 0x00000800 00256 00257 #define CERT_VALIDITY_MASK_TRUST 0xffff0000 00258 #define CERT_VALIDITY_EXPLICITLY_DISTRUSTED 0x01000000 00259 #define CERT_VALIDITY_ISSUER_DISTRUST 0x02000000 00260 #define CERT_VALIDITY_NO_ISSUER_CERT_FOUND 0x10000000 00261 #define CERT_VALIDITY_NO_CRL_FOUND 0x20000000 00262 #define CERT_VALIDITY_CRL_OUT_OF_DATE 0x40000000 00263 #define CERT_VALIDITY_NO_TRUST_DATA 0x80000000 00264 00265 #define CERT_TRUST_MASK 0x00ffffff 00266 #define CERT_TRUST_DO_FULL_SEARCH 0x00000001 00267 #define CERT_TRUST_PERMIT_MISSING_CRLS 0x00000002 00268 #define CERT_TRUST_DO_FULL_TRUST 0x00000005 00269 #define CERT_TRUST_ADD_CERT_STORES CM_ADD_CERT_STORES 00270 00271 typedef struct _CERT_VERIFY_CERTIFICATE_TRUST 00272 { 00273 DWORD cbSize; 00274 PCCERT_CONTEXT pccert; 00275 DWORD dwFlags; 00276 DWORD dwIgnoreErr; 00277 DWORD *pdwErrors; 00278 LPSTR pszUsageOid; 00279 HCRYPTPROV hprov; 00280 DWORD cRootStores; 00281 HCERTSTORE *rghstoreRoots; 00282 DWORD cStores; 00283 HCERTSTORE *rghstoreCAs; 00284 DWORD cTrustStores; 00285 HCERTSTORE *rghstoreTrust; 00286 DWORD lCustData; 00287 PFNTRUSTHELPER pfnTrustHelper; 00288 DWORD *pcchain; 00289 PCCERT_CONTEXT **prgChain; 00290 DWORD **prgdwErrors; 00291 DATA_BLOB **prgpbTrustInfo; 00292 } CERT_VERIFY_CERTIFICATE_TRUST, *PCERT_VERIFY_CERTIFICATE_TRUST; 00293 00294 #define CTL_MODIFY_REQUEST_ADD_NOT_TRUSTED 1 00295 #define CTL_MODIFY_REQUEST_REMOVE 2 00296 #define CTL_MODIFY_REQUEST_ADD_TRUSTED 3 00297 00298 typedef struct _CTL_MODIFY_REQUEST 00299 { 00300 PCCERT_CONTEXT pccert; 00301 DWORD dwOperation; 00302 DWORD dwError; 00303 } CTL_MODIFY_REQUEST, *PCTL_MODIFY_REQUEST; 00304 00305 HRESULT WINAPI CertModifyCertificatesToTrust(int cCertStore, 00306 PCTL_MODIFY_REQUEST rgCerts, LPCSTR szPurpose, HWND hwnd, 00307 HCERTSTORE hcertstoreTrust); 00308 00309 #ifdef __cplusplus 00310 } 00311 #endif 00312 00313 #endif Generated on Sat May 26 2012 04:29:56 for ReactOS by
1.7.6.1
|