This file is indexed.

/usr/x86_64-w64-mingw32/include/certsrv.h is in mingw-w64-x86-64-dev 2.0.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the w64 mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#if !defined(_CERTSRV_H_)
#define _CERTSRV_H_

#include <certadm.h>
#include <certbcli.h>
#include <certcli.h>
#include <certenc.h>
#include <certexit.h>
#include <certif.h>
#include <certpol.h>
#include <certmod.h>
#include <certview.h>

#define wszSERVICE_NAME TEXT("CertSvc")
#define wszREGKEYNOSYSTEMCERTSVCPATH TEXT("CurrentControlSet\\Services\\") wszSERVICE_NAME
#define wszREGKEYCERTSVCPATH TEXT("SYSTEM\\") wszREGKEYNOSYSTEMCERTSVCPATH
#define wszREGKEYBASE wszREGKEYCERTSVCPATH
#define wszREGKEYCONFIGPATH wszREGKEYCERTSVCPATH TEXT("\\") wszREGKEYCONFIG
#define wszREGKEYCONFIGPATH_BS wszREGKEYCONFIGPATH TEXT("\\")
#define wszREGKEYCONFIGCANAME wszREGKEYCONFIGPATH_BS
#define wszREGKEYCONFIGRESTORE wszREGKEYCONFIGPATH_BS wszREGKEYRESTOREINPROGRESS
#define wszREGKEYCONFIG TEXT("Configuration")
#define wszREGACTIVE TEXT("Active")
#define wszREGDIRECTORY TEXT("ConfigurationDirectory")
#define wszREGDBDIRECTORY TEXT("DBDirectory")
#define wszREGDBLOGDIRECTORY TEXT("DBLogDirectory")
#define wszREGDBSYSDIRECTORY TEXT("DBSystemDirectory")
#define wszREGDBTEMPDIRECTORY TEXT("DBTempDirectory")
#define wszREGDBSESSIONCOUNT TEXT("DBSessionCount")
#define wszREGDBFLAGS TEXT("DBFlags")
#define wszREGDBLASTFULLBACKUP TEXT("DBLastFullBackup")
#define wszREGDBLASTINCREMENTALBACKUP TEXT("DBLastIncrementalBackup")
#define wszREGDBLASTRECOVERY TEXT("DBLastRecovery")
#define wszREGWEBCLIENTCAMACHINE TEXT("WebClientCAMachine")
#define wszREGVERSION TEXT("Version")
#define wszREGWEBCLIENTCANAME TEXT("WebClientCAName")
#define wszREGWEBCLIENTCATYPE TEXT("WebClientCAType")
#define wszREGLDAPFLAGS TEXT("LDAPFlags")
#define wszREGCERTSRVDEBUG TEXT("Debug")

#define DBSESSIONCOUNTDEFAULT 20

#define DBFLAGS_READONLY 0x00000001
#define DBFLAGS_CREATEIFNEEDED 0x00000002
#define DBFLAGS_CIRCULARLOGGING 0x00000004
#define DBFLAGS_LAZYFLUSH 0x00000008
#define DBFLAGS_MAXCACHESIZEX100 0x00000010
#define DBFLAGS_CHECKPOINTDEPTH60MB 0x00000020
#define DBFLAGS_LOGBUFFERSLARGE 0x00000040
#define DBFLAGS_LOGBUFFERSHUGE 0x00000080
#define DBFLAGS_LOGFILESIZE16MB 0x00000100
#define DBFLAGS_MULTITHREADTRANSACTIONS 0x00000200
#define DBFLAGS_DISABLESNAPSHOTBACKUP 0x00000400

#define DBFLAGS_DEFAULT (DBFLAGS_LAZYFLUSH | DBFLAGS_MAXCACHESIZEX100 | DBFLAGS_CHECKPOINTDEPTH60MB | DBFLAGS_LOGBUFFERSHUGE)

#define LDAPF_SSLENABLE 0x00000001
#define LDAPF_SIGNDISABLE 0x00000002

#define MAXINCOMINGMESSAGESIZEDEFAULT (64 *1024)
#define MAXINCOMINGALLOCSIZEDEFAULT (64 *1024)

#define CSVER_MAJOR_WIN2K 1
#define CSVER_MINOR_WIN2K 1

#define CSVER_MAJOR_WHISTLER 2
#define CSVER_MINOR_WHISTLER_BETA2 1
#define CSVER_MINOR_WHISTLER_BETA3 2

#define CSVER_MAJOR CSVER_MAJOR_WHISTLER
#define CSVER_MINOR CSVER_MINOR_WHISTLER_BETA3

#define CSVER_EXTRACT_MAJOR(version) ((version)>>16)
#define CSVER_EXTRACT_MINOR(version) ((version)&0xffff)
#define CSVER_BUILD_VERSION(major,minor) (((major)<<16)|(minor))

#define wszREGKEYRESTOREINPROGRESS TEXT("RestoreInProgress")
#define wszREGKEYDBPARAMETERS TEXT("DBParameters")

#define wszREGCADESCRIPTION TEXT("CADescription")
#define wszREGCACERTHASH TEXT("CACertHash")
#define wszREGCASERIALNUMBER TEXT("CACertSerialNumber")
#define wszREGCAXCHGCERTHASH TEXT("CAXchgCertHash")
#define wszREGKRACERTHASH TEXT("KRACertHash")
#define wszREGKRACERTCOUNT TEXT("KRACertCount")
#define wszREGKRAFLAGS TEXT("KRAFlags")
#define wszREGCATYPE TEXT("CAType")
#define wszREGCERTENROLLCOMPATIBLE TEXT("CertEnrollCompatible")
#define wszREGENFORCEX500NAMELENGTHS TEXT("EnforceX500NameLengths")
#define wszREGCOMMONNAME TEXT("CommonName")
#define wszREGCLOCKSKEWMINUTES TEXT("ClockSkewMinutes")

#define wszREGCRLNEXTPUBLISH TEXT("CRLNextPublish")
#define wszREGCRLPERIODSTRING TEXT("CRLPeriod")
#define wszREGCRLPERIODCOUNT TEXT("CRLPeriodUnits")
#define wszREGCRLOVERLAPPERIODSTRING TEXT("CRLOverlapPeriod")
#define wszREGCRLOVERLAPPERIODCOUNT TEXT("CRLOverlapUnits")

#define wszREGCRLDELTANEXTPUBLISH TEXT("CRLDeltaNextPublish")
#define wszREGCRLDELTAPERIODSTRING TEXT("CRLDeltaPeriod")
#define wszREGCRLDELTAPERIODCOUNT TEXT("CRLDeltaPeriodUnits")
#define wszREGCRLDELTAOVERLAPPERIODSTRING TEXT("CRLDeltaOverlapPeriod")
#define wszREGCRLDELTAOVERLAPPERIODCOUNT TEXT("CRLDeltaOverlapUnits")

#define wszREGCRLPUBLICATIONURLS TEXT("CRLPublicationURLs")
#define wszREGCACERTPUBLICATIONURLS TEXT("CACertPublicationURLs")

#define wszREGCAXCHGVALIDITYPERIODSTRING TEXT("CAXchgValidityPeriod")
#define wszREGCAXCHGVALIDITYPERIODCOUNT TEXT("CAXchgValidityPeriodUnits")
#define wszREGCAXCHGOVERLAPPERIODSTRING TEXT("CAXchgOverlapPeriod")
#define wszREGCAXCHGOVERLAPPERIODCOUNT TEXT("CAXchgOverlapPeriodUnits")

#define wszREGCRLPATH_OLD TEXT("CRLPath")
#define wszREGCRLEDITFLAGS TEXT("CRLEditFlags")
#define wszREGCRLFLAGS TEXT("CRLFlags")
#define wszREGCRLATTEMPTREPUBLISH TEXT("CRLAttemptRepublish")
#define wszREGENABLED TEXT("Enabled")
#define wszREGFORCETELETEX TEXT("ForceTeletex")
#define wszREGLOGLEVEL TEXT("LogLevel")
#define wszREGHIGHSERIAL TEXT("HighSerial")
#define wszREGPOLICYFLAGS TEXT("PolicyFlags")
#define wszREGNAMESEPARATOR TEXT("SubjectNameSeparator")
#define wszREGSUBJECTTEMPLATE TEXT("SubjectTemplate")
#define wszREGCAUSEDS TEXT("UseDS")
#define wszREGVALIDITYPERIODSTRING TEXT("ValidityPeriod")
#define wszREGVALIDITYPERIODCOUNT TEXT("ValidityPeriodUnits")
#define wszREGPARENTCAMACHINE TEXT("ParentCAMachine")
#define wszREGPARENTCANAME TEXT("ParentCAName")
#define wszREGREQUESTFILENAME TEXT("RequestFileName")
#define wszREGREQUESTID TEXT("RequestId")
#define wszREGREQUESTKEYCONTAINER TEXT("RequestKeyContainer")
#define wszREGREQUESTKEYINDEX TEXT("RequestKeyIndex")
#define wszREGCASERVERNAME TEXT("CAServerName")
#define wszREGCACERTFILENAME TEXT("CACertFileName")
#define wszREGCASECURITY TEXT("Security")
#define wszREGAUDITFILTER TEXT("AuditFilter")
#define wszREGOFFICERRIGHTS TEXT("OfficerRights")
#define wszREGMAXINCOMINGMESSAGESIZE TEXT("MaxIncomingMessageSize")
#define wszREGMAXINCOMINGALLOCSIZE TEXT("MaxIncomingAllocSize")
#define wszREGROLESEPARATIONENABLED TEXT("RoleSeparationEnabled")
#define wszREGALTERNATEPUBLISHDOMAINS TEXT("AlternatePublishDomains")

#define wszREGSETUPSTATUS TEXT("SetupStatus")
#define wszREGINTERFACEFLAGS TEXT("InterfaceFlags")
#define wszREGDSCONFIGDN TEXT("DSConfigDN")
#define wszREGDSDOMAINDN TEXT("DSDomainDN")
#define wszREGVIEWAGEMINUTES TEXT("ViewAgeMinutes")
#define wszREGVIEWIDLEMINUTES TEXT("ViewIdleMinutes")

#define wszCRTFILENAMEEXT TEXT(".crt")
#define wszPFXFILENAMEEXT TEXT(".p12")
#define wszDATFILENAMEEXT TEXT(".dat")
#define wszLOGFILENAMEEXT TEXT(".log")
#define wszDBFILENAMEEXT TEXT(".edb")
#define szDBBASENAMEPARM "edb"
#define wszDBBASENAMEPARM TEXT(szDBBASENAMEPARM)
#define wszLOGPATH TEXT("CertLog")
#define wszDBBACKUPSUBDIR TEXT("DataBase")
#define wszDBBACKUPCERTBACKDAT TEXT("certbkxp.dat")

#ifndef __ENUM_CATYPES__
#define __ENUM_CATYPES__

typedef enum {
  ENUM_ENTERPRISE_ROOTCA = 0,ENUM_ENTERPRISE_SUBCA = 1,ENUM_STANDALONE_ROOTCA = 3,ENUM_STANDALONE_SUBCA = 4,ENUM_UNKNOWN_CA = 5,
} ENUM_CATYPES;

typedef struct _CAINFO {
  DWORD cbSize;
  ENUM_CATYPES CAType;
  DWORD cCASignatureCerts;
  DWORD cCAExchangeCerts;
  DWORD cExitModules;
  LONG lPropIdMax;
  LONG lRoleSeparationEnabled;
  DWORD cKRACertUsedCount;
  DWORD cKRACertCount;
  DWORD fAdvancedServer;
} CAINFO;
#endif

#define CCLOCKSKEWMINUTESDEFAULT 10
#define CVIEWAGEMINUTESDEFAULT 16
#define CVIEWIDLEMINUTESDEFAULT (CVIEWAGEMINUTESDEFAULT / 2)
#define dwVALIDITYPERIODCOUNTDEFAULT_ROOT 5
#define dwVALIDITYPERIODCOUNTDEFAULT_ENTERPRISE 2
#define dwVALIDITYPERIODCOUNTDEFAULT_STANDALONE 1
#define dwVALIDITYPERIODENUMDEFAULT ENUM_PERIOD_YEARS
#define wszVALIDITYPERIODSTRINGDEFAULT wszPERIODYEARS
#define dwCAXCHGVALIDITYPERIODCOUNTDEFAULT 1
#define dwCAXCHGVALIDITYPERIODENUMDEFAULT ENUM_PERIOD_WEEKS
#define wszCAXCHGVALIDITYPERIODSTRINGDEFAULT wszPERIODWEEKS
#define dwCAXCHGOVERLAPPERIODCOUNTDEFAULT 1
#define dwCAXCHGOVERLAPPERIODENUMDEFAULT ENUM_PERIOD_DAYS
#define wszCAXCHGOVERLAPPERIODSTRINGDEFAULT wszPERIODDAYS
#define dwCRLPERIODCOUNTDEFAULT 1
#define wszCRLPERIODSTRINGDEFAULT wszPERIODWEEKS
#define dwCRLOVERLAPPERIODCOUNTDEFAULT 0
#define wszCRLOVERLAPPERIODSTRINGDEFAULT wszPERIODHOURS
#define dwCRLDELTAPERIODCOUNTDEFAULT 1
#define wszCRLDELTAPERIODSTRINGDEFAULT wszPERIODDAYS
#define dwCRLDELTAOVERLAPPERIODCOUNTDEFAULT 0
#define wszCRLDELTAOVERLAPPERIODSTRINGDEFAULT wszPERIODMINUTES

#define CERTLOG_MINIMAL (DWORD) 0
#define CERTLOG_TERSE (DWORD) 1
#define CERTLOG_ERROR (DWORD) 2
#define CERTLOG_WARNING (DWORD) 3
#define CERTLOG_VERBOSE (DWORD) 4
#define CERTLOG_EXHAUSTIVE (DWORD) 5

#define SETUP_SERVER_FLAG 0x00000001
#define SETUP_CLIENT_FLAG 0x00000002
#define SETUP_SUSPEND_FLAG 0x00000004
#define SETUP_REQUEST_FLAG 0x00000008
#define SETUP_ONLINE_FLAG 0x00000010
#define SETUP_DENIED_FLAG 0x00000020
#define SETUP_CREATEDB_FLAG 0x00000040
#define SETUP_ATTEMPT_VROOT_CREATE 0x00000080
#define SETUP_FORCECRL_FLAG 0x00000100
#define SETUP_UPDATE_CAOBJECT_SVRTYPE 0x00000200
#define SETUP_SERVER_UPGRADED_FLAG 0x00000400
#define SETUP_W2K_SECURITY_NOT_UPGRADED_FLAG 0x00000800
#define SETUP_SECURITY_CHANGED 0x00001000

#define SETUP_DCOM_SECURITY_UPDATED_FLAG 0x00002000

#define CRLF_DELTA_USE_OLDEST_UNEXPIRED_BASE 0x00000001
#define CRLF_DELETE_EXPIRED_CRLS 0x00000002
#define CRLF_CRLNUMBER_CRITICAL 0x00000004
#define CRLF_REVCHECK_IGNORE_OFFLINE 0x00000008
#define CRLF_IGNORE_INVALID_POLICIES 0x00000010
#define CRLF_REBUILD_MODIFIED_SUBJECT_ONLY 0x00000020
#define CRLF_SAVE_FAILED_CERTS 0x00000040
#define CRLF_IGNORE_UNKNOWN_CMC_ATTRIBUTES 0x00000080
#define CRLF_IGNORE_CROSS_CERT_TRUST_ERROR 0x00000100
#define CRLF_PUBLISH_EXPIRED_CERT_CRLS 0x00000200
#define CRLF_ENFORCE_ENROLLMENT_AGENT 0x00000400
#define CRLF_DISABLE_RDN_REORDER 0x00000800
#define CRLF_DISABLE_ROOT_CROSS_CERTS 0x00001000
#define CRLF_LOG_FULL_RESPONSE 0x00002000
#define CRLF_USE_XCHG_CERT_TEMPLATE 0x00004000
#define CRLF_USE_CROSS_CERT_TEMPLATE 0x00008000
#define CRLF_ALLOW_REQUEST_ATTRIBUTE_SUBJECT 0x00010000
#define CRLF_REVCHECK_IGNORE_NOREVCHECK 0x00020000
#define CRLF_PRESERVE_EXPIRED_CA_CERTS 0x00040000
#define CRLF_PRESERVE_REVOKED_CA_CERTS 0x00080000

#define KRAF_ENABLEFOREIGN 0x00000001
#define KRAF_SAVEBADREQUESTKEY 0x00000002
#define KRAF_ENABLEARCHIVEALL 0x00000004

#define IF_LOCKICERTREQUEST 0x00000001
#define IF_NOREMOTEICERTREQUEST 0x00000002
#define IF_NOLOCALICERTREQUEST 0x00000004
#define IF_NORPCICERTREQUEST 0x00000008
#define IF_NOREMOTEICERTADMIN 0x00000010
#define IF_NOLOCALICERTADMIN 0x00000020
#define IF_NOREMOTEICERTADMINBACKUP 0x00000040
#define IF_NOLOCALICERTADMINBACKUP 0x00000080
#define IF_NOSNAPSHOTBACKUP 0x00000100
#define IF_ENFORCEENCRYPTICERTREQUEST 0x00000200
#define IF_ENFORCEENCRYPTICERTADMIN 0x00000400
#define IF_ENABLEEXITKEYRETRIEVAL 0x00000800
#define IF_ENABLEADMINASAUDITOR 0x00001000
#define IF_DEFAULT (IF_NOREMOTEICERTADMINBACKUP)

#define CSURL_SERVERPUBLISH 0x00000001
#define CSURL_ADDTOCERTCDP 0x00000002
#define CSURL_ADDTOFRESHESTCRL 0x00000004
#define CSURL_ADDTOCRLCDP 0x00000008
#define CSURL_PUBLISHRETRY 0x00000010
#define CSURL_ADDTOCERTOCSP 0x00000020
#define CSURL_SERVERPUBLISHDELTA 0x00000040

#define wszREGKEYCSP TEXT("CSP")
#define wszREGKEYENCRYPTIONCSP TEXT("EncryptionCSP")
#define wszREGKEYEXITMODULES TEXT("ExitModules")
#define wszREGKEYPOLICYMODULES TEXT("PolicyModules")
#define wszSECUREDATTRIBUTES TEXT("SignedAttributes")
#define wszzDEFAULTSIGNEDATTRIBUTES TEXT("RequesterName\0")
#define wszREGBACKUPLOGDIRECTORY TEXT("BackupLogDirectory")
#define wszREGCHECKPOINTFILE TEXT("CheckPointFile")
#define wszREGHIGHLOGNUMBER TEXT("HighLogNumber")
#define wszREGLOWLOGNUMBER TEXT("LowLogNumber")
#define wszREGLOGPATH TEXT("LogPath")
#define wszREGRESTOREMAPCOUNT TEXT("RestoreMapCount")
#define wszREGRESTOREMAP TEXT("RestoreMap")
#define wszREGDATABASERECOVERED TEXT("DatabaseRecovered")
#define wszREGRESTORESTATUS TEXT("RestoreStatus")
#define wszREGB2ICERTMANAGEMODULE TEXT("ICertManageModule")
#define wszREGSP4DEFAULTCONFIGURATION TEXT("DefaultConfiguration")
#define wszREGSP4KEYSETNAME TEXT("KeySetName")
#define wszREGSP4SUBJECTNAMESEPARATOR TEXT("SubjectNameSeparator")
#define wszREGSP4NAMES TEXT("Names")
#define wszREGSP4QUERIES TEXT("Queries")
#define wszREGNETSCAPECERTTYPE TEXT("NetscapeCertType")
#define wszNETSCAPEREVOCATIONTYPE TEXT("Netscape")
#define wszREGPROVIDERTYPE TEXT("ProviderType")
#define wszREGPROVIDER TEXT("Provider")
#define wszHASHALGORITHM TEXT("HashAlgorithm")
#define wszENCRYPTIONALGORITHM TEXT("EncryptionAlgorithm")
#define wszMACHINEKEYSET TEXT("MachineKeyset")
#define wszREGKEYSIZE TEXT("KeySize")
#define szNAMESEPARATORDEFAULT "\n"
#define wszNAMESEPARATORDEFAULT TEXT(szNAMESEPARATORDEFAULT)
#define wszPERIODYEARS TEXT("Years")
#define wszPERIODMONTHS TEXT("Months")
#define wszPERIODWEEKS TEXT("Weeks")
#define wszPERIODDAYS TEXT("Days")
#define wszPERIODHOURS TEXT("Hours")
#define wszPERIODMINUTES TEXT("Minutes")
#define wszPERIODSECONDS TEXT("Seconds")
#define wszREGISSUERCERTURLFLAGS TEXT("IssuerCertURLFlags")
#define wszREGEDITFLAGS TEXT("EditFlags")
#define wszREGUPNMAP TEXT("UPNMap")
#define wszREGSUBJECTALTNAME TEXT("SubjectAltName")
#define wszREGSUBJECTALTNAME2 TEXT("SubjectAltName2")
#define wszREGREQUESTDISPOSITION TEXT("RequestDisposition")
#define wszREGCAPATHLENGTH TEXT("CAPathLength")
#define wszREGREVOCATIONTYPE TEXT("RevocationType")
#define wszREGLDAPREVOCATIONCRLURL_OLD TEXT("LDAPRevocationCRLURL")
#define wszREGREVOCATIONCRLURL_OLD TEXT("RevocationCRLURL")
#define wszREGFTPREVOCATIONCRLURL_OLD TEXT("FTPRevocationCRLURL")
#define wszREGFILEREVOCATIONCRLURL_OLD TEXT("FileRevocationCRLURL")
#define wszREGREVOCATIONURL TEXT("RevocationURL")
#define wszREGLDAPISSUERCERTURL_OLD TEXT("LDAPIssuerCertURL")
#define wszREGISSUERCERTURL_OLD TEXT("IssuerCertURL")
#define wszREGFTPISSUERCERTURL_OLD TEXT("FTPIssuerCertURL")
#define wszREGFILEISSUERCERTURL_OLD TEXT("FileIssuerCertURL")
#define wszREGENABLEREQUESTEXTENSIONLIST TEXT("EnableRequestExtensionList")
#define wszREGENABLEENROLLEEREQUESTEXTENSIONLIST TEXT("EnableEnrolleeRequestExtensionList")
#define wszREGDISABLEEXTENSIONLIST TEXT("DisableExtensionList")
#define wszREGDEFAULTSMIME TEXT("DefaultSMIME")

#define CAPATHLENGTH_INFINITE 0xffffffff

#define REQDISP_PENDING 0x00000000
#define REQDISP_ISSUE 0x00000001
#define REQDISP_DENY 0x00000002
#define REQDISP_USEREQUESTATTRIBUTE 0x00000003
#define REQDISP_MASK 0x000000ff
#define REQDISP_PENDINGFIRST 0x00000100
#define REQDISP_DEFAULT_STANDALONE (REQDISP_PENDINGFIRST | REQDISP_ISSUE)
#define REQDISP_DEFAULT_ENTERPRISE (REQDISP_ISSUE)

#define REVEXT_CDPLDAPURL_OLD 0x00000001
#define REVEXT_CDPHTTPURL_OLD 0x00000002
#define REVEXT_CDPFTPURL_OLD 0x00000004
#define REVEXT_CDPFILEURL_OLD 0x00000008
#define REVEXT_CDPURLMASK_OLD 0x000000ff
#define REVEXT_CDPENABLE 0x00000100
#define REVEXT_ASPENABLE 0x00000200

#define REVEXT_DEFAULT_NODS (REVEXT_CDPENABLE)
#define REVEXT_DEFAULT_DS (REVEXT_CDPENABLE)

#define ISSCERT_LDAPURL_OLD 0x00000001
#define ISSCERT_HTTPURL_OLD 0x00000002
#define ISSCERT_FTPURL_OLD 0x00000004
#define ISSCERT_FILEURL_OLD 0x00000008
#define ISSCERT_URLMASK_OLD 0x000000ff
#define ISSCERT_ENABLE 0x00000100

#define ISSCERT_DEFAULT_NODS (ISSCERT_ENABLE)
#define ISSCERT_DEFAULT_DS (ISSCERT_ENABLE)

#define EDITF_ENABLEREQUESTEXTENSIONS 0x00000001
#define EDITF_REQUESTEXTENSIONLIST 0x00000002
#define EDITF_DISABLEEXTENSIONLIST 0x00000004
#define EDITF_ADDOLDKEYUSAGE 0x00000008
#define EDITF_ADDOLDCERTTYPE 0x00000010
#define EDITF_ATTRIBUTEENDDATE 0x00000020
#define EDITF_BASICCONSTRAINTSCRITICAL 0x00000040
#define EDITF_BASICCONSTRAINTSCA 0x00000080
#define EDITF_ENABLEAKIKEYID 0x00000100
#define EDITF_ATTRIBUTECA 0x00000200
#define EDITF_IGNOREREQUESTERGROUP 0x00000400
#define EDITF_ENABLEAKIISSUERNAME 0x00000800
#define EDITF_ENABLEAKIISSUERSERIAL 0x00001000
#define EDITF_ENABLEAKICRITICAL 0x00002000
#define EDITF_SERVERUPGRADED 0x00004000
#define EDITF_ATTRIBUTEEKU 0x00008000
#define EDITF_ENABLEDEFAULTSMIME 0x00010000
#define EDITF_EMAILOPTIONAL 0x00020000
#define EDITF_ATTRIBUTESUBJECTALTNAME2 0x00040000
#define EDITF_ENABLELDAPREFERRALS 0x00080000
#define EDITF_ENABLECHASECLIENTDC 0x00100000
#define EDITF_AUDITCERTTEMPLATELOAD 0x00200000
#define EDITF_DISABLEOLDOSCNUPN 0x00400000
#define EDITF_DISABLELDAPPACKAGELIST 0x00800000
#define EDITF_ENABLEUPNMAP 0x01000000

#define EDITF_DEFAULT_STANDALONE (EDITF_REQUESTEXTENSIONLIST | EDITF_DISABLEEXTENSIONLIST | EDITF_ADDOLDKEYUSAGE | EDITF_ATTRIBUTEENDDATE | EDITF_BASICCONSTRAINTSCRITICAL | EDITF_BASICCONSTRAINTSCA | EDITF_ENABLEAKIKEYID | EDITF_ATTRIBUTECA | EDITF_ATTRIBUTEEKU)
#define EDITF_DEFAULT_ENTERPRISE (EDITF_REQUESTEXTENSIONLIST | EDITF_DISABLEEXTENSIONLIST | EDITF_ADDOLDKEYUSAGE | EDITF_BASICCONSTRAINTSCRITICAL | EDITF_ENABLEAKIKEYID | EDITF_ENABLEDEFAULTSMIME | EDITF_ENABLECHASECLIENTDC)

#define wszREGLDAPREVOCATIONDN_OLD TEXT("LDAPRevocationDN")
#define wszREGLDAPREVOCATIONDNTEMPLATE_OLD TEXT("LDAPRevocationDNTemplate")
#define wszCRLPUBLISHRETRYCOUNT TEXT("CRLPublishRetryCount")
#define wszREGCERTPUBLISHFLAGS TEXT("PublishCertFlags")

#define EXITPUB_FILE 0x00000001
#define EXITPUB_ACTIVEDIRECTORY 0x00000002
#define EXITPUB_REMOVEOLDCERTS 0x00000010

#define EXITPUB_DEFAULT_ENTERPRISE EXITPUB_ACTIVEDIRECTORY

#define EXITPUB_DEFAULT_STANDALONE EXITPUB_FILE

#define wszCLASS_CERTADMIN TEXT("CertificateAuthority.Admin")
#define wszCLASS_CERTCONFIG TEXT("CertificateAuthority.Config")
#define wszCLASS_CERTGETCONFIG TEXT("CertificateAuthority.GetConfig")
#define wszCLASS_CERTENCODE TEXT("CertificateAuthority.Encode")
#define wszCLASS_CERTREQUEST TEXT("CertificateAuthority.Request")
#define wszCLASS_CERTSERVEREXIT TEXT("CertificateAuthority.ServerExit")
#define wszCLASS_CERTSERVERPOLICY TEXT("CertificateAuthority.ServerPolicy")
#define wszCLASS_CERTVIEW TEXT("CertificateAuthority.View")
#define wszMICROSOFTCERTMODULE_PREFIX TEXT("CertificateAuthority_MicrosoftDefault")
#define wszCERTMANAGE_SUFFIX TEXT("Manage")
#define wszCERTEXITMODULE_POSTFIX TEXT(".Exit")
#define wszCERTMANAGEEXIT_POSTFIX wszCERTEXITMODULE_POSTFIX wszCERTMANAGE_SUFFIX
#define wszCERTPOLICYMODULE_POSTFIX TEXT(".Policy")
#define wszCERTMANAGEPOLICY_POSTFIX wszCERTPOLICYMODULE_POSTFIX wszCERTMANAGE_SUFFIX
#define wszCLASS_CERTMANAGEEXITMODULE wszMICROSOFTCERTMODULE_PREFIX wszCERTMANAGEEXIT_POSTFIX
#define wszCLASS_CERTMANAGEPOLICYMODULE wszMICROSOFTCERTMODULE_PREFIX wszCERTMANAGEPOLICY_POSTFIX
#define wszCLASS_CERTEXIT wszMICROSOFTCERTMODULE_PREFIX wszCERTEXITMODULE_POSTFIX
#define wszCLASS_CERTPOLICY wszMICROSOFTCERTMODULE_PREFIX wszCERTPOLICYMODULE_POSTFIX
#define wszCAPOLICYFILE L"CAPolicy.inf"
#define wszINFSECTION_CDP L"CRLDistributionPoint"
#define wszINFSECTION_AIA L"AuthorityInformationAccess"
#define wszINFSECTION_EKU L"EnhancedKeyUsageExtension"
#define wszINFSECTION_CCDP L"CrossCertificateDistributionPointsExtension"
#define wszINFSECTION_CERTSERVER L"certsrv_server"
#define wszINFKEY_RENEWALKEYLENGTH L"RenewalKeyLength"
#define wszINFKEY_RENEWALVALIDITYPERIODSTRING L"RenewalValidityPeriod"
#define wszINFKEY_RENEWALVALIDITYPERIODCOUNT L"RenewalValidityPeriodUnits"
#define wszINFKEY_UTF8 L"UTF8"
#define wszINFKEY_CRLPERIODSTRING wszREGCRLPERIODSTRING
#define wszINFKEY_CRLPERIODCOUNT wszREGCRLPERIODCOUNT
#define wszINFKEY_CRLDELTAPERIODSTRING wszREGCRLDELTAPERIODSTRING
#define wszINFKEY_CRLDELTAPERIODCOUNT wszREGCRLDELTAPERIODCOUNT
#define wszINFKEY_LOADDEFAULTTEMPLATES L"LoadDefaultTemplates"
#define wszINFKEY_ENABLEKEYCOUNTING L"EnableKeyCounting"
#define wszINFKEY_FORCEUTF8 L"FORCEUTF8"
#define wszINFKEY_CRITICAL L"Critical"
#define wszINFKEY_EMPTY L"Empty"
#define wszINFKEY_CCDPSYNCDELTATIME L"SyncDeltaTime"
#define wszINFSECTION_CAPOLICY L"CAPolicy"
#define wszINFSECTION_POLICYSTATEMENT L"PolicyStatementExtension"
#define wszINFSECTION_APPLICATIONPOLICYSTATEMENT L"ApplicationPolicyStatementExtension"
#define wszINFKEY_POLICIES L"Policies"
#define wszINFKEY_OID L"OID"
#define wszINFKEY_NOTICE L"Notice"
#define wszINFSECTION_REQUESTATTRIBUTES L"RequestAttributes"
#define wszINFSECTION_NAMECONSTRAINTS L"NameConstraintsExtension"
#define wszINFKEY_INCLUDE L"Include"
#define wszINFKEY_EXCLUDE L"Exclude"
#define wszINFKEY_UPN L"UPN"
#define wszINFKEY_EMAIL L"EMail"
#define wszINFKEY_DNS L"DNS"
#define wszINFKEY_DIRECTORYNAME L"DirectoryName"
#define wszINFKEY_URL L"URL"
#define wszINFKEY_IPADDRESS L"IPAddress"
#define wszINFKEY_REGISTEREDID L"RegisteredId"
#define wszINFKEY_OTHERNAME L"OtherName"
#define wszINFSECTION_POLICYMAPPINGS L"PolicyMappingsExtension"
#define wszINFSECTION_APPLICATIONPOLICYMAPPINGS L"ApplicationPolicyMappingsExtension"
#define wszINFSECTION_POLICYCONSTRAINTS L"PolicyConstraintsExtension"
#define wszINFSECTION_APPLICATIONPOLICYCONSTRAINTS L"ApplicationPolicyConstraintsExtension"
#define wszINFKEY_REQUIREEXPLICITPOLICY L"RequireExplicitPolicy"
#define wszINFKEY_INHIBITPOLICYMAPPING L"InhibitPolicyMapping"
#define wszINFSECTION_BASICCONSTRAINTS L"BasicConstraintsExtension"
#define wszINFKEY_PATHLENGTH L"PathLength"
#define wszREGEXITSMTPKEY L"SMTP"
#define wszREGEXITSMTPTEMPLATES L"Templates"
#define wszREGEXITSMTPEVENTFILTER L"EventFilter"
#define wszREGEXITSMTPSERVER L"SMTPServer"
#define wszREGEXITSMTPAUTHENTICATE L"SMTPAuthenticate"
#define wszREGEXITDENIEDKEY L"Denied"
#define wszREGEXITISSUEDKEY L"Issued"
#define wszREGEXITPENDINGKEY L"Pending"
#define wszREGEXITREVOKEDKEY L"Revoked"
#define wszREGEXITCRLISSUEDKEY L"CRLIssued"
#define wszREGEXITSHUTDOWNKEY L"Shutdown"
#define wszREGEXITSTARTUPKEY L"Startup"
#define wszREGEXITSMTPFROM L"From"
#define wszREGEXITSMTPTO L"To"
#define wszREGEXITSMTPCC L"Cc"
#define wszREGEXITTITLEFORMAT L"TitleFormat"
#define wszREGEXITTITLEARG L"TitleArg"
#define wszREGEXITBODYFORMAT L"BodyFormat"
#define wszREGEXITBODYARG L"BodyArg"
#define wszREGEXITPROPNOTFOUND L"???"
#define wszPROPDISTINGUISHEDNAME TEXT("DistinguishedName")
#define wszPROPRAWNAME TEXT("RawName")
#define wszPROPCOUNTRY TEXT("Country")
#define wszPROPORGANIZATION TEXT("Organization")
#define wszPROPORGUNIT TEXT("OrgUnit")
#define wszPROPCOMMONNAME TEXT("CommonName")
#define wszPROPLOCALITY TEXT("Locality")
#define wszPROPSTATE TEXT("State")
#define wszPROPTITLE TEXT("Title")
#define wszPROPGIVENNAME TEXT("GivenName")
#define wszPROPINITIALS TEXT("Initials")
#define wszPROPSURNAME TEXT("SurName")
#define wszPROPDOMAINCOMPONENT TEXT("DomainComponent")
#define wszPROPEMAIL TEXT("EMail")
#define wszPROPSTREETADDRESS TEXT("StreetAddress")
#define wszPROPUNSTRUCTUREDNAME TEXT("UnstructuredName")
#define wszPROPUNSTRUCTUREDADDRESS TEXT("UnstructuredAddress")
#define wszPROPDEVICESERIALNUMBER TEXT("DeviceSerialNumber")
#define wszPROPSUBJECTDOT TEXT("Subject.")
#define wszPROPSUBJECTDISTINGUISHEDNAME wszPROPSUBJECTDOT wszPROPDISTINGUISHEDNAME
#define wszPROPSUBJECTRAWNAME wszPROPSUBJECTDOT wszPROPRAWNAME
#define wszPROPSUBJECTCOUNTRY wszPROPSUBJECTDOT wszPROPCOUNTRY
#define wszPROPSUBJECTORGANIZATION wszPROPSUBJECTDOT wszPROPORGANIZATION
#define wszPROPSUBJECTORGUNIT wszPROPSUBJECTDOT wszPROPORGUNIT
#define wszPROPSUBJECTCOMMONNAME wszPROPSUBJECTDOT wszPROPCOMMONNAME
#define wszPROPSUBJECTLOCALITY wszPROPSUBJECTDOT wszPROPLOCALITY
#define wszPROPSUBJECTSTATE wszPROPSUBJECTDOT wszPROPSTATE
#define wszPROPSUBJECTTITLE wszPROPSUBJECTDOT wszPROPTITLE
#define wszPROPSUBJECTGIVENNAME wszPROPSUBJECTDOT wszPROPGIVENNAME
#define wszPROPSUBJECTINITIALS wszPROPSUBJECTDOT wszPROPINITIALS
#define wszPROPSUBJECTSURNAME wszPROPSUBJECTDOT wszPROPSURNAME
#define wszPROPSUBJECTDOMAINCOMPONENT wszPROPSUBJECTDOT wszPROPDOMAINCOMPONENT
#define wszPROPSUBJECTEMAIL wszPROPSUBJECTDOT wszPROPEMAIL
#define wszPROPSUBJECTSTREETADDRESS wszPROPSUBJECTDOT wszPROPSTREETADDRESS
#define wszPROPSUBJECTUNSTRUCTUREDNAME wszPROPSUBJECTDOT wszPROPUNSTRUCTUREDNAME
#define wszPROPSUBJECTUNSTRUCTUREDADDRESS wszPROPSUBJECTDOT wszPROPUNSTRUCTUREDADDRESS
#define wszPROPSUBJECTDEVICESERIALNUMBER wszPROPSUBJECTDOT wszPROPDEVICESERIALNUMBER
#define wszPROPREQUESTDOT TEXT("Request.")
#define wszPROPREQUESTREQUESTID TEXT("RequestID")
#define wszPROPREQUESTRAWREQUEST TEXT("RawRequest")
#define wszPROPREQUESTRAWARCHIVEDKEY TEXT("RawArchivedKey")
#define wszPROPREQUESTARCHIVEDKEY TEXT("ArchivedKey")
#define wszPROPREQUESTKEYRECOVERYHASHES TEXT("KeyRecoveryHashes")
#define wszPROPREQUESTRAWOLDCERTIFICATE TEXT("RawOldCertificate")
#define wszPROPREQUESTATTRIBUTES TEXT("RequestAttributes")
#define wszPROPREQUESTTYPE TEXT("RequestType")
#define wszPROPREQUESTFLAGS TEXT("RequestFlags")
#define wszPROPREQUESTSTATUSCODE TEXT("StatusCode")
#define wszPROPREQUESTDISPOSITION TEXT("Disposition")
#define wszPROPREQUESTDISPOSITIONMESSAGE TEXT("DispositionMessage")
#define wszPROPREQUESTSUBMITTEDWHEN TEXT("SubmittedWhen")
#define wszPROPREQUESTRESOLVEDWHEN TEXT("ResolvedWhen")
#define wszPROPREQUESTREVOKEDWHEN TEXT("RevokedWhen")
#define wszPROPREQUESTREVOKEDEFFECTIVEWHEN TEXT("RevokedEffectiveWhen")
#define wszPROPREQUESTREVOKEDREASON TEXT("RevokedReason")
#define wszPROPREQUESTERNAME TEXT("RequesterName")
#define wszPROPCALLERNAME TEXT("CallerName")
#define wszPROPSIGNERPOLICIES TEXT("SignerPolicies")
#define wszPROPSIGNERAPPLICATIONPOLICIES TEXT("SignerApplicationPolicies")
#define wszPROPOFFICER TEXT("Officer")
#define wszPROPCHALLENGE TEXT("Challenge")
#define wszPROPEXPECTEDCHALLENGE TEXT("ExpectedChallenge")
#define wszPROPDISPOSITION TEXT("Disposition")
#define wszPROPDISPOSITIONDENY TEXT("Deny")
#define wszPROPDISPOSITIONPENDING TEXT("Pending")
#define wszPROPVALIDITYPERIODSTRING TEXT("ValidityPeriod")
#define wszPROPVALIDITYPERIODCOUNT TEXT("ValidityPeriodUnits")
#define wszPROPCERTTYPE TEXT("CertType")
#define wszPROPCERTTEMPLATE TEXT("CertificateTemplate")
#define wszPROPCERTUSAGE TEXT("CertificateUsage")
#define wszPROPREQUESTOSVERSION TEXT("RequestOSVersion")
#define wszPROPREQUESTCSPPROVIDER TEXT("RequestCSPProvider")
#define wszPROPEXITCERTFILE TEXT("CertFile")
#define wszPROPCLIENTBROWSERMACHINE TEXT("cbm")
#define wszPROPCERTCLIENTMACHINE TEXT("ccm")
#define wszPROPCLIENTDCDNS L"cdc"
#define wszPROPREQUESTMACHINEDNS L"rmd"
#define wszPROPSUBJECTALTNAME2 TEXT("san")
#define wszPROPDNS TEXT("dns")
#define wszPROPDN TEXT("dn")
#define wszPROPURL TEXT("url")
#define wszPROPIPADDRESS TEXT("ipaddress")
#define wszPROPGUID TEXT("guid")
#define wszPROPOID TEXT("oid")
#define wszPROPUPN TEXT("upn")
#define wszPROPUPN TEXT("upn")
#define szPROPASNTAG "{asn}"
#define wszPROPUTF8TAG TEXT("{utf8}")
#define wszPROPOCTETTAG TEXT("{octet}")
#define wszPROPASNTAG TEXT(szPROPASNTAG)
#define wszPROPCATYPE TEXT("CAType")
#define wszPROPSANITIZEDCANAME TEXT("SanitizedCAName")
#define wszPROPSANITIZEDSHORTNAME TEXT("SanitizedShortName")
#define wszPROPMACHINEDNSNAME TEXT("MachineDNSName")
#define wszPROPMODULEREGLOC TEXT("ModuleRegistryLocation")
#define wszPROPUSEDS TEXT("fUseDS")
#define wszPROPDELTACRLSDISABLED TEXT("fDeltaCRLsDisabled")
#define wszPROPSERVERUPGRADED TEXT("fServerUpgraded")
#define wszPROPCONFIGDN TEXT("ConfigDN")
#define wszPROPDOMAINDN TEXT("DomainDN")
#define wszPROPLOGLEVEL TEXT("LogLevel")
#define wszPROPSESSIONCOUNT TEXT("SessionCount")
#define wszPROPTEMPLATECHANGESEQUENCENUMBER TEXT("TemplateChangeSequenceNumber")
#define wszLOCALIZEDTIMEPERIODUNITS TEXT("LocalizedTimePeriodUnits")
#define wszPROPREQUESTERCAACCESS TEXT("RequesterCAAccess")
#define wszPROPUSERDN TEXT("UserDN")
#define wszPROPKEYARCHIVED TEXT("KeyArchived")
#define wszPROPCERTCOUNT TEXT("CertCount")
#define wszPROPRAWCACERTIFICATE TEXT("RawCACertificate")
#define wszPROPCERTSTATE TEXT("CertState")
#define wszPROPCERTSUFFIX TEXT("CertSuffix")
#define wszPROPRAWCRL TEXT("RawCRL")
#define wszPROPRAWDELTACRL TEXT("RawDeltaCRL")
#define wszPROPCRLINDEX TEXT("CRLIndex")
#define wszPROPCRLSTATE TEXT("CRLState")
#define wszPROPCRLSUFFIX TEXT("CRLSuffix")
#define wszPROPEVENTLOGTERSE TEXT("EventLogTerse")
#define wszPROPEVENTLOGERROR TEXT("EventLogError")
#define wszPROPEVENTLOGWARNING TEXT("EventLogWarning")
#define wszPROPEVENTLOGVERBOSE TEXT("EventLogVerbose")
#define wszPROPEVENTLOGEXHAUSTIVE TEXT("EventLogExhaustive")
#define wszPROPDCNAME TEXT("DCName")
#define wszPROPSEAUDITID TEXT("SEAuditId")
#define wszPROPSEAUDITFILTER TEXT("SEAuditFilter")
#define wszPROPCERTIFICATEREQUESTID TEXT("RequestID")
#define wszPROPRAWCERTIFICATE TEXT("RawCertificate")
#define wszPROPCERTIFICATEHASH TEXT("CertificateHash")
#define wszPROPCERTIFICATETEMPLATE TEXT("CertificateTemplate")
#define wszPROPCERTIFICATEENROLLMENTFLAGS TEXT("EnrollmentFlags")
#define wszPROPCERTIFICATEGENERALFLAGS TEXT("GeneralFlags")
#define wszPROPCERTIFICATESERIALNUMBER TEXT("SerialNumber")
#define wszPROPCERTIFICATENOTBEFOREDATE TEXT("NotBefore")
#define wszPROPCERTIFICATENOTAFTERDATE TEXT("NotAfter")
#define wszPROPCERTIFICATESUBJECTKEYIDENTIFIER TEXT("SubjectKeyIdentifier")
#define wszPROPCERTIFICATERAWPUBLICKEY TEXT("RawPublicKey")
#define wszPROPCERTIFICATEPUBLICKEYLENGTH TEXT("PublicKeyLength")
#define wszPROPCERTIFICATEPUBLICKEYALGORITHM TEXT("PublicKeyAlgorithm")
#define wszPROPCERTIFICATERAWPUBLICKEYALGORITHMPARAMETERS TEXT("RawPublicKeyAlgorithmParameters")
#define wszPROPCERTIFICATEUPN TEXT("UPN")
#define wszPROPCERTIFICATETYPE TEXT("CertificateType")
#define wszPROPCERTIFICATERAWSMIMECAPABILITIES TEXT("RawSMIMECapabilities")
#define wszPROPNAMETYPE TEXT("NameType")

#define EXTENSION_CRITICAL_FLAG 0x00000001
#define EXTENSION_DISABLE_FLAG 0x00000002
#define EXTENSION_POLICY_MASK 0x0000ffff

#define EXTENSION_ORIGIN_REQUEST 0x00010000
#define EXTENSION_ORIGIN_POLICY 0x00020000
#define EXTENSION_ORIGIN_ADMIN 0x00030000
#define EXTENSION_ORIGIN_SERVER 0x00040000
#define EXTENSION_ORIGIN_RENEWALCERT 0x00050000
#define EXTENSION_ORIGIN_IMPORTEDCERT 0x00060000
#define EXTENSION_ORIGIN_PKCS7 0x00070000
#define EXTENSION_ORIGIN_CMC 0x00080000
#define EXTENSION_ORIGIN_CACERT 0x00090000
#define EXTENSION_ORIGIN_MASK 0x000f0000

#define wszPROPEXTREQUESTID TEXT("ExtensionRequestId")
#define wszPROPEXTNAME TEXT("ExtensionName")
#define wszPROPEXTFLAGS TEXT("ExtensionFlags")
#define wszPROPEXTRAWVALUE TEXT("ExtensionRawValue")
#define wszPROPATTRIBREQUESTID TEXT("AttributeRequestId")
#define wszPROPATTRIBNAME TEXT("AttributeName")
#define wszPROPATTRIBVALUE TEXT("AttributeValue")
#define wszPROPCRLROWID TEXT("CRLRowId")
#define wszPROPCRLNUMBER TEXT("CRLNumber")
#define wszPROPCRLMINBASE TEXT("CRLMinBase")
#define wszPROPCRLNAMEID TEXT("CRLNameId")
#define wszPROPCRLCOUNT TEXT("CRLCount")
#define wszPROPCRLTHISUPDATE TEXT("CRLThisUpdate")
#define wszPROPCRLNEXTUPDATE TEXT("CRLNextUpdate")
#define wszPROPCRLTHISPUBLISH TEXT("CRLThisPublish")
#define wszPROPCRLNEXTPUBLISH TEXT("CRLNextPublish")
#define wszPROPCRLEFFECTIVE TEXT("CRLEffective")
#define wszPROPCRLPROPAGATIONCOMPLETE TEXT("CRLPropagationComplete")
#define wszPROPCRLLASTPUBLISHED TEXT("CRLLastPublished")
#define wszPROPCRLPUBLISHATTEMPTS TEXT("CRLPublishAttempts")
#define wszPROPCRLPUBLISHFLAGS TEXT("CRLPublishFlags")
#define wszPROPCRLPUBLISHSTATUSCODE TEXT("CRLPublishStatusCode")
#define wszPROPCRLPUBLISHERROR TEXT("CRLPublishError")
#define wszPROPCRLRAWCRL TEXT("CRLRawCRL")

#define CPF_BASE 0x00000001
#define CPF_DELTA 0x00000002
#define CPF_COMPLETE 0x00000004
#define CPF_SHADOW 0x00000008
#define CPF_CASTORE_ERROR 0x00000010
#define CPF_BADURL_ERROR 0x00000020
#define CPF_MANUAL 0x00000040
#define CPF_SIGNATURE_ERROR 0x00000080
#define CPF_LDAP_ERROR 0x00000100
#define CPF_FILE_ERROR 0x00000200
#define CPF_FTP_ERROR 0x00000400
#define CPF_HTTP_ERROR 0x00000800

#define PROPTYPE_LONG 0x00000001
#define PROPTYPE_DATE 0x00000002
#define PROPTYPE_BINARY 0x00000003
#define PROPTYPE_STRING 0x00000004
#define PROPTYPE_MASK 0x000000ff
#define PROPCALLER_SERVER 0x00000100
#define PROPCALLER_POLICY 0x00000200
#define PROPCALLER_EXIT 0x00000300
#define PROPCALLER_ADMIN 0x00000400
#define PROPCALLER_REQUEST 0x00000500
#define PROPCALLER_MASK 0x00000f00
#define PROPFLAGS_INDEXED 0x00010000

#define CR_FLG_FORCETELETEX 0x00000001
#define CR_FLG_RENEWAL 0x00000002
#define CR_FLG_FORCEUTF8 0x00000004
#define CR_FLG_CAXCHGCERT 0x00000008
#define CR_FLG_ENROLLONBEHALFOF 0x00000010
#define CR_FLG_SUBJECTUNMODIFIED 0x00000020
#define CR_FLG_VALIDENCRYPTEDKEYHASH 0x00000040
#define CR_FLG_CACROSSCERT 0x00000080
#define CR_FLG_ENFORCEUTF8 0x00000100
#define CR_FLG_PUBLISHERROR 0x80000000

#define DB_DISP_ACTIVE 8
#define DB_DISP_PENDING 9
#define DB_DISP_QUEUE_MAX 9
#define DB_DISP_FOREIGN 12
#define DB_DISP_CA_CERT 15
#define DB_DISP_CA_CERT_CHAIN 16
#define DB_DISP_KRA_CERT 17
#define DB_DISP_LOG_MIN 20
#define DB_DISP_ISSUED 20
#define DB_DISP_REVOKED 21
#define DB_DISP_LOG_FAILED_MIN 30
#define DB_DISP_ERROR 30
#define DB_DISP_DENIED 31

#define VR_PENDING 0
#define VR_INSTANT_OK 1
#define VR_INSTANT_BAD 2

#define wszCERT_TYPE L"RequestType"
#define wszCERT_TYPE_CLIENT L"Client"
#define wszCERT_TYPE_SERVER L"Server"
#define wszCERT_TYPE_CODESIGN L"CodeSign"
#define wszCERT_TYPE_CUSTOMER L"SetCustomer"
#define wszCERT_TYPE_MERCHANT L"SetMerchant"
#define wszCERT_TYPE_PAYMENT L"SetPayment"
#define wszCERT_VERSION L"Version"
#define wszCERT_VERSION_1 L"1"
#define wszCERT_VERSION_2 L"2"
#define wszCERT_VERSION_3 L"3"

#endif