Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

183 lines
6.2 KiB

VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "Policy"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
Private Const szOID_TEST1 As String = "0.1.2.3.4.5.6.0"
Private Const szOID_TEST2 As String = "0.1.2.3.4.5.6.1"
Private Const szOID_TEST3 As String = "0.1.2.3.4.5.6.2"
Public Function Initialize( _
strConfig As String)
End Function
Public Function ShutDown()
End Function
Public Function GetDescription() As String
GetDescription = szDESCRIPTION
End Function
Public Function VerifyRequest( _
strConfig As String, _
Context As Long, _
bNewRequest As Long, _
Flags As Long) As Long
Dim Str As String
Dim PolicyForm As policyvb
Dim CertServer As CCertServerPolicy
Dim StringArray As CCertEncodeStringArray
Dim Extension As String
Dim NotBefore As Date
Dim NotAfter As Date
Set CertServer = New CCertServerPolicy
Set StringArray = New CCertEncodeStringArray
Set PolicyForm = New policyvb
PolicyForm.Caption = szNAME
CertServer.SetContext Context
'Collect user information from the request:
On Error Resume Next
Str = ""
Str = CertServer.GetRequestProperty(wszPROPSUBJECTDOT & wszPROPCOMMONNAME, PROPTYPE_STRING)
On Error GoTo 0
If (Len(Str) <> 0) Then
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPCOMMONNAME, PROPTYPE_STRING, Str
End If
PolicyForm.NameText.Text = Str
On Error Resume Next
PolicyForm.VersionText.Text = ""
Str = ""
Str = CertServer.GetRequestAttribute(wszCERT_VERSION)
PolicyForm.VersionText.Text = Str
On Error Resume Next
PolicyForm.RequestTypeText.Text = ""
Str = ""
Str = CertServer.GetRequestAttribute(wszCERT_TYPE)
PolicyForm.RequestTypeText.Text = Str
Str = ""
Str = CertServer.GetCertificateProperty(wszPROPSUBJECTDOT & wszPROPORGANIZATION, PROPTYPE_STRING)
On Error GoTo 0
If (Len(Str) <> 0) Then
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPORGANIZATION, PROPTYPE_STRING, Str
End If
PolicyForm.OrgText.Text = Str
On Error Resume Next
Str = ""
Str = CertServer.GetCertificateProperty(wszPROPSUBJECTDOT & wszPROPORGUNIT, PROPTYPE_STRING)
On Error GoTo 0
If (Len(Str) <> 0) Then
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPORGUNIT, PROPTYPE_STRING, Str
End If
PolicyForm.OrgUnitText.Text = Str
Str = "123 Main Street"
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPSTREETADDRESS, PROPTYPE_STRING, Str
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPSTREETADDRESS, PROPTYPE_STRING, Null
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPTITLE, PROPTYPE_STRING, Null
On Error Resume Next
Str = ""
Str = CertServer.GetCertificateProperty(wszPROPSUBJECTDOT & wszPROPLOCALITY, PROPTYPE_STRING)
On Error GoTo 0
If (Len(Str) <> 0) Then
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPLOCALITY, PROPTYPE_STRING, Str
End If
PolicyForm.LocalityText.Text = Str
On Error Resume Next
Str = ""
Str = CertServer.GetCertificateProperty(wszPROPSUBJECTDOT & wszPROPSTATE, PROPTYPE_STRING)
On Error GoTo 0
If (Len(Str) <> 0) Then
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPSTATE, PROPTYPE_STRING, Str
End If
On Error Resume Next
Str = ""
Str = CertServer.GetCertificateProperty(wszPROPSUBJECTDOT & wszPROPCOUNTRY, PROPTYPE_STRING)
On Error GoTo 0
If (Len(Str) <> 0) Then
CertServer.SetCertificateProperty wszPROPSUBJECTDOT & wszPROPCOUNTRY, PROPTYPE_STRING, Str
End If
PolicyForm.CountryText.Text = Str
NotBefore = CertServer.GetCertificateProperty(wszPROPCERTIFICATENOTBEFOREDATE, PROPTYPE_DATE)
PolicyForm.NotBeforeText.Text = CStr(NotBefore)
NotAfter = CertServer.GetCertificateProperty(wszPROPCERTIFICATENOTAFTERDATE, PROPTYPE_DATE)
PolicyForm.NotAfterText.Text = CStr(NotAfter)
StringArray.Reset 3, CERT_RDN_IA5_STRING
StringArray.SetValue 0, "VB Test String 1"
StringArray.SetValue 1, "VB Test String 2"
StringArray.SetValue 2, "VB Test String 3"
Extension = StringArray.Encode
CertServer.SetCertificateExtension _
szOID_TEST1, _
PROPTYPE_BINARY, _
EXTENSION_DISABLE_FLAG, _
Extension
CertServer.SetCertificateExtension _
szOID_TEST2, _
PROPTYPE_STRING, _
EXTENSION_CRITICAL_FLAG, _
"http://UrlTest.htm"
'If instructed to do so, grant/deny certificates after 3 second timer expires
If (Flags) Then PolicyForm.DisplayTimer.Enabled = True
If (StrComp("US", PolicyForm.CountryText.Text, 1) <> 0) Then
PolicyForm.StatusText.Text = "Request denied; Country/region must be US!"
PolicyForm.StatusText.Font.Bold = True
PolicyForm.CountryText.Font.Strikethrough = True
PolicyForm.cmdIssue.Enabled = False
PolicyForm.cmdPending.Enabled = False
Else
PolicyForm.StatusText.Text = "Request is acceptable"
End If
'Display the user information and collect the response:
PolicyForm.Show 1
'assume VR_INSTANT_BAD:
VerifyRequest = VR_INSTANT_BAD
'if certificate was accepted or the U/I timed out, and it is acceptable,
'return VR_INSTANT_OK:
If (PolicyForm.cmdIssue.Enabled) Then
If (StrComp("Deny", PolicyForm.Disposition.Text) <> 0) Then
If (StrComp("Pending", PolicyForm.Disposition.Text) = 0) Then
VerifyRequest = VR_PENDING
Else
' "TimeOut" or "Issue":
VerifyRequest = VR_INSTANT_OK
End If
End If
End If
Set PolicyForm = Nothing
Set CertServer = Nothing
Set StringArray = Nothing
End Function