ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

cryptdlg.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.