home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / certsrv < prev    next >
Text File  |  1998-04-25  |  10KB  |  266 lines

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (C) Microsoft Corporation, 1992-1997.
  5. //
  6. //  File:       CertSrv.h
  7. //  Contents:   Main Certificate Server header
  8. //              Also includes .h files for the COM interfaces
  9. //
  10. //----------------------------------------------------------------------------
  11.  
  12. #if !defined( _CERTSRV_H_ )
  13. #define _CERTSRV_H_
  14.  
  15. #include <certadm.h>
  16. #include <certcli.h>
  17. #include <certenc.h>
  18. #include <certexit.h>
  19. #include <certif.h>
  20. #include <certpol.h>
  21.  
  22. #ifndef DBG_CERTSRV
  23. # if defined(_DEBUG)
  24. #  define DBG_CERTSRV     1
  25. # elif defined(DBG)
  26. #  define DBG_CERTSRV     DBG
  27. # else
  28. #  define DBG_CERTSRV     0
  29. # endif
  30. #endif
  31.  
  32.  
  33. #define wszCLASS_CERTADMIN      TEXT("CertificateAuthority.Admin")
  34. #define wszCLASS_CERTCONFIG      TEXT("CertificateAuthority.Config")
  35. #define wszCLASS_CERTGETCONFIG      TEXT("CertificateAuthority.GetConfig")
  36. #define wszCLASS_CERTENCODE      TEXT("CertificateAuthority.Encode")
  37. #define wszCLASS_CERTEXIT      TEXT("CertificateAuthority.Exit")
  38. #define wszCLASS_CERTPOLICY      TEXT("CertificateAuthority.Policy")
  39. #define wszCLASS_CERTREQUEST      TEXT("CertificateAuthority.Request")
  40. #define wszCLASS_CERTSERVEREXIT      TEXT("CertificateAuthority.ServerExit")
  41. #define wszCLASS_CERTSERVERPOLICY TEXT("CertificateAuthority.ServerPolicy")
  42.  
  43. #define wszSERVICE_NAME        TEXT("CertSvc")
  44.  
  45. #define wszREGKEYBASE        TEXT("SYSTEM\\CurrentControlSet\\Services\\") \
  46.                 wszSERVICE_NAME
  47.  
  48. //======================================================================
  49. // Full path to "CertSvc\Configuration\":
  50. #define x_wszREGKEYCONFIGCANAME    wszREGKEYBASE TEXT("\\") \
  51.                 wszREGKEYCONFIG TEXT("\\")
  52.  
  53. //======================================================================
  54. // Key Under "CertSvc":
  55. #define wszREGKEYCONFIG        TEXT("Configuration")
  56.  
  57.  
  58. //======================================================================
  59. // Values Under "CertSvc\Configuration\<CAName>":
  60. #define wszREGCERTENROLLCOMPATIBLE TEXT("CertEnrollCompatible")
  61. #define wszREGKEYENABLED    TEXT("Enabled")
  62. #define wszREGCONTAINERNAME     TEXT("KeySetName")
  63. #define wszREGNAMESEPARATOR     TEXT("SubjectNameSeparator")
  64. #define wszREGPOLICYFLAGS    TEXT("PolicyFlags")
  65. #define wszREGSUBJECTTEMPLATE    TEXT("SubjectTemplate")
  66. #define wszREGREVOCATIONCRLURL    TEXT("RevocationCRLURL")
  67. #define wszREGREVOCATIONTYPE    TEXT("RevocationType")
  68. #define wszREGREVOCATIONURL    TEXT("RevocationURL")
  69. #define wszREGDURATIONPERIOD    TEXT("ValidityPeriod")
  70. #define wszREGDURATIONUNITS    TEXT("ValidityPeriodUnits")
  71.  
  72. #define szREGDBDSN        "DBDSN"
  73. #define szREGDBUSER        "DBUser"
  74. #define szREGDBPASSWORD        "DBPassword"
  75.  
  76. #define wszREGDBDSN        TEXT(szREGDBDSN)
  77. #define wszREGDBUSER        TEXT(szREGDBUSER)
  78. #define wszREGDBPASSWORD    TEXT(szREGDBPASSWORD)
  79.  
  80.  
  81. //======================================================================
  82. // Value strings for "CertSvc\Configuration\<CAName>\SubjectNameSeparator":
  83. #define szNAMESEPARATORDEFAULT   ","
  84. #define wszNAMESEPARATORDEFAULT   TEXT(szNAMESEPARATORDEFAULT)
  85.  
  86.  
  87. //======================================================================
  88. // Value strings for "CertSvc\Configuration\<CAName>\RevocationType":
  89. #define wszREVTYPE_CRL        TEXT("CRL")
  90. #define wszREVTYPE_NETSCAPE    TEXT("Netscape")
  91.  
  92.  
  93. //======================================================================
  94. // Value strings for "CertSvc\Configuration\<CAName>\ValidityPeriod":
  95. #define wszDURATIONUNITSYEARS    TEXT("Years")
  96. #define wszDURATIONUNITSMONTHS    TEXT("Months")
  97. #define wszDURATIONUNITSWEEKS    TEXT("Weeks")
  98. #define wszDURATIONUNITSDAYS    TEXT("Days")
  99. #define wszDURATIONUNITSHOURS    TEXT("Hours")
  100. #define wszDURATIONUNITSMINUTES    TEXT("Minutes")
  101. #define wszDURATIONUNITSSECONDS    TEXT("Seconds")
  102.  
  103.  
  104. //+--------------------------------------------------------------------------
  105. // Name properties:
  106.  
  107. #define wszPROPDISTINGUISHEDNAME TEXT("DistinguishedName")
  108. #define wszPROPRAWNAME           TEXT("RawName")
  109. #define wszPROPNAMETYPE          TEXT("NameType")
  110. #define wszPROPCOUNTRY           TEXT("Country")
  111. #define wszPROPORGANIZATION      TEXT("Organization")
  112. #define wszPROPORGUNIT           TEXT("OrgUnit")
  113. #define wszPROPCOMMONNAME        TEXT("CommonName")
  114. #define wszPROPLOCALITY          TEXT("Locality")
  115. #define wszPROPSTATE             TEXT("State")
  116. #define wszPROPTITLE             TEXT("Title")
  117. #define wszPROPGIVENNAME         TEXT("GivenName")
  118. #define wszPROPINITIALS          TEXT("Initials")
  119. #define wszPROPSURNAME           TEXT("SurName")
  120. #define wszPROPDOMAINCOMPONENT   TEXT("DomainComponent")
  121. #define wszPROPEMAIL             TEXT("EMail")
  122.  
  123. //+--------------------------------------------------------------------------
  124. // Subject Name properties:
  125.  
  126. #define wszPROPSUBJECTDOT        TEXT("Subject.")
  127. #define wszPROPSUBJECTDISTINGUISHEDNAME \
  128.                     wszPROPSUBJECTDOT wszPROPDISTINGUISHEDNAME
  129. #define wszPROPSUBJECTRAWNAME       wszPROPSUBJECTDOT wszPROPRAWNAME
  130. #define wszPROPSUBJECTNAMETYPE      wszPROPSUBJECTDOT wszPROPNAMETYPE
  131. #define wszPROPSUBJECTCOUNTRY       wszPROPSUBJECTDOT wszPROPCOUNTRY
  132. #define wszPROPSUBJECTORGANIZATION  wszPROPSUBJECTDOT wszPROPORGANIZATION
  133. #define wszPROPSUBJECTORGUNIT       wszPROPSUBJECTDOT wszPROPORGUNIT
  134. #define wszPROPSUBJECTCOMMONNAME    wszPROPSUBJECTDOT wszPROPCOMMONNAME
  135. #define wszPROPSUBJECTLOCALITY      wszPROPSUBJECTDOT wszPROPLOCALITY
  136. #define wszPROPSUBJECTSTATE         wszPROPSUBJECTDOT wszPROPSTATE
  137. #define wszPROPSUBJECTTITLE        wszPROPSUBJECTDOT wszPROPTITLE
  138. #define wszPROPSUBJECTGIVENNAME        wszPROPSUBJECTDOT wszPROPGIVENNAME
  139. #define wszPROPSUBJECTINITIALS        wszPROPSUBJECTDOT wszPROPINITIALS
  140. #define wszPROPSUBJECTSURNAME        wszPROPSUBJECTDOT wszPROPSURNAME
  141. #define wszPROPSUBJECTDOMAINCOMPONENT wszPROPSUBJECTDOT wszPROPDOMAINCOMPONENT
  142. #define wszPROPSUBJECTEMAIL        wszPROPSUBJECTDOT wszPROPEMAIL
  143.  
  144. #define wszPROPSUBJECTCOUNTRYOBJID \
  145.     wszPROPSUBJECTDOT TEXT(szOID_COUNTRY_NAME)
  146.  
  147. #define wszPROPSUBJECTORGANIZATIONOBJID \
  148.     wszPROPSUBJECTDOT TEXT(szOID_ORGANIZATION_NAME)
  149.  
  150. #define wszPROPSUBJECTORGUNITOBJID \
  151.     wszPROPSUBJECTDOT TEXT(szOID_ORGANIZATIONAL_UNIT_NAME)
  152.  
  153. #define wszPROPSUBJECTCOMMONNAMEOBJID \
  154.     wszPROPSUBJECTDOT TEXT(szOID_COMMON_NAME)
  155.  
  156. #define wszPROPSUBJECTLOCALITYOBJID \
  157.     wszPROPSUBJECTDOT TEXT(szOID_LOCALITY_NAME)
  158.  
  159. #define wszPROPSUBJECTSTATEOBJID \
  160.     wszPROPSUBJECTDOT TEXT(szOID_STATE_OR_PROVINCE_NAME)
  161.  
  162. #define wszPROPSUBJECTTITLEOBJID \
  163.     wszPROPSUBJECTDOT TEXT(szOID_TITLE)
  164.  
  165. #define wszPROPSUBJECTGIVENNAMEOBJID \
  166.     wszPROPSUBJECTDOT TEXT(szOID_GIVEN_NAME)
  167.  
  168. #define wszPROPSUBJECTINITIALSOBJID \
  169.     wszPROPSUBJECTDOT TEXT(szOID_INITIALS)
  170.  
  171. #define wszPROPSUBJECTSURNAMEOBJID \
  172.     wszPROPSUBJECTDOT TEXT(szOID_SUR_NAME)
  173.  
  174.  
  175. //+--------------------------------------------------------------------------
  176. // Request properties:
  177.  
  178. #define wszPROPREQUESTREQUESTID            TEXT("RequestID")
  179. #define wszPROPREQUESTRAWREQUEST        TEXT("RawRequest")
  180. #define wszPROPREQUESTATTRIBUTES        TEXT("RequestAttributes")
  181. #define wszPROPREQUESTTYPE            TEXT("RequestType")
  182. #define wszPROPREQUESTFLAGS            TEXT("RequestFlags")
  183. #define wszPROPREQUESTSTATUS            TEXT("Status")
  184. #define wszPROPREQUESTSTATUSCODE        TEXT("StatusCode")
  185. #define wszPROPREQUESTDISPOSITION        TEXT("Disposition")
  186. #define wszPROPREQUESTDISPOSITIONMESSAGE    TEXT("DispositionMessage")
  187. #define wszPROPREQUESTSUBMITTEDWHEN        TEXT("SubmittedWhen")
  188. #define wszPROPREQUESTRESOLVEDWHEN        TEXT("ResolvedWhen")
  189. #define wszPROPREQUESTREVOKEDWHEN        TEXT("RevokedWhen")
  190. #define wszPROPREQUESTREVOKEDEFFECTIVEWHEN  TEXT("RevokedEffectiveWhen")
  191. #define wszPROPREQUESTREVOKEDREASON          TEXT("RevokedReason")
  192. #define wszPROPREQUESTERNAME            TEXT("RequesterName")
  193.  
  194.  
  195. //+--------------------------------------------------------------------------
  196. // Request attribute properties:
  197.  
  198. #define wszPROPCHALLENGE        TEXT("Challenge")
  199. #define wszPROPEXPECTEDCHALLENGE    TEXT("ExpectedChallenge")
  200.  
  201.  
  202. //+--------------------------------------------------------------------------
  203. // Certificate properties:
  204.  
  205. #define wszPROPCERTIFICATEREQUESTID        TEXT("RequestID")
  206. #define wszPROPRAWCERTIFICATE            TEXT("RawCertificate")
  207. #define wszPROPCERTIFICATETYPE            TEXT("CertificateType")
  208. #define wszPROPCERTIFICATESERIALNUMBER        TEXT("SerialNumber")
  209. #define wszPROPCERTIFICATENOTBEFOREDATE        TEXT("NotBefore")
  210. #define wszPROPCERTIFICATENOTAFTERDATE        TEXT("NotAfter")
  211. #define wszPROPCERTIFICATERAWPUBLICKEY        TEXT("RawPublicKey")
  212. #define wszPROPCERTIFICATEPUBLICKEYALGORITHM TEXT("PublicKeyAlgorithm")
  213. #define wszPROPCERTIFICATERAWPUBLICKEYALGORITHMPARAMETERS \
  214.     TEXT("RawPublicKeyAlgorithmParameters")
  215.  
  216.  
  217. //+--------------------------------------------------------------------------
  218. // Certificate extension properties:
  219.  
  220. #define EXTENSION_CRITICAL_FLAG     0x00000001
  221. #define EXTENSION_DISABLE_FLAG     0x00000002
  222. #define EXTENSION_POLICY_MASK     0x0000ffff    // Settable by admin+policy
  223.  
  224. #define EXTENSION_ORIGIN_REQUEST 0x00010000
  225. #define EXTENSION_ORIGIN_POLICY     0x00020000
  226. #define EXTENSION_ORIGIN_ADMIN     0x00030000
  227. #define EXTENSION_ORIGIN_SERVER     0x00040000
  228. #define EXTENSION_ORIGIN_MASK     0x000f0000
  229.  
  230.  
  231. //+--------------------------------------------------------------------------
  232. // GetProperty/SetProperty Flags:
  233. //
  234. // Choose one Type
  235.  
  236. #define PROPTYPE_LONG         0x00000001    // Signed long
  237. #define PROPTYPE_DATE         0x00000002    // Date+Time
  238. #define PROPTYPE_BINARY         0x00000003    // Binary data
  239. #define PROPTYPE_STRING         0x00000004    // Unicode String
  240.  
  241.  
  242. // Request Status property values:
  243.  
  244. #define REQSTATUS_ACTIVE    1
  245. #define REQSTATUS_ACCEPTED    2
  246. #define REQSTATUS_DENIED    3
  247. #define REQSTATUS_PENDING    4
  248. #define REQSTATUS_ERROR        5
  249.  
  250.  
  251. // VerifyRequest() return values
  252.  
  253. #define VR_PENDING    0     // request will be accepted or denied later
  254. #define VR_INSTANT_OK    1     // request was accepted
  255. #define VR_INSTANT_BAD    2     // request was rejected
  256.  
  257.  
  258. #ifndef szOID_CRL_DIST_POINTS
  259. # define szOID_CRL_DIST_POINTS           "2.5.29.31"
  260. # define CERT_ALT_NAME_URL                7
  261. # define szOID_NETSCAPE_REVOCATION_URL   "2.16.840.1.113730.1.3"
  262. #endif
  263.  
  264.  
  265. #endif // _CERTSRV_H_
  266.