aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorjmpoep <OriginalEntryPoint@qq.com>2023-12-07 16:51:07 +0800
committerjmpoep <OriginalEntryPoint@qq.com>2023-12-07 16:51:07 +0800
commit28008a746a31abb7909dd86cb0cd413ac8943b0b (patch)
treea30b74b8cad548048c3c1551d652828ab76fa9bd /utils
downloadvmprotect-3.5.1-28008a746a31abb7909dd86cb0cd413ac8943b0b.tar
vmprotect-3.5.1-28008a746a31abb7909dd86cb0cd413ac8943b0b.tar.gz
vmprotect-3.5.1-28008a746a31abb7909dd86cb0cd413ac8943b0b.tar.bz2
vmprotect-3.5.1-28008a746a31abb7909dd86cb0cd413ac8943b0b.zip
first commitHEADmaster
Diffstat (limited to 'utils')
-rw-r--r--utils/arm-32bit.py121
-rw-r--r--utils/arm-thumb.py122
-rw-r--r--utils/intel-x86.py283
-rw-r--r--utils/ipn_sqlclr/LogItem.cs11
-rw-r--r--utils/ipn_sqlclr/Taggant.cs274
-rw-r--r--utils/ipn_sqlclr/TaggantWebService.cs159
-rw-r--r--utils/ipn_sqlclr/VmpLicenseKey.cs36
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/BulkUpdateCertificateStatusResponseType1.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.wsdl94
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.xsd187
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/Reference.cs1639
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/Reference.map7
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/RequestKeyRecoveryResponseMessageType1.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/SearchCertificateResponseType1.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/certificateManagementService/UpdateCertificateStatusResponseType1.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.wsdl37
-rw-r--r--utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.xsd388
-rw-r--r--utils/ipn_sqlclr/Web References/policyService/Reference.cs2512
-rw-r--r--utils/ipn_sqlclr/Web References/policyService/Reference.map7
-rw-r--r--utils/ipn_sqlclr/Web References/policyService/getPoliciesResponse.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/signDataService/PrepSignDataResponse.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/signDataService/Reference.cs793
-rw-r--r--utils/ipn_sqlclr/Web References/signDataService/Reference.map7
-rw-r--r--utils/ipn_sqlclr/Web References/signDataService/SignerAPI.wsdl75
-rw-r--r--utils/ipn_sqlclr/Web References/signDataService/SignerAPI.xsd127
-rw-r--r--utils/ipn_sqlclr/Web References/signDataService/ToBeSignedClientPKCS7BlobType.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/signDataService/VerifySignedDataResponse.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/userManagementService/Reference.map7
-rw-r--r--utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.wsdl126
-rw-r--r--utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.xsd198
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.cs1045
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.map16
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseCollectionType.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseType.datasource10
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/VS_WSTEP.xsd83
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/certificateService.wsdl38
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-secext-1.xsd187
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-utility-1.xsd90
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-addr.xsd101
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-authorization.xsd30
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-policy.xsd64
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.wsdl54
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.xsd359
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xml.xsd270
-rw-r--r--utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xmldsig-core-schema.xsd213
-rw-r--r--utils/ipn_sqlclr/XmlReaderSpy.cs280
-rw-r--r--utils/ipn_sqlclr/ipn_sqlclr.sqlproj130
-rw-r--r--utils/ipn_sqlclr/keygen.cs212
-rw-r--r--utils/ipn_tool/App.config6
-rw-r--r--utils/ipn_tool/CheckSsvTest.cs170
-rw-r--r--utils/ipn_tool/Program.cs301
-rw-r--r--utils/ipn_tool/Properties/AssemblyInfo.cs35
-rw-r--r--utils/ipn_tool/Watermarks.cs111
-rw-r--r--utils/ipn_tool/ipn_tool.csproj63
-rw-r--r--utils/ipn_tool/ipn_tool.sln22
-rw-r--r--utils/x86disasm/Sconstruct-x86disasm93
-rw-r--r--utils/x86disasm/disasm.cc295
-rw-r--r--utils/x86disasm/disasm.h15
-rw-r--r--utils/x86disasm/main.cc24
-rw-r--r--utils/x86disasm/make-x86disasm.py59
-rw-r--r--utils/x86disasm/x86disasm.sln26
-rw-r--r--utils/x86disasm/x86disasm.vcxproj169
-rw-r--r--utils/x86disasm/x86disasm.vcxproj.filters75
63 files changed, 11946 insertions, 0 deletions
diff --git a/utils/arm-32bit.py b/utils/arm-32bit.py
new file mode 100644
index 0000000..3be04be
--- /dev/null
+++ b/utils/arm-32bit.py
@@ -0,0 +1,121 @@
+from idc import *
+import sys
+import binascii
+from sets import Set
+import sys
+import re
+
+p_spaces = re.compile(r'(\s+)')
+
+# Apply fixes to IDA opcode
+def ida_disasm_fix(insn_binary, insn_str):
+ # Remove extra spaces and tabs. Replace tabs with spaces
+ insn_str = p_spaces.sub(r' ', insn_str)
+ return insn_str
+
+def get_insn(ea, sz):
+ s = ''
+ for i in range(0, sz):
+ s += chr(Byte(ea + i))
+ return s
+
+def insn_write(f, insn_binary, insn_str, header):
+ assert len(insn_binary) != 0
+ s = ''
+ sz = len(insn_binary)
+ if header:
+ s += '{%d, "' % sz
+ for i in range(0, sz):
+ s += '\\x%02x' % ord(insn_binary[i])
+ s += '", "' + insn_str + '"},\n'
+ else:
+ s += binascii.hexlify(insn_binary)
+ s += (' %s\n' % insn_str)
+ f.write(s)
+ f.flush()
+
+# Normalize operand (replace numeric operands with -1)
+def normalize_operand(op_type, op_str):
+ if op_type in [o_mem, o_displ, o_imm, o_near, o_far]:
+ return "-1"
+ else:
+ return op_str
+
+def is_unique(set, ea):
+ ot1 = GetOpType(ea, 0)
+ ot2 = GetOpType(ea, 1)
+ ot3 = GetOpType(ea, 2)
+ v1 = GetOpnd(ea, 0)
+ v2 = GetOpnd(ea, 1)
+ v3 = GetOpnd(ea, 2)
+ mnem = GetMnem(ea)
+ hashstr = "%s|%s|%s|%s" % (mnem,
+ normalize_operand(ot1, v1),
+ normalize_operand(ot2, v2),
+ normalize_operand(ot3, v3))
+ if hashstr in set:
+ return False
+ else:
+ set.add(hashstr)
+ return True
+
+def iteration(f, set, ea, n, data, prev_mnem):
+ PatchDword(ea, data)
+ sz = MakeCode(ea)
+ if sz == 0:
+ return (prev_mnem, n)
+ str = GetDisasm(ea)
+ mnem = GetMnem(ea)
+# if prev_mnem != mnem:
+ # Opcode changed, purge cache set
+# set.clear()
+ prev_mnem = mnem
+ # Now we got disasm
+ # Remove comments
+ pos = str.find(';')
+ if pos != -1:
+ str = str[0:pos]
+ # Remove spaces at start and end
+ str = str.strip(' ')
+ if str == '':
+ return (prev_mnem, n)
+ if not is_unique(set, ea):
+ return (prev_mnem, n)
+ insn_binary = get_insn(ea, sz)
+ # Add unique disasms to file
+ str = ida_disasm_fix(insn_binary, str)
+ insn_write(f, insn_binary, str, False)
+ n += 1
+ if n % 10000 == 0:
+ print '%d opcodes processed' % n
+ return (prev_mnem, n)
+
+def generate_arm32(filename):
+ set = Set()
+ ea = GetEntryPoint(GetEntryOrdinal(0))
+ for i in range(0, 20):
+ PatchByte(ea + i, i)
+ f = open(filename, 'wt')
+ n = 0
+ data = 0L
+ mnem = ''
+ # Do not enumerate highest 4 bits.
+ # Use only 0b1110 (AL) and 0b1111 (extended opcode encoding)
+ while data <= 0x1fffffff:
+ data2 = (data & 0xfffffff)
+ if (data & 0x10000000) == 0:
+ data2 |= 0xe0000000
+ else:
+ data2 |= 0xf0000000
+ (mnem, n) = iteration(f, set, ea, n, data2, mnem)
+ data += 1
+ f.close()
+ print 'Finished'
+
+def main():
+ generate_arm32("./arm32-opcodes.txt")
+
+if __name__ == "__main__":
+ main()
+
+
diff --git a/utils/arm-thumb.py b/utils/arm-thumb.py
new file mode 100644
index 0000000..fed9386
--- /dev/null
+++ b/utils/arm-thumb.py
@@ -0,0 +1,122 @@
+from idc import *
+import sys
+import binascii
+from sets import Set
+import sys
+import re
+
+p_spaces = re.compile(r'(\s+)')
+
+# Apply fixes to IDA opcode
+def ida_disasm_fix(insn_binary, insn_str):
+ # Remove extra spaces and tabs. Replace tabs with spaces
+ insn_str = p_spaces.sub(r' ', insn_str)
+ return insn_str
+
+def get_insn(ea, sz):
+ s = ''
+ for i in range(0, sz):
+ s += chr(Byte(ea + i))
+ return s
+
+def insn_write(f, insn_binary, insn_str, header):
+ assert len(insn_binary) != 0
+ s = ''
+ sz = len(insn_binary)
+ if header:
+ s += '{%d, "' % sz
+ for i in range(0, sz):
+ s += '\\x%02x' % ord(insn_binary[i])
+ s += '", "' + insn_str + '"},\n'
+ else:
+ s += binascii.hexlify(insn_binary)
+ s += (' %s\n' % insn_str)
+ f.write(s)
+ f.flush()
+
+# Normalize operand (replace numeric operands with -1)
+def normalize_operand(op_type, op_str):
+ if op_type in [o_mem, o_displ, o_imm, o_near, o_far]:
+ return "-1"
+ else:
+ return op_str
+
+def is_unique(set, ea):
+ ot1 = GetOpType(ea, 0)
+ ot2 = GetOpType(ea, 1)
+ ot3 = GetOpType(ea, 2)
+ v1 = GetOpnd(ea, 0)
+ v2 = GetOpnd(ea, 1)
+ v3 = GetOpnd(ea, 2)
+ mnem = GetMnem(ea)
+ hashstr = "%s|%s|%s|%s" % (mnem,
+ normalize_operand(ot1, v1),
+ normalize_operand(ot2, v2),
+ normalize_operand(ot3, v3))
+ if hashstr in set:
+ return False
+ else:
+ set.add(hashstr)
+ return True
+
+def iteration(f, set, ea, n, data, prev_mnem):
+ PatchDword(ea, data)
+ sz = MakeCode(ea)
+ if sz == 0:
+ return (prev_mnem, n)
+ str = GetDisasm(ea)
+ mnem = GetMnem(ea)
+ if prev_mnem != mnem:
+ # Opcode changed, purge cache set
+ set.clear()
+ prev_mnem = mnem
+ # Now we got disasm
+ # Remove comments
+ pos = str.find(';')
+ if pos != -1:
+ str = str[0:pos]
+ # Remove spaces at start and end
+ str = str.strip(' ')
+ if str == '':
+ return (prev_mnem, n)
+ if not is_unique(set, ea):
+ return (prev_mnem, n)
+ insn_binary = get_insn(ea, sz)
+ # Add unique disasms to file
+ str = ida_disasm_fix(insn_binary, str)
+ insn_write(f, insn_binary, str, False)
+ n += 1
+ if n % 1000 == 0:
+ print '%d opcodes processed' % n
+ return (prev_mnem, n)
+
+def generate_arm_thumb(filename):
+ set = Set()
+ ea = GetEntryPoint(GetEntryOrdinal(0))
+ for i in range(0, 20):
+ PatchByte(ea + i, i)
+ f = open(filename, 'wt')
+ data = 0L
+ mnem = ''
+ data = 0
+ n = 0
+ while data <= 0xffff:
+ prefix = data >> (32 - 5)
+ if prefix in [0x1d, 0x1e, 0x1f]:
+ data2 = 0
+ while data2 <= 0xffff:
+ (mnem, n) = iteration(f, set, ea, n, data | (data2 << 16), mnem)
+ data2 += 1
+ else:
+ mnem = iteration(f, set, ea, n, data | 0xffff0000, mnem)
+ data += 1
+ f.close()
+ print 'Finished'
+
+def main():
+ generate_arm_thumb("./thumb-opcodes.txt")
+
+if __name__ == "__main__":
+ main()
+
+
diff --git a/utils/intel-x86.py b/utils/intel-x86.py
new file mode 100644
index 0000000..a9a3a66
--- /dev/null
+++ b/utils/intel-x86.py
@@ -0,0 +1,283 @@
+from idc import *
+import sys
+import binascii
+from sets import Set
+import sys
+import re
+
+def replace_farptr(matchobj):
+ s1 = matchobj.group()
+ return s1.replace('far ptr ', '')
+
+def replace_ptr(matchobj):
+ s1 = matchobj.group()
+ pos = s1.rfind(' ')
+ assert pos != -1
+ return s1[0:pos] + ' [' + s1[pos+1:] + ']'
+
+def replace_ptr2(matchobj):
+ s1 = matchobj.group()
+ pos = s1.rfind(':')
+ assert pos != -1
+ return s1[0:pos+1] + '[' + s1[pos+1:] + ']'
+
+def replace_hex(matchobj):
+ nstr = matchobj.group()
+ assert not (nstr in ['ah', 'bh', 'ch', 'dh'])
+ nstr = nstr.replace('h', '')
+ return nstr
+
+def repl(matchobj):
+ s1 = matchobj.group()
+ s2 = s1.replace(' ', '')
+ pos1 = s2.find('[')
+ pos2 = s2.find(']')
+ if pos1 == -1 or pos2 == -1:
+ return s1
+ nstr = s2[0:pos1]
+ nstr = nstr.replace('h', '')
+ num = int(nstr, 16)
+ hex = "%08x" % num
+ s3 = s2[pos1:pos2] + '+' + hex + ']'
+ return s3
+
+p_seg = re.compile(r'(es:|ds:|cs:|fs:|gs:|ss:)')
+p_seg_abs = re.compile(r'(es:|ds:|cs:|fs:|gs:|ss:)[0-9][0-9a-fA-F]*h')
+p_farptr = re.compile(r'far\sptr\s[0-9a-fA-F]+:[0-9a-fA-F]+')
+p_ptr = re.compile(r'(byte|word|dword|qword|oword|fword)\sptr\s[0-9][0-9a-fA-F]*')
+p_ptr2 = re.compile(r'(byte|word|dword|qword|oword|fword)\sptr\s(es:|ds:|cs:|fs:|gs:|ss:)[0-9][0-9a-fA-F]*')
+p_hex = re.compile(r'([0-9][0-9a-fA-F]*)(h|H)')
+p_spaces = re.compile(r'(\s+)')
+p_repl = re.compile(r'[0-9][0-9a-fA-F]*(h|H)\s*\[[^\]]+\]')
+
+replacements = [('retn', 'ret'), ('retnw', 'ret'), ('iretw', 'iret'), ('retfw', 'retf'),
+ ('pushfw', 'pushf'), ('popfw', 'popf'), ('pushaw', 'pusha'),
+ ('popaw', 'popa'), ('enterw', 'enter'), ('enterw', 'enter'),
+ ('cmova', 'cmovnbe'), ('cmovg', 'cmovnle'), ('cmovge', 'cmovnl'),
+ ('leavew', 'leave'),
+ ('int 3', 'int 03')]
+
+def is_invalid_insn(insn_binary):
+ k = 0
+ while True:
+ b = ord(insn_binary[k])
+ if not(b == 0x26 or b == 0x2e or b == 0x36 or b == 0x3e or b == 0x64 or b == 0x65):
+ break
+ k += 1
+ if k >= len(insn_binary) - 1:
+ return True
+ b = ord(insn_binary[k])
+ b2 = ord(insn_binary[k + 1])
+ if b == 0x0f and (b2 == 0x19 or b2 == 0x24 or b2 == 0x26 or b2 == 0xa6 or b2 == 0xa7):
+ return True
+ if b == 0xcd and b2 == 0x20: #vxdcall
+ return True
+ if b == 0xd6: #setalc
+ return True
+ if b == 0x0f and b2 == 0x0d:
+ if k > len(insn_binary) - 2:
+ return True
+ if ord(insn_binary[k + 2]) == 0x13:
+ return True
+ return False
+
+# Miscellaneous replacements
+def misc_replacements(opcode_str):
+ for r_from, r_to in replacements:
+ if opcode_str == r_from:
+ opcode_str = r_to
+ return opcode_str
+
+def remove_ds_prefix(insn_binary, rest_str):
+ pos = insn_binary.find('\x3e')
+ # No prefix - remove ds:
+ if -1 == pos:
+ return -1 != rest_str.find('ds:')
+ if pos == 0:
+ return True
+ ds_prefix = True
+ for i in range(0, pos):
+ if not (ord(insn_binary[i]) in [0x66, 0x67, 0xF0, 0xF2, 0xF3]):
+ ds_prefix = False
+ break
+ if ds_prefix:
+ return True
+ else:
+ # No prefix - remove ds
+ return -1 != rest_str.find('ds:')
+
+def replace_ds_seg(matchobj):
+ nstr = matchobj.group()
+ if nstr[0:2].lower() == 'ds':
+ return '[' + nstr[3:] + ']'
+ else:
+ return nstr[0:3] + '[' + nstr[3:] + ']'
+
+def replace_seg(matchobj):
+ nstr = matchobj.group()
+ if nstr[0:2].lower() == 'ds':
+ return '[' + nstr[3:] + ']'
+ else:
+ return nstr[0:3] + '[' + nstr[3:] + ']'
+
+def replace_lea_seg(matchobj):
+ nstr = matchobj.group()
+ return '[' + nstr[3:] + ']'
+
+def replace_segments(insn_binary, opcode_str, rest_str):
+ # Remove segments from LEA (for absolute and relative offsets)
+ if opcode_str.lower() == 'lea':
+ tmp = p_seg_abs.sub(replace_lea_seg, rest_str)
+ if tmp == rest_str:
+ return p_seg.sub('', rest_str)
+ else:
+ return tmp
+ # Now search for ?s:01020304, replace to ?s:[01020304] except of ds: -> [01020304]
+ if remove_ds_prefix(insn_binary, rest_str):
+ return p_seg_abs.sub(replace_ds_seg, rest_str)
+ else:
+ return p_seg_abs.sub(replace_seg, rest_str)
+
+# Apply fixes to IDA opcode
+def ida_disasm_fix(insn_binary, insn_str):
+ # Remove extra spaces and tabs. Replace tabs with spaces
+ insn_str = p_spaces.sub(r' ', insn_str)
+ # Avoid opcode changing
+ pos = insn_str.find(' ')
+ if pos == -1:
+ return misc_replacements(insn_str) # This is opcode like 'cli'
+ opcode_str = insn_str[0:pos]
+ rest_str = insn_str[pos+1:]
+ # remove 'small'
+ rest_str = rest_str.replace('small ', '')
+ # Transform '6050403[eax], al' to '[eax+6050403], al'
+ rest_str = p_repl.sub(repl, rest_str)
+ rest_str = replace_segments(insn_binary, opcode_str, rest_str)
+ # Remove 'ds:' if no 3Eh prefix found
+ if remove_ds_prefix(insn_binary, rest_str):
+ rest_str = rest_str.replace('ds:', '')
+ # Replace 'xmmword' to 'oword'
+ rest_str = rest_str.replace('xmmword', 'oword')
+ # Remove 'h' after hex constants
+ rest_str = p_hex.sub(replace_hex, rest_str)
+ # Transform 'ptr 012345' -> 'ptr [012345]'
+ rest_str = p_ptr.sub(replace_ptr, rest_str)
+ rest_str = p_ptr2.sub(replace_ptr2, rest_str)
+ # Transform 'call far ptr 1817:16151413' -> 'call 1817:16151413'
+ rest_str = p_farptr.sub(replace_farptr, rest_str)
+ opcode_str = misc_replacements(opcode_str)
+ return opcode_str + ' ' + rest_str
+
+def get_insn(ea, len):
+ s = ''
+ for i in range(0, len):
+ s += chr(Byte(ea + i))
+ return s
+
+def insn_write(f, insn_binary, insn_str, header):
+ assert len(insn_binary) != 0
+ s = ''
+ sz = len(insn_binary)
+ if header:
+ s += '{%d, "' % sz
+ for i in range(0, sz):
+ s += '\\x%02x' % ord(insn_binary[i])
+ s += '", "' + insn_str + '"},\n'
+ else:
+ s += binascii.hexlify(insn_binary)
+ s += (' %s\n' % insn_str)
+ f.write(s)
+ f.flush()
+
+# Normalize operand (replace numeric operands with -1)
+def normalize_operand(op_type, op_str):
+ if op_type in [o_mem, o_displ, o_imm, o_near, o_far]:
+ return "-1"
+ else:
+ return op_str
+
+def is_unique(set, ea, insn_str, mnem):
+ # Consider undisassemblable opcodes as unique
+ if insn_str[0:2].lower() == 'db':
+ return True
+ ot1 = GetOpType(ea, 0)
+ ot2 = GetOpType(ea, 1)
+ ot3 = GetOpType(ea, 2)
+ v1 = GetOpnd(ea, 0)
+ v2 = GetOpnd(ea, 1)
+ v3 = GetOpnd(ea, 2)
+ hashstr = "%s|%s|%s|%s" % (mnem,
+ normalize_operand(ot1, v1),
+ normalize_operand(ot2, v2),
+ normalize_operand(ot3, v3))
+ if hashstr in set:
+ return False
+ else:
+ set.add(hashstr)
+ return True
+
+def generate_x86(filename):
+ set = Set()
+ ea = GetEntryPoint(GetEntryOrdinal(0))
+ for i in range(0, 20):
+ PatchByte(ea + i, i + 0x10)
+ flog = open(filename + '.log', 'wt')
+ f = open(filename, 'wt')
+ n = 0
+ len = 0
+ for p0 in range(0x10, 0x110):
+ q0 = p0 & 0xff
+ set.clear() # Clear cached of opcodes (they become unrelevant)
+ PatchByte(ea, q0)
+ for p1 in range(0x10, 0x110):
+ q1 = p1 & 0xff
+ PatchByte(ea + 1, q1)
+ for p2 in range(0x10, 0x110):
+ q2 = p2 & 0xff
+ PatchByte(ea + 2, q2)
+ len = MakeCode(ea)
+ str = GetDisasm(ea)
+ mnem = GetMnem(ea)
+ # Now we got disasm
+ # Remove comments
+ pos = str.find(';')
+ if pos != -1:
+ str = str[0:pos]
+ # Remove spaces at start and end
+ str = str.strip(' ')
+ if str[0:2] == 'db' or str == '' or len == 0:
+ insn_binary = get_insn(ea, 10)
+ flog.write('INPUT hex: %20s; disasm: "%s"\n' % (binascii.hexlify(insn_binary), str))
+ insn_write(f, insn_binary, 'db', False)
+ flog.write('\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOUTPUT disasm: "db"\n')
+ continue
+ if not is_unique(set, ea, str, mnem):
+ continue
+ insn_binary = get_insn(ea, len)
+ flog.write('INPUT hex: %20s; disasm: "%s"\n' % (binascii.hexlify(insn_binary), str))
+ if is_invalid_insn(insn_binary):
+ flog.write('*** Skipping invalid opcode ***')
+ continue
+ # Add unique disasms to file
+ str = ida_disasm_fix(insn_binary, str)
+ flog.write('\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOUTPUT disasm: "%s"\n' % str)
+ flog.flush()
+ insn_write(f, insn_binary, str, False)
+ n += 1
+ if n % 1000 == 0:
+ print '%d opcodes processed' % n
+ if len == 2 or len == 1:
+ break # Optimization: break if third byte does not matter
+ if len == 1:
+ break # Optimization: break if second byte does not matter
+ f.close()
+ flog.write('Finished\n')
+ flog.close()
+
+def main():
+ generate_x86("./intel-x86-opcodes.txt")
+
+if __name__ == "__main__":
+ main()
+
+
diff --git a/utils/ipn_sqlclr/LogItem.cs b/utils/ipn_sqlclr/LogItem.cs
new file mode 100644
index 0000000..d6fbcf9
--- /dev/null
+++ b/utils/ipn_sqlclr/LogItem.cs
@@ -0,0 +1,11 @@
+using System.Xml;
+
+namespace ipn_sqlclr
+{
+ public class LogItem
+ {
+ public int MsgId { get; set; }
+ public XmlDocument[] Xml { get; set; }
+ public string[] P { get; set; }
+ }
+}
diff --git a/utils/ipn_sqlclr/Taggant.cs b/utils/ipn_sqlclr/Taggant.cs
new file mode 100644
index 0000000..c989252
--- /dev/null
+++ b/utils/ipn_sqlclr/Taggant.cs
@@ -0,0 +1,274 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Data.SqlTypes;
+using System.IO;
+using System.Security.Cryptography.X509Certificates;
+using System.Xml;
+using Microsoft.SqlServer.Server;
+using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.Crypto.Generators;
+using Org.BouncyCastle.OpenSsl;
+using Org.BouncyCastle.Security;
+using System.Linq;
+
+namespace ipn_sqlclr
+{
+ public class TaggantConfig : Dictionary<string, string>
+ {
+ public X509Certificate ClientCertificate { get; set; }
+ }
+ public partial class UserDefinedFunctions
+ {
+ public static X509Certificate LocateCertificate(string subjectName)
+ {
+ var certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
+ certStore.Open(OpenFlags.ReadOnly);
+ X509Certificate2Collection certCollection = certStore.Certificates.Find(X509FindType.FindBySubjectName, subjectName, true);
+ certStore.Close();
+
+ if (0 == certCollection.Count)
+ {
+ throw new ArgumentException(string.Format("No valid client certificate found at LocalMachine.My by SubjectName '{0}'", subjectName), "subjectName");
+ }
+ if (1 == certCollection.Count)
+ {
+ return certCollection[0];
+ }
+ throw new ArgumentException(string.Format("More than one client certificate found at LocalMachine.My by SubjectName '{0}'", subjectName), "subjectName");
+
+ }
+ public static TaggantConfig GetTaggantConfig(SqlInt32 taggantConfigId)
+ {
+ var config = new TaggantConfig();
+ using (var conn = new SqlConnection("context connection=true"))
+ {
+ conn.Open();
+ var readConfigCmd = conn.CreateCommand();
+ readConfigCmd.Parameters.Add(new SqlParameter("@taggantConfigId", taggantConfigId.Value));
+ readConfigCmd.CommandText =
+ "SELECT Name, Value FROM dbo.TaggantConfig WHERE ID=@taggantConfigId";
+ using (var reader = readConfigCmd.ExecuteReader())
+ {
+ while(reader.Read())
+ {
+ config[reader.GetString(0)] = reader[1] as string;
+ }
+ }
+ }
+ config.ClientCertificate = LocateCertificate(config["ClientCertificate"]);
+ return config;
+ }
+
+ [SqlFunction]
+ public static SqlString TaggantPrivateKeyGenerateNew()
+ {
+ var g = new RsaKeyPairGenerator();
+ g.Init(new KeyGenerationParameters(new SecureRandom(), 2048));
+ var pair = g.GenerateKeyPair();
+
+ using (var sw = new StringWriter())
+ {
+ new PemWriter(sw).WriteObject(pair);
+ sw.Flush();
+ return new SqlString(sw.ToString());
+ }
+ }
+
+ [SqlProcedure]
+ public static int TaggantCertRevoke(SqlInt32 taggantConfigId, SqlInt32 customerId)
+ {
+ var tc = GetTaggantConfig(taggantConfigId);
+ var log = new List<LogItem>();
+ try
+ {
+ string mail;
+ using (var conn = new SqlConnection("context connection=true"))
+ {
+ conn.Open();
+ var readCustomerCmd = conn.CreateCommand();
+ readCustomerCmd.Parameters.Add(new SqlParameter("@CustomerID", customerId.Value));
+ readCustomerCmd.CommandText =
+ "SELECT EMail FROM dbo.Customer WHERE ID=@CustomerID";
+ using (var reader = readCustomerCmd.ExecuteReader())
+ {
+ if (reader.Read())
+ {
+ mail = reader[0] as string;
+ }
+ else
+ {
+ throw new ArgumentException("Customer not found", "customerId");
+ }
+ if (string.IsNullOrWhiteSpace(mail))
+ throw new InvalidOperationException("Customer EMail is not set");
+ }
+ }
+ log.Add(new LogItem { MsgId = 1033, P = new[] { customerId.ToString(), tc["CertificateProfileOid"] } });
+
+ TaggantWebService.CertRevoke(tc, mail, log);
+ return 0;
+ }
+ catch (Exception ex)
+ {
+ log.Add(new LogItem { MsgId = 15, P = new[] { ex.Source, ex.Message, ex.StackTrace } });
+ throw;
+ }
+ finally
+ {
+ FlushLog("TaggantCertRevoke", new SqlInt32(2), customerId, log);
+ }
+ }
+
+ [SqlProcedure]
+ public static int TaggantCertEnsure(SqlInt32 taggantConfigId, SqlInt32 customerId)
+ {
+ var tc = GetTaggantConfig(taggantConfigId);
+ var log = new List<LogItem>();
+ var id = "ipn" + customerId.Value;
+ string taggantCert = null;
+ try
+ {
+ string mail;
+ string privateKey;
+ using (var conn = new SqlConnection("context connection=true"))
+ {
+ conn.Open();
+ var readCustomerCmd = conn.CreateCommand();
+ readCustomerCmd.Parameters.Add(new SqlParameter("@CustomerID", customerId.Value));
+ readCustomerCmd.CommandText =
+ "SELECT EMail, PrivateKeyCert, TaggantCert FROM dbo.Customer WHERE ID=@CustomerID";
+ using (var reader = readCustomerCmd.ExecuteReader())
+ {
+ if (reader.Read())
+ {
+ mail = reader[0] as string;
+ privateKey = reader[1] as string;
+ taggantCert = reader[2] as string;
+ }
+ else
+ {
+ throw new ArgumentException("Customer not found", "customerId");
+ }
+ if (string.IsNullOrWhiteSpace(mail))
+ throw new InvalidOperationException("Customer EMail is not set");
+ if (string.IsNullOrWhiteSpace(privateKey))
+ throw new InvalidOperationException("Customer PrivateKeyCert is not set");
+ if (!string.IsNullOrWhiteSpace(taggantCert))
+ return 0; // ensured
+ }
+ }
+ log.Add(new LogItem { MsgId = 14, P = new[] { customerId.ToString(), mail, tc["CertificateProfileOid"] } });
+
+ taggantCert = TaggantWebService.CertRequestNew(tc, id, mail, privateKey, log);
+ using (var conn = new SqlConnection("context connection=true"))
+ {
+ conn.Open();
+ var writeCustomerCmd = conn.CreateCommand();
+ writeCustomerCmd.Parameters.Add(new SqlParameter("@CustomerID", customerId.Value));
+ writeCustomerCmd.Parameters.Add(new SqlParameter("@TaggantCert", taggantCert));
+ writeCustomerCmd.CommandText =
+ "UPDATE dbo.Customer SET TaggantCert=@TaggantCert WHERE ID=@CustomerID";
+ writeCustomerCmd.ExecuteNonQuery();
+ }
+ return 1; // created new
+ }
+ catch (Exception ex)
+ {
+ log.Add(new LogItem { MsgId = 15, P = new[] { ex.Source, ex.Message, ex.StackTrace, taggantCert } });
+ throw;
+ }
+ finally
+ {
+ FlushLog("TaggantCertEnsure", new SqlInt32(2), customerId, log);
+ }
+ }
+
+ private static void FlushLog(string src, SqlInt32 refKindId, SqlInt32 refId, IEnumerable<LogItem> log)
+ {
+ using (var conn = new SqlConnection("context connection=true"))
+ {
+ conn.Open();
+ foreach (var li in log)
+ {
+ var insLogCmd = conn.CreateCommand();
+ insLogCmd.Parameters.Add(new SqlParameter("@RefKindID", refKindId));
+ insLogCmd.Parameters.Add(new SqlParameter("@RefID", refId));
+ insLogCmd.Parameters.Add(new SqlParameter("@MsgID", li.MsgId));
+ int i;
+ for (i = 0; i < 2; i++)
+ {
+ insLogCmd.Parameters.Add(
+ new SqlParameter(string.Format("@xml{0}", i), SqlDbType.Xml)
+ {
+ Value = (li.Xml == null || li.Xml[i] == null)
+ ? DBNull.Value
+ : (object)new SqlXml(new XmlTextReader(li.Xml[i].InnerXml, XmlNodeType.Document, null))
+ });
+ }
+ insLogCmd.Parameters.Add(new SqlParameter("@P0", src));
+ i = 1;
+ foreach (var p in li.P)
+ {
+ insLogCmd.Parameters.Add(new SqlParameter(string.Format("@P{0}", i++), p));
+ }
+ for (; i <= 8; i++)
+ {
+ insLogCmd.Parameters.Add(new SqlParameter(string.Format("@P{0}", i), DBNull.Value));
+ }
+
+ insLogCmd.CommandText =
+ "INSERT dbo.Log(RefID, RefKindID, MsgID, xml, xml2, P0, P1, P2, P3, P4, P5, P6, P7, P8)" +
+ " VALUES(@RefID, @RefKindID, @MsgID, @xml0, @xml1, @P0, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8)";
+
+ insLogCmd.ExecuteNonQuery();
+ }
+ }
+ }
+
+ [SqlProcedure]
+ public static SqlInt32 TaggantGetPolicies(SqlInt32 taggantConfigId)
+ {
+ var tc = GetTaggantConfig(taggantConfigId);
+ var log = new List<LogItem>();
+ try
+ {
+ var meta = new[]
+ {
+ new SqlMetaData("defaultName", SqlDbType.NVarChar, -1),
+ new SqlMetaData("groupId", SqlDbType.Int),
+ new SqlMetaData("oIdReferenceId", SqlDbType.Int),
+ new SqlMetaData("certificateProfileId", SqlDbType.NVarChar, -1)
+ };
+ SqlDataRecord[] records = TaggantWebService.GetPolicies(tc, log).Select(x =>
+ {
+ var r = new SqlDataRecord(meta);
+ r.SetSqlString(0, x.defaultName);
+ r.SetSqlInt32(1, (int)x.group);
+ r.SetSqlInt32(2, x.oIDReferenceID);
+ r.SetSqlString(3, x.value);
+ return r;
+ }).ToArray();
+
+ if (SqlContext.Pipe != null)
+ {
+ SqlContext.Pipe.SendResultsStart(new SqlDataRecord(meta));
+ foreach (var r in records)
+ SqlContext.Pipe.SendResultsRow(r);
+ SqlContext.Pipe.SendResultsEnd();
+ }
+ return records.Length;
+ }
+ catch (Exception ex)
+ {
+ log.Add(new LogItem { MsgId = 15, P = new[] { ex.Source, ex.Message, ex.StackTrace } });
+ throw;
+ }
+ finally
+ {
+ FlushLog("TaggantGetPolicies", new SqlInt32(), new SqlInt32(), log);
+ }
+ }
+ }
+}
diff --git a/utils/ipn_sqlclr/TaggantWebService.cs b/utils/ipn_sqlclr/TaggantWebService.cs
new file mode 100644
index 0000000..e4157e7
--- /dev/null
+++ b/utils/ipn_sqlclr/TaggantWebService.cs
@@ -0,0 +1,159 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Xml;
+using certificateManagementService;
+using Org.BouncyCastle.Asn1.X509;
+using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.OpenSsl;
+using Org.BouncyCastle.Pkcs;
+using Org.BouncyCastle.Security;
+using Org.BouncyCastle.X509;
+using policyService;
+using veriSignCertIssuingService;
+using ItemChoiceType = certificateManagementService.ItemChoiceType;
+
+namespace ipn_sqlclr
+{
+ public static class TaggantWebService
+ {
+ public static void CertRevoke(TaggantConfig tc, string id, List<LogItem> log)
+ {
+ var es = new certificateManagementService.certificateManagementService(tc.ClientCertificate, tc["ManagementUrl"]);
+ try
+ {
+ var updateCertificateStatusRequest = new UpdateCertificateStatusRequestType
+ {
+ clientTransactionID = "ipn_sqlclr " + new SecureRandom().Next(),
+ operationType = OperationTypeEnum.Revoke,
+ revocationReasonSpecified = false,
+ ItemElementName = ItemChoiceType.seatId,
+ Item = id,
+ //certificateIssuer = "?",
+ //challenge = "?",
+ //comment = "?",
+ version = tc["ManagementVersion"]
+ };
+ /*var updateResponse =*/ es.updateCertificateStatus(updateCertificateStatusRequest);
+ }
+ finally
+ {
+ LogXml("updateCertificateStatus", es, log);
+ }
+ }
+ public static string CertRequestNew(TaggantConfig tc, string id, string mail, string privateKey, List<LogItem> log)
+ {
+ var csr = CreateCsr(tc, privateKey);
+ log.Add(new LogItem {MsgId = 16, P = new[] {csr}});
+
+ var es = new veriSignCertIssuingService.veriSignCertIssuingService(tc.ClientCertificate, tc["EnrollmentUrl"]);
+ try
+ {
+ var requestSecurityTokenType = new RequestSecurityTokenType
+ {
+ Item = new RequestVSSecurityTokenEnrollmentType
+ {
+ clientTransactionID = "ipn_sqlclr " + new SecureRandom().Next(),
+ certificateProfileID = tc["CertificateProfileOid"],
+ requestType = RequestTypeEnum.httpdocsoasisopenorgwssxwstrust200512Issue,
+ version = tc["EnrollVersion"],
+ tokenType = TokenType.httpdocsoasisopenorgwss200401oasis200401wssx509tokenprofile10PKCS7,
+ binarySecurityToken = new[]
+ {
+ new BinarySecurityTokenType
+ {
+ ValueType = "http://schemas.verisign.com/pkiservices/2009/07/PKCS10",
+ EncodingType = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#base64binary",
+ Value = csr
+ }
+ },
+ nameValuePair = new[]
+ {
+ new NameValueType {name = "seat_id", value = mail},
+ new NameValueType {name = "common_name", value = string.Format("VMProtect Client {0}", id)},
+ new NameValueType {name = "mail_lastName", value = "Client"},
+ new NameValueType {name = "mail_firstName", value = string.Format("{0} VMProtect", id)},
+ new NameValueType {name = "emailAddress", value = mail},
+ new NameValueType {name = "mail_email", value = mail},
+ new NameValueType {name = "country", value = "ru"}
+ }
+ }
+ };
+ var enrollmentResponse = es.RequestSecurityToken(requestSecurityTokenType);
+ var certs = ((AttributedString)(enrollmentResponse.Item.requestedVSSecurityToken.Items[0])).Value;
+ var certPkcs7 = Convert.FromBase64String(certs);
+ var parser = new X509CertificateParser();
+ var cert = parser.ReadCertificate(certPkcs7);
+ using (var pw = new StringWriter())
+ {
+ new PemWriter(pw).WriteObject(cert);
+ pw.Flush();
+ return pw.ToString();
+ }
+ }
+ finally
+ {
+ LogXml("RequestSecurityToken", es, log);
+ }
+ }
+
+ private static string CreateCsr(TaggantConfig tc, string privateKey)
+ {
+ AsymmetricCipherKeyPair pair;
+ using (var reader = new StringReader(privateKey))
+ pair = (AsymmetricCipherKeyPair) new PemReader(reader).ReadObject();
+
+ var csr = new Pkcs10CertificationRequest(tc["CsrAlgorithm"], new X509Name(tc["CsrSubject"]), pair.Public, null, pair.Private);
+ using (var pw = new StringWriter())
+ {
+ new PemWriter(pw).WriteObject(csr);
+ pw.Flush();
+ return pw.ToString();
+ }
+ }
+
+ public static IEnumerable<OID> GetPolicies(TaggantConfig tc, List<LogItem> log)
+ {
+ var ps = new policyService.policyService(tc.ClientCertificate, tc["PolicyUrl"]);
+ try
+ {
+ var rp = ps.requestPolicies(new getPolicies {version = tc["PolicyVersion"]});
+ return rp.oIDs;
+ }
+ finally
+ {
+ LogXml("requestPolicies", ps, log);
+ }
+ }
+
+ private static void LogXml(string src, XmlReaderSpyService ss, ICollection<LogItem> log)
+ {
+ var req = new XmlDocument();
+ var resp = new XmlDocument();
+ var reqs = ss.GetRequestXml();
+ var resps = ss.GetResponseXml();
+ try
+ {
+ req.LoadXml(reqs);
+ }
+ catch (Exception)
+ {
+ req = null;
+ }
+ try
+ {
+ resp.LoadXml(resps);
+ }
+ catch (Exception)
+ {
+ resp = null;
+ }
+ if (req != null && string.IsNullOrWhiteSpace(req.InnerXml))
+ req = null;
+ if (resp != null && string.IsNullOrWhiteSpace(resp.InnerXml))
+ resp = null;
+ if (!string.IsNullOrWhiteSpace(reqs) || !string.IsNullOrWhiteSpace(resps))
+ log.Add(new LogItem {MsgId = 17, P = new[] {src, reqs, resps}, Xml = new[] {req, resp}});
+ }
+ }
+}
diff --git a/utils/ipn_sqlclr/VmpLicenseKey.cs b/utils/ipn_sqlclr/VmpLicenseKey.cs
new file mode 100644
index 0000000..2b0ec8a
--- /dev/null
+++ b/utils/ipn_sqlclr/VmpLicenseKey.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections;
+using System.Data.SqlTypes;
+using Microsoft.SqlServer.Server;
+
+namespace ipn_sqlclr
+{
+ public partial class UserDefinedFunctions
+ {
+ [SqlFunction]
+ public static SqlString VmpLicenseKeyGenerateNew(SqlInt32 productId, SqlString customerName, SqlString eMail, SqlDateTime maxBuildDt)
+ {
+ return new SqlString (Keygen.GenerateKey(productId.Value, customerName.Value, eMail.Value, maxBuildDt.Value));
+ }
+
+ [SqlFunction(FillRowMethodName = "FillRowVmpLicenseParseKey",
+ TableDefinition = "[productId] int,[customerName] nvarchar(max),[eMail] nvarchar(max),maxBuildDT datetime")]
+ public static IEnumerable VmpLicenseParseKey(String key)
+ {
+ yield return key;
+ }
+
+ public static void FillRowVmpLicenseParseKey(Object obj, out SqlInt32 productId, out SqlString customerName, out SqlString eMail, out SqlDateTime maxBuildDt)
+ {
+ var key = (string)obj;
+ int productIdTmp;
+ string customerNameTmp, eMailTmp;
+ DateTime maxBuildDtTmp;
+ Keygen.ParseKey(key, out productIdTmp, out customerNameTmp, out eMailTmp, out maxBuildDtTmp);
+ productId = productIdTmp;
+ customerName = customerNameTmp;
+ eMail = eMailTmp;
+ maxBuildDt = maxBuildDtTmp;
+ }
+ }
+}
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/BulkUpdateCertificateStatusResponseType1.datasource b/utils/ipn_sqlclr/Web References/certificateManagementService/BulkUpdateCertificateStatusResponseType1.datasource
new file mode 100644
index 0000000..239ee25
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/BulkUpdateCertificateStatusResponseType1.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="BulkUpdateCertificateStatusResponseType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.certificateManagementService.BulkUpdateCertificateStatusResponseType, Web References.certificateManagementService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.wsdl b/utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.wsdl
new file mode 100644
index 0000000..6c27b2a
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.wsdl
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://schemas.verisign.com/pkiservices/2009/07/management" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.verisign.com/pkiservices/2009/07/management" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:import schemaLocation="CertificateManagementService.xsd" namespace="http://schemas.verisign.com/pkiservices/2009/07/management" />
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="requestKeyRecoveryMessage">
+ <wsdl:part name="request" element="tns:requestKeyRecoveryMessage" />
+ </wsdl:message>
+ <wsdl:message name="requestKeyRecoveryResponseMessage">
+ <wsdl:part name="response" element="tns:requestKeyRecoveryResponseMessage" />
+ </wsdl:message>
+ <wsdl:message name="updateCertificateStatusRequest">
+ <wsdl:part name="request" element="tns:updateCertificateStatusRequest" />
+ </wsdl:message>
+ <wsdl:message name="updateCertificateStatusResponse">
+ <wsdl:part name="response" element="tns:updateCertificateStatusResponse" />
+ </wsdl:message>
+ <wsdl:message name="bulkUpdateCertificateStatusRequest">
+ <wsdl:part name="request" element="tns:bulkUpdateCertificateStatusRequest" />
+ </wsdl:message>
+ <wsdl:message name="bulkUpdateCertificateStatusResponse">
+ <wsdl:part name="response" element="tns:bulkUpdateCertificateStatusResponse" />
+ </wsdl:message>
+ <wsdl:message name="searchCertificateRequest">
+ <wsdl:part name="request" element="tns:searchCertificateRequest" />
+ </wsdl:message>
+ <wsdl:message name="searchCertificateResponse">
+ <wsdl:part name="response" element="tns:searchCertificateResponse" />
+ </wsdl:message>
+ <wsdl:portType name="certificateManagementOperations">
+ <wsdl:operation name="updateCertificateStatus">
+ <wsdl:input message="tns:updateCertificateStatusRequest" />
+ <wsdl:output message="tns:updateCertificateStatusResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="bulkUpdateCertificateStatus">
+ <wsdl:input message="tns:bulkUpdateCertificateStatusRequest" />
+ <wsdl:output message="tns:bulkUpdateCertificateStatusResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="keyRecovery">
+ <wsdl:input message="tns:requestKeyRecoveryMessage" />
+ <wsdl:output message="tns:requestKeyRecoveryResponseMessage" />
+ </wsdl:operation>
+ <wsdl:operation name="searchCertificate">
+ <wsdl:input message="tns:searchCertificateRequest" />
+ <wsdl:output message="tns:searchCertificateResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="certificateManagementServiceSOAP" type="tns:certificateManagementOperations">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="updateCertificateStatus">
+ <soap:operation soapAction="http://schemas.verisign.com/pkiservices/2009/07/management/updateCertificateStatus" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="bulkUpdateCertificateStatus">
+ <soap:operation soapAction="http://schemas.verisign.com/pkiservices/2009/07/management/bulkUpdateCertificateStatus" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="keyRecovery">
+ <soap:operation soapAction="http://schemas.verisign.com/pkiservices/2009/07/management/keyRecovery" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="searchCertificate">
+ <soap:operation soapAction="http://schemas.verisign.com/pkiservices/2009/07/management/searchCertificate" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="certificateManagementService">
+ <wsdl:port name="certificateManagementServiceSOAP" binding="tns:certificateManagementServiceSOAP">
+ <soap:address location="https://pki-ws.symauth.com/pki-ws/certificateManagementService" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.xsd b/utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.xsd
new file mode 100644
index 0000000..d38f2f8
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/CertificateManagementService.xsd
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:vsmgmt="http://schemas.verisign.com/pkiservices/2009/07/management" xmlns:vswstep="http://www.verisign.com/2009/07/vswstep" elementFormDefault="qualified" targetNamespace="http://schemas.verisign.com/pkiservices/2009/07/management" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ XML Schema for
+ certificateManagementService Web Services
+ version 1.0
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType name="VersionType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d{1,3}\.\d{0,3}" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TransactionIDType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="40" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CommentType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="128" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="requestKeyRecoveryMessage" type="vsmgmt:RequestKeyRecoveryMessageType" />
+ <xs:complexType name="RequestKeyRecoveryMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element minOccurs="0" name="pKCS12Password" type="xs:string" />
+ <xs:element name="certificateSerialNumber" type="xs:string" />
+ <xs:element name="certificateIssuer" type="xs:string" />
+ <xs:element name="adminID" type="xs:string" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="requestKeyRecoveryResponseMessage" type="vsmgmt:RequestKeyRecoveryResponseMessageType" />
+ <xs:complexType name="RequestKeyRecoveryResponseMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element minOccurs="0" name="adminApprovalPendingCount" type="xs:int" />
+ <xs:element minOccurs="0" name="pKCS12Password" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="pKCS12Message" type="xs:string" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="updateCertificateStatusRequest" type="vsmgmt:UpdateCertificateStatusRequestType" />
+ <xs:complexType name="UpdateCertificateStatusRequestType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:element minOccurs="0" name="certificateIssuer" type="xs:string" />
+ <xs:element minOccurs="0" name="revocationReason" type="vsmgmt:RevokeReasonCodeEnum" />
+ <xs:element minOccurs="0" name="challenge" type="xs:string" />
+ <xs:element minOccurs="0" name="comment" type="vsmgmt:CommentType" />
+ <xs:choice>
+ <xs:element name="certificateSerialNumber" type="xs:string" />
+ <xs:element name="seatId" type="xs:string" />
+ </xs:choice>
+ <xs:element name="operationType" type="vsmgmt:OperationTypeEnum" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="updateCertificateStatusResponse" type="vsmgmt:UpdateCertificateStatusResponseType" />
+ <xs:complexType name="UpdateCertificateStatusResponseType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element minOccurs="0" name="serverTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:element name="successCode" type="xs:int" />
+ <xs:element name="successMsg" type="xs:string" />
+ <xs:element name="revocationCount" type="xs:int" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="bulkUpdateCertificateStatusRequest" type="vsmgmt:BulkUpdateCertificateStatusRequestType" />
+ <xs:complexType name="BulkUpdateCertificateStatusRequestType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:element minOccurs="0" name="revocationReason" type="vsmgmt:RevokeReasonCodeEnum" />
+ <xs:element minOccurs="0" name="comment" type="vsmgmt:CommentType" />
+ <xs:choice>
+ <xs:element maxOccurs="100" name="certificateSerialNumber" type="xs:string" />
+ <xs:element maxOccurs="100" name="seatId" type="xs:string" />
+ <xs:element maxOccurs="100" name="profileOID" type="xs:string" />
+ </xs:choice>
+ <xs:element name="operationType" type="vsmgmt:OperationTypeEnum" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="bulkUpdateCertificateStatusResponse" type="vsmgmt:BulkUpdateCertificateStatusResponseType" />
+ <xs:complexType name="BulkUpdateCertificateStatusResponseType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element minOccurs="0" name="serverTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:element name="successCode" type="xs:int" />
+ <xs:element name="successMsg" type="xs:string" />
+ <xs:element name="revocationCount" type="xs:int" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="OperationTypeEnum">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Revoke" />
+ <xs:enumeration value="Suspend" />
+ <xs:enumeration value="Resume" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="RevokeReasonCodeEnum">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unspecified" />
+ <xs:enumeration value="KeyCompromise" />
+ <xs:enumeration value="CACompromise" />
+ <xs:enumeration value="AffiliationChanged" />
+ <xs:enumeration value="CessationOfOperation" />
+ <xs:enumeration value="PrivilegeWithdrawn" />
+ <xs:enumeration value="AACompromise" />
+ <xs:enumeration value="Superseded" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="searchCertificateRequest" type="vsmgmt:SearchCertificateRequestType" />
+ <xs:complexType name="SearchCertificateRequestType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element minOccurs="0" name="seatId" type="xs:string" />
+ <xs:element minOccurs="0" name="accountId" type="xs:string" />
+ <xs:element minOccurs="0" name="profileOID" type="xs:string" />
+ <xs:element minOccurs="0" name="commonName" type="xs:string" />
+ <xs:element minOccurs="0" name="status" type="vsmgmt:CertificateStatusEnum" />
+ <xs:element minOccurs="0" name="emailAddress" type="xs:string" />
+ <xs:element minOccurs="0" name="serialNumber" type="xs:string" />
+ <xs:element minOccurs="0" name="issuingCA" type="xs:base64Binary" />
+ <xs:element minOccurs="0" name="validFrom" type="xs:long" />
+ <xs:element minOccurs="0" name="validTo" type="xs:long" />
+ <xs:element minOccurs="0" name="startIndex" type="xs:int" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="searchCertificateResponse" type="vsmgmt:SearchCertificateResponseType" />
+ <xs:complexType name="SearchCertificateResponseType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="vsmgmt:TransactionIDType" />
+ <xs:element name="certificateCount" type="xs:int" />
+ <xs:element minOccurs="0" name="certificateList" type="vsmgmt:CertificateListType" />
+ <xs:element minOccurs="0" name="moreCertificateAvailable" type="xs:boolean" />
+ <xs:element name="version" type="vsmgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CertificateSearchResultType">
+ <xs:sequence>
+ <xs:element name="certificate" type="xs:base64Binary" />
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element name="commonName" type="xs:string" />
+ <xs:element name="accountId" type="xs:string" />
+ <xs:element name="profileOID" type="xs:string" />
+ <xs:element name="emailAddress" nillable="true" type="xs:string" />
+ <xs:element name="status" type="vsmgmt:CertificateStatusEnum" />
+ <xs:element minOccurs="0" name="revokeAt" type="xs:long" />
+ <xs:element minOccurs="0" name="revokeReason" type="vsmgmt:RevokeReasonCodeEnum" />
+ <xs:element name="validFrom" type="xs:long" />
+ <xs:element name="validTo" type="xs:long" />
+ <xs:element name="serialNumber" type="xs:string" />
+ <xs:element name="isEscrowed" type="xs:boolean" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CertificateListType">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="certificateInformation" type="vsmgmt:CertificateSearchResultType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CertificateStatusEnum">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="VALID" />
+ <xs:enumeration value="EXPIRED" />
+ <xs:enumeration value="REVOKED" />
+ <xs:enumeration value="SUSPENDED" />
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/Reference.cs b/utils/ipn_sqlclr/Web References/certificateManagementService/Reference.cs
new file mode 100644
index 0000000..25ef2d8
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/Reference.cs
@@ -0,0 +1,1639 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.34014
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+//
+// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.34014.
+//
+
+using System.Security.Cryptography.X509Certificates;
+using ipn_sqlclr;
+
+#pragma warning disable 1591
+
+namespace certificateManagementService {
+ using System;
+ using System.Web.Services;
+ using System.Diagnostics;
+ using System.Web.Services.Protocols;
+ using System.Xml.Serialization;
+ using System.ComponentModel;
+
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Web.Services.WebServiceBindingAttribute(Name="certificateManagementServiceSOAP", Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class certificateManagementService : XmlReaderSpyService
+ {
+
+ private System.Threading.SendOrPostCallback updateCertificateStatusOperationCompleted;
+
+ private System.Threading.SendOrPostCallback bulkUpdateCertificateStatusOperationCompleted;
+
+ private System.Threading.SendOrPostCallback keyRecoveryOperationCompleted;
+
+ private System.Threading.SendOrPostCallback searchCertificateOperationCompleted;
+
+ private bool useDefaultCredentialsSetExplicitly;
+
+ /// <remarks/>
+ public certificateManagementService(X509Certificate clientCert, string url)
+ : base(clientCert, url)
+ {
+ this.Url = url;
+ ClientCertificates.Add(clientCert);
+ }
+
+ public new string Url {
+ get {
+ return base.Url;
+ }
+ set {
+ if ((((this.IsLocalFileSystemWebService(base.Url) == true)
+ && (this.useDefaultCredentialsSetExplicitly == false))
+ && (this.IsLocalFileSystemWebService(value) == false))) {
+ base.UseDefaultCredentials = false;
+ }
+ base.Url = value;
+ }
+ }
+
+ public new bool UseDefaultCredentials {
+ get {
+ return base.UseDefaultCredentials;
+ }
+ set {
+ base.UseDefaultCredentials = value;
+ this.useDefaultCredentialsSetExplicitly = true;
+ }
+ }
+
+ /// <remarks/>
+ public event updateCertificateStatusCompletedEventHandler updateCertificateStatusCompleted;
+
+ /// <remarks/>
+ public event bulkUpdateCertificateStatusCompletedEventHandler bulkUpdateCertificateStatusCompleted;
+
+ /// <remarks/>
+ public event keyRecoveryCompletedEventHandler keyRecoveryCompleted;
+
+ /// <remarks/>
+ public event searchCertificateCompletedEventHandler searchCertificateCompleted;
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.verisign.com/pkiservices/2009/07/management/updateCertificateStatu" +
+ "s", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("updateCertificateStatusResponse", Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public UpdateCertificateStatusResponseType updateCertificateStatus([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")] UpdateCertificateStatusRequestType updateCertificateStatusRequest) {
+ object[] results = this.Invoke("updateCertificateStatus", new object[] {
+ updateCertificateStatusRequest});
+ return ((UpdateCertificateStatusResponseType)(results[0]));
+ }
+
+ /// <remarks/>
+ public void updateCertificateStatusAsync(UpdateCertificateStatusRequestType updateCertificateStatusRequest) {
+ this.updateCertificateStatusAsync(updateCertificateStatusRequest, null);
+ }
+
+ /// <remarks/>
+ public void updateCertificateStatusAsync(UpdateCertificateStatusRequestType updateCertificateStatusRequest, object userState) {
+ if ((this.updateCertificateStatusOperationCompleted == null)) {
+ this.updateCertificateStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnupdateCertificateStatusOperationCompleted);
+ }
+ this.InvokeAsync("updateCertificateStatus", new object[] {
+ updateCertificateStatusRequest}, this.updateCertificateStatusOperationCompleted, userState);
+ }
+
+ private void OnupdateCertificateStatusOperationCompleted(object arg) {
+ if ((this.updateCertificateStatusCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.updateCertificateStatusCompleted(this, new updateCertificateStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.verisign.com/pkiservices/2009/07/management/bulkUpdateCertificateS" +
+ "tatus", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("bulkUpdateCertificateStatusResponse", Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public BulkUpdateCertificateStatusResponseType bulkUpdateCertificateStatus([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")] BulkUpdateCertificateStatusRequestType bulkUpdateCertificateStatusRequest) {
+ object[] results = this.Invoke("bulkUpdateCertificateStatus", new object[] {
+ bulkUpdateCertificateStatusRequest});
+ return ((BulkUpdateCertificateStatusResponseType)(results[0]));
+ }
+
+ /// <remarks/>
+ public void bulkUpdateCertificateStatusAsync(BulkUpdateCertificateStatusRequestType bulkUpdateCertificateStatusRequest) {
+ this.bulkUpdateCertificateStatusAsync(bulkUpdateCertificateStatusRequest, null);
+ }
+
+ /// <remarks/>
+ public void bulkUpdateCertificateStatusAsync(BulkUpdateCertificateStatusRequestType bulkUpdateCertificateStatusRequest, object userState) {
+ if ((this.bulkUpdateCertificateStatusOperationCompleted == null)) {
+ this.bulkUpdateCertificateStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnbulkUpdateCertificateStatusOperationCompleted);
+ }
+ this.InvokeAsync("bulkUpdateCertificateStatus", new object[] {
+ bulkUpdateCertificateStatusRequest}, this.bulkUpdateCertificateStatusOperationCompleted, userState);
+ }
+
+ private void OnbulkUpdateCertificateStatusOperationCompleted(object arg) {
+ if ((this.bulkUpdateCertificateStatusCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.bulkUpdateCertificateStatusCompleted(this, new bulkUpdateCertificateStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.verisign.com/pkiservices/2009/07/management/keyRecovery", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("requestKeyRecoveryResponseMessage", Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public RequestKeyRecoveryResponseMessageType keyRecovery([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")] RequestKeyRecoveryMessageType requestKeyRecoveryMessage) {
+ object[] results = this.Invoke("keyRecovery", new object[] {
+ requestKeyRecoveryMessage});
+ return ((RequestKeyRecoveryResponseMessageType)(results[0]));
+ }
+
+ /// <remarks/>
+ public void keyRecoveryAsync(RequestKeyRecoveryMessageType requestKeyRecoveryMessage) {
+ this.keyRecoveryAsync(requestKeyRecoveryMessage, null);
+ }
+
+ /// <remarks/>
+ public void keyRecoveryAsync(RequestKeyRecoveryMessageType requestKeyRecoveryMessage, object userState) {
+ if ((this.keyRecoveryOperationCompleted == null)) {
+ this.keyRecoveryOperationCompleted = new System.Threading.SendOrPostCallback(this.OnkeyRecoveryOperationCompleted);
+ }
+ this.InvokeAsync("keyRecovery", new object[] {
+ requestKeyRecoveryMessage}, this.keyRecoveryOperationCompleted, userState);
+ }
+
+ private void OnkeyRecoveryOperationCompleted(object arg) {
+ if ((this.keyRecoveryCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.keyRecoveryCompleted(this, new keyRecoveryCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.verisign.com/pkiservices/2009/07/management/searchCertificate", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("searchCertificateResponse", Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public SearchCertificateResponseType searchCertificate([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")] SearchCertificateRequestType searchCertificateRequest) {
+ object[] results = this.Invoke("searchCertificate", new object[] {
+ searchCertificateRequest});
+ return ((SearchCertificateResponseType)(results[0]));
+ }
+
+ /// <remarks/>
+ public void searchCertificateAsync(SearchCertificateRequestType searchCertificateRequest) {
+ this.searchCertificateAsync(searchCertificateRequest, null);
+ }
+
+ /// <remarks/>
+ public void searchCertificateAsync(SearchCertificateRequestType searchCertificateRequest, object userState) {
+ if ((this.searchCertificateOperationCompleted == null)) {
+ this.searchCertificateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnsearchCertificateOperationCompleted);
+ }
+ this.InvokeAsync("searchCertificate", new object[] {
+ searchCertificateRequest}, this.searchCertificateOperationCompleted, userState);
+ }
+
+ private void OnsearchCertificateOperationCompleted(object arg) {
+ if ((this.searchCertificateCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.searchCertificateCompleted(this, new searchCertificateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ public new void CancelAsync(object userState) {
+ base.CancelAsync(userState);
+ }
+
+ private bool IsLocalFileSystemWebService(string url) {
+ if (((url == null)
+ || (url == string.Empty))) {
+ return false;
+ }
+ System.Uri wsUri = new System.Uri(url);
+ if (((wsUri.Port >= 1024)
+ && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class UpdateCertificateStatusRequestType {
+
+ private string clientTransactionIDField;
+
+ private string versionField;
+
+ private string certificateIssuerField;
+
+ private RevokeReasonCodeEnum revocationReasonField;
+
+ private bool revocationReasonFieldSpecified;
+
+ private string challengeField;
+
+ private string commentField;
+
+ private string itemField;
+
+ private ItemChoiceType itemElementNameField;
+
+ private OperationTypeEnum operationTypeField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string certificateIssuer {
+ get {
+ return this.certificateIssuerField;
+ }
+ set {
+ this.certificateIssuerField = value;
+ }
+ }
+
+ /// <remarks/>
+ public RevokeReasonCodeEnum revocationReason {
+ get {
+ return this.revocationReasonField;
+ }
+ set {
+ this.revocationReasonField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool revocationReasonSpecified {
+ get {
+ return this.revocationReasonFieldSpecified;
+ }
+ set {
+ this.revocationReasonFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string challenge {
+ get {
+ return this.challengeField;
+ }
+ set {
+ this.challengeField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string comment {
+ get {
+ return this.commentField;
+ }
+ set {
+ this.commentField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("certificateSerialNumber", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("seatId", typeof(string))]
+ [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
+ public string Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public ItemChoiceType ItemElementName {
+ get {
+ return this.itemElementNameField;
+ }
+ set {
+ this.itemElementNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public OperationTypeEnum operationType {
+ get {
+ return this.operationTypeField;
+ }
+ set {
+ this.operationTypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public enum RevokeReasonCodeEnum {
+
+ /// <remarks/>
+ Unspecified,
+
+ /// <remarks/>
+ KeyCompromise,
+
+ /// <remarks/>
+ CACompromise,
+
+ /// <remarks/>
+ AffiliationChanged,
+
+ /// <remarks/>
+ CessationOfOperation,
+
+ /// <remarks/>
+ PrivilegeWithdrawn,
+
+ /// <remarks/>
+ AACompromise,
+
+ /// <remarks/>
+ Superseded,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management", IncludeInSchema=false)]
+ public enum ItemChoiceType {
+
+ /// <remarks/>
+ certificateSerialNumber,
+
+ /// <remarks/>
+ seatId,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public enum OperationTypeEnum {
+
+ /// <remarks/>
+ Revoke,
+
+ /// <remarks/>
+ Suspend,
+
+ /// <remarks/>
+ Resume,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class CertificateSearchResultType {
+
+ private byte[] certificateField;
+
+ private string seatIdField;
+
+ private string commonNameField;
+
+ private string accountIdField;
+
+ private string profileOIDField;
+
+ private string emailAddressField;
+
+ private CertificateStatusEnum statusField;
+
+ private long revokeAtField;
+
+ private bool revokeAtFieldSpecified;
+
+ private RevokeReasonCodeEnum revokeReasonField;
+
+ private bool revokeReasonFieldSpecified;
+
+ private long validFromField;
+
+ private long validToField;
+
+ private string serialNumberField;
+
+ private bool isEscrowedField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] certificate {
+ get {
+ return this.certificateField;
+ }
+ set {
+ this.certificateField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string seatId {
+ get {
+ return this.seatIdField;
+ }
+ set {
+ this.seatIdField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string commonName {
+ get {
+ return this.commonNameField;
+ }
+ set {
+ this.commonNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string accountId {
+ get {
+ return this.accountIdField;
+ }
+ set {
+ this.accountIdField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string profileOID {
+ get {
+ return this.profileOIDField;
+ }
+ set {
+ this.profileOIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string emailAddress {
+ get {
+ return this.emailAddressField;
+ }
+ set {
+ this.emailAddressField = value;
+ }
+ }
+
+ /// <remarks/>
+ public CertificateStatusEnum status {
+ get {
+ return this.statusField;
+ }
+ set {
+ this.statusField = value;
+ }
+ }
+
+ /// <remarks/>
+ public long revokeAt {
+ get {
+ return this.revokeAtField;
+ }
+ set {
+ this.revokeAtField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool revokeAtSpecified {
+ get {
+ return this.revokeAtFieldSpecified;
+ }
+ set {
+ this.revokeAtFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public RevokeReasonCodeEnum revokeReason {
+ get {
+ return this.revokeReasonField;
+ }
+ set {
+ this.revokeReasonField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool revokeReasonSpecified {
+ get {
+ return this.revokeReasonFieldSpecified;
+ }
+ set {
+ this.revokeReasonFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public long validFrom {
+ get {
+ return this.validFromField;
+ }
+ set {
+ this.validFromField = value;
+ }
+ }
+
+ /// <remarks/>
+ public long validTo {
+ get {
+ return this.validToField;
+ }
+ set {
+ this.validToField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serialNumber {
+ get {
+ return this.serialNumberField;
+ }
+ set {
+ this.serialNumberField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool isEscrowed {
+ get {
+ return this.isEscrowedField;
+ }
+ set {
+ this.isEscrowedField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public enum CertificateStatusEnum {
+
+ /// <remarks/>
+ VALID,
+
+ /// <remarks/>
+ EXPIRED,
+
+ /// <remarks/>
+ REVOKED,
+
+ /// <remarks/>
+ SUSPENDED,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class SearchCertificateResponseType {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private int certificateCountField;
+
+ private CertificateSearchResultType[] certificateListField;
+
+ private bool moreCertificateAvailableField;
+
+ private bool moreCertificateAvailableFieldSpecified;
+
+ private string versionField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int certificateCount {
+ get {
+ return this.certificateCountField;
+ }
+ set {
+ this.certificateCountField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayItemAttribute("certificateInformation", IsNullable=false)]
+ public CertificateSearchResultType[] certificateList {
+ get {
+ return this.certificateListField;
+ }
+ set {
+ this.certificateListField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool moreCertificateAvailable {
+ get {
+ return this.moreCertificateAvailableField;
+ }
+ set {
+ this.moreCertificateAvailableField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool moreCertificateAvailableSpecified {
+ get {
+ return this.moreCertificateAvailableFieldSpecified;
+ }
+ set {
+ this.moreCertificateAvailableFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class SearchCertificateRequestType {
+
+ private string clientTransactionIDField;
+
+ private string seatIdField;
+
+ private string accountIdField;
+
+ private string profileOIDField;
+
+ private string commonNameField;
+
+ private CertificateStatusEnum statusField;
+
+ private bool statusFieldSpecified;
+
+ private string emailAddressField;
+
+ private string serialNumberField;
+
+ private byte[] issuingCAField;
+
+ private long validFromField;
+
+ private bool validFromFieldSpecified;
+
+ private long validToField;
+
+ private bool validToFieldSpecified;
+
+ private int startIndexField;
+
+ private bool startIndexFieldSpecified;
+
+ private string versionField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string seatId {
+ get {
+ return this.seatIdField;
+ }
+ set {
+ this.seatIdField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string accountId {
+ get {
+ return this.accountIdField;
+ }
+ set {
+ this.accountIdField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string profileOID {
+ get {
+ return this.profileOIDField;
+ }
+ set {
+ this.profileOIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string commonName {
+ get {
+ return this.commonNameField;
+ }
+ set {
+ this.commonNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public CertificateStatusEnum status {
+ get {
+ return this.statusField;
+ }
+ set {
+ this.statusField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool statusSpecified {
+ get {
+ return this.statusFieldSpecified;
+ }
+ set {
+ this.statusFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string emailAddress {
+ get {
+ return this.emailAddressField;
+ }
+ set {
+ this.emailAddressField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serialNumber {
+ get {
+ return this.serialNumberField;
+ }
+ set {
+ this.serialNumberField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] issuingCA {
+ get {
+ return this.issuingCAField;
+ }
+ set {
+ this.issuingCAField = value;
+ }
+ }
+
+ /// <remarks/>
+ public long validFrom {
+ get {
+ return this.validFromField;
+ }
+ set {
+ this.validFromField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool validFromSpecified {
+ get {
+ return this.validFromFieldSpecified;
+ }
+ set {
+ this.validFromFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public long validTo {
+ get {
+ return this.validToField;
+ }
+ set {
+ this.validToField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool validToSpecified {
+ get {
+ return this.validToFieldSpecified;
+ }
+ set {
+ this.validToFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public int startIndex {
+ get {
+ return this.startIndexField;
+ }
+ set {
+ this.startIndexField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool startIndexSpecified {
+ get {
+ return this.startIndexFieldSpecified;
+ }
+ set {
+ this.startIndexFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class RequestKeyRecoveryResponseMessageType {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private int adminApprovalPendingCountField;
+
+ private bool adminApprovalPendingCountFieldSpecified;
+
+ private string pKCS12PasswordField;
+
+ private string[] pKCS12MessageField;
+
+ private string versionField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int adminApprovalPendingCount {
+ get {
+ return this.adminApprovalPendingCountField;
+ }
+ set {
+ this.adminApprovalPendingCountField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool adminApprovalPendingCountSpecified {
+ get {
+ return this.adminApprovalPendingCountFieldSpecified;
+ }
+ set {
+ this.adminApprovalPendingCountFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string pKCS12Password {
+ get {
+ return this.pKCS12PasswordField;
+ }
+ set {
+ this.pKCS12PasswordField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("pKCS12Message")]
+ public string[] pKCS12Message {
+ get {
+ return this.pKCS12MessageField;
+ }
+ set {
+ this.pKCS12MessageField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class RequestKeyRecoveryMessageType {
+
+ private string clientTransactionIDField;
+
+ private string pKCS12PasswordField;
+
+ private string certificateSerialNumberField;
+
+ private string certificateIssuerField;
+
+ private string adminIDField;
+
+ private string versionField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string pKCS12Password {
+ get {
+ return this.pKCS12PasswordField;
+ }
+ set {
+ this.pKCS12PasswordField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string certificateSerialNumber {
+ get {
+ return this.certificateSerialNumberField;
+ }
+ set {
+ this.certificateSerialNumberField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string certificateIssuer {
+ get {
+ return this.certificateIssuerField;
+ }
+ set {
+ this.certificateIssuerField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string adminID {
+ get {
+ return this.adminIDField;
+ }
+ set {
+ this.adminIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class BulkUpdateCertificateStatusResponseType {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private string versionField;
+
+ private int successCodeField;
+
+ private string successMsgField;
+
+ private int revocationCountField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int successCode {
+ get {
+ return this.successCodeField;
+ }
+ set {
+ this.successCodeField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string successMsg {
+ get {
+ return this.successMsgField;
+ }
+ set {
+ this.successMsgField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int revocationCount {
+ get {
+ return this.revocationCountField;
+ }
+ set {
+ this.revocationCountField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class BulkUpdateCertificateStatusRequestType {
+
+ private string clientTransactionIDField;
+
+ private string versionField;
+
+ private RevokeReasonCodeEnum revocationReasonField;
+
+ private bool revocationReasonFieldSpecified;
+
+ private string commentField;
+
+ private string[] itemsField;
+
+ private ItemsChoiceType[] itemsElementNameField;
+
+ private OperationTypeEnum operationTypeField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ public RevokeReasonCodeEnum revocationReason {
+ get {
+ return this.revocationReasonField;
+ }
+ set {
+ this.revocationReasonField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool revocationReasonSpecified {
+ get {
+ return this.revocationReasonFieldSpecified;
+ }
+ set {
+ this.revocationReasonFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string comment {
+ get {
+ return this.commentField;
+ }
+ set {
+ this.commentField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("certificateSerialNumber", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("profileOID", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("seatId", typeof(string))]
+ [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
+ public string[] Items {
+ get {
+ return this.itemsField;
+ }
+ set {
+ this.itemsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")]
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public ItemsChoiceType[] ItemsElementName {
+ get {
+ return this.itemsElementNameField;
+ }
+ set {
+ this.itemsElementNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public OperationTypeEnum operationType {
+ get {
+ return this.operationTypeField;
+ }
+ set {
+ this.operationTypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management", IncludeInSchema=false)]
+ public enum ItemsChoiceType {
+
+ /// <remarks/>
+ certificateSerialNumber,
+
+ /// <remarks/>
+ profileOID,
+
+ /// <remarks/>
+ seatId,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/management")]
+ public partial class UpdateCertificateStatusResponseType {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private string versionField;
+
+ private int successCodeField;
+
+ private string successMsgField;
+
+ private int revocationCountField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int successCode {
+ get {
+ return this.successCodeField;
+ }
+ set {
+ this.successCodeField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string successMsg {
+ get {
+ return this.successMsgField;
+ }
+ set {
+ this.successMsgField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int revocationCount {
+ get {
+ return this.revocationCountField;
+ }
+ set {
+ this.revocationCountField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void updateCertificateStatusCompletedEventHandler(object sender, updateCertificateStatusCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class updateCertificateStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal updateCertificateStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public UpdateCertificateStatusResponseType Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((UpdateCertificateStatusResponseType)(this.results[0]));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void bulkUpdateCertificateStatusCompletedEventHandler(object sender, bulkUpdateCertificateStatusCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class bulkUpdateCertificateStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal bulkUpdateCertificateStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public BulkUpdateCertificateStatusResponseType Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((BulkUpdateCertificateStatusResponseType)(this.results[0]));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void keyRecoveryCompletedEventHandler(object sender, keyRecoveryCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class keyRecoveryCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal keyRecoveryCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public RequestKeyRecoveryResponseMessageType Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((RequestKeyRecoveryResponseMessageType)(this.results[0]));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void searchCertificateCompletedEventHandler(object sender, searchCertificateCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class searchCertificateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal searchCertificateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public SearchCertificateResponseType Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((SearchCertificateResponseType)(this.results[0]));
+ }
+ }
+ }
+}
+
+#pragma warning restore 1591 \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/Reference.map b/utils/ipn_sqlclr/Web References/certificateManagementService/Reference.map
new file mode 100644
index 0000000..fea64f8
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/Reference.map
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Results>
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/CertificateManagementService.wsdl" filename="CertificateManagementService.wsdl" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/CertificateManagementService.xsd" filename="CertificateManagementService.xsd" />
+ </Results>
+</DiscoveryClientResultsFile> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/RequestKeyRecoveryResponseMessageType1.datasource b/utils/ipn_sqlclr/Web References/certificateManagementService/RequestKeyRecoveryResponseMessageType1.datasource
new file mode 100644
index 0000000..d971d87
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/RequestKeyRecoveryResponseMessageType1.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="RequestKeyRecoveryResponseMessageType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.certificateManagementService.RequestKeyRecoveryResponseMessageType, Web References.certificateManagementService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/SearchCertificateResponseType1.datasource b/utils/ipn_sqlclr/Web References/certificateManagementService/SearchCertificateResponseType1.datasource
new file mode 100644
index 0000000..128e0e4
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/SearchCertificateResponseType1.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="SearchCertificateResponseType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.certificateManagementService.SearchCertificateResponseType, Web References.certificateManagementService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/certificateManagementService/UpdateCertificateStatusResponseType1.datasource b/utils/ipn_sqlclr/Web References/certificateManagementService/UpdateCertificateStatusResponseType1.datasource
new file mode 100644
index 0000000..53bc7ff
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/certificateManagementService/UpdateCertificateStatusResponseType1.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="UpdateCertificateStatusResponseType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.certificateManagementService.UpdateCertificateStatusResponseType, Web References.certificateManagementService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.wsdl b/utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.wsdl
new file mode 100644
index 0000000..2c51dd3
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.wsdl
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:vscep="http://schemas.verisign.com/pkiservices/2009/07/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.verisign.com/pkiservices/2009/07/policy" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:import schemaLocation="CertificateEnrollmentPolicy.xsd" namespace="http://schemas.verisign.com/pkiservices/2009/07/policy" />
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="requestPoliciesMessage">
+ <wsdl:part name="request" element="vscep:getPolicies" />
+ </wsdl:message>
+ <wsdl:message name="requestPoliciesResponse">
+ <wsdl:part name="response" element="vscep:getPoliciesResponse" />
+ </wsdl:message>
+ <wsdl:portType name="policy">
+ <wsdl:operation name="requestPolicies">
+ <wsdl:input wsaw:Action="http://schemas.verisign.com/pkiservices/2009/07/policy/getPolicies" message="vscep:requestPoliciesMessage" />
+ <wsdl:output wsaw:Action="http://schemas.verisign.com/pkiservices/2009/07/policy/getPoliciesResponse" message="vscep:requestPoliciesResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="requestPoliciesServiceSOAP" type="vscep:policy">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="requestPolicies">
+ <soap:operation soapAction="http://schemas.verisign.com/pkiservices/2009/07/policy/requestPolicies" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="policyService">
+ <wsdl:port name="requestPoliciesServiceSOAP" binding="vscep:requestPoliciesServiceSOAP">
+ <soap:address location="https://pki-ws.symauth.com/pki-ws/policyService" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.xsd b/utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.xsd
new file mode 100644
index 0000000..6e58e09
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/policyService/CertificateEnrollmentPolicy.xsd
@@ -0,0 +1,388 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:vscep="http://schemas.verisign.com/pkiservices/2009/07/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified" targetNamespace="http://schemas.verisign.com/pkiservices/2009/07/policy" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ XML Schema for policyService Web Services
+ version 2.0
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="getPolicies">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="version" type="vscep:VersionType" />
+ <xs:element minOccurs="0" name="clientTransactionID" type="vscep:TransactionIDType" />
+ <xs:element minOccurs="0" name="client" type="vscep:Client" />
+ <xs:element name="requestFilter" nillable="true" type="vscep:RequestFilter" />
+ <xs:element minOccurs="0" name="signResponse" type="xs:boolean" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:simpleType name="VersionType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d{1,3}\.\d{0,3}" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TransactionIDType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="40" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="Client">
+ <xs:sequence>
+ <xs:element name="lastUpdatetime" nillable="true" type="xs:dateTime" />
+ <xs:element name="preferredLanguage" nillable="true" type="xs:language" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RequestFilter">
+ <xs:sequence>
+ <xs:element name="policyIDs" nillable="true" type="vscep:FilterOIDCollection" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="FilterOIDCollection">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="oid" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="getPoliciesResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vscep:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="vscep:TransactionIDType" />
+ <xs:element name="response" type="vscep:Response" />
+ <xs:element name="cAs" nillable="true" type="vscep:CACollection" />
+ <xs:element name="oIDs" nillable="true" type="vscep:OIDCollection" />
+ <xs:element minOccurs="0" name="signedEnrollmentPolicy" type="xs:base64Binary" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="Response">
+ <xs:sequence>
+ <xs:element name="policyID" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="1" name="policyFriendlyName" type="xs:string" />
+ <xs:element name="nextUpdateHours" nillable="true" type="xs:unsignedInt" />
+ <xs:element name="policiesNotChanged" type="xs:boolean" />
+ <xs:element name="policies" nillable="true" type="vscep:PolicyCollection" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CACollection">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="cA" type="vscep:CA" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CA">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="uris" type="xs:anyURI" />
+ <xs:element name="certificate" type="xs:base64Binary" />
+ <xs:element name="cAIssuerName" nillable="true" type="xs:string" />
+ <xs:element name="cAReferenceID" type="xs:int" />
+ <xs:element name="cAType" nillable="true" type="vscep:CAType" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="intermediateCACertificates" type="xs:base64Binary" />
+ <xs:element name="rootCACertificate" type="xs:base64Binary" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OIDCollection">
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="oID" type="vscep:OID" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OID">
+ <xs:sequence>
+ <xs:element name="value" type="xs:string" />
+ <xs:element name="oIDReferenceID" type="xs:int" />
+ <xs:element name="group" type="xs:unsignedInt" />
+ <xs:element name="defaultName" nillable="true" type="xs:string" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PolicyCollection">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="policy" type="vscep:CertificateEnrollmentPolicy" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CertificateEnrollmentPolicy">
+ <xs:sequence>
+ <xs:element name="policyOIDReference" type="xs:int" />
+ <xs:element name="cAs" type="vscep:CAReferenceCollection" />
+ <xs:element name="attributes" type="vscep:Attributes" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CAReferenceCollection">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="cAReference" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Attributes">
+ <xs:sequence>
+ <xs:element name="policySchema" type="xs:int" />
+ <xs:element name="certificateValidity" type="vscep:CertificateValidity" />
+ <xs:element minOccurs="0" maxOccurs="1" name="certificateOverrideValidity" type="vscep:OverrideValidity" />
+ <xs:element name="subjectNameInfo" nillable="true" type="vscep:subjectName" />
+ <xs:element name="extensions" nillable="true" type="vscep:Extensions" />
+ <xs:element name="privateKeyAttributes" type="vscep:PrivateKeyInfo" />
+ <xs:element name="clientPolicy" nillable="true" type="vscep:ClientPolicy" />
+ <xs:element minOccurs="0" maxOccurs="1" name="systemInfo" type="vscep:SystemInformation" />
+ <xs:element name="rAPolicy" nillable="true" type="vscep:RAPolicy" />
+ <xs:element minOccurs="0" name="seatIdInfo" type="vscep:SeatInfoType" />
+ <xs:element name="applicationInstructions" nillable="true" type="vscep:ApplicationInstructionsType" />
+ <xs:element name="deploymentMode" type="xs:string" />
+ <xs:element name="status" type="xs:string" />
+ <xs:element name="migrationOIDs" nillable="true" type="vscep:MigrationOIDCollection" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SystemInformation">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="searchCertificateData" type="vscep:SearchCertificateData" />
+ <xs:element minOccurs="0" maxOccurs="1" name="cACertPublish" type="vscep:PublishCert" />
+ <xs:element minOccurs="0" maxOccurs="1" name="cACertPublishNameValuePair" type="vscep:CACertPublishNameValuePair" />
+ <xs:element name="certificateDeliveryFormat" type="vscep:DeliveryFormat" />
+ <xs:element minOccurs="0" name="adminInfo" type="vscep:PersonalInfoType" />
+ <xs:element name="serviceEndpointList" nillable="true" type="vscep:ServiceEndpointListType" />
+ <xs:element name="duplicateCertPolicy" nillable="true" type="xs:string" />
+ <xs:element name="supersededPolicyOID" nillable="true" type="xs:string" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="MigrationOIDCollection">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="migratedFromOID" type="xs:string" />
+ <xs:element name="migratedToOID" nillable="true" type="xs:string" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PersonalInfoType">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" />
+ <xs:element name="email" type="xs:string" />
+ <xs:element name="phone" nillable="true" type="xs:string" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ServiceEndpointListType">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="serviceEndpoint" type="vscep:ServiceEndpointType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ServiceEndpointType">
+ <xs:sequence>
+ <xs:element name="type" type="xs:string" />
+ <xs:element name="endpointURI" type="xs:anyURI" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SeatInfoType">
+ <xs:sequence>
+ <xs:element name="attributeNameValue" type="vscep:AttributeValueType" />
+ <xs:element name="attributeNameValueProperty" type="vscep:AttributeNameValuePropertyType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ApplicationInstructionsType">
+ <xs:sequence>
+ <xs:element name="fileContentType" type="xs:string" />
+ <xs:element name="url" type="xs:anyURI" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="DeliveryFormat">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" />
+ <xs:enumeration value="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PKCS7" />
+ <xs:enumeration value="http://schemas.verisign.com/pkiservices/2009/07/PKCS12" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CACertPublishNameValuePair">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="$publish_flag" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="SearchCertificateData">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="searchAttributeNameValuePair" type="vscep:AttributeNameValuePairType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CertificateValidity">
+ <xs:sequence>
+ <xs:element name="validityPeriodDays" type="xs:unsignedLong" />
+ <xs:element name="renewalPeriodDays" type="xs:unsignedLong" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OverrideValidity">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="overrideFlag" type="xs:boolean" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="overrideNameValuePair" type="vscep:validityNameValuePairNames" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="validityNameValuePairNames">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="$overrideValidityDays" />
+ <xs:enumeration value="$overrideValidityStartDate" />
+ <xs:enumeration value="$overrideValidityEndDate" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="PrivateKeyInfo">
+ <xs:sequence>
+ <xs:element name="keysize" type="xs:int" />
+ <xs:element minOccurs="0" name="keyEscrowPolicy" type="vscep:KeyEscrowPolicyType" />
+ <xs:element name="keyexportable" type="xs:boolean" />
+ <xs:element minOccurs="0" name="keyprotect" type="xs:boolean" />
+ <xs:element name="algorithmOIDReference" nillable="true" type="xs:int" />
+ <xs:element name="cryptoProviders" nillable="true" type="vscep:CryptoProviders" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="KeyEscrowPolicyType">
+ <xs:sequence>
+ <xs:element name="keyEscrowEnabled" type="xs:boolean" />
+ <xs:element minOccurs="0" name="keyRecoveryDualAdminApprovalRequired" type="xs:boolean" />
+ <xs:element name="keyEscrowDeploymentMode" nillable="true" type="xs:string" />
+ <xs:element name="doKeyRecoveryForAdditionalEnrollRequest" nillable="true" type="xs:boolean" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CryptoProviders">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="provider" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ClientPolicy">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientName" type="xs:string" />
+ <xs:element minOccurs="0" name="maxPinLength" type="xs:int" />
+ <xs:element minOccurs="0" name="minPinLength" type="xs:int" />
+ <xs:element minOccurs="0" name="noOfBadAttempts" type="xs:int" />
+ <xs:element minOccurs="0" name="certRenewalOverlap" type="xs:int" />
+ <xs:element minOccurs="0" name="renewExpiredCerts" type="xs:boolean" />
+ <xs:element minOccurs="0" name="certRenewalMsg" type="xs:string" />
+ <xs:element minOccurs="0" name="certCleanUp" type="xs:boolean" />
+ <xs:element name="certPublish" type="vscep:PublishCert" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="PublishCert">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="yes" />
+ <xs:enumeration value="no" />
+ <xs:enumeration value="clientProvided" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="RAPolicy">
+ <xs:sequence>
+ <xs:element name="registerUser" type="xs:boolean" />
+ <xs:element name="verifyUser" type="xs:boolean" />
+ <xs:element name="publishCert" type="vscep:PublishCert" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="authorizationInfo" type="vscep:AuthorizationInfoType" />
+ <xs:element name="pollingPolicy" nillable="true" type="vscep:PollingPolicyType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AuthorizationInfoType">
+ <xs:sequence>
+ <xs:element name="userAuthorizationCollection" type="vscep:UserAuthorizationCollection" />
+ <xs:element name="directoryInfo" nillable="true" type="vscep:DirectoryInfoType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DirectoryInfoType">
+ <xs:sequence>
+ <xs:element name="directoryType" type="xs:string" />
+ <xs:element name="domainName" type="xs:string" />
+ <xs:choice>
+ <xs:element name="ipAddress" type="xs:string" />
+ <xs:element name="hostName" type="xs:string" />
+ </xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="UserAuthorizationCollection">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="authorizedGroup" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PollingPolicyType">
+ <xs:sequence>
+ <xs:element name="gatewayPollingTime" type="vscep:PollingTimeType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PollingTimeType">
+ <xs:sequence>
+ <xs:element name="nextUpdateHours" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Extensions">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Extension" type="vscep:Extension" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="Extension">
+ <xs:sequence>
+ <xs:element name="extensionOIDReference" type="xs:int" />
+ <xs:element name="extensionCriticalFlag" type="xs:boolean" />
+ <xs:element name="extensionSyntax" nillable="true" type="vscep:extensionSyntax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="extensionSyntax">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="extensionAttributeNameValuePair" type="vscep:AttributeNameValuePairType" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="extensionValue" type="vscep:extensionValueType" />
+ </xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AttributeNameValuePairType">
+ <xs:sequence>
+ <xs:element name="attributeName" type="xs:string" />
+ <xs:element name="attributeNameValue" nillable="true" type="vscep:AttributeValueType" />
+ <xs:element minOccurs="0" name="attributeNameValueProperty" type="vscep:AttributeNameValuePropertyType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AttributeValueType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="mandatory" type="xs:boolean" />
+ <xs:attribute name="type" type="xs:string" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="AttributeNameValuePropertyType">
+ <xs:sequence>
+ <xs:element name="value" nillable="true" type="xs:string" />
+ <xs:element minOccurs="0" name="source" type="xs:string" />
+ <xs:element minOccurs="0" name="sourceAttributeName" type="xs:string" />
+ <xs:element name="mandatory" nillable="true" type="xs:boolean" />
+ <xs:element name="overridable" nillable="true" type="xs:boolean" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="extensionValueType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="mandatory" type="xs:boolean" />
+ <xs:attribute name="type" type="xs:string" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="subjectName">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="subjectNameAttribute" type="vscep:subjectNameAttribute" />
+ <xs:element name="overrideSubjectNameFormat" type="xs:boolean" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="subjectNameAttribute">
+ <xs:sequence>
+ <xs:element name="subjectNameAttributecount" nillable="true" type="xs:int" />
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="subjectNameAttributeNameValuePair" type="vscep:AttributeNameValuePairType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="CAType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="public" />
+ <xs:enumeration value="private" />
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/policyService/Reference.cs b/utils/ipn_sqlclr/Web References/policyService/Reference.cs
new file mode 100644
index 0000000..a6973d8
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/policyService/Reference.cs
@@ -0,0 +1,2512 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.34014
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+//
+// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.34014.
+//
+
+using System.Security.Cryptography.X509Certificates;
+using System.Xml;
+using ipn_sqlclr;
+
+#pragma warning disable 1591
+
+namespace policyService {
+ using System;
+ using System.Web.Services;
+ using System.Diagnostics;
+ using System.Web.Services.Protocols;
+ using System.Xml.Serialization;
+ using System.ComponentModel;
+
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Web.Services.WebServiceBindingAttribute(Name="requestPoliciesServiceSOAP", Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class policyService : XmlReaderSpyService
+ {
+
+ private System.Threading.SendOrPostCallback requestPoliciesOperationCompleted;
+
+ /// <remarks/>
+ public policyService(X509Certificate clientCert, string url) : base(clientCert, url)
+ {
+ }
+
+ /// <remarks/>
+ public event requestPoliciesCompletedEventHandler requestPoliciesCompleted;
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.verisign.com/pkiservices/2009/07/policy/requestPolicies", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("getPoliciesResponse", Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public getPoliciesResponse requestPolicies([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")] getPolicies getPolicies) {
+ object[] results = this.Invoke("requestPolicies", new object[] {
+ getPolicies});
+ return ((getPoliciesResponse)(results[0]));
+ }
+
+ /// <remarks/>
+ public void requestPoliciesAsync(getPolicies getPolicies) {
+ this.requestPoliciesAsync(getPolicies, null);
+ }
+
+ /// <remarks/>
+ public void requestPoliciesAsync(getPolicies getPolicies, object userState) {
+ if ((this.requestPoliciesOperationCompleted == null)) {
+ this.requestPoliciesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnrequestPoliciesOperationCompleted);
+ }
+ this.InvokeAsync("requestPolicies", new object[] {
+ getPolicies}, this.requestPoliciesOperationCompleted, userState);
+ }
+
+ private void OnrequestPoliciesOperationCompleted(object arg) {
+ if ((this.requestPoliciesCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.requestPoliciesCompleted(this, new requestPoliciesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ public new void CancelAsync(object userState) {
+ base.CancelAsync(userState);
+ }
+
+ private bool IsLocalFileSystemWebService(string url) {
+ if (((url == null)
+ || (url == string.Empty))) {
+ return false;
+ }
+ System.Uri wsUri = new System.Uri(url);
+ if (((wsUri.Port >= 1024)
+ && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class getPolicies {
+
+ private string versionField;
+
+ private string clientTransactionIDField;
+
+ private Client clientField;
+
+ private RequestFilter requestFilterField;
+
+ private bool signResponseField;
+
+ private bool signResponseFieldSpecified;
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public Client client {
+ get {
+ return this.clientField;
+ }
+ set {
+ this.clientField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public RequestFilter requestFilter {
+ get {
+ return this.requestFilterField;
+ }
+ set {
+ this.requestFilterField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool signResponse {
+ get {
+ return this.signResponseField;
+ }
+ set {
+ this.signResponseField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool signResponseSpecified {
+ get {
+ return this.signResponseFieldSpecified;
+ }
+ set {
+ this.signResponseFieldSpecified = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class Client {
+
+ private System.Nullable<System.DateTime> lastUpdatetimeField;
+
+ private string preferredLanguageField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<System.DateTime> lastUpdatetime {
+ get {
+ return this.lastUpdatetimeField;
+ }
+ set {
+ this.lastUpdatetimeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="language", IsNullable=true)]
+ public string preferredLanguage {
+ get {
+ return this.preferredLanguageField;
+ }
+ set {
+ this.preferredLanguageField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class OID {
+
+ private string valueField;
+
+ private int oIDReferenceIDField;
+
+ private uint groupField;
+
+ private string defaultNameField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int oIDReferenceID {
+ get {
+ return this.oIDReferenceIDField;
+ }
+ set {
+ this.oIDReferenceIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public uint group {
+ get {
+ return this.groupField;
+ }
+ set {
+ this.groupField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string defaultName {
+ get {
+ return this.defaultNameField;
+ }
+ set {
+ this.defaultNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class CA {
+
+ private string[] urisField;
+
+ private byte[] certificateField;
+
+ private string cAIssuerNameField;
+
+ private int cAReferenceIDField;
+
+ private System.Nullable<CAType> cATypeField;
+
+ private byte[][] intermediateCACertificatesField;
+
+ private byte[] rootCACertificateField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("uris", DataType="anyURI")]
+ public string[] uris {
+ get {
+ return this.urisField;
+ }
+ set {
+ this.urisField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] certificate {
+ get {
+ return this.certificateField;
+ }
+ set {
+ this.certificateField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string cAIssuerName {
+ get {
+ return this.cAIssuerNameField;
+ }
+ set {
+ this.cAIssuerNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int cAReferenceID {
+ get {
+ return this.cAReferenceIDField;
+ }
+ set {
+ this.cAReferenceIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<CAType> cAType {
+ get {
+ return this.cATypeField;
+ }
+ set {
+ this.cATypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("intermediateCACertificates", DataType="base64Binary")]
+ public byte[][] intermediateCACertificates {
+ get {
+ return this.intermediateCACertificatesField;
+ }
+ set {
+ this.intermediateCACertificatesField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] rootCACertificate {
+ get {
+ return this.rootCACertificateField;
+ }
+ set {
+ this.rootCACertificateField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public enum CAType {
+
+ /// <remarks/>
+ @public,
+
+ /// <remarks/>
+ @private,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class MigrationOIDCollection {
+
+ private string[] migratedFromOIDField;
+
+ private string migratedToOIDField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("migratedFromOID")]
+ public string[] migratedFromOID {
+ get {
+ return this.migratedFromOIDField;
+ }
+ set {
+ this.migratedFromOIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string migratedToOID {
+ get {
+ return this.migratedToOIDField;
+ }
+ set {
+ this.migratedToOIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class ApplicationInstructionsType {
+
+ private string fileContentTypeField;
+
+ private string urlField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string fileContentType {
+ get {
+ return this.fileContentTypeField;
+ }
+ set {
+ this.fileContentTypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI")]
+ public string url {
+ get {
+ return this.urlField;
+ }
+ set {
+ this.urlField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class SeatInfoType {
+
+ private AttributeValueType attributeNameValueField;
+
+ private AttributeNameValuePropertyType attributeNameValuePropertyField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public AttributeValueType attributeNameValue {
+ get {
+ return this.attributeNameValueField;
+ }
+ set {
+ this.attributeNameValueField = value;
+ }
+ }
+
+ /// <remarks/>
+ public AttributeNameValuePropertyType attributeNameValueProperty {
+ get {
+ return this.attributeNameValuePropertyField;
+ }
+ set {
+ this.attributeNameValuePropertyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class AttributeValueType {
+
+ private bool mandatoryField;
+
+ private bool mandatoryFieldSpecified;
+
+ private string typeField;
+
+ private string valueField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool mandatory {
+ get {
+ return this.mandatoryField;
+ }
+ set {
+ this.mandatoryField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool mandatorySpecified {
+ get {
+ return this.mandatoryFieldSpecified;
+ }
+ set {
+ this.mandatoryFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlTextAttribute()]
+ public string Value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class AttributeNameValuePropertyType {
+
+ private string valueField;
+
+ private string sourceField;
+
+ private string sourceAttributeNameField;
+
+ private System.Nullable<bool> mandatoryField;
+
+ private System.Nullable<bool> overridableField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string source {
+ get {
+ return this.sourceField;
+ }
+ set {
+ this.sourceField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string sourceAttributeName {
+ get {
+ return this.sourceAttributeNameField;
+ }
+ set {
+ this.sourceAttributeNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<bool> mandatory {
+ get {
+ return this.mandatoryField;
+ }
+ set {
+ this.mandatoryField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<bool> overridable {
+ get {
+ return this.overridableField;
+ }
+ set {
+ this.overridableField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class PollingTimeType {
+
+ private int nextUpdateHoursField;
+
+ /// <remarks/>
+ public int nextUpdateHours {
+ get {
+ return this.nextUpdateHoursField;
+ }
+ set {
+ this.nextUpdateHoursField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class PollingPolicyType {
+
+ private PollingTimeType gatewayPollingTimeField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public PollingTimeType gatewayPollingTime {
+ get {
+ return this.gatewayPollingTimeField;
+ }
+ set {
+ this.gatewayPollingTimeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class DirectoryInfoType {
+
+ private string directoryTypeField;
+
+ private string domainNameField;
+
+ private string itemField;
+
+ private ItemChoiceType itemElementNameField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string directoryType {
+ get {
+ return this.directoryTypeField;
+ }
+ set {
+ this.directoryTypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string domainName {
+ get {
+ return this.domainNameField;
+ }
+ set {
+ this.domainNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("hostName", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("ipAddress", typeof(string))]
+ [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
+ public string Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public ItemChoiceType ItemElementName {
+ get {
+ return this.itemElementNameField;
+ }
+ set {
+ this.itemElementNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy", IncludeInSchema=false)]
+ public enum ItemChoiceType {
+
+ /// <remarks/>
+ hostName,
+
+ /// <remarks/>
+ ipAddress,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class AuthorizationInfoType {
+
+ private string[] userAuthorizationCollectionField;
+
+ private DirectoryInfoType directoryInfoField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayItemAttribute("authorizedGroup", IsNullable=false)]
+ public string[] userAuthorizationCollection {
+ get {
+ return this.userAuthorizationCollectionField;
+ }
+ set {
+ this.userAuthorizationCollectionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public DirectoryInfoType directoryInfo {
+ get {
+ return this.directoryInfoField;
+ }
+ set {
+ this.directoryInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class RAPolicy {
+
+ private bool registerUserField;
+
+ private bool verifyUserField;
+
+ private PublishCert publishCertField;
+
+ private AuthorizationInfoType[] authorizationInfoField;
+
+ private PollingPolicyType pollingPolicyField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public bool registerUser {
+ get {
+ return this.registerUserField;
+ }
+ set {
+ this.registerUserField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool verifyUser {
+ get {
+ return this.verifyUserField;
+ }
+ set {
+ this.verifyUserField = value;
+ }
+ }
+
+ /// <remarks/>
+ public PublishCert publishCert {
+ get {
+ return this.publishCertField;
+ }
+ set {
+ this.publishCertField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("authorizationInfo")]
+ public AuthorizationInfoType[] authorizationInfo {
+ get {
+ return this.authorizationInfoField;
+ }
+ set {
+ this.authorizationInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public PollingPolicyType pollingPolicy {
+ get {
+ return this.pollingPolicyField;
+ }
+ set {
+ this.pollingPolicyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public enum PublishCert {
+
+ /// <remarks/>
+ yes,
+
+ /// <remarks/>
+ no,
+
+ /// <remarks/>
+ clientProvided,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class ServiceEndpointType {
+
+ private string typeField;
+
+ private string endpointURIField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI")]
+ public string endpointURI {
+ get {
+ return this.endpointURIField;
+ }
+ set {
+ this.endpointURIField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class PersonalInfoType {
+
+ private string nameField;
+
+ private string emailField;
+
+ private string phoneField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string name {
+ get {
+ return this.nameField;
+ }
+ set {
+ this.nameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string email {
+ get {
+ return this.emailField;
+ }
+ set {
+ this.emailField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string phone {
+ get {
+ return this.phoneField;
+ }
+ set {
+ this.phoneField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class SystemInformation {
+
+ private AttributeNameValuePairType[] searchCertificateDataField;
+
+ private PublishCert cACertPublishField;
+
+ private bool cACertPublishFieldSpecified;
+
+ private CACertPublishNameValuePair cACertPublishNameValuePairField;
+
+ private bool cACertPublishNameValuePairFieldSpecified;
+
+ private DeliveryFormat certificateDeliveryFormatField;
+
+ private PersonalInfoType adminInfoField;
+
+ private ServiceEndpointType[] serviceEndpointListField;
+
+ private string duplicateCertPolicyField;
+
+ private string supersededPolicyOIDField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayItemAttribute("searchAttributeNameValuePair", IsNullable=false)]
+ public AttributeNameValuePairType[] searchCertificateData {
+ get {
+ return this.searchCertificateDataField;
+ }
+ set {
+ this.searchCertificateDataField = value;
+ }
+ }
+
+ /// <remarks/>
+ public PublishCert cACertPublish {
+ get {
+ return this.cACertPublishField;
+ }
+ set {
+ this.cACertPublishField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool cACertPublishSpecified {
+ get {
+ return this.cACertPublishFieldSpecified;
+ }
+ set {
+ this.cACertPublishFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public CACertPublishNameValuePair cACertPublishNameValuePair {
+ get {
+ return this.cACertPublishNameValuePairField;
+ }
+ set {
+ this.cACertPublishNameValuePairField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool cACertPublishNameValuePairSpecified {
+ get {
+ return this.cACertPublishNameValuePairFieldSpecified;
+ }
+ set {
+ this.cACertPublishNameValuePairFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public DeliveryFormat certificateDeliveryFormat {
+ get {
+ return this.certificateDeliveryFormatField;
+ }
+ set {
+ this.certificateDeliveryFormatField = value;
+ }
+ }
+
+ /// <remarks/>
+ public PersonalInfoType adminInfo {
+ get {
+ return this.adminInfoField;
+ }
+ set {
+ this.adminInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute("serviceEndpoint", IsNullable=false)]
+ public ServiceEndpointType[] serviceEndpointList {
+ get {
+ return this.serviceEndpointListField;
+ }
+ set {
+ this.serviceEndpointListField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string duplicateCertPolicy {
+ get {
+ return this.duplicateCertPolicyField;
+ }
+ set {
+ this.duplicateCertPolicyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string supersededPolicyOID {
+ get {
+ return this.supersededPolicyOIDField;
+ }
+ set {
+ this.supersededPolicyOIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class AttributeNameValuePairType {
+
+ private string attributeNameField;
+
+ private AttributeValueType attributeNameValueField;
+
+ private AttributeNameValuePropertyType attributeNameValuePropertyField;
+
+ /// <remarks/>
+ public string attributeName {
+ get {
+ return this.attributeNameField;
+ }
+ set {
+ this.attributeNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public AttributeValueType attributeNameValue {
+ get {
+ return this.attributeNameValueField;
+ }
+ set {
+ this.attributeNameValueField = value;
+ }
+ }
+
+ /// <remarks/>
+ public AttributeNameValuePropertyType attributeNameValueProperty {
+ get {
+ return this.attributeNameValuePropertyField;
+ }
+ set {
+ this.attributeNameValuePropertyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public enum CACertPublishNameValuePair {
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("$publish_flag")]
+ publish_flag,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public enum DeliveryFormat {
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X5" +
+ "09v3")]
+ httpdocsoasisopenorgwss200401oasis200401wssx509tokenprofile10X509v3,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PK" +
+ "CS7")]
+ httpdocsoasisopenorgwss200401oasis200401wssx509tokenprofile10PKCS7,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://schemas.verisign.com/pkiservices/2009/07/PKCS12")]
+ httpschemasverisigncompkiservices200907PKCS12,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class ClientPolicy {
+
+ private string clientNameField;
+
+ private int maxPinLengthField;
+
+ private bool maxPinLengthFieldSpecified;
+
+ private int minPinLengthField;
+
+ private bool minPinLengthFieldSpecified;
+
+ private int noOfBadAttemptsField;
+
+ private bool noOfBadAttemptsFieldSpecified;
+
+ private int certRenewalOverlapField;
+
+ private bool certRenewalOverlapFieldSpecified;
+
+ private bool renewExpiredCertsField;
+
+ private bool renewExpiredCertsFieldSpecified;
+
+ private string certRenewalMsgField;
+
+ private bool certCleanUpField;
+
+ private bool certCleanUpFieldSpecified;
+
+ private PublishCert certPublishField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string clientName {
+ get {
+ return this.clientNameField;
+ }
+ set {
+ this.clientNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public int maxPinLength {
+ get {
+ return this.maxPinLengthField;
+ }
+ set {
+ this.maxPinLengthField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool maxPinLengthSpecified {
+ get {
+ return this.maxPinLengthFieldSpecified;
+ }
+ set {
+ this.maxPinLengthFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public int minPinLength {
+ get {
+ return this.minPinLengthField;
+ }
+ set {
+ this.minPinLengthField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool minPinLengthSpecified {
+ get {
+ return this.minPinLengthFieldSpecified;
+ }
+ set {
+ this.minPinLengthFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public int noOfBadAttempts {
+ get {
+ return this.noOfBadAttemptsField;
+ }
+ set {
+ this.noOfBadAttemptsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool noOfBadAttemptsSpecified {
+ get {
+ return this.noOfBadAttemptsFieldSpecified;
+ }
+ set {
+ this.noOfBadAttemptsFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public int certRenewalOverlap {
+ get {
+ return this.certRenewalOverlapField;
+ }
+ set {
+ this.certRenewalOverlapField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool certRenewalOverlapSpecified {
+ get {
+ return this.certRenewalOverlapFieldSpecified;
+ }
+ set {
+ this.certRenewalOverlapFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool renewExpiredCerts {
+ get {
+ return this.renewExpiredCertsField;
+ }
+ set {
+ this.renewExpiredCertsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool renewExpiredCertsSpecified {
+ get {
+ return this.renewExpiredCertsFieldSpecified;
+ }
+ set {
+ this.renewExpiredCertsFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string certRenewalMsg {
+ get {
+ return this.certRenewalMsgField;
+ }
+ set {
+ this.certRenewalMsgField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool certCleanUp {
+ get {
+ return this.certCleanUpField;
+ }
+ set {
+ this.certCleanUpField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool certCleanUpSpecified {
+ get {
+ return this.certCleanUpFieldSpecified;
+ }
+ set {
+ this.certCleanUpFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public PublishCert certPublish {
+ get {
+ return this.certPublishField;
+ }
+ set {
+ this.certPublishField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class KeyEscrowPolicyType {
+
+ private bool keyEscrowEnabledField;
+
+ private bool keyRecoveryDualAdminApprovalRequiredField;
+
+ private bool keyRecoveryDualAdminApprovalRequiredFieldSpecified;
+
+ private string keyEscrowDeploymentModeField;
+
+ private System.Nullable<bool> doKeyRecoveryForAdditionalEnrollRequestField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public bool keyEscrowEnabled {
+ get {
+ return this.keyEscrowEnabledField;
+ }
+ set {
+ this.keyEscrowEnabledField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool keyRecoveryDualAdminApprovalRequired {
+ get {
+ return this.keyRecoveryDualAdminApprovalRequiredField;
+ }
+ set {
+ this.keyRecoveryDualAdminApprovalRequiredField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool keyRecoveryDualAdminApprovalRequiredSpecified {
+ get {
+ return this.keyRecoveryDualAdminApprovalRequiredFieldSpecified;
+ }
+ set {
+ this.keyRecoveryDualAdminApprovalRequiredFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public string keyEscrowDeploymentMode {
+ get {
+ return this.keyEscrowDeploymentModeField;
+ }
+ set {
+ this.keyEscrowDeploymentModeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<bool> doKeyRecoveryForAdditionalEnrollRequest {
+ get {
+ return this.doKeyRecoveryForAdditionalEnrollRequestField;
+ }
+ set {
+ this.doKeyRecoveryForAdditionalEnrollRequestField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class PrivateKeyInfo {
+
+ private int keysizeField;
+
+ private KeyEscrowPolicyType keyEscrowPolicyField;
+
+ private bool keyexportableField;
+
+ private bool keyprotectField;
+
+ private bool keyprotectFieldSpecified;
+
+ private System.Nullable<int> algorithmOIDReferenceField;
+
+ private string[] cryptoProvidersField;
+
+ /// <remarks/>
+ public int keysize {
+ get {
+ return this.keysizeField;
+ }
+ set {
+ this.keysizeField = value;
+ }
+ }
+
+ /// <remarks/>
+ public KeyEscrowPolicyType keyEscrowPolicy {
+ get {
+ return this.keyEscrowPolicyField;
+ }
+ set {
+ this.keyEscrowPolicyField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool keyexportable {
+ get {
+ return this.keyexportableField;
+ }
+ set {
+ this.keyexportableField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool keyprotect {
+ get {
+ return this.keyprotectField;
+ }
+ set {
+ this.keyprotectField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool keyprotectSpecified {
+ get {
+ return this.keyprotectFieldSpecified;
+ }
+ set {
+ this.keyprotectFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<int> algorithmOIDReference {
+ get {
+ return this.algorithmOIDReferenceField;
+ }
+ set {
+ this.algorithmOIDReferenceField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute("provider", IsNullable=false)]
+ public string[] cryptoProviders {
+ get {
+ return this.cryptoProvidersField;
+ }
+ set {
+ this.cryptoProvidersField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class extensionValueType {
+
+ private bool mandatoryField;
+
+ private bool mandatoryFieldSpecified;
+
+ private string typeField;
+
+ private string valueField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public bool mandatory {
+ get {
+ return this.mandatoryField;
+ }
+ set {
+ this.mandatoryField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool mandatorySpecified {
+ get {
+ return this.mandatoryFieldSpecified;
+ }
+ set {
+ this.mandatoryFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute()]
+ public string type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlTextAttribute()]
+ public string Value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class extensionSyntax {
+
+ private object[] itemsField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("extensionAttributeNameValuePair", typeof(AttributeNameValuePairType))]
+ [System.Xml.Serialization.XmlElementAttribute("extensionValue", typeof(extensionValueType))]
+ public object[] Items {
+ get {
+ return this.itemsField;
+ }
+ set {
+ this.itemsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class Extension {
+
+ private int extensionOIDReferenceField;
+
+ private bool extensionCriticalFlagField;
+
+ private extensionSyntax extensionSyntaxField;
+
+ /// <remarks/>
+ public int extensionOIDReference {
+ get {
+ return this.extensionOIDReferenceField;
+ }
+ set {
+ this.extensionOIDReferenceField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool extensionCriticalFlag {
+ get {
+ return this.extensionCriticalFlagField;
+ }
+ set {
+ this.extensionCriticalFlagField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public extensionSyntax extensionSyntax {
+ get {
+ return this.extensionSyntaxField;
+ }
+ set {
+ this.extensionSyntaxField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class subjectNameAttribute {
+
+ private System.Nullable<int> subjectNameAttributecountField;
+
+ private AttributeNameValuePairType[] subjectNameAttributeNameValuePairField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<int> subjectNameAttributecount {
+ get {
+ return this.subjectNameAttributecountField;
+ }
+ set {
+ this.subjectNameAttributecountField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("subjectNameAttributeNameValuePair")]
+ public AttributeNameValuePairType[] subjectNameAttributeNameValuePair {
+ get {
+ return this.subjectNameAttributeNameValuePairField;
+ }
+ set {
+ this.subjectNameAttributeNameValuePairField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class subjectName {
+
+ private subjectNameAttribute[] subjectNameAttributeField;
+
+ private bool overrideSubjectNameFormatField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("subjectNameAttribute")]
+ public subjectNameAttribute[] subjectNameAttribute {
+ get {
+ return this.subjectNameAttributeField;
+ }
+ set {
+ this.subjectNameAttributeField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool overrideSubjectNameFormat {
+ get {
+ return this.overrideSubjectNameFormatField;
+ }
+ set {
+ this.overrideSubjectNameFormatField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class OverrideValidity {
+
+ private bool overrideFlagField;
+
+ private bool overrideFlagFieldSpecified;
+
+ private validityNameValuePairNames[] overrideNameValuePairField;
+
+ /// <remarks/>
+ public bool overrideFlag {
+ get {
+ return this.overrideFlagField;
+ }
+ set {
+ this.overrideFlagField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool overrideFlagSpecified {
+ get {
+ return this.overrideFlagFieldSpecified;
+ }
+ set {
+ this.overrideFlagFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("overrideNameValuePair")]
+ public validityNameValuePairNames[] overrideNameValuePair {
+ get {
+ return this.overrideNameValuePairField;
+ }
+ set {
+ this.overrideNameValuePairField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public enum validityNameValuePairNames {
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("$overrideValidityDays")]
+ overrideValidityDays,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("$overrideValidityStartDate")]
+ overrideValidityStartDate,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("$overrideValidityEndDate")]
+ overrideValidityEndDate,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class CertificateValidity {
+
+ private ulong validityPeriodDaysField;
+
+ private ulong renewalPeriodDaysField;
+
+ /// <remarks/>
+ public ulong validityPeriodDays {
+ get {
+ return this.validityPeriodDaysField;
+ }
+ set {
+ this.validityPeriodDaysField = value;
+ }
+ }
+
+ /// <remarks/>
+ public ulong renewalPeriodDays {
+ get {
+ return this.renewalPeriodDaysField;
+ }
+ set {
+ this.renewalPeriodDaysField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class Attributes {
+
+ private int policySchemaField;
+
+ private CertificateValidity certificateValidityField;
+
+ private OverrideValidity certificateOverrideValidityField;
+
+ private subjectName subjectNameInfoField;
+
+ private Extension[] extensionsField;
+
+ private PrivateKeyInfo privateKeyAttributesField;
+
+ private ClientPolicy clientPolicyField;
+
+ private SystemInformation systemInfoField;
+
+ private RAPolicy rAPolicyField;
+
+ private SeatInfoType seatIdInfoField;
+
+ private ApplicationInstructionsType applicationInstructionsField;
+
+ private string deploymentModeField;
+
+ private string statusField;
+
+ private MigrationOIDCollection migrationOIDsField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public int policySchema {
+ get {
+ return this.policySchemaField;
+ }
+ set {
+ this.policySchemaField = value;
+ }
+ }
+
+ /// <remarks/>
+ public CertificateValidity certificateValidity {
+ get {
+ return this.certificateValidityField;
+ }
+ set {
+ this.certificateValidityField = value;
+ }
+ }
+
+ /// <remarks/>
+ public OverrideValidity certificateOverrideValidity {
+ get {
+ return this.certificateOverrideValidityField;
+ }
+ set {
+ this.certificateOverrideValidityField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public subjectName subjectNameInfo {
+ get {
+ return this.subjectNameInfoField;
+ }
+ set {
+ this.subjectNameInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
+ public Extension[] extensions {
+ get {
+ return this.extensionsField;
+ }
+ set {
+ this.extensionsField = value;
+ }
+ }
+
+ /// <remarks/>
+ public PrivateKeyInfo privateKeyAttributes {
+ get {
+ return this.privateKeyAttributesField;
+ }
+ set {
+ this.privateKeyAttributesField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public ClientPolicy clientPolicy {
+ get {
+ return this.clientPolicyField;
+ }
+ set {
+ this.clientPolicyField = value;
+ }
+ }
+
+ /// <remarks/>
+ public SystemInformation systemInfo {
+ get {
+ return this.systemInfoField;
+ }
+ set {
+ this.systemInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public RAPolicy rAPolicy {
+ get {
+ return this.rAPolicyField;
+ }
+ set {
+ this.rAPolicyField = value;
+ }
+ }
+
+ /// <remarks/>
+ public SeatInfoType seatIdInfo {
+ get {
+ return this.seatIdInfoField;
+ }
+ set {
+ this.seatIdInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public ApplicationInstructionsType applicationInstructions {
+ get {
+ return this.applicationInstructionsField;
+ }
+ set {
+ this.applicationInstructionsField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string deploymentMode {
+ get {
+ return this.deploymentModeField;
+ }
+ set {
+ this.deploymentModeField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string status {
+ get {
+ return this.statusField;
+ }
+ set {
+ this.statusField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public MigrationOIDCollection migrationOIDs {
+ get {
+ return this.migrationOIDsField;
+ }
+ set {
+ this.migrationOIDsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class CertificateEnrollmentPolicy {
+
+ private int policyOIDReferenceField;
+
+ private int[] cAsField;
+
+ private Attributes attributesField;
+
+ /// <remarks/>
+ public int policyOIDReference {
+ get {
+ return this.policyOIDReferenceField;
+ }
+ set {
+ this.policyOIDReferenceField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayItemAttribute("cAReference", IsNullable=false)]
+ public int[] cAs {
+ get {
+ return this.cAsField;
+ }
+ set {
+ this.cAsField = value;
+ }
+ }
+
+ /// <remarks/>
+ public Attributes attributes {
+ get {
+ return this.attributesField;
+ }
+ set {
+ this.attributesField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class Response {
+
+ private string policyIDField;
+
+ private string policyFriendlyNameField;
+
+ private System.Nullable<uint> nextUpdateHoursField;
+
+ private bool policiesNotChangedField;
+
+ private CertificateEnrollmentPolicy[] policiesField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ public string policyID {
+ get {
+ return this.policyIDField;
+ }
+ set {
+ this.policyIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string policyFriendlyName {
+ get {
+ return this.policyFriendlyNameField;
+ }
+ set {
+ this.policyFriendlyNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
+ public System.Nullable<uint> nextUpdateHours {
+ get {
+ return this.nextUpdateHoursField;
+ }
+ set {
+ this.nextUpdateHoursField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool policiesNotChanged {
+ get {
+ return this.policiesNotChangedField;
+ }
+ set {
+ this.policiesNotChangedField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute("policy", IsNullable=false)]
+ public CertificateEnrollmentPolicy[] policies {
+ get {
+ return this.policiesField;
+ }
+ set {
+ this.policiesField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class RequestFilter {
+
+ private string[] policyIDsField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute("oid", IsNullable=false)]
+ public string[] policyIDs {
+ get {
+ return this.policyIDsField;
+ }
+ set {
+ this.policyIDsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.verisign.com/pkiservices/2009/07/policy")]
+ public partial class getPoliciesResponse {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private Response responseField;
+
+ private CA[] cAsField;
+
+ private OID[] oIDsField;
+
+ private byte[] signedEnrollmentPolicyField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public Response response {
+ get {
+ return this.responseField;
+ }
+ set {
+ this.responseField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute("cA", IsNullable=false)]
+ public CA[] cAs {
+ get {
+ return this.cAsField;
+ }
+ set {
+ this.cAsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
+ [System.Xml.Serialization.XmlArrayItemAttribute("oID", IsNullable=false)]
+ public OID[] oIDs {
+ get {
+ return this.oIDsField;
+ }
+ set {
+ this.oIDsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] signedEnrollmentPolicy {
+ get {
+ return this.signedEnrollmentPolicyField;
+ }
+ set {
+ this.signedEnrollmentPolicyField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void requestPoliciesCompletedEventHandler(object sender, requestPoliciesCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class requestPoliciesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal requestPoliciesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public getPoliciesResponse Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((getPoliciesResponse)(this.results[0]));
+ }
+ }
+ }
+}
+
+#pragma warning restore 1591 \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/policyService/Reference.map b/utils/ipn_sqlclr/Web References/policyService/Reference.map
new file mode 100644
index 0000000..104777c
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/policyService/Reference.map
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Results>
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/CertificateEnrollmentPolicy.xsd" filename="CertificateEnrollmentPolicy.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/CertificateEnrollmentPolicy.wsdl" filename="CertificateEnrollmentPolicy.wsdl" />
+ </Results>
+</DiscoveryClientResultsFile> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/policyService/getPoliciesResponse.datasource b/utils/ipn_sqlclr/Web References/policyService/getPoliciesResponse.datasource
new file mode 100644
index 0000000..ab499c5
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/policyService/getPoliciesResponse.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="getPoliciesResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.policyService.getPoliciesResponse, Web References.policyService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/signDataService/PrepSignDataResponse.datasource b/utils/ipn_sqlclr/Web References/signDataService/PrepSignDataResponse.datasource
new file mode 100644
index 0000000..5132a84
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/signDataService/PrepSignDataResponse.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="PrepSignDataResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.signDataService.PrepSignDataResponse, Web References.signDataService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/signDataService/Reference.cs b/utils/ipn_sqlclr/Web References/signDataService/Reference.cs
new file mode 100644
index 0000000..6bac516
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/signDataService/Reference.cs
@@ -0,0 +1,793 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.34014
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+//
+// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.34014.
+//
+
+using System.Security.Cryptography.X509Certificates;
+
+#pragma warning disable 1591
+
+namespace signDataService {
+ using System;
+ using System.Web.Services;
+ using System.Diagnostics;
+ using System.Web.Services.Protocols;
+ using System.Xml.Serialization;
+ using System.ComponentModel;
+
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Web.Services.WebServiceBindingAttribute(Name="signDataServiceSOAP", Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class signDataService : System.Web.Services.Protocols.SoapHttpClientProtocol {
+
+ private System.Threading.SendOrPostCallback prepSignDataOperationCompleted;
+
+ private System.Threading.SendOrPostCallback verifySignedDataOperationCompleted;
+
+ private System.Threading.SendOrPostCallback noOpOperationCompleted;
+
+ private bool useDefaultCredentialsSetExplicitly;
+
+ /// <remarks/>
+ public signDataService(X509Certificate clientCert, string url)
+ {
+ this.Url = url;
+ ClientCertificates.Add(clientCert);
+ }
+
+ public new string Url {
+ get {
+ return base.Url;
+ }
+ set {
+ if ((((this.IsLocalFileSystemWebService(base.Url) == true)
+ && (this.useDefaultCredentialsSetExplicitly == false))
+ && (this.IsLocalFileSystemWebService(value) == false))) {
+ base.UseDefaultCredentials = false;
+ }
+ base.Url = value;
+ }
+ }
+
+ public new bool UseDefaultCredentials {
+ get {
+ return base.UseDefaultCredentials;
+ }
+ set {
+ base.UseDefaultCredentials = value;
+ this.useDefaultCredentialsSetExplicitly = true;
+ }
+ }
+
+ /// <remarks/>
+ public event prepSignDataCompletedEventHandler prepSignDataCompleted;
+
+ /// <remarks/>
+ public event verifySignedDataCompletedEventHandler verifySignedDataCompleted;
+
+ /// <remarks/>
+ public event noOpCompletedEventHandler noOpCompleted;
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.symantec.com/pkiservices/2011/11/sign/signDataOperations/prepSignD" +
+ "ataRequest", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("PrepSignDataResponse", Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public PrepSignDataResponse prepSignData([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")] PrepSignDataRequest PrepSignDataRequest) {
+ object[] results = this.Invoke("prepSignData", new object[] {
+ PrepSignDataRequest});
+ return ((PrepSignDataResponse)(results[0]));
+ }
+
+ /// <remarks/>
+ public void prepSignDataAsync(PrepSignDataRequest PrepSignDataRequest) {
+ this.prepSignDataAsync(PrepSignDataRequest, null);
+ }
+
+ /// <remarks/>
+ public void prepSignDataAsync(PrepSignDataRequest PrepSignDataRequest, object userState) {
+ if ((this.prepSignDataOperationCompleted == null)) {
+ this.prepSignDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnprepSignDataOperationCompleted);
+ }
+ this.InvokeAsync("prepSignData", new object[] {
+ PrepSignDataRequest}, this.prepSignDataOperationCompleted, userState);
+ }
+
+ private void OnprepSignDataOperationCompleted(object arg) {
+ if ((this.prepSignDataCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.prepSignDataCompleted(this, new prepSignDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.symantec.com/pkiservices/2011/11/sign/signDataOperations/verifySig" +
+ "nedDataRequest", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("VerifySignedDataResponse", Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public VerifySignedDataResponse verifySignedData([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")] VerifySignedDataRequest VerifySignedDataRequest) {
+ object[] results = this.Invoke("verifySignedData", new object[] {
+ VerifySignedDataRequest});
+ return ((VerifySignedDataResponse)(results[0]));
+ }
+
+ /// <remarks/>
+ public void verifySignedDataAsync(VerifySignedDataRequest VerifySignedDataRequest) {
+ this.verifySignedDataAsync(VerifySignedDataRequest, null);
+ }
+
+ /// <remarks/>
+ public void verifySignedDataAsync(VerifySignedDataRequest VerifySignedDataRequest, object userState) {
+ if ((this.verifySignedDataOperationCompleted == null)) {
+ this.verifySignedDataOperationCompleted = new System.Threading.SendOrPostCallback(this.OnverifySignedDataOperationCompleted);
+ }
+ this.InvokeAsync("verifySignedData", new object[] {
+ VerifySignedDataRequest}, this.verifySignedDataOperationCompleted, userState);
+ }
+
+ private void OnverifySignedDataOperationCompleted(object arg) {
+ if ((this.verifySignedDataCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.verifySignedDataCompleted(this, new verifySignedDataCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.symantec.com/pkiservices/2011/11/sign/signDataOperations/noOpReque" +
+ "st", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("ToBeSignedClientPKCS7BlobType", Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public ToBeSignedClientPKCS7BlobType noOp([System.Xml.Serialization.XmlElementAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")] ToBeSignedPKCS7BlobType ToBeSignedPKCS7BlobType) {
+ object[] results = this.Invoke("noOp", new object[] {
+ ToBeSignedPKCS7BlobType});
+ return ((ToBeSignedClientPKCS7BlobType)(results[0]));
+ }
+
+ /// <remarks/>
+ public void noOpAsync(ToBeSignedPKCS7BlobType ToBeSignedPKCS7BlobType) {
+ this.noOpAsync(ToBeSignedPKCS7BlobType, null);
+ }
+
+ /// <remarks/>
+ public void noOpAsync(ToBeSignedPKCS7BlobType ToBeSignedPKCS7BlobType, object userState) {
+ if ((this.noOpOperationCompleted == null)) {
+ this.noOpOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnoOpOperationCompleted);
+ }
+ this.InvokeAsync("noOp", new object[] {
+ ToBeSignedPKCS7BlobType}, this.noOpOperationCompleted, userState);
+ }
+
+ private void OnnoOpOperationCompleted(object arg) {
+ if ((this.noOpCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.noOpCompleted(this, new noOpCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ public new void CancelAsync(object userState) {
+ base.CancelAsync(userState);
+ }
+
+ private bool IsLocalFileSystemWebService(string url) {
+ if (((url == null)
+ || (url == string.Empty))) {
+ return false;
+ }
+ System.Uri wsUri = new System.Uri(url);
+ if (((wsUri.Port >= 1024)
+ && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class PrepSignDataRequest {
+
+ private string clientTransactionIDField;
+
+ private SignDataInfoType signDataInfoField;
+
+ private byte[] toBeSignDataField;
+
+ private string versionField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public SignDataInfoType signDataInfo {
+ get {
+ return this.signDataInfoField;
+ }
+ set {
+ this.signDataInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] toBeSignData {
+ get {
+ return this.toBeSignDataField;
+ }
+ set {
+ this.toBeSignDataField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class SignDataInfoType {
+
+ private string descriptionField;
+
+ private CertificateFilterType certificateFilterField;
+
+ private HashAlgorithmType hashAlgorithmField;
+
+ private string urlFilterField;
+
+ /// <remarks/>
+ public string description {
+ get {
+ return this.descriptionField;
+ }
+ set {
+ this.descriptionField = value;
+ }
+ }
+
+ /// <remarks/>
+ public CertificateFilterType certificateFilter {
+ get {
+ return this.certificateFilterField;
+ }
+ set {
+ this.certificateFilterField = value;
+ }
+ }
+
+ /// <remarks/>
+ public HashAlgorithmType hashAlgorithm {
+ get {
+ return this.hashAlgorithmField;
+ }
+ set {
+ this.hashAlgorithmField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string urlFilter {
+ get {
+ return this.urlFilterField;
+ }
+ set {
+ this.urlFilterField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class CertificateFilterType {
+
+ private string[] profileIDFilterSetField;
+
+ private UserFilterType[] userFilterSetField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayItemAttribute("profileOID", IsNullable=false)]
+ public string[] profileIDFilterSet {
+ get {
+ return this.profileIDFilterSetField;
+ }
+ set {
+ this.profileIDFilterSetField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlArrayItemAttribute("userFilter", IsNullable=false)]
+ public UserFilterType[] userFilterSet {
+ get {
+ return this.userFilterSetField;
+ }
+ set {
+ this.userFilterSetField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class UserFilterType {
+
+ private UserAttributeNameType userAttributeNameField;
+
+ private string userAttributeValueField;
+
+ private bool ignoreCaseField;
+
+ private bool ignoreCaseFieldSpecified;
+
+ /// <remarks/>
+ public UserAttributeNameType userAttributeName {
+ get {
+ return this.userAttributeNameField;
+ }
+ set {
+ this.userAttributeNameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string userAttributeValue {
+ get {
+ return this.userAttributeValueField;
+ }
+ set {
+ this.userAttributeValueField = value;
+ }
+ }
+
+ /// <remarks/>
+ public bool ignoreCase {
+ get {
+ return this.ignoreCaseField;
+ }
+ set {
+ this.ignoreCaseField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool ignoreCaseSpecified {
+ get {
+ return this.ignoreCaseFieldSpecified;
+ }
+ set {
+ this.ignoreCaseFieldSpecified = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public enum UserAttributeNameType {
+
+ /// <remarks/>
+ CN,
+
+ /// <remarks/>
+ Email,
+
+ /// <remarks/>
+ UID,
+
+ /// <remarks/>
+ rfc822Name,
+
+ /// <remarks/>
+ UPN,
+
+ /// <remarks/>
+ DNSName,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public enum HashAlgorithmType {
+
+ /// <remarks/>
+ sha512,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class PrepSignDataResponse {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private byte[] pkcs7SignedBlobField;
+
+ private string versionField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] pkcs7SignedBlob {
+ get {
+ return this.pkcs7SignedBlobField;
+ }
+ set {
+ this.pkcs7SignedBlobField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class VerifySignedDataRequest {
+
+ private string clientTransactionIDField;
+
+ private byte[] clientPkcs7SignedBlobField;
+
+ private string versionField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] clientPkcs7SignedBlob {
+ get {
+ return this.clientPkcs7SignedBlobField;
+ }
+ set {
+ this.clientPkcs7SignedBlobField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class VerifySignedDataResponse {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private StatusType statusField;
+
+ private string versionField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public StatusType status {
+ get {
+ return this.statusField;
+ }
+ set {
+ this.statusField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public enum StatusType {
+
+ /// <remarks/>
+ SUCCESS,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class ToBeSignedPKCS7BlobType {
+
+ private SignDataInfoType signDataInfoField;
+
+ private string organizationField;
+
+ private string requestIdField;
+
+ private byte[] hashValueField;
+
+ private string versionField;
+
+ /// <remarks/>
+ public SignDataInfoType signDataInfo {
+ get {
+ return this.signDataInfoField;
+ }
+ set {
+ this.signDataInfoField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string organization {
+ get {
+ return this.organizationField;
+ }
+ set {
+ this.organizationField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string requestId {
+ get {
+ return this.requestIdField;
+ }
+ set {
+ this.requestIdField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] hashValue {
+ get {
+ return this.hashValueField;
+ }
+ set {
+ this.hashValueField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.symantec.com/pkiservices/2011/11/sign")]
+ public partial class ToBeSignedClientPKCS7BlobType {
+
+ private byte[] pkcs7SignedBlobField;
+
+ private byte[] toBeSignDataField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] pkcs7SignedBlob {
+ get {
+ return this.pkcs7SignedBlobField;
+ }
+ set {
+ this.pkcs7SignedBlobField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
+ public byte[] toBeSignData {
+ get {
+ return this.toBeSignDataField;
+ }
+ set {
+ this.toBeSignDataField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void prepSignDataCompletedEventHandler(object sender, prepSignDataCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class prepSignDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal prepSignDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public PrepSignDataResponse Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((PrepSignDataResponse)(this.results[0]));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void verifySignedDataCompletedEventHandler(object sender, verifySignedDataCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class verifySignedDataCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal verifySignedDataCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public VerifySignedDataResponse Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((VerifySignedDataResponse)(this.results[0]));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void noOpCompletedEventHandler(object sender, noOpCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class noOpCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal noOpCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public ToBeSignedClientPKCS7BlobType Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((ToBeSignedClientPKCS7BlobType)(this.results[0]));
+ }
+ }
+ }
+}
+
+#pragma warning restore 1591 \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/signDataService/Reference.map b/utils/ipn_sqlclr/Web References/signDataService/Reference.map
new file mode 100644
index 0000000..5ee651a
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/signDataService/Reference.map
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Results>
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/SignerAPI.wsdl" filename="SignerAPI.wsdl" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/SignerAPI.xsd" filename="SignerAPI.xsd" />
+ </Results>
+</DiscoveryClientResultsFile> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/signDataService/SignerAPI.wsdl b/utils/ipn_sqlclr/Web References/signDataService/SignerAPI.wsdl
new file mode 100644
index 0000000..0fcae8c
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/signDataService/SignerAPI.wsdl
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:vssign="http://schemas.symantec.com/pkiservices/2011/11/sign" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.symantec.com/pkiservices/2011/11/sign" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:import schemaLocation="SignerAPI.xsd" namespace="http://schemas.symantec.com/pkiservices/2011/11/sign" />
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="prepSignDataRequest">
+ <wsdl:part name="request" element="vssign:PrepSignDataRequest" />
+ </wsdl:message>
+ <wsdl:message name="prepSignDataResponse">
+ <wsdl:part name="response" element="vssign:PrepSignDataResponse" />
+ </wsdl:message>
+ <wsdl:message name="verifySignedDataRequest">
+ <wsdl:part name="request" element="vssign:VerifySignedDataRequest" />
+ </wsdl:message>
+ <wsdl:message name="verifySignedDataResponse">
+ <wsdl:part name="response" element="vssign:VerifySignedDataResponse" />
+ </wsdl:message>
+ <wsdl:message name="noOpRequest">
+ <wsdl:part name="request" element="vssign:ToBeSignedPKCS7BlobType" />
+ </wsdl:message>
+ <wsdl:message name="noOpResponse">
+ <wsdl:part name="response" element="vssign:ToBeSignedClientPKCS7BlobType" />
+ </wsdl:message>
+ <wsdl:portType name="signDataOperations">
+ <wsdl:operation name="prepSignData">
+ <wsdl:input message="vssign:prepSignDataRequest" />
+ <wsdl:output message="vssign:prepSignDataResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="verifySignedData">
+ <wsdl:input message="vssign:verifySignedDataRequest" />
+ <wsdl:output message="vssign:verifySignedDataResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="noOp">
+ <wsdl:input message="vssign:noOpRequest" />
+ <wsdl:output message="vssign:noOpResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="signDataServiceSOAP" type="vssign:signDataOperations">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="prepSignData">
+ <soap:operation soapAction="http://schemas.symantec.com/pkiservices/2011/11/sign/signDataOperations/prepSignDataRequest" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="verifySignedData">
+ <soap:operation soapAction="http://schemas.symantec.com/pkiservices/2011/11/sign/signDataOperations/verifySignedDataRequest" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="noOp">
+ <soap:operation soapAction="http://schemas.symantec.com/pkiservices/2011/11/sign/signDataOperations/noOpRequest" style="document" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="signDataService">
+ <wsdl:port name="signDataServiceSOAP" binding="vssign:signDataServiceSOAP">
+ <soap:address location="https://egwhost/signDataService" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/signDataService/SignerAPI.xsd b/utils/ipn_sqlclr/Web References/signDataService/SignerAPI.xsd
new file mode 100644
index 0000000..03a802a
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/signDataService/SignerAPI.xsd
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:vssign="http://schemas.symantec.com/pkiservices/2011/11/sign" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified" targetNamespace="http://schemas.symantec.com/pkiservices/2011/11/sign" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:simpleType name="VersionType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d{1,3}\.\d{0,3}" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TransactionIDType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="40" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DescriptionType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="512" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="UserAttributeNameType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="CN" />
+ <xs:enumeration value="Email" />
+ <xs:enumeration value="UID" />
+ <xs:enumeration value="rfc822Name" />
+ <xs:enumeration value="UPN" />
+ <xs:enumeration value="DNSName" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HashAlgorithmType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="sha512" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="UserFilterType">
+ <xs:sequence>
+ <xs:element name="userAttributeName" type="vssign:UserAttributeNameType" />
+ <xs:element name="userAttributeValue" type="xs:string" />
+ <xs:element minOccurs="0" name="ignoreCase" type="xs:boolean" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProfileIDFilterSetType">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="profileOID" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="UserFilterSetType">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="userFilter" type="vssign:UserFilterType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CertificateFilterType">
+ <xs:sequence>
+ <xs:element name="profileIDFilterSet" type="vssign:ProfileIDFilterSetType" />
+ <xs:element minOccurs="0" name="userFilterSet" type="vssign:UserFilterSetType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SignDataInfoType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="description" type="vssign:DescriptionType" />
+ <xs:element name="certificateFilter" type="vssign:CertificateFilterType" />
+ <xs:element name="hashAlgorithm" type="vssign:HashAlgorithmType" />
+ <xs:element name="urlFilter" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="PrepSignDataRequest">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
+ <xs:element name="signDataInfo" type="vssign:SignDataInfoType" />
+ <xs:element name="toBeSignData" type="xs:base64Binary" />
+ <xs:element name="version" type="vssign:VersionType" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ToBeSignedPKCS7BlobType">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="signDataInfo" type="vssign:SignDataInfoType" />
+ <xs:element name="organization" type="xs:string" />
+ <xs:element name="requestId" type="vssign:TransactionIDType" />
+ <xs:element name="hashValue" type="xs:base64Binary" />
+ <xs:element name="version" type="vssign:VersionType" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PrepSignDataResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="vssign:TransactionIDType" />
+ <xs:element name="pkcs7SignedBlob" type="xs:base64Binary" />
+ <xs:element name="version" type="vssign:VersionType" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ToBeSignedClientPKCS7BlobType">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="pkcs7SignedBlob" type="xs:base64Binary" />
+ <xs:element name="toBeSignData" type="xs:base64Binary" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="VerifySignedDataRequest">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
+ <xs:element name="clientPkcs7SignedBlob" type="xs:base64Binary" />
+ <xs:element name="version" type="vssign:VersionType" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:simpleType name="StatusType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SUCCESS" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="VerifySignedDataResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="vssign:TransactionIDType" />
+ <xs:element name="status" type="vssign:StatusType" />
+ <xs:element name="version" type="vssign:VersionType" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/signDataService/ToBeSignedClientPKCS7BlobType.datasource b/utils/ipn_sqlclr/Web References/signDataService/ToBeSignedClientPKCS7BlobType.datasource
new file mode 100644
index 0000000..fa17ce7
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/signDataService/ToBeSignedClientPKCS7BlobType.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="ToBeSignedClientPKCS7BlobType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.signDataService.ToBeSignedClientPKCS7BlobType, Web References.signDataService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/signDataService/VerifySignedDataResponse.datasource b/utils/ipn_sqlclr/Web References/signDataService/VerifySignedDataResponse.datasource
new file mode 100644
index 0000000..de31f24
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/signDataService/VerifySignedDataResponse.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="VerifySignedDataResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.signDataService.VerifySignedDataResponse, Web References.signDataService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/userManagementService/Reference.map b/utils/ipn_sqlclr/Web References/userManagementService/Reference.map
new file mode 100644
index 0000000..ab3e45d
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/userManagementService/Reference.map
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Results>
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/UserManagementService.xsd" filename="UserManagementService.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/UserManagementService.wsdl" filename="UserManagementService.wsdl" />
+ </Results>
+</DiscoveryClientResultsFile> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.wsdl b/utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.wsdl
new file mode 100644
index 0000000..540ac2f
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.wsdl
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:usermgmt="http://schemas.verisign.com/pkiservices/2011/08/usermanagement" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.verisign.com/pkiservices/2011/08/usermanagement" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:import schemaLocation="UserManagementService.xsd" namespace="http://schemas.verisign.com/pkiservices/2011/08/usermanagement" />
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="createOrUpdateUserRequest">
+ <wsdl:part name="request" element="usermgmt:createOrUpdateUserRequest" />
+ </wsdl:message>
+ <wsdl:message name="createOrUpdateUserResponse">
+ <wsdl:part name="response" element="usermgmt:createOrUpdateUserResponse" />
+ </wsdl:message>
+ <wsdl:message name="createOrUpdatePasscodeRequest">
+ <wsdl:part name="request" element="usermgmt:createOrUpdatePasscodeRequest" />
+ </wsdl:message>
+ <wsdl:message name="createOrUpdatePasscodeResponse">
+ <wsdl:part name="response" element="usermgmt:createOrUpdatePasscodeResponse" />
+ </wsdl:message>
+ <wsdl:message name="deleteUserRequest">
+ <wsdl:part name="request" element="usermgmt:deleteUserRequest" />
+ </wsdl:message>
+ <wsdl:message name="deleteUserResponse">
+ <wsdl:part name="response" element="usermgmt:deleteUserResponse" />
+ </wsdl:message>
+ <wsdl:message name="bulkDeleteUserRequest">
+ <wsdl:part name="request" element="usermgmt:bulkDeleteUserRequest" />
+ </wsdl:message>
+ <wsdl:message name="bulkDeleteUserResponse">
+ <wsdl:part name="response" element="usermgmt:bulkDeleteUserResponse" />
+ </wsdl:message>
+ <wsdl:message name="getPasscodeInformationRequest">
+ <wsdl:part name="request" element="usermgmt:getPasscodeInformationRequest" />
+ </wsdl:message>
+ <wsdl:message name="getPasscodeInformationResponse">
+ <wsdl:part name="response" element="usermgmt:getPasscodeInformationResponse" />
+ </wsdl:message>
+ <wsdl:message name="getUserInformationRequest">
+ <wsdl:part name="request" element="usermgmt:getUserInformationRequest" />
+ </wsdl:message>
+ <wsdl:message name="getUserInformationResponse">
+ <wsdl:part name="response" element="usermgmt:getUserInformationResponse" />
+ </wsdl:message>
+ <wsdl:portType name="userManagementOperations">
+ <wsdl:operation name="createOrUpdateUser">
+ <wsdl:input message="usermgmt:createOrUpdateUserRequest" />
+ <wsdl:output message="usermgmt:createOrUpdateUserResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="createOrUpdatePasscode">
+ <wsdl:input message="usermgmt:createOrUpdatePasscodeRequest" />
+ <wsdl:output message="usermgmt:createOrUpdatePasscodeResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="deleteUser">
+ <wsdl:input message="usermgmt:deleteUserRequest" />
+ <wsdl:output message="usermgmt:deleteUserResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="bulkDeleteUser">
+ <wsdl:input message="usermgmt:bulkDeleteUserRequest" />
+ <wsdl:output message="usermgmt:bulkDeleteUserResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="getPasscodeInformation">
+ <wsdl:input message="usermgmt:getPasscodeInformationRequest" />
+ <wsdl:output message="usermgmt:getPasscodeInformationResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="getUserInformation">
+ <wsdl:input message="usermgmt:getUserInformationRequest" />
+ <wsdl:output message="usermgmt:getUserInformationResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="userManagementServiceSOAP" type="usermgmt:userManagementOperations">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="createOrUpdateUser">
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="createOrUpdatePasscode">
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="deleteUser">
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="bulkDeleteUser">
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getPasscodeInformation">
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getUserInformation">
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="userManagementService">
+ <wsdl:port name="userManagementServiceSOAP" binding="usermgmt:userManagementServiceSOAP">
+ <soap:address location="https://pki-ws.symauth.com/pki-ws/userManagementService" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.xsd b/utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.xsd
new file mode 100644
index 0000000..b38e295
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/userManagementService/UserManagementService.xsd
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:usermgmt="http://schemas.verisign.com/pkiservices/2011/08/usermanagement" elementFormDefault="qualified" targetNamespace="http://schemas.verisign.com/pkiservices/2011/08/usermanagement" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:simpleType name="VersionType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d{1,3}\.\d{0,3}" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TransactionIDType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="40" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="createOrUpdateUserRequest" type="usermgmt:CreateOrUpdateUserRequestMessageType" />
+ <xs:complexType name="CreateOrUpdateUserRequestMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element maxOccurs="unbounded" name="userInformation" type="usermgmt:UserInformationType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="UserInformationType">
+ <xs:sequence>
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element minOccurs="0" name="firstName" type="xs:string" />
+ <xs:element minOccurs="0" name="lastName" type="xs:string" />
+ <xs:element minOccurs="0" name="emailAddress" type="xs:string" />
+ <xs:element minOccurs="0" name="deskPhoneNumber" type="xs:string" />
+ <xs:element minOccurs="0" name="mobilePhoneNumber" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="userAttribute" type="usermgmt:NameValueType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NameValueType">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" />
+ <xs:element name="value" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="createOrUpdateUserResponse" type="usermgmt:CreateOrUpdateUserResponseMessageType" />
+ <xs:complexType name="CreateOrUpdateUserResponseMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element maxOccurs="unbounded" name="userCreationStatus" type="usermgmt:UserCreationStatusType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="UserCreationStatusType">
+ <xs:sequence>
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element name="statusCode" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="createOrUpdatePasscodeRequest" type="usermgmt:CreateOrUpdatePasscodeRequestMessageType" />
+ <xs:complexType name="CreateOrUpdatePasscodeRequestMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element maxOccurs="unbounded" name="passcodeInformation" type="usermgmt:PasscodeInformationType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PasscodeInformationType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="passcode" type="xs:string" />
+ <xs:element minOccurs="0" name="numberOfBadAttempts" type="xs:int" />
+ <xs:element minOccurs="0" name="passcodeStatus" type="xs:string" />
+ <xs:element minOccurs="0" name="expiryDateTime" type="xs:dateTime" />
+ <xs:element minOccurs="0" name="creationDateTime" type="xs:dateTime" />
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element name="certificateProfileOid" type="xs:string" />
+ <xs:element minOccurs="0" name="enrollmentURL" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="createOrUpdatePasscodeResponse" type="usermgmt:CreateOrUpdatePasscodeResponseMessageType" />
+ <xs:complexType name="CreateOrUpdatePasscodeResponseMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element maxOccurs="unbounded" name="passcodeCreationStatus" type="usermgmt:PasscodeCreationStatusType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PasscodeCreationStatusType">
+ <xs:sequence>
+ <xs:element name="passcodeInformation" type="usermgmt:PasscodeInformationType" />
+ <xs:element name="statusCode" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="RevokeReasonCodeEnum">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Unspecified" />
+ <xs:enumeration value="KeyCompromise" />
+ <xs:enumeration value="CACompromise" />
+ <xs:enumeration value="AffiliationChanged" />
+ <xs:enumeration value="CessationOfOperation" />
+ <xs:enumeration value="PrivilegeWithdrawn" />
+ <xs:enumeration value="AACompromise" />
+ <xs:enumeration value="Superseded" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="deleteUserRequest" type="usermgmt:DeleteUserRequestMessageType" />
+ <xs:complexType name="DeleteUserRequestMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element minOccurs="0" name="revocationReason" type="usermgmt:RevokeReasonCodeEnum" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DeleteUserStatusType">
+ <xs:sequence>
+ <xs:element name="status" type="xs:string" />
+ <xs:element name="errorCode" type="xs:string" />
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element name="revocationCount" type="xs:int" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="deleteUserResponse" type="usermgmt:DeleteUserResponseMessageType" />
+ <xs:complexType name="DeleteUserResponseMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="deleteUserStatus" type="usermgmt:DeleteUserStatusType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="bulkDeleteUserRequest" type="usermgmt:BulkDeleteUserRequestMessageType" />
+ <xs:complexType name="BulkDeleteUserRequestMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element maxOccurs="25" name="seatId" type="xs:string" />
+ <xs:element minOccurs="0" name="revocationReason" type="usermgmt:RevokeReasonCodeEnum" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="bulkDeleteUserResponse" type="usermgmt:BulkDeleteUserResponseMessageType" />
+ <xs:complexType name="BulkDeleteUserResponseMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element maxOccurs="25" name="deleteUserStatus" type="usermgmt:DeleteUserStatusType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="getPasscodeInformationRequest" type="usermgmt:GetPasscodeInformationRequestMessageType" />
+ <xs:complexType name="GetPasscodeInformationRequestMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element name="certificateProfileOid" type="xs:string" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="getPasscodeInformationResponse" type="usermgmt:GetPasscodeInformationResponseMessageType" />
+ <xs:complexType name="GetPasscodeInformationResponseMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="passcodeInformation" type="usermgmt:PasscodeInformationType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="getUserInformationRequest" type="usermgmt:GetUserInformationRequestMessageType" />
+ <xs:complexType name="GetUserInformationRequestMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="seatId" type="xs:string" />
+ <xs:element minOccurs="0" name="getUserCertificate" type="xs:boolean" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="UserValidCertificatesType">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="userCertificate" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="getUserInformationResponse" type="usermgmt:GetUserInformationResponseMessageType" />
+ <xs:complexType name="GetUserInformationResponseMessageType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="usermgmt:TransactionIDType" />
+ <xs:element name="userInformation" type="usermgmt:UserInformationType" />
+ <xs:element minOccurs="0" name="userValidCertificates" type="usermgmt:UserValidCertificatesType" />
+ <xs:element name="version" type="usermgmt:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.cs b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.cs
new file mode 100644
index 0000000..7b9754c
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.cs
@@ -0,0 +1,1045 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.34014
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+//
+// This source code was auto-generated by Microsoft.VSDesigner, Version 4.0.30319.34014.
+//
+
+using System.Security.Cryptography.X509Certificates;
+using ipn_sqlclr;
+
+#pragma warning disable 1591
+
+namespace veriSignCertIssuingService {
+ using System;
+ using System.Web.Services;
+ using System.Diagnostics;
+ using System.Web.Services.Protocols;
+ using System.Xml.Serialization;
+ using System.ComponentModel;
+
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Web.Services.WebServiceBindingAttribute(Name="veriSignCertIssuingServiceSOAP", Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(AttributedString))]
+ public partial class veriSignCertIssuingService : XmlReaderSpyService
+ {
+
+ private System.Threading.SendOrPostCallback RequestSecurityTokenOperationCompleted;
+
+ private System.Threading.SendOrPostCallback RequestSecurityToken2OperationCompleted;
+
+ /// <remarks/>
+ public veriSignCertIssuingService(X509Certificate clientCert, string url)
+ : base(clientCert, url)
+ {
+ }
+
+ /// <remarks/>
+ public event RequestSecurityTokenCompletedEventHandler RequestSecurityTokenCompleted;
+
+ /// <remarks/>
+ public event RequestSecurityToken2CompletedEventHandler RequestSecurityToken2Completed;
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.verisign.com/pkiservices/2009/07/enrollment/requestSecurityToken", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("RequestSecurityTokenResponse", Namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/")]
+ public RequestSecurityTokenResponseType RequestSecurityToken([System.Xml.Serialization.XmlElementAttribute("RequestSecurityToken", Namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/")] RequestSecurityTokenType RequestSecurityToken1) {
+ object[] results = this.Invoke("RequestSecurityToken", new object[] {
+ RequestSecurityToken1});
+ return ((RequestSecurityTokenResponseType)(results[0]));
+ }
+
+ /// <remarks/>
+ public void RequestSecurityTokenAsync(RequestSecurityTokenType RequestSecurityToken1) {
+ this.RequestSecurityTokenAsync(RequestSecurityToken1, null);
+ }
+
+ /// <remarks/>
+ public void RequestSecurityTokenAsync(RequestSecurityTokenType RequestSecurityToken1, object userState) {
+ if ((this.RequestSecurityTokenOperationCompleted == null)) {
+ this.RequestSecurityTokenOperationCompleted = new System.Threading.SendOrPostCallback(this.OnRequestSecurityTokenOperationCompleted);
+ }
+ this.InvokeAsync("RequestSecurityToken", new object[] {
+ RequestSecurityToken1}, this.RequestSecurityTokenOperationCompleted, userState);
+ }
+
+ private void OnRequestSecurityTokenOperationCompleted(object arg) {
+ if ((this.RequestSecurityTokenCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.RequestSecurityTokenCompleted(this, new RequestSecurityTokenCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.verisign.com/pkiservices/2009/07/enrollment/requestSecurityToken2", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)]
+ [return: System.Xml.Serialization.XmlElementAttribute("RequestSecurityTokenResponseCollection", Namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/")]
+ public RequestSecurityTokenResponseCollectionType RequestSecurityToken2([System.Xml.Serialization.XmlElementAttribute("RequestSecurityToken", Namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/")] RequestSecurityTokenType RequestSecurityToken1) {
+ object[] results = this.Invoke("RequestSecurityToken2", new object[] {
+ RequestSecurityToken1});
+ return ((RequestSecurityTokenResponseCollectionType)(results[0]));
+ }
+
+ /// <remarks/>
+ public void RequestSecurityToken2Async(RequestSecurityTokenType RequestSecurityToken1) {
+ this.RequestSecurityToken2Async(RequestSecurityToken1, null);
+ }
+
+ /// <remarks/>
+ public void RequestSecurityToken2Async(RequestSecurityTokenType RequestSecurityToken1, object userState) {
+ if ((this.RequestSecurityToken2OperationCompleted == null)) {
+ this.RequestSecurityToken2OperationCompleted = new System.Threading.SendOrPostCallback(this.OnRequestSecurityToken2OperationCompleted);
+ }
+ this.InvokeAsync("RequestSecurityToken2", new object[] {
+ RequestSecurityToken1}, this.RequestSecurityToken2OperationCompleted, userState);
+ }
+
+ private void OnRequestSecurityToken2OperationCompleted(object arg) {
+ if ((this.RequestSecurityToken2Completed != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.RequestSecurityToken2Completed(this, new RequestSecurityToken2CompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
+ public new void CancelAsync(object userState) {
+ base.CancelAsync(userState);
+ }
+
+ private bool IsLocalFileSystemWebService(string url) {
+ if (((url == null)
+ || (url == string.Empty))) {
+ return false;
+ }
+ System.Uri wsUri = new System.Uri(url);
+ if (((wsUri.Port >= 1024)
+ && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/")]
+ public partial class RequestSecurityTokenType {
+
+ private RequestVSSecurityTokenEnrollmentType itemField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string contextField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("requestVSSecurityToken", Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public RequestVSSecurityTokenEnrollmentType Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string Context {
+ get {
+ return this.contextField;
+ }
+ set {
+ this.contextField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public partial class RequestVSSecurityTokenEnrollmentType {
+
+ private string certificateProfileIDField;
+
+ private string clientTransactionIDField;
+
+ private TokenType tokenTypeField;
+
+ private bool tokenTypeFieldSpecified;
+
+ private RequestTypeEnum requestTypeField;
+
+ private BinarySecurityTokenType[] binarySecurityTokenField;
+
+ private AdditionalContextType additionalContextField;
+
+ private string pendingTokenReferenceIDField;
+
+ private NameValueType[] nameValuePairField;
+
+ private string versionField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string preferredLanguageField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ /// <remarks/>
+ public string certificateProfileID {
+ get {
+ return this.certificateProfileIDField;
+ }
+ set {
+ this.certificateProfileIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public TokenType tokenType {
+ get {
+ return this.tokenTypeField;
+ }
+ set {
+ this.tokenTypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool tokenTypeSpecified {
+ get {
+ return this.tokenTypeFieldSpecified;
+ }
+ set {
+ this.tokenTypeFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public RequestTypeEnum requestType {
+ get {
+ return this.requestTypeField;
+ }
+ set {
+ this.requestTypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("binarySecurityToken")]
+ public BinarySecurityTokenType[] binarySecurityToken {
+ get {
+ return this.binarySecurityTokenField;
+ }
+ set {
+ this.binarySecurityTokenField = value;
+ }
+ }
+
+ /// <remarks/>
+ public AdditionalContextType additionalContext {
+ get {
+ return this.additionalContextField;
+ }
+ set {
+ this.additionalContextField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string pendingTokenReferenceID {
+ get {
+ return this.pendingTokenReferenceIDField;
+ }
+ set {
+ this.pendingTokenReferenceIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("nameValuePair")]
+ public NameValueType[] nameValuePair {
+ get {
+ return this.nameValuePairField;
+ }
+ set {
+ this.nameValuePairField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="language")]
+ public string preferredLanguage {
+ get {
+ return this.preferredLanguageField;
+ }
+ set {
+ this.preferredLanguageField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public enum TokenType {
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X5" +
+ "09v3")]
+ httpdocsoasisopenorgwss200401oasis200401wssx509tokenprofile10X509v3,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PK" +
+ "CS7")]
+ httpdocsoasisopenorgwss200401oasis200401wssx509tokenprofile10PKCS7,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://schemas.verisign.com/pkiservices/2009/07/PKCS12")]
+ httpschemasverisigncompkiservices200907PKCS12,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public enum RequestTypeEnum {
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue")]
+ httpdocsoasisopenorgwssxwstrust200512Issue,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://docs.oasis-open.org/ws-sx/ws-trust/200512/Renew")]
+ httpdocsoasisopenorgwssxwstrust200512Renew,
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlEnumAttribute("http://schemas.verisign.com/pkiservices/2009/07/QueryTokenStatus")]
+ httpschemasverisigncompkiservices200907QueryTokenStatus,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" +
+ "")]
+ public partial class BinarySecurityTokenType : EncodedString {
+
+ private string valueTypeField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string ValueType {
+ get {
+ return this.valueTypeField;
+ }
+ set {
+ this.valueTypeField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(KeyIdentifierType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(BinarySecurityTokenType))]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" +
+ "")]
+ public partial class EncodedString : AttributedString {
+
+ private string encodingTypeField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string EncodingType {
+ get {
+ return this.encodingTypeField;
+ }
+ set {
+ this.encodingTypeField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(EncodedString))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(KeyIdentifierType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(BinarySecurityTokenType))]
+ [System.Xml.Serialization.XmlIncludeAttribute(typeof(PasswordString))]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" +
+ "")]
+ public partial class AttributedString {
+
+ private string idField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ private string valueField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, Namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xs" +
+ "d", DataType="ID")]
+ public string Id {
+ get {
+ return this.idField;
+ }
+ set {
+ this.idField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlTextAttribute()]
+ public string Value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/")]
+ public partial class RequestSecurityTokenResponseCollectionType {
+
+ private RequestSecurityTokenResponseType[] requestSecurityTokenResponseField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("RequestSecurityTokenResponse")]
+ public RequestSecurityTokenResponseType[] RequestSecurityTokenResponse {
+ get {
+ return this.requestSecurityTokenResponseField;
+ }
+ set {
+ this.requestSecurityTokenResponseField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/")]
+ public partial class RequestSecurityTokenResponseType {
+
+ private RequestVSSecurityTokenResponseEnrollmentType itemField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string contextField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("RequestVSSecurityTokenResponse", Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public RequestVSSecurityTokenResponseEnrollmentType Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string Context {
+ get {
+ return this.contextField;
+ }
+ set {
+ this.contextField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public partial class RequestVSSecurityTokenResponseEnrollmentType {
+
+ private string clientTransactionIDField;
+
+ private string serverTransactionIDField;
+
+ private TokenType tokenTypeField;
+
+ private bool tokenTypeFieldSpecified;
+
+ private string dispositionMessageField;
+
+ private BinarySecurityTokenType binarySecurityTokenField;
+
+ private RequestedVSSecurityTokenEnrollmentType requestedVSSecurityTokenField;
+
+ private string versionField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private string preferredLanguageField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ /// <remarks/>
+ public string clientTransactionID {
+ get {
+ return this.clientTransactionIDField;
+ }
+ set {
+ this.clientTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string serverTransactionID {
+ get {
+ return this.serverTransactionIDField;
+ }
+ set {
+ this.serverTransactionIDField = value;
+ }
+ }
+
+ /// <remarks/>
+ public TokenType tokenType {
+ get {
+ return this.tokenTypeField;
+ }
+ set {
+ this.tokenTypeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public bool tokenTypeSpecified {
+ get {
+ return this.tokenTypeFieldSpecified;
+ }
+ set {
+ this.tokenTypeFieldSpecified = value;
+ }
+ }
+
+ /// <remarks/>
+ public string dispositionMessage {
+ get {
+ return this.dispositionMessageField;
+ }
+ set {
+ this.dispositionMessageField = value;
+ }
+ }
+
+ /// <remarks/>
+ public BinarySecurityTokenType binarySecurityToken {
+ get {
+ return this.binarySecurityTokenField;
+ }
+ set {
+ this.binarySecurityTokenField = value;
+ }
+ }
+
+ /// <remarks/>
+ public RequestedVSSecurityTokenEnrollmentType requestedVSSecurityToken {
+ get {
+ return this.requestedVSSecurityTokenField;
+ }
+ set {
+ this.requestedVSSecurityTokenField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string version {
+ get {
+ return this.versionField;
+ }
+ set {
+ this.versionField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="language")]
+ public string preferredLanguage {
+ get {
+ return this.preferredLanguageField;
+ }
+ set {
+ this.preferredLanguageField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public partial class RequestedVSSecurityTokenEnrollmentType {
+
+ private object[] itemsField;
+
+ private ItemsChoiceType[] itemsElementNameField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("binarySecurityToken", typeof(BinarySecurityTokenType))]
+ [System.Xml.Serialization.XmlElementAttribute("pKCS12Password", typeof(string))]
+ [System.Xml.Serialization.XmlElementAttribute("pendingTokenReferenceID", typeof(string))]
+ [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
+ public object[] Items {
+ get {
+ return this.itemsField;
+ }
+ set {
+ this.itemsField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")]
+ [System.Xml.Serialization.XmlIgnoreAttribute()]
+ public ItemsChoiceType[] ItemsElementName {
+ get {
+ return this.itemsElementNameField;
+ }
+ set {
+ this.itemsElementNameField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment", IncludeInSchema=false)]
+ public enum ItemsChoiceType {
+
+ /// <remarks/>
+ binarySecurityToken,
+
+ /// <remarks/>
+ pKCS12Password,
+
+ /// <remarks/>
+ pendingTokenReferenceID,
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment")]
+ public partial class NameValueType {
+
+ private string nameField;
+
+ private string valueField;
+
+ /// <remarks/>
+ public string name {
+ get {
+ return this.nameField;
+ }
+ set {
+ this.nameField = value;
+ }
+ }
+
+ /// <remarks/>
+ public string value {
+ get {
+ return this.valueField;
+ }
+ set {
+ this.valueField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.xmlsoap.org/ws/2006/12/authorization")]
+ public partial class ContextItemType {
+
+ private object itemField;
+
+ private string nameField;
+
+ private string scopeField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ [System.Xml.Serialization.XmlElementAttribute("Value", typeof(string))]
+ public object Item {
+ get {
+ return this.itemField;
+ }
+ set {
+ this.itemField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string Name {
+ get {
+ return this.nameField;
+ }
+ set {
+ this.nameField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string Scope {
+ get {
+ return this.scopeField;
+ }
+ set {
+ this.scopeField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.xmlsoap.org/ws/2006/12/authorization")]
+ public partial class AdditionalContextType {
+
+ private ContextItemType[] contextItemField;
+
+ private System.Xml.XmlElement[] anyField;
+
+ private System.Xml.XmlAttribute[] anyAttrField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlElementAttribute("ContextItem")]
+ public ContextItemType[] ContextItem {
+ get {
+ return this.contextItemField;
+ }
+ set {
+ this.contextItemField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyElementAttribute()]
+ public System.Xml.XmlElement[] Any {
+ get {
+ return this.anyField;
+ }
+ set {
+ this.anyField = value;
+ }
+ }
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAnyAttributeAttribute()]
+ public System.Xml.XmlAttribute[] AnyAttr {
+ get {
+ return this.anyAttrField;
+ }
+ set {
+ this.anyAttrField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" +
+ "")]
+ public partial class PasswordString : AttributedString {
+
+ private string typeField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string Type {
+ get {
+ return this.typeField;
+ }
+ set {
+ this.typeField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34230")]
+ [System.SerializableAttribute()]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" +
+ "")]
+ public partial class KeyIdentifierType : EncodedString {
+
+ private string valueTypeField;
+
+ /// <remarks/>
+ [System.Xml.Serialization.XmlAttributeAttribute(DataType="anyURI")]
+ public string ValueType {
+ get {
+ return this.valueTypeField;
+ }
+ set {
+ this.valueTypeField = value;
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void RequestSecurityTokenCompletedEventHandler(object sender, RequestSecurityTokenCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class RequestSecurityTokenCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal RequestSecurityTokenCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public RequestSecurityTokenResponseType Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((RequestSecurityTokenResponseType)(this.results[0]));
+ }
+ }
+ }
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ public delegate void RequestSecurityToken2CompletedEventHandler(object sender, RequestSecurityToken2CompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.33440")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class RequestSecurityToken2CompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal RequestSecurityToken2CompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
+ base(exception, cancelled, userState) {
+ this.results = results;
+ }
+
+ /// <remarks/>
+ public RequestSecurityTokenResponseCollectionType Result {
+ get {
+ this.RaiseExceptionIfNecessary();
+ return ((RequestSecurityTokenResponseCollectionType)(this.results[0]));
+ }
+ }
+ }
+}
+
+#pragma warning restore 1591 \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.map b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.map
new file mode 100644
index 0000000..26e85af
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/Reference.map
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <Results>
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="http://schemas.xmlsoap.org/ws/2004/09/policy/ws-policy.xsd" filename="ws-policy.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/VS_WSTEP.wsdl" filename="certificateService.wsdl" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" filename="oasis-200401-wss-wssecurity-utility-1.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="http://www.w3.org/2001/xml.xsd" filename="xml.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="http://schemas.xmlsoap.org/ws/2006/12/authorization/ws-authorization.xsd" filename="ws-authorization.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="http://www.w3.org/2006/03/addressing/ws-addr.xsd" filename="ws-addr.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/ws-trust-1.3-verisign.wsdl" filename="ws-trust-1.wsdl" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/ws-trust-1.3-verisign.xsd" filename="ws-trust-1.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" filename="oasis-200401-wss-wssecurity-secext-1.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" filename="xmldsig-core-schema.xsd" />
+ <DiscoveryClientResult referenceType="System.Web.Services.Discovery.SchemaReference" url="file:///C:/Users/Youra/Documents/GitHub/my-vmprotect/tagg/VS_WSTEP.xsd" filename="VS_WSTEP.xsd" />
+ </Results>
+</DiscoveryClientResultsFile> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseCollectionType.datasource b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseCollectionType.datasource
new file mode 100644
index 0000000..293512c
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseCollectionType.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="RequestSecurityTokenResponseCollectionType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.veriSignCertIssuingService.RequestSecurityTokenResponseCollectionType, Web References.veriSignCertIssuingService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseType.datasource b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseType.datasource
new file mode 100644
index 0000000..71a9c98
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/RequestSecurityTokenResponseType.datasource
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This file is automatically generated by Visual Studio .Net. It is
+ used to store generic object data source configuration information.
+ Renaming the file extension or editing the content of this file may
+ cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="RequestSecurityTokenResponseType" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+ <TypeInfo>taggantWrapper.veriSignCertIssuingService.RequestSecurityTokenResponseType, Web References.veriSignCertIssuingService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
+</GenericObjectDataSource> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/VS_WSTEP.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/VS_WSTEP.xsd
new file mode 100644
index 0000000..f0a60fd
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/VS_WSTEP.xsd
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" xmlns:vswstep="http://schemas.verisign.com/pkiservices/2009/07/enrollment" xmlns:auth="http://schemas.xmlsoap.org/ws/2006/12/authorization" elementFormDefault="qualified" targetNamespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:import schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" />
+ <xs:import schemaLocation="http://schemas.xmlsoap.org/ws/2006/12/authorization/ws-authorization.xsd" namespace="http://schemas.xmlsoap.org/ws/2006/12/authorization" />
+ <xs:import schemaLocation="ws-trust-1.3-verisign.xsd" namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" />
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ XML Schema for veriSignCertIssuingService Web Services
+ version 1.0
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType name="VersionType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d{1,3}\.\d{0,3}" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TransactionIDType" final="restriction">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="40" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="NameValueType">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" />
+ <xs:element name="value" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="TokenType">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" />
+ <xs:enumeration value="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#PKCS7" />
+ <xs:enumeration value="http://schemas.verisign.com/pkiservices/2009/07/PKCS12" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="RequestTypeEnum">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Renew" />
+ <xs:enumeration value="http://schemas.verisign.com/pkiservices/2009/07/QueryTokenStatus" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="requestVSSecurityToken" type="vswstep:RequestVSSecurityTokenEnrollmentType" />
+ <xs:complexType name="RequestVSSecurityTokenEnrollmentType">
+ <xs:sequence>
+ <xs:element name="certificateProfileID" type="xs:string" />
+ <xs:element minOccurs="0" name="clientTransactionID" type="vswstep:TransactionIDType" />
+ <xs:element minOccurs="0" name="tokenType" type="vswstep:TokenType" />
+ <xs:element name="requestType" type="vswstep:RequestTypeEnum" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="binarySecurityToken" type="wsse:BinarySecurityTokenType" />
+ <xs:element minOccurs="0" name="additionalContext" type="auth:AdditionalContextType" />
+ <xs:element minOccurs="0" name="pendingTokenReferenceID" type="xs:string" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="nameValuePair" type="vswstep:NameValueType" />
+ <xs:element name="version" type="vswstep:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute name="preferredLanguage" type="xs:language" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="RequestVSSecurityTokenResponse" type="vswstep:RequestVSSecurityTokenResponseEnrollmentType" />
+ <xs:complexType name="RequestVSSecurityTokenResponseEnrollmentType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="clientTransactionID" type="vswstep:TransactionIDType" />
+ <xs:element name="serverTransactionID" type="vswstep:TransactionIDType" />
+ <xs:element minOccurs="0" name="tokenType" type="vswstep:TokenType" />
+ <xs:element minOccurs="0" name="dispositionMessage" type="xs:string" />
+ <xs:element minOccurs="0" name="binarySecurityToken" type="wsse:BinarySecurityTokenType" />
+ <xs:element minOccurs="0" name="requestedVSSecurityToken" type="vswstep:RequestedVSSecurityTokenEnrollmentType" />
+ <xs:element name="version" type="vswstep:VersionType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##targetNamespace" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute name="preferredLanguage" type="xs:language" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:complexType name="RequestedVSSecurityTokenEnrollmentType">
+ <xs:choice>
+ <xs:sequence>
+ <xs:element name="binarySecurityToken" type="wsse:BinarySecurityTokenType" />
+ <xs:element minOccurs="0" name="pKCS12Password" type="xs:string" />
+ </xs:sequence>
+ <xs:element name="pendingTokenReferenceID" type="xs:string" />
+ </xs:choice>
+ </xs:complexType>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/certificateService.wsdl b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/certificateService.wsdl
new file mode 100644
index 0000000..ec7d758
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/certificateService.wsdl
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:vswstep="http://schemas.verisign.com/pkiservices/2009/07/enrollment" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="certificateService" targetNamespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ XML WSDL for VeriSign
+ Certificate Web Services
+ version 1.0
+ </xsd:documentation>
+ </xsd:annotation>
+ <wsdl:import namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" location="ws-trust-1.3-verisign.wsdl" />
+ <wsdl:types />
+ <wsdl:binding name="veriSignCertIssuingServiceSOAP" type="wst:SecurityTokenService">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="RequestSecurityToken">
+ <soap:operation soapAction="http://schemas.verisign.com/pkiservices/2009/07/enrollment/requestSecurityToken" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="RequestSecurityToken2">
+ <soap:operation soapAction="http://schemas.verisign.com/pkiservices/2009/07/enrollment/requestSecurityToken2" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="veriSignCertIssuingService">
+ <wsdl:port name="veriSignCertServiceSOAP" binding="vswstep:veriSignCertIssuingServiceSOAP">
+ <soap:address location="https://pki-ws.symauth.com/pki-ws/enrollmentService" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-secext-1.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-secext-1.xsd
new file mode 100644
index 0000000..78cfc6e
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-secext-1.xsd
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" attributeFormDefault="unqualified" blockDefault="#all" elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" version="0.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:import schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" />
+ <xsd:import schemaLocation="http://www.w3.org/2001/xml.xsd" namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:import schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" namespace="http://www.w3.org/2000/09/xmldsig#" />
+ <xsd:complexType name="AttributedString">
+ <xsd:annotation>
+ <xsd:documentation>This type represents an element with arbitrary attributes.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute ref="wsu:Id" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="PasswordString">
+ <xsd:annotation>
+ <xsd:documentation>This type is used for password elements per Section 4.1.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:AttributedString">
+ <xsd:attribute name="Type" type="xsd:anyURI" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="EncodedString">
+ <xsd:annotation>
+ <xsd:documentation>This type is used for elements containing stringified binary data.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:AttributedString">
+ <xsd:attribute name="EncodingType" type="xsd:anyURI" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="UsernameTokenType">
+ <xsd:annotation>
+ <xsd:documentation>This type represents a username token per Section 4.1</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="Username" type="wsse:AttributedString" />
+ <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+ </xsd:sequence>
+ <xsd:attribute ref="wsu:Id" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+ <xsd:complexType name="BinarySecurityTokenType">
+ <xsd:annotation>
+ <xsd:documentation>A security token that is encoded in binary</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:EncodedString">
+ <xsd:attribute name="ValueType" type="xsd:anyURI" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="KeyIdentifierType">
+ <xsd:annotation>
+ <xsd:documentation>A security token key identifier</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:EncodedString">
+ <xsd:attribute name="ValueType" type="xsd:anyURI" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:simpleType name="tUsage">
+ <xsd:annotation>
+ <xsd:documentation>Typedef to allow a list of usages (as URIs).</xsd:documentation>
+ </xsd:annotation>
+ <xsd:list itemType="xsd:anyURI" />
+ </xsd:simpleType>
+ <xsd:attribute name="Usage" type="wsse:tUsage">
+ <xsd:annotation>
+ <xsd:documentation>This global attribute is used to indicate the usage of a referenced or indicated token within the containing context</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:complexType name="ReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This type represents a reference to an external security token.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="URI" type="xsd:anyURI" />
+ <xsd:attribute name="ValueType" type="xsd:anyURI" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+ <xsd:complexType name="EmbeddedType">
+ <xsd:annotation>
+ <xsd:documentation>This type represents a reference to an embedded security token.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:any processContents="lax" />
+ </xsd:choice>
+ <xsd:attribute name="ValueType" type="xsd:anyURI" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+ <xsd:complexType name="SecurityTokenReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This type is used reference a security token.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:any processContents="lax" />
+ </xsd:choice>
+ <xsd:attribute ref="wsu:Id" />
+ <xsd:attribute ref="wsse:Usage" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+ <xsd:complexType name="SecurityHeaderType">
+ <xsd:annotation>
+ <xsd:documentation>This complexType defines header block to use for security-relevant data directed at a specific SOAP actor.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax">
+ <xsd:annotation>
+ <xsd:documentation>The use of "any" is to allow extensibility and different forms of security data.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:sequence>
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+ <xsd:complexType name="TransformationParametersType">
+ <xsd:annotation>
+ <xsd:documentation>This complexType defines a container for elements to be specified from any namespace as properties/parameters of a DSIG transformation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax">
+ <xsd:annotation>
+ <xsd:documentation>The use of "any" is to allow extensibility from any namespace.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:sequence>
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+ <xsd:element name="UsernameToken" type="wsse:UsernameTokenType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:UsernameToken element per Section 4.1.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="BinarySecurityToken" type="wsse:BinarySecurityTokenType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:BinarySecurityToken element per Section 4.2.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Reference" type="wsse:ReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines a security token reference</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Embedded" type="wsse:EmbeddedType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines a security token embedded reference</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="KeyIdentifier" type="wsse:KeyIdentifierType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines a key identifier reference</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="SecurityTokenReference" type="wsse:SecurityTokenReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:SecurityTokenReference per Section 4.3.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Security" type="wsse:SecurityHeaderType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:Security SOAP header element per Section 4.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="TransformationParameters" type="wsse:TransformationParametersType">
+ <xsd:annotation>
+ <xsd:documentation>This element contains properties for transformations from any namespace, including DSIG.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Password" type="wsse:PasswordString" />
+ <xsd:element name="Nonce" type="wsse:EncodedString" />
+ <xsd:simpleType name="FaultcodeEnum">
+ <xsd:restriction base="xsd:QName">
+ <xsd:enumeration value="wsse:UnsupportedSecurityToken" />
+ <xsd:enumeration value="wsse:UnsupportedAlgorithm" />
+ <xsd:enumeration value="wsse:InvalidSecurity" />
+ <xsd:enumeration value="wsse:InvalidSecurityToken" />
+ <xsd:enumeration value="wsse:FailedAuthentication" />
+ <xsd:enumeration value="wsse:FailedCheck" />
+ <xsd:enumeration value="wsse:SecurityTokenUnavailable" />
+ </xsd:restriction>
+ </xsd:simpleType>
+</xsd:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-utility-1.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-utility-1.xsd
new file mode 100644
index 0000000..4c4f775
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/oasis-200401-wss-wssecurity-utility-1.xsd
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" version="0.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:simpleType name="tTimestampFault">
+ <xsd:annotation>
+ <xsd:documentation>
+This type defines the fault code value for Timestamp message expiration.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:QName">
+ <xsd:enumeration value="wsu:MessageExpired" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:attribute name="Id" type="xsd:ID">
+ <xsd:annotation>
+ <xsd:documentation>
+This global attribute supports annotating arbitrary elements with an ID.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attributeGroup name="commonAtts">
+ <xsd:annotation>
+ <xsd:documentation>
+Convenience attribute group used to simplify this schema.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute ref="wsu:Id" use="optional" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:attributeGroup>
+ <xsd:complexType name="AttributedDateTime">
+ <xsd:annotation>
+ <xsd:documentation>
+This type is for elements whose [children] is a psuedo-dateTime and can have arbitrary attributes.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attributeGroup ref="wsu:commonAtts" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="AttributedURI">
+ <xsd:annotation>
+ <xsd:documentation>
+This type is for elements whose [children] is an anyURI and can have arbitrary attributes.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:anyURI">
+ <xsd:attributeGroup ref="wsu:commonAtts" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="TimestampType">
+ <xsd:annotation>
+ <xsd:documentation>
+This complex type ties together the timestamp related elements into a composite type.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element minOccurs="0" ref="wsu:Created" />
+ <xsd:element minOccurs="0" ref="wsu:Expires" />
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:any namespace="##other" processContents="lax" />
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attributeGroup ref="wsu:commonAtts" />
+ </xsd:complexType>
+ <xsd:element name="Timestamp" type="wsu:TimestampType">
+ <xsd:annotation>
+ <xsd:documentation>
+This element allows Timestamps to be applied anywhere element wildcards are present,
+including as a SOAP header.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Expires" type="wsu:AttributedDateTime">
+ <xsd:annotation>
+ <xsd:documentation>
+This element allows an expiration time to be applied anywhere element wildcards are present.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Created" type="wsu:AttributedDateTime">
+ <xsd:annotation>
+ <xsd:documentation>
+This element allows a creation time to be applied anywhere element wildcards are present.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+</xsd:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-addr.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-addr.xsd
new file mode 100644
index 0000000..25e4ca7
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-addr.xsd
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://www.w3.org/2005/08/addressing" attributeFormDefault="unqualified" blockDefault="#all" finalDefault="" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2005/08/addressing" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="EndpointReference" type="tns:EndpointReferenceType" />
+ <xs:complexType name="EndpointReferenceType">
+ <xs:sequence>
+ <xs:element name="Address" type="tns:AttributedURIType" />
+ <xs:element minOccurs="0" ref="tns:ReferenceParameters" />
+ <xs:element minOccurs="0" ref="tns:Metadata" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="ReferenceParameters" type="tns:ReferenceParametersType" />
+ <xs:complexType name="ReferenceParametersType">
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="Metadata" type="tns:MetadataType" />
+ <xs:complexType name="MetadataType">
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="MessageID" type="tns:AttributedURIType" />
+ <xs:element name="RelatesTo" type="tns:RelatesToType" />
+ <xs:complexType name="RelatesToType">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:attribute default="http://www.w3.org/2005/08/addressing/reply" name="RelationshipType" type="tns:RelationshipTypeOpenEnum" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="RelationshipTypeOpenEnum">
+ <xs:union memberTypes="tns:RelationshipType xs:anyURI" />
+ </xs:simpleType>
+ <xs:simpleType name="RelationshipType">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://www.w3.org/2005/08/addressing/reply" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="ReplyTo" type="tns:EndpointReferenceType" />
+ <xs:element name="From" type="tns:EndpointReferenceType" />
+ <xs:element name="FaultTo" type="tns:EndpointReferenceType" />
+ <xs:element name="To" type="tns:AttributedURIType" />
+ <xs:element name="Action" type="tns:AttributedURIType" />
+ <xs:complexType name="AttributedURIType">
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI">
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:attribute name="IsReferenceParameter" type="xs:boolean" />
+ <xs:simpleType name="FaultCodesOpenEnumType">
+ <xs:union memberTypes="tns:FaultCodesType xs:QName" />
+ </xs:simpleType>
+ <xs:simpleType name="FaultCodesType">
+ <xs:restriction base="xs:QName">
+ <xs:enumeration value="tns:InvalidAddressingHeader" />
+ <xs:enumeration value="tns:InvalidAddress" />
+ <xs:enumeration value="tns:InvalidEPR" />
+ <xs:enumeration value="tns:InvalidCardinality" />
+ <xs:enumeration value="tns:MissingAddressInEPR" />
+ <xs:enumeration value="tns:DuplicateMessageID" />
+ <xs:enumeration value="tns:ActionMismatch" />
+ <xs:enumeration value="tns:MessageAddressingHeaderRequired" />
+ <xs:enumeration value="tns:DestinationUnreachable" />
+ <xs:enumeration value="tns:ActionNotSupported" />
+ <xs:enumeration value="tns:EndpointUnavailable" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="RetryAfter" type="tns:AttributedUnsignedLongType" />
+ <xs:complexType name="AttributedUnsignedLongType">
+ <xs:simpleContent>
+ <xs:extension base="xs:unsignedLong">
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemHeaderQName" type="tns:AttributedQNameType" />
+ <xs:complexType name="AttributedQNameType">
+ <xs:simpleContent>
+ <xs:extension base="xs:QName">
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="ProblemIRI" type="tns:AttributedURIType" />
+ <xs:element name="ProblemAction" type="tns:ProblemActionType" />
+ <xs:complexType name="ProblemActionType">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="tns:Action" />
+ <xs:element minOccurs="0" name="SoapAction" type="xs:anyURI" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-authorization.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-authorization.xsd
new file mode 100644
index 0000000..5e23c93
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-authorization.xsd
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.xmlsoap.org/ws/2006/12/authorization" elementFormDefault="qualified" targetNamespace="http://schemas.xmlsoap.org/ws/2006/12/authorization" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="AdditionalContext" type="tns:AdditionalContextType" />
+ <xs:complexType name="AdditionalContextType">
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="ContextItem" type="tns:ContextItemType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:complexType name="ContextItemType">
+ <xs:choice minOccurs="0">
+ <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:string" />
+ <xs:any minOccurs="1" maxOccurs="1" namespace="##other" processContents="lax" />
+ </xs:choice>
+ <xs:attribute name="Name" type="xs:anyURI" use="required" />
+ <xs:attribute name="Scope" type="xs:anyURI" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="ClaimType" type="tns:ClaimType" />
+ <xs:complexType name="ClaimType">
+ <xs:choice minOccurs="0">
+ <xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:string" />
+ <xs:any minOccurs="1" maxOccurs="1" namespace="##other" processContents="lax" />
+ </xs:choice>
+ <xs:attribute name="Uri" type="xs:anyURI" use="required" />
+ <xs:attribute name="Optional" type="xs:boolean" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-policy.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-policy.xsd
new file mode 100644
index 0000000..f8444cf
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-policy.xsd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:tns="http://schemas.xmlsoap.org/ws/2004/09/policy" blockDefault="#all" elementFormDefault="qualified" targetNamespace="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:import schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" />
+ <xs:import schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" />
+ <xs:element name="Policy">
+ <xs:complexType>
+ <xs:complexContent mixed="false">
+ <xs:extension base="tns:OperatorContentType">
+ <xs:attribute name="Name" type="xs:anyURI" />
+ <xs:attribute ref="wsu:Id" />
+ <xs:anyAttribute namespace="##any" processContents="lax" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="All" type="tns:OperatorContentType" />
+ <xs:element name="ExactlyOne" type="tns:OperatorContentType" />
+ <xs:complexType name="OperatorContentType">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="tns:Policy" />
+ <xs:element ref="tns:All" />
+ <xs:element ref="tns:ExactlyOne" />
+ <xs:element ref="tns:PolicyReference" />
+ <xs:any namespace="##other" processContents="lax" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="PolicyReference">
+ <xs:complexType>
+ <xs:attribute name="URI" type="xs:anyURI" use="required" />
+ <xs:attribute name="Digest" type="xs:base64Binary" />
+ <xs:attribute default="http://schemas.xmlsoap.org/ws/2004/09/policy/Sha1Exc" name="DigestAlgorithm" type="xs:anyURI" />
+ <xs:anyAttribute namespace="##any" processContents="lax" />
+ </xs:complexType>
+ </xs:element>
+ <xs:attribute default="false" name="Optional" type="xs:boolean" />
+ <xs:attribute name="PolicyURIs">
+ <xs:simpleType>
+ <xs:list itemType="xs:anyURI" />
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:element name="PolicyAttachment">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="tns:AppliesTo" />
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="tns:Policy" />
+ <xs:element ref="tns:PolicyReference" />
+ </xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##any" processContents="lax" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="AppliesTo">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##any" processContents="lax" />
+ </xs:complexType>
+ </xs:element>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.wsdl b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.wsdl
new file mode 100644
index 0000000..3016c34
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.wsdl
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" targetNamespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <xs:schema>
+ <xs:import schemaLocation="ws-trust-1.3-verisign.xsd" namespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" />
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="RequestSecurityTokenMsg">
+ <wsdl:part name="request" element="tns:RequestSecurityToken" />
+ </wsdl:message>
+ <wsdl:message name="RequestSecurityTokenCollectionMsg">
+ <wsdl:part name="request" element="tns:RequestSecurityTokenCollection" />
+ </wsdl:message>
+ <wsdl:message name="RequestSecurityTokenResponseMsg">
+ <wsdl:part name="response" element="tns:RequestSecurityTokenResponse" />
+ </wsdl:message>
+ <wsdl:message name="RequestSecurityTokenResponseCollectionMsg">
+ <wsdl:part name="responseCollection" element="tns:RequestSecurityTokenResponseCollection" />
+ </wsdl:message>
+ <wsdl:portType name="WSSecurityRequestor">
+ <wsdl:operation name="SecurityTokenResponse">
+ <wsdl:input message="tns:RequestSecurityTokenResponseMsg" />
+ </wsdl:operation>
+ <wsdl:operation name="SecurityTokenResponse2">
+ <wsdl:input message="tns:RequestSecurityTokenResponseCollectionMsg" />
+ </wsdl:operation>
+ <wsdl:operation name="Challenge">
+ <wsdl:input message="tns:RequestSecurityTokenResponseMsg" />
+ <wsdl:output message="tns:RequestSecurityTokenResponseMsg" />
+ </wsdl:operation>
+ <wsdl:operation name="Challenge2">
+ <wsdl:input message="tns:RequestSecurityTokenResponseMsg" />
+ <wsdl:output message="tns:RequestSecurityTokenResponseCollectionMsg" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:portType name="SecurityTokenRequestService">
+ <wsdl:operation name="RequestSecurityToken">
+ <wsdl:input message="tns:RequestSecurityTokenMsg" />
+ </wsdl:operation>
+ <wsdl:operation name="RequestSecurityTokenCollection">
+ <wsdl:input message="tns:RequestSecurityTokenCollectionMsg" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:portType name="SecurityTokenService">
+ <wsdl:operation name="RequestSecurityToken">
+ <wsdl:input message="tns:RequestSecurityTokenMsg" />
+ <wsdl:output message="tns:RequestSecurityTokenResponseMsg" />
+ </wsdl:operation>
+ <wsdl:operation name="RequestSecurityToken2">
+ <wsdl:input message="tns:RequestSecurityTokenMsg" />
+ <wsdl:output message="tns:RequestSecurityTokenResponseCollectionMsg" />
+ </wsdl:operation>
+ </wsdl:portType>
+</wsdl:definitions> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.xsd
new file mode 100644
index 0000000..027f4e0
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/ws-trust-1.xsd
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:vswstep="http://schemas.verisign.com/pkiservices/2009/07/enrollment" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/ws-sx/ws-trust/200512/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:import schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" />
+ <xs:import schemaLocation="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" />
+ <xs:import schemaLocation="http://schemas.xmlsoap.org/ws/2004/09/policy/ws-policy.xsd" namespace="http://schemas.xmlsoap.org/ws/2004/09/policy" />
+ <xs:import schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd" namespace="http://www.w3.org/2005/08/addressing" />
+ <xs:import schemaLocation="VS_WSTEP.xsd" namespace="http://schemas.verisign.com/pkiservices/2009/07/enrollment" />
+ <xs:element name="RequestSecurityToken" type="wst:RequestSecurityTokenType" />
+ <xs:complexType name="RequestSecurityTokenType">
+ <xs:annotation>
+ <xs:documentation>
+ Actual content model is non-deterministic, hence wildcard. The following shows intended content model:
+
+ &lt;xs:element ref='wst:TokenType' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:RequestType' /&gt;
+ &lt;xs:element ref='wsp:AppliesTo' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Claims' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Entropy' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Lifetime' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:AllowPostdating' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Renewing' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:OnBehalfOf' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Issuer' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:AuthenticationType' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:KeyType' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:KeySize' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:SignatureAlgorithm' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Encryption' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:EncryptionAlgorithm' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:CanonicalizationAlgorithm' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:ProofEncryption' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:UseKey' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:SignWith' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:EncryptWith' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:DelegateTo' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Forwardable' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Delegatable' minOccurs='0' /&gt;
+ &lt;xs:element ref='wsp:Policy' minOccurs='0' /&gt;
+ &lt;xs:element ref='wsp:PolicyReference' minOccurs='0' /&gt;
+ &lt;xs:any namespace='##other' processContents='lax' minOccurs='0' maxOccurs='unbounded' /&gt;
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="vswstep:requestVSSecurityToken" />
+ </xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute name="Context" type="xs:anyURI" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="TokenType" type="xs:anyURI" />
+ <xs:element name="RequestType" type="wst:RequestTypeOpenEnum" />
+ <xs:simpleType name="RequestTypeOpenEnum">
+ <xs:union memberTypes="wst:RequestTypeEnum xs:anyURI" />
+ </xs:simpleType>
+ <xs:simpleType name="RequestTypeEnum">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Renew" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Cancel" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/STSCancel" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Validate" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="RequestSecurityTokenResponse" type="wst:RequestSecurityTokenResponseType" />
+ <xs:complexType name="RequestSecurityTokenResponseType">
+ <xs:annotation>
+ <xs:documentation>
+ Actual content model is non-deterministic, hence wildcard. The following shows intended content model:
+
+ &lt;xs:element ref='wst:TokenType' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:RequestType' /&gt;
+ &lt;xs:element ref='wst:RequestedSecurityToken' minOccurs='0' /&gt;
+ &lt;xs:element ref='wsp:AppliesTo' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:RequestedAttachedReference' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:RequestedUnattachedReference' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:RequestedProofToken' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Entropy' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Lifetime' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Status' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:AllowPostdating' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Renewing' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:OnBehalfOf' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Issuer' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:AuthenticationType' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Authenticator' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:KeyType' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:KeySize' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:SignatureAlgorithm' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Encryption' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:EncryptionAlgorithm' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:CanonicalizationAlgorithm' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:ProofEncryption' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:UseKey' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:SignWith' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:EncryptWith' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:DelegateTo' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Forwardable' minOccurs='0' /&gt;
+ &lt;xs:element ref='wst:Delegatable' minOccurs='0' /&gt;
+ &lt;xs:element ref='wsp:Policy' minOccurs='0' /&gt;
+ &lt;xs:element ref='wsp:PolicyReference' minOccurs='0' /&gt;
+ &lt;xs:any namespace='##other' processContents='lax' minOccurs='0' maxOccurs='unbounded' /&gt;
+
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element ref="vswstep:RequestVSSecurityTokenResponse" />
+ </xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute name="Context" type="xs:anyURI" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="RequestedSecurityToken" type="wst:RequestedSecurityTokenType" />
+ <xs:complexType name="RequestedSecurityTokenType">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="BinarySecret" type="wst:BinarySecretType" />
+ <xs:complexType name="BinarySecretType">
+ <xs:simpleContent>
+ <xs:extension base="xs:base64Binary">
+ <xs:attribute name="Type" type="wst:BinarySecretTypeOpenEnum" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="BinarySecretTypeEnum">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/AsymmetricKey" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Nonce" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BinarySecretTypeOpenEnum">
+ <xs:union memberTypes="wst:BinarySecretTypeEnum xs:anyURI" />
+ </xs:simpleType>
+ <xs:element name="Claims" type="wst:ClaimsType" />
+ <xs:complexType name="ClaimsType">
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute name="Dialect" type="xs:anyURI" use="optional" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="Entropy" type="wst:EntropyType" />
+ <xs:complexType name="EntropyType">
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="Lifetime" type="wst:LifetimeType" />
+ <xs:complexType name="LifetimeType">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="wsu:Created" />
+ <xs:element minOccurs="0" ref="wsu:Expires" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="RequestSecurityTokenCollection" type="wst:RequestSecurityTokenCollectionType" />
+ <xs:complexType name="RequestSecurityTokenCollectionType">
+ <xs:annotation>
+ <xs:documentation>
+ The RequestSecurityTokenCollection (RSTC) element is used to provide multiple RST requests.
+ One or more RSTR elements in an RSTRC element are returned in the response to the RequestSecurityTokenCollection.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="2" maxOccurs="unbounded" name="RequestSecurityToken" type="wst:RequestSecurityTokenType" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="RequestSecurityTokenResponseCollection" type="wst:RequestSecurityTokenResponseCollectionType" />
+ <xs:complexType name="RequestSecurityTokenResponseCollectionType">
+ <xs:annotation>
+ <xs:documentation>
+ The &lt;wst:RequestSecurityTokenResponseCollection&gt; element (RSTRC) MUST be used to return a security token or
+ response to a security token request on the final response.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded" ref="wst:RequestSecurityTokenResponse" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="ComputedKey" type="wst:ComputedKeyOpenEnum" />
+ <xs:simpleType name="ComputedKeyEnum">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/CK/PSHA1" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/CK/HASH" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ComputedKeyOpenEnum">
+ <xs:union memberTypes="wst:ComputedKeyEnum xs:anyURI" />
+ </xs:simpleType>
+ <xs:element name="RequestedAttachedReference" type="wst:RequestedReferenceType" />
+ <xs:element name="RequestedUnattachedReference" type="wst:RequestedReferenceType" />
+ <xs:complexType name="RequestedReferenceType">
+ <xs:sequence>
+ <xs:element ref="wsse:SecurityTokenReference" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="RequestedProofToken" type="wst:RequestedProofTokenType" />
+ <xs:complexType name="RequestedProofTokenType">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="IssuedTokens" type="wst:RequestSecurityTokenResponseCollectionType" />
+ <xs:element name="RenewTarget" type="wst:RenewTargetType" />
+ <xs:complexType name="RenewTargetType">
+ <xs:sequence>
+ <xs:any minOccurs="1" maxOccurs="1" namespace="##other" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="AllowPostdating" type="wst:AllowPostdatingType" />
+ <xs:complexType name="AllowPostdatingType" />
+ <xs:element name="Renewing" type="wst:RenewingType" />
+ <xs:complexType name="RenewingType">
+ <xs:attribute name="Allow" type="xs:boolean" use="optional" />
+ <xs:attribute name="OK" type="xs:boolean" use="optional" />
+ </xs:complexType>
+ <xs:element name="CancelTarget" type="wst:CancelTargetType" />
+ <xs:complexType name="CancelTargetType">
+ <xs:sequence>
+ <xs:any minOccurs="1" maxOccurs="1" namespace="##other" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="RequestedTokenCancelled" type="wst:RequestedTokenCancelledType" />
+ <xs:complexType name="RequestedTokenCancelledType" />
+ <xs:element name="ValidateTarget" type="wst:ValidateTargetType" />
+ <xs:complexType name="ValidateTargetType">
+ <xs:sequence>
+ <xs:any minOccurs="1" maxOccurs="1" namespace="##other" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="Status" type="wst:StatusType" />
+ <xs:complexType name="StatusType">
+ <xs:sequence>
+ <xs:element name="Code" type="wst:StatusCodeOpenEnum" />
+ <xs:element minOccurs="0" name="Reason" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="StatusCodeEnum">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/status/valid" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/status/invalid" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="StatusCodeOpenEnum">
+ <xs:union memberTypes="wst:StatusCodeEnum xs:anyURI" />
+ </xs:simpleType>
+ <xs:element name="SignChallenge" type="wst:SignChallengeType" />
+ <xs:element name="SignChallengeResponse" type="wst:SignChallengeType" />
+ <xs:complexType name="SignChallengeType">
+ <xs:sequence>
+ <xs:element ref="wst:Challenge" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:anyAttribute namespace="##any" processContents="lax" />
+ </xs:complexType>
+ <xs:element name="Challenge" type="xs:string" />
+ <xs:element name="BinaryExchange" type="wst:BinaryExchangeType" />
+ <xs:complexType name="BinaryExchangeType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="ValueType" type="xs:anyURI" use="required" />
+ <xs:attribute name="EncodingType" type="xs:anyURI" use="required" />
+ <xs:anyAttribute namespace="##other" processContents="lax" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:element name="RequestKET" type="wst:RequestKETType" />
+ <xs:complexType name="RequestKETType" />
+ <xs:element name="KeyExchangeToken" type="wst:KeyExchangeTokenType" />
+ <xs:complexType name="KeyExchangeTokenType">
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="Authenticator" type="wst:AuthenticatorType" />
+ <xs:complexType name="AuthenticatorType">
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="wst:CombinedHash" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="CombinedHash" type="xs:base64Binary" />
+ <xs:element name="OnBehalfOf" type="wst:OnBehalfOfType" />
+ <xs:complexType name="OnBehalfOfType">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="Issuer" type="wsa:EndpointReferenceType" />
+ <xs:element name="AuthenticationType" type="xs:anyURI" />
+ <xs:element name="KeyType" type="wst:KeyTypeOpenEnum" />
+ <xs:simpleType name="KeyTypeEnum">
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/PublicKey" />
+ <xs:enumeration value="http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey" />
+ <xs:enumeration value="http://docs.oasis-open.org/wssx/wstrust/200512/Bearer" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="KeyTypeOpenEnum">
+ <xs:union memberTypes="wst:KeyTypeEnum xs:anyURI" />
+ </xs:simpleType>
+ <xs:element name="KeySize" type="xs:unsignedInt" />
+ <xs:element name="SignatureAlgorithm" type="xs:anyURI" />
+ <xs:element name="EncryptionAlgorithm" type="xs:anyURI" />
+ <xs:element name="CanonicalizationAlgorithm" type="xs:anyURI" />
+ <xs:element name="ComputedKeyAlgorithm" type="xs:anyURI" />
+ <xs:element name="Encryption" type="wst:EncryptionType" />
+ <xs:complexType name="EncryptionType">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="ProofEncryption" type="wst:ProofEncryptionType" />
+ <xs:complexType name="ProofEncryptionType">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="UseKey" type="wst:UseKeyType" />
+ <xs:complexType name="UseKeyType">
+ <xs:sequence>
+ <xs:any minOccurs="0" namespace="##any" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute name="Sig" type="xs:anyURI" use="optional" />
+ </xs:complexType>
+ <xs:element name="KeyWrapAlgorithm" type="xs:anyURI" />
+ <xs:element name="SignWith" type="xs:anyURI" />
+ <xs:element name="EncryptWith" type="xs:anyURI" />
+ <xs:element name="DelegateTo" type="wst:DelegateToType" />
+ <xs:complexType name="DelegateToType">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="Forwardable" type="xs:boolean" />
+ <xs:element name="Delegatable" type="xs:boolean" />
+ <xs:element name="Participants" type="wst:ParticipantsType" />
+ <xs:complexType name="ParticipantsType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Primary" type="wst:ParticipantType" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Participant" type="wst:ParticipantType" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ParticipantType">
+ <xs:sequence>
+ <xs:any namespace="##any" processContents="lax" />
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xml.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xml.xsd
new file mode 100644
index 0000000..be134de
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xml.xsd
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns="http://www.w3.org/1999/xhtml" targetNamespace="http://www.w3.org/XML/1998/namespace" xml:lang="en" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:annotation>
+ <xs:documentation>
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h1>About the XML namespace</h1>
+ <div class="bodytext">
+ <p>
+ This schema document describes the XML namespace, in a form
+ suitable for import by other schema documents.
+ </p>
+ <p>
+ See <a href="http://www.w3.org/XML/1998/namespace.html">
+ http://www.w3.org/XML/1998/namespace.html</a> and
+ <a href="http://www.w3.org/TR/REC-xml">
+ http://www.w3.org/TR/REC-xml</a> for information
+ about this namespace.
+ </p>
+ <p>
+ Note that local names in this namespace are intended to be
+ defined only by the World Wide Web Consortium or its subgroups.
+ The names currently defined in this namespace are listed below.
+ They should not be used with conflicting semantics by any Working
+ Group, specification, or document instance.
+ </p>
+ <p>
+ See further below in this document for more information about <a href="#usage">how to refer to this schema document from your own
+ XSD schema documents</a> and about <a href="#nsversioning">the
+ namespace-versioning policy governing this schema document</a>.
+ </p>
+ </div>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="lang">
+ <xs:annotation>
+ <xs:documentation>
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h3>lang (as an attribute name)</h3>
+ <p>
+ denotes an attribute whose value
+ is a language code for the natural language of the content of
+ any element; its value is inherited. This name is reserved
+ by virtue of its definition in the XML specification.</p>
+ </div>
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h4>Notes</h4>
+ <p>
+ Attempting to install the relevant ISO 2- and 3-letter
+ codes as the enumerated possible values is probably never
+ going to be a realistic possibility.
+ </p>
+ <p>
+ See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
+ http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
+ and the IANA language subtag registry at
+ <a href="http://www.iana.org/assignments/language-subtag-registry">
+ http://www.iana.org/assignments/language-subtag-registry</a>
+ for further information.
+ </p>
+ <p>
+ The union allows for the 'un-declaration' of xml:lang with
+ the empty string.
+ </p>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:union memberTypes="xs:language">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="space">
+ <xs:annotation>
+ <xs:documentation>
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h3>space (as an attribute name)</h3>
+ <p>
+ denotes an attribute whose
+ value is a keyword indicating what whitespace processing
+ discipline is intended for the content of the element; its
+ value is inherited. This name is reserved by virtue of its
+ definition in the XML specification.</p>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default" />
+ <xs:enumeration value="preserve" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="base" type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation>
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h3>base (as an attribute name)</h3>
+ <p>
+ denotes an attribute whose value
+ provides a URI to be used as the base for interpreting any
+ relative URIs in the scope of the element on which it
+ appears; its value is inherited. This name is reserved
+ by virtue of its definition in the XML Base specification.</p>
+ <p>
+ See <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
+ for information about this attribute.
+ </p>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="id" type="xs:ID">
+ <xs:annotation>
+ <xs:documentation>
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h3>id (as an attribute name)</h3>
+ <p>
+ denotes an attribute whose value
+ should be interpreted as if declared to be of type ID.
+ This name is reserved by virtue of its definition in the
+ xml:id specification.</p>
+ <p>
+ See <a href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
+ for information about this attribute.
+ </p>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attributeGroup name="specialAttrs">
+ <xs:attribute ref="xml:base" />
+ <xs:attribute ref="xml:lang" />
+ <xs:attribute ref="xml:space" />
+ <xs:attribute ref="xml:id" />
+ </xs:attributeGroup>
+ <xs:annotation>
+ <xs:documentation>
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h3>Father (in any context at all)</h3>
+ <div class="bodytext">
+ <p>
+ denotes Jon Bosak, the chair of
+ the original XML Working Group. This name is reserved by
+ the following decision of the W3C XML Plenary and
+ XML Coordination groups:
+ </p>
+ <blockquote>
+ <p>
+ In appreciation for his vision, leadership and
+ dedication the W3C XML Plenary on this 10th day of
+ February, 2000, reserves for Jon Bosak in perpetuity
+ the XML name "xml:Father".
+ </p>
+ </blockquote>
+ </div>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ <div xml:id="usage" id="usage" xmlns="http://www.w3.org/1999/xhtml">
+ <h2>
+ <a name="usage">About this schema document</a>
+ </h2>
+ <div class="bodytext">
+ <p>
+ This schema defines attributes and an attribute group suitable
+ for use by schemas wishing to allow <code>xml:base</code>,
+ <code>xml:lang</code>, <code>xml:space</code> or
+ <code>xml:id</code> attributes on elements they define.
+ </p>
+ <p>
+ To enable this, such a schema must import this schema for
+ the XML namespace, e.g. as follows:
+ </p>
+ <pre>
+ &lt;schema . . .&gt;
+ . . .
+ &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/&gt;
+ </pre>
+ <p>
+ or
+ </p>
+ <pre>
+ &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2009/01/xml.xsd"/&gt;
+ </pre>
+ <p>
+ Subsequently, qualified reference to any of the attributes or the
+ group defined below will have the desired effect, e.g.
+ </p>
+ <pre>
+ &lt;type . . .&gt;
+ . . .
+ &lt;attributeGroup ref="xml:specialAttrs"/&gt;
+ </pre>
+ <p>
+ will define a type which will schema-validate an instance element
+ with any of those attributes.
+ </p>
+ </div>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ <div id="nsversioning" xml:id="nsversioning" xmlns="http://www.w3.org/1999/xhtml">
+ <h2>
+ <a name="nsversioning">Versioning policy for this schema document</a>
+ </h2>
+ <div class="bodytext">
+ <p>
+ In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+ <a href="http://www.w3.org/2009/01/xml.xsd">
+ http://www.w3.org/2009/01/xml.xsd</a>.
+ </p>
+ <p>
+ At the date of issue it can also be found at
+ <a href="http://www.w3.org/2001/xml.xsd">
+ http://www.w3.org/2001/xml.xsd</a>.
+ </p>
+ <p>
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML
+ Schema itself, or with the XML namespace itself. In other words,
+ if the XML Schema or XML namespaces change, the version of this
+ document at <a href="http://www.w3.org/2001/xml.xsd">
+ http://www.w3.org/2001/xml.xsd
+ </a>
+ will change accordingly; the version at
+ <a href="http://www.w3.org/2009/01/xml.xsd">
+ http://www.w3.org/2009/01/xml.xsd
+ </a>
+ will not change.
+ </p>
+ <p>
+ Previous dated (and unchanging) versions of this schema
+ document are at:
+ </p>
+ <ul>
+ <li>
+ <a href="http://www.w3.org/2009/01/xml.xsd">
+ http://www.w3.org/2009/01/xml.xsd</a>
+ </li>
+ <li>
+ <a href="http://www.w3.org/2007/08/xml.xsd">
+ http://www.w3.org/2007/08/xml.xsd</a>
+ </li>
+ <li>
+ <a href="http://www.w3.org/2004/10/xml.xsd">
+ http://www.w3.org/2004/10/xml.xsd</a>
+ </li>
+ <li>
+ <a href="http://www.w3.org/2001/03/xml.xsd">
+ http://www.w3.org/2001/03/xml.xsd</a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </xs:documentation>
+ </xs:annotation>
+</xs:schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xmldsig-core-schema.xsd b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xmldsig-core-schema.xsd
new file mode 100644
index 0000000..e036087
--- /dev/null
+++ b/utils/ipn_sqlclr/Web References/veriSignCertIssuingService/xmldsig-core-schema.xsd
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="utf-8"?>
+<schema xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2000/09/xmldsig#" version="0.1" xmlns="http://www.w3.org/2001/XMLSchema">
+ <simpleType name="CryptoBinary">
+ <restriction base="base64Binary" />
+ </simpleType>
+ <element name="Signature" type="ds:SignatureType" />
+ <complexType name="SignatureType">
+ <sequence>
+ <element ref="ds:SignedInfo" />
+ <element ref="ds:SignatureValue" />
+ <element minOccurs="0" ref="ds:KeyInfo" />
+ <element minOccurs="0" maxOccurs="unbounded" ref="ds:Object" />
+ </sequence>
+ <attribute name="Id" type="ID" use="optional" />
+ </complexType>
+ <element name="SignatureValue" type="ds:SignatureValueType" />
+ <complexType name="SignatureValueType">
+ <simpleContent>
+ <extension base="base64Binary">
+ <attribute name="Id" type="ID" use="optional" />
+ </extension>
+ </simpleContent>
+ </complexType>
+ <element name="SignedInfo" type="ds:SignedInfoType" />
+ <complexType name="SignedInfoType">
+ <sequence>
+ <element ref="ds:CanonicalizationMethod" />
+ <element ref="ds:SignatureMethod" />
+ <element maxOccurs="unbounded" ref="ds:Reference" />
+ </sequence>
+ <attribute name="Id" type="ID" use="optional" />
+ </complexType>
+ <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType" />
+ <complexType name="CanonicalizationMethodType" mixed="true">
+ <sequence>
+ <any minOccurs="0" maxOccurs="unbounded" namespace="##any" />
+ </sequence>
+ <attribute name="Algorithm" type="anyURI" use="required" />
+ </complexType>
+ <element name="SignatureMethod" type="ds:SignatureMethodType" />
+ <complexType name="SignatureMethodType" mixed="true">
+ <sequence>
+ <element minOccurs="0" name="HMACOutputLength" type="ds:HMACOutputLengthType" />
+ <any minOccurs="0" maxOccurs="unbounded" namespace="##other" />
+ </sequence>
+ <attribute name="Algorithm" type="anyURI" use="required" />
+ </complexType>
+ <element name="Reference" type="ds:ReferenceType" />
+ <complexType name="ReferenceType">
+ <sequence>
+ <element minOccurs="0" ref="ds:Transforms" />
+ <element ref="ds:DigestMethod" />
+ <element ref="ds:DigestValue" />
+ </sequence>
+ <attribute name="Id" type="ID" use="optional" />
+ <attribute name="URI" type="anyURI" use="optional" />
+ <attribute name="Type" type="anyURI" use="optional" />
+ </complexType>
+ <element name="Transforms" type="ds:TransformsType" />
+ <complexType name="TransformsType">
+ <sequence>
+ <element maxOccurs="unbounded" ref="ds:Transform" />
+ </sequence>
+ </complexType>
+ <element name="Transform" type="ds:TransformType" />
+ <complexType name="TransformType" mixed="true">
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax" />
+ <element name="XPath" type="string" />
+ </choice>
+ <attribute name="Algorithm" type="anyURI" use="required" />
+ </complexType>
+ <element name="DigestMethod" type="ds:DigestMethodType" />
+ <complexType name="DigestMethodType" mixed="true">
+ <sequence>
+ <any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </sequence>
+ <attribute name="Algorithm" type="anyURI" use="required" />
+ </complexType>
+ <element name="DigestValue" type="ds:DigestValueType" />
+ <simpleType name="DigestValueType">
+ <restriction base="base64Binary" />
+ </simpleType>
+ <element name="KeyInfo" type="ds:KeyInfoType" />
+ <complexType name="KeyInfoType" mixed="true">
+ <choice maxOccurs="unbounded">
+ <element ref="ds:KeyName" />
+ <element ref="ds:KeyValue" />
+ <element ref="ds:RetrievalMethod" />
+ <element ref="ds:X509Data" />
+ <element ref="ds:PGPData" />
+ <element ref="ds:SPKIData" />
+ <element ref="ds:MgmtData" />
+ <any namespace="##other" processContents="lax" />
+ </choice>
+ <attribute name="Id" type="ID" use="optional" />
+ </complexType>
+ <element name="KeyName" type="string" />
+ <element name="MgmtData" type="string" />
+ <element name="KeyValue" type="ds:KeyValueType" />
+ <complexType name="KeyValueType" mixed="true">
+ <choice>
+ <element ref="ds:DSAKeyValue" />
+ <element ref="ds:RSAKeyValue" />
+ <any namespace="##other" processContents="lax" />
+ </choice>
+ </complexType>
+ <element name="RetrievalMethod" type="ds:RetrievalMethodType" />
+ <complexType name="RetrievalMethodType">
+ <sequence>
+ <element minOccurs="0" ref="ds:Transforms" />
+ </sequence>
+ <attribute name="URI" type="anyURI" />
+ <attribute name="Type" type="anyURI" use="optional" />
+ </complexType>
+ <element name="X509Data" type="ds:X509DataType" />
+ <complexType name="X509DataType">
+ <sequence maxOccurs="unbounded">
+ <choice>
+ <element name="X509IssuerSerial" type="ds:X509IssuerSerialType" />
+ <element name="X509SKI" type="base64Binary" />
+ <element name="X509SubjectName" type="string" />
+ <element name="X509Certificate" type="base64Binary" />
+ <element name="X509CRL" type="base64Binary" />
+ <any namespace="##other" processContents="lax" />
+ </choice>
+ </sequence>
+ </complexType>
+ <complexType name="X509IssuerSerialType">
+ <sequence>
+ <element name="X509IssuerName" type="string" />
+ <element name="X509SerialNumber" type="integer" />
+ </sequence>
+ </complexType>
+ <element name="PGPData" type="ds:PGPDataType" />
+ <complexType name="PGPDataType">
+ <choice>
+ <sequence>
+ <element name="PGPKeyID" type="base64Binary" />
+ <element minOccurs="0" name="PGPKeyPacket" type="base64Binary" />
+ <any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </sequence>
+ <sequence>
+ <element name="PGPKeyPacket" type="base64Binary" />
+ <any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="lax" />
+ </sequence>
+ </choice>
+ </complexType>
+ <element name="SPKIData" type="ds:SPKIDataType" />
+ <complexType name="SPKIDataType">
+ <sequence maxOccurs="unbounded">
+ <element name="SPKISexp" type="base64Binary" />
+ <any minOccurs="0" namespace="##other" processContents="lax" />
+ </sequence>
+ </complexType>
+ <element name="Object" type="ds:ObjectType" />
+ <complexType name="ObjectType" mixed="true">
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##any" processContents="lax" />
+ </sequence>
+ <attribute name="Id" type="ID" use="optional" />
+ <attribute name="MimeType" type="string" use="optional" />
+ <attribute name="Encoding" type="anyURI" use="optional" />
+ </complexType>
+ <element name="Manifest" type="ds:ManifestType" />
+ <complexType name="ManifestType">
+ <sequence>
+ <element maxOccurs="unbounded" ref="ds:Reference" />
+ </sequence>
+ <attribute name="Id" type="ID" use="optional" />
+ </complexType>
+ <element name="SignatureProperties" type="ds:SignaturePropertiesType" />
+ <complexType name="SignaturePropertiesType">
+ <sequence>
+ <element maxOccurs="unbounded" ref="ds:SignatureProperty" />
+ </sequence>
+ <attribute name="Id" type="ID" use="optional" />
+ </complexType>
+ <element name="SignatureProperty" type="ds:SignaturePropertyType" />
+ <complexType name="SignaturePropertyType" mixed="true">
+ <choice maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax" />
+ </choice>
+ <attribute name="Target" type="anyURI" use="required" />
+ <attribute name="Id" type="ID" use="optional" />
+ </complexType>
+ <simpleType name="HMACOutputLengthType">
+ <restriction base="integer" />
+ </simpleType>
+ <element name="DSAKeyValue" type="ds:DSAKeyValueType" />
+ <complexType name="DSAKeyValueType">
+ <sequence>
+ <sequence minOccurs="0">
+ <element name="P" type="ds:CryptoBinary" />
+ <element name="Q" type="ds:CryptoBinary" />
+ </sequence>
+ <element minOccurs="0" name="G" type="ds:CryptoBinary" />
+ <element name="Y" type="ds:CryptoBinary" />
+ <element minOccurs="0" name="J" type="ds:CryptoBinary" />
+ <sequence minOccurs="0">
+ <element name="Seed" type="ds:CryptoBinary" />
+ <element name="PgenCounter" type="ds:CryptoBinary" />
+ </sequence>
+ </sequence>
+ </complexType>
+ <element name="RSAKeyValue" type="ds:RSAKeyValueType" />
+ <complexType name="RSAKeyValueType">
+ <sequence>
+ <element name="Modulus" type="ds:CryptoBinary" />
+ <element name="Exponent" type="ds:CryptoBinary" />
+ </sequence>
+ </complexType>
+</schema> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/XmlReaderSpy.cs b/utils/ipn_sqlclr/XmlReaderSpy.cs
new file mode 100644
index 0000000..f89ece9
--- /dev/null
+++ b/utils/ipn_sqlclr/XmlReaderSpy.cs
@@ -0,0 +1,280 @@
+using System.Security.Cryptography.X509Certificates;
+using System.Text;
+using System.Web.Services.Protocols;
+using System.Xml;
+using System.IO;
+
+namespace ipn_sqlclr
+{
+ public class XmlReaderSpy : StreamReader
+ {
+ private readonly StringBuilder _sb = new StringBuilder();
+ public XmlReaderSpy(Stream stream, Encoding encoding, bool p, int bufferSize) : base(stream, encoding, p, bufferSize)
+ {
+ }
+
+ public override int Read(char[] buffer, int index, int count)
+ {
+ var ret = base.Read(buffer, index, count);
+ if(ret > 0)
+ _sb.Append(buffer, index, ret);
+ return ret;
+ }
+
+ public override string ReadToEnd()
+ {
+ var ret = base.ReadToEnd();
+ _sb.Append(ret);
+ return ret;
+ }
+
+ public override string ReadLine()
+ {
+ var ret = base.ReadLine();
+ _sb.Append(ret);
+ return ret;
+ }
+
+ public override int ReadBlock(char[] buffer, int index, int count)
+ {
+ return Read(buffer, index, count);
+ }
+
+ public string Xml
+ {
+ get { return _sb.ToString().Replace("<?xml version='1.0' encoding='UTF-8'?>", ""); }
+ }
+ }
+
+ public class XmlWriterSpy : XmlWriter
+ {
+ private readonly XmlWriter _base;
+ private readonly XmlTextWriter _xtw;
+ private readonly StringWriter _sw;
+
+ /// <summary>
+ /// Extracted XML.
+ /// </summary>
+ public string Xml
+ {
+ get
+ {
+ return (_sw != null) ? _sw.ToString() : string.Empty;
+ }
+ }
+
+ public XmlWriterSpy(XmlWriter parent)
+ {
+ _base = parent;
+ _sw = new StringWriter();
+ _xtw = new XmlTextWriter(_sw);
+ }
+
+ #region Abstract properties and methods that must be implemented
+
+ public override WriteState WriteState
+ {
+ get
+ {
+ return _base.WriteState;
+ }
+ }
+
+ public override void Close()
+ {
+ _base.Close();
+ _xtw.Close();
+ _sw.Close();
+ }
+
+ public override void Flush()
+ {
+ _base.Flush();
+ _xtw.Flush();
+ _sw.Flush();
+ }
+
+ public override string LookupPrefix(string ns)
+ {
+ return _base.LookupPrefix(ns);
+ }
+
+ public override void WriteBase64(byte[] buffer, int index, int count)
+ {
+ _base.WriteBase64(buffer, index, count);
+ _xtw.WriteBase64(buffer, index, count);
+ }
+
+ public override void WriteCData(string text)
+ {
+ _base.WriteCData(text);
+ _xtw.WriteCData(text);
+ }
+
+ public override void WriteCharEntity(char ch)
+ {
+ _base.WriteCharEntity(ch);
+ _xtw.WriteCharEntity(ch);
+ }
+
+ public override void WriteChars(char[] buffer, int index, int count)
+ {
+ _base.WriteChars(buffer, index, count);
+ _xtw.WriteChars(buffer, index, count);
+ }
+
+ public override void WriteComment(string text)
+ {
+ _base.WriteComment(text);
+ _xtw.WriteComment(text);
+ }
+
+ public override void WriteDocType(string name, string pubid, string sysid, string subset)
+ {
+ _base.WriteDocType(name, pubid, sysid, subset);
+ _xtw.WriteDocType(name, pubid, sysid, subset);
+ }
+
+ public override void WriteEndAttribute()
+ {
+ _base.WriteEndAttribute();
+ _xtw.WriteEndAttribute();
+ }
+
+ public override void WriteEndDocument()
+ {
+ _base.WriteEndDocument();
+ _xtw.WriteEndDocument();
+ }
+
+ public override void WriteEndElement()
+ {
+ _base.WriteEndElement();
+ _xtw.WriteEndElement();
+ }
+
+ public override void WriteEntityRef(string name)
+ {
+ _base.WriteEntityRef(name);
+ _xtw.WriteEntityRef(name);
+ }
+
+ public override void WriteFullEndElement()
+ {
+ _base.WriteFullEndElement();
+ _xtw.WriteFullEndElement();
+ }
+
+ public override void WriteProcessingInstruction(string name, string text)
+ {
+ _base.WriteProcessingInstruction(name, text);
+ _xtw.WriteProcessingInstruction(name, text);
+ }
+
+ public override void WriteRaw(string data)
+ {
+ _base.WriteRaw(data);
+ _xtw.WriteRaw(data);
+ }
+
+ public override void WriteRaw(char[] buffer, int index, int count)
+ {
+ _base.WriteRaw(buffer, index, count);
+ _xtw.WriteRaw(buffer, index, count);
+ }
+
+ public override void WriteStartAttribute(string prefix, string localName, string ns)
+ {
+ _base.WriteStartAttribute(prefix, localName, ns);
+ _xtw.WriteStartAttribute(prefix, localName, ns);
+ }
+
+ public override void WriteStartDocument(bool standalone)
+ {
+ _base.WriteStartDocument(standalone);
+ _xtw.WriteStartDocument(standalone);
+ }
+
+ public override void WriteStartDocument()
+ {
+ _base.WriteStartDocument();
+ _xtw.WriteStartDocument();
+ }
+
+ public override void WriteStartElement(string prefix, string localName, string ns)
+ {
+ _base.WriteStartElement(prefix, localName, ns);
+ _xtw.WriteStartElement(prefix, localName, ns);
+ }
+
+ public override void WriteString(string text)
+ {
+ _base.WriteString(text);
+ _xtw.WriteString(text);
+ }
+
+ public override void WriteSurrogateCharEntity(char lowChar, char highChar)
+ {
+ _base.WriteSurrogateCharEntity(lowChar, highChar);
+ _xtw.WriteSurrogateCharEntity(lowChar, highChar);
+
+ }
+
+ public override void WriteWhitespace(string ws)
+ {
+ _base.WriteWhitespace(ws);
+ _xtw.WriteWhitespace(ws);
+ }
+
+ #endregion
+ }
+
+ public class XmlReaderSpyService : SoapHttpClientProtocol
+ {
+ protected XmlReaderSpyService(X509Certificate clientCert, string url)
+ {
+ Url = url;
+ ClientCertificates.Add(clientCert);
+ }
+
+ private XmlReaderSpy _xmlReaderSpy;
+ private XmlWriterSpy _xmlWriterSpy;
+
+ public string GetRequestXml()
+ {
+ if (_xmlWriterSpy != null)
+ return _xmlWriterSpy.Xml;
+ return string.Empty;
+ }
+ public string GetResponseXml()
+ {
+ if (_xmlReaderSpy != null)
+ {
+ return _xmlReaderSpy.Xml;
+ }
+ return string.Empty;
+ }
+
+ protected override XmlReader GetReaderForMessage(SoapClientMessage message, int bufferSize)
+ {
+ Encoding encoding = Encoding.UTF8;
+ if (bufferSize < 0x200)
+ {
+ bufferSize = 0x200;
+ }
+ var reader = new XmlTextReader(_xmlReaderSpy = new XmlReaderSpy(message.Stream, encoding, true, bufferSize))
+ {
+ DtdProcessing = DtdProcessing.Prohibit,
+ Normalization = true,
+ XmlResolver = null
+ };
+ return reader;
+ }
+
+ protected override XmlWriter GetWriterForMessage(SoapClientMessage message, int bufferSize)
+ {
+ _xmlWriterSpy = new XmlWriterSpy(base.GetWriterForMessage(message, bufferSize));
+ return _xmlWriterSpy;
+ }
+ }
+}
diff --git a/utils/ipn_sqlclr/ipn_sqlclr.sqlproj b/utils/ipn_sqlclr/ipn_sqlclr.sqlproj
new file mode 100644
index 0000000..67fa032
--- /dev/null
+++ b/utils/ipn_sqlclr/ipn_sqlclr.sqlproj
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <Name>ipn_sqlclr</Name>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectVersion>4.1</ProjectVersion>
+ <ProjectGuid>{046364af-635b-4f62-9c8c-d3866b8f622f}</ProjectGuid>
+ <DSP>Microsoft.Data.Tools.Schema.Sql.Sql110DatabaseSchemaProvider</DSP>
+ <OutputType>Database</OutputType>
+ <RootPath>
+ </RootPath>
+ <RootNamespace>ipn_sqlclr</RootNamespace>
+ <AssemblyName>ipn_sqlclr</AssemblyName>
+ <ModelCollation>1033, CI</ModelCollation>
+ <DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
+ <DeployToDatabase>True</DeployToDatabase>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetLanguage>CS</TargetLanguage>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <SqlServerVerification>False</SqlServerVerification>
+ <TargetDatabaseSet>True</TargetDatabaseSet>
+ <PermissionSet>UNSAFE</PermissionSet>
+ <GenerateCreateScript>True</GenerateCreateScript>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <OutputPath>bin\Release\</OutputPath>
+ <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
+ <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <DefineDebug>false</DefineDebug>
+ <DefineTrace>true</DefineTrace>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <OutputPath>bin\Debug\</OutputPath>
+ <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <DefineDebug>true</DefineDebug>
+ <DefineTrace>true</DefineTrace>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <!-- VS10 without SP1 will not have VisualStudioVersion set, so do that here -->
+ <PropertyGroup>
+ <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+ </PropertyGroup>
+ <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
+ <ItemGroup>
+ <Folder Include="Properties" />
+ <Folder Include="Web References\" />
+ <Folder Include="Web References\certificateManagementService\" />
+ <Folder Include="Web References\policyService\" />
+ <Folder Include="Web References\signDataService\" />
+ <Folder Include="Web References\veriSignCertIssuingService\" />
+ </ItemGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Web.Services" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Numerics" />
+ <Reference Include="System.Core" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="VmpLicenseKey.cs" />
+ <Compile Include="keygen.cs" />
+ <Compile Include="Taggant.cs" />
+ <Compile Include="Web References\certificateManagementService\Reference.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Reference.map</DependentUpon>
+ </Compile>
+ <Compile Include="Web References\policyService\Reference.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Reference.map</DependentUpon>
+ </Compile>
+ <Compile Include="Web References\signDataService\Reference.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Reference.map</DependentUpon>
+ </Compile>
+ <Compile Include="Web References\veriSignCertIssuingService\Reference.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Reference.map</DependentUpon>
+ </Compile>
+ <Compile Include="TaggantWebService.cs" />
+ <Compile Include="LogItem.cs" />
+ <Compile Include="XmlReaderSpy.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="C:\Users\Youra\Documents\GitHub\my-vmprotect\tagg\CertificateEnrollmentPolicy.wsdl">
+ <Link>Web References\CertificateEnrollmentPolicy.wsdl</Link>
+ </None>
+ <None Include="C:\Users\Youra\Documents\GitHub\my-vmprotect\tagg\CertificateManagementService.wsdl">
+ <Link>Web References\CertificateManagementService.wsdl</Link>
+ </None>
+ <None Include="C:\Users\Youra\Documents\GitHub\my-vmprotect\tagg\SignerAPI.wsdl">
+ <Link>Web References\SignerAPI.wsdl</Link>
+ </None>
+ <None Include="C:\Users\Youra\Documents\GitHub\my-vmprotect\tagg\UserManagementService.wsdl">
+ <Link>Web References\UserManagementService.wsdl</Link>
+ </None>
+ <None Include="C:\Users\Youra\Documents\GitHub\my-vmprotect\tagg\VS_WSTEP.wsdl">
+ <Link>Web References\VS_WSTEP.wsdl</Link>
+ </None>
+ <None Include="C:\Users\Youra\Documents\GitHub\my-vmprotect\tagg\ws-trust-1.3-verisign.wsdl">
+ <Link>Web References\ws-trust-1.3-verisign.wsdl</Link>
+ </None>
+ <None Include="ipn_sqlclr.publish.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\bc\crypto\crypto.csproj">
+ <Name>crypto</Name>
+ <Project>{38872a5f-e87e-4fad-b109-8eb7b2e6a4a0}</Project>
+ <Private>True</Private>
+ <IsModelAware>True</IsModelAware>
+ <GenerateSqlClrDdl>True</GenerateSqlClrDdl>
+ </ProjectReference>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/utils/ipn_sqlclr/keygen.cs b/utils/ipn_sqlclr/keygen.cs
new file mode 100644
index 0000000..d26b5a3
--- /dev/null
+++ b/utils/ipn_sqlclr/keygen.cs
@@ -0,0 +1,212 @@
+using System;
+using System.IO;
+using System.Numerics;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace ipn_sqlclr
+{
+ enum SerialNumberChunks : byte
+ {
+ Version = 0x01, // 1 byte of data - version
+ UserName = 0x02, // 1 + N bytes - length + N bytes of customer's name (without enging \0).
+ Email = 0x03, // 1 + N bytes - length + N bytes of customer's email (without ending \0).
+ ProductCode = 0x07, // 8 bytes - used for decrypting some parts of exe-file
+ UserData = 0x08, // 1 + N bytes - length + N bytes of user data
+ MaxBuild = 0x09, // 4 bytes - (year << 16) + (month << 8) + (day)
+ End = 0xFF // 4 bytes - checksum: the first four bytes of sha-1 hash from the data before that chunk
+ };
+
+ public static class Rsa
+ {
+ private const string PublicExpB64 = "AAEAAQ==";
+ private const string PrivateExpB64 = "CXHXWx/Z9JqetQWwFpvmD72wrDiqQOXMQs18fhAMjWCfJ/f2r3p2io+iB3gqIuu3LGH3WJ8PQuIzvDMnbwAx+8BbAyYhWhGEbxDdifndjQ2KlDV2Hu8NQgCbc5Wjok0rKwQ+Bxeb2i1+Gu3FsnhRNv9RhSyiwcnH/4Q3+ySE3AFAcAUwuQABePjDKCYOfIyx7RKz5h0sG+v10nkPuuCGPSnh+AXDTBIJFH+yNIjkrfweC9A3dv7URyRJumAMgm/SnDU76rTkFw9vZpupQeMtMtIsZIkeFSngip9KImD5zzbb2vKD63Cg9W/Yvqgvro/d+cR5n6P0t4DzfanNIFRGpFrX8/Q5VjuezDKw/4YbsFYwOhzJPRxglmCEjh8cpfxJ11cUXa/hNBV4c4Dp29D0F+w01OlBnFb1Ck9VXur2qJCsqcWtjsnt/VITsxa1jzr+3C2+uvaI4JSd7yLEnTqSaSsRfWuhDXgjY/YWhmyvMzeQeXBGOXKt2j2lY2Fm0WJx";
+ private const string ModulusB64 = "pwUqwaM8IOukyx06Lvi5YNQ70JE7pwg7K+pmM/vCe1CUseHKFM1v1m11geDjVsAt38AnaiFs3JhtTs80ySCIxOSyvMw6Cd52k6N6dn7LAx1mxQLJLhYeMMJYbplMHnMLwYN0+IO58OVbEqRyaJV2ExolnK2EYZL7QRXujGY7/sOoOMF3p6GsWJK6kkBJICIoL9hHWBQMO6/9rmls/+EhaWuP80Vx0+H2OlrQ58K+TJeyE393cvb4QufiEPpCNaB50Klee9QUnsjSW/bTnmGn4Bi5+cowRbawUY73Q5I58fMAXiH9ueDPuNMR9YKDgW9GxunLmYkbuwqIp/v7kw3cfMBM0ihhB0B8UhjyAMAGLzJWX3H/H6Zrz41g9PbPjTAxfsTaCrxoqjaTaO4zk9YsI//VX9Fhivcy913SevBpNandziGfYH/oHW2xDy9AfwkE1wuIBlLj7c/k8U1YmmRAmkoCzlmB7EU4ClNltboh1uARUQ6wW30upppnuYhGkTy7";
+
+ static BigInteger B2Bi(byte[] b) //reverse & make positive
+ {
+ Array.Reverse(b);
+ var b2 = new byte[b.Length + 1];
+ Array.Copy(b, b2, b.Length);
+ return new BigInteger(b2);
+ }
+
+ private static readonly BigInteger PublicExp = B2Bi(Convert.FromBase64String(PublicExpB64));
+ private static readonly BigInteger PrivateExp = B2Bi(Convert.FromBase64String(PrivateExpB64));
+ private static readonly BigInteger Modulus = B2Bi(Convert.FromBase64String(ModulusB64));
+
+ public static byte[] Encrypt(byte[] paddedData)
+ {
+ var x = B2Bi(paddedData);
+ var y = BigInteger.ModPow(x, PrivateExp, Modulus);
+
+ byte[] ret = y.ToByteArray();
+ Array.Resize(ref ret, paddedData.Length);
+ Array.Reverse(ret);
+ return ret;
+ }
+
+ public static byte[] Decrypt(byte[] data)
+ {
+ var x = B2Bi(data);
+ var y = BigInteger.ModPow(x, PublicExp, Modulus);
+
+ byte[] ret = y.ToByteArray();
+ Array.Reverse(ret);
+ return ret;
+ }
+
+ }
+ public static class Keygen
+ {
+ public static void ParseKey(string key, out int productId, out string customerName, out string eMail, out DateTime maxBuildDt)
+ {
+ productId = -1;
+ customerName = null;
+ eMail = null;
+ maxBuildDt = new DateTime();
+
+ var crypted = Convert.FromBase64String(key);
+ var data = Rsa.Decrypt(crypted);
+ int i;
+ for (i = 2; i < data.Length && data[i] != 0; i++) {
+ }
+
+ i++;
+ var pos = i;
+ while (pos < data.Length)
+ {
+ var b = data[pos++];
+ switch (b)
+ {
+ case (byte) SerialNumberChunks.Version:
+ b = data[pos++];
+ if (b < 1 || b > 2)
+ throw new InvalidDataException("SerialNumberChunks.Version");
+ break;
+ case (byte) SerialNumberChunks.UserName:
+ b = data[pos++];
+ customerName = Encoding.UTF8.GetString(data, pos, b);
+ pos += b;
+ break;
+ case (byte) SerialNumberChunks.Email:
+ b = data[pos++];
+ eMail = Encoding.UTF8.GetString(data, pos, b);
+ pos += b;
+ break;
+ case (byte)SerialNumberChunks.ProductCode:
+ pos += 8;
+ break;
+ case (byte) SerialNumberChunks.UserData:
+ b = data[pos++];
+ if (b == 0)
+ productId = 0;
+ else if(b != 1)
+ throw new InvalidDataException("Invalid ProductID");
+ else
+ productId = data[pos];
+ pos += b;
+ break;
+ case (byte) SerialNumberChunks.MaxBuild:
+ maxBuildDt = new DateTime(data[pos + 2] + 256 * data[pos + 3], data[pos + 1],data[pos]);
+ pos += 4;
+ break;
+ case (byte) SerialNumberChunks.End:
+ if (pos + 4 > data.Length)
+ throw new InvalidDataException("No checksum");
+ {
+ SHA1 sha = new SHA1Managed();
+ sha.Initialize();
+ var hash = sha.ComputeHash(data, i, pos - 1 - i);
+ for (int j = 0; j < 4; j++)
+ {
+ if(data[pos + j] == hash[3 - j])
+ continue;
+ throw new InvalidDataException("Invalid checksum");
+ }
+ }
+ return;
+ }
+ }
+ throw new InvalidDataException("No checksum");
+ }
+
+ public static string GenerateKey(int productId, string customerName, string eMail, DateTime maxBuildDt)
+ {
+ var data = new MemoryStream();
+ data.WriteByte((byte)SerialNumberChunks.Version);
+ data.WriteByte(1);
+
+ data.WriteByte((byte)SerialNumberChunks.UserName);
+ var utfCustomer = Encoding.UTF8.GetBytes(customerName);
+ if (utfCustomer.Length > 255)
+ throw new ArgumentException("Customer name too long", "customerName");
+ data.WriteByte((byte)utfCustomer.Length);
+ data.Write(utfCustomer, 0, utfCustomer.Length);
+
+ data.WriteByte((byte)SerialNumberChunks.Email);
+ byte[] utfeMail = Encoding.UTF8.GetBytes(eMail);
+ if (utfeMail.Length > 255)
+ throw new ArgumentException("EMail too long", "eMail");
+ data.WriteByte((byte)utfeMail.Length);
+ data.Write(utfeMail, 0, utfeMail.Length);
+
+ data.WriteByte((byte)SerialNumberChunks.ProductCode);
+ data.Write(new byte[] { 41, 65, 36, 150, 5, 175, 174, 137 }, 0, 8);
+
+ data.WriteByte((byte)SerialNumberChunks.UserData);
+ data.WriteByte(1);
+ data.WriteByte((byte)productId);
+
+ data.WriteByte((byte)SerialNumberChunks.MaxBuild);
+ data.WriteByte((byte)maxBuildDt.Day);
+ data.WriteByte((byte)maxBuildDt.Month);
+ data.WriteByte((byte)maxBuildDt.Year);
+ data.WriteByte((byte)(maxBuildDt.Year >> 8));
+
+ SHA1 sha = new SHA1Managed();
+ sha.Initialize();
+ data.Position = 0;
+ var hash = sha.ComputeHash(data);
+ data.WriteByte((byte)SerialNumberChunks.End);
+ data.WriteByte(hash[3]);
+ data.WriteByte(hash[2]);
+ data.WriteByte(hash[1]);
+ data.WriteByte(hash[0]);
+
+ const int minPadding = 8 + 3;
+ const int maxPadding = minPadding + 16;
+ const int maxBytes = 3072 / 8;
+ if (data.Length + minPadding > maxBytes)
+ throw new ApplicationException("Serial number too long");
+
+ var rnd = new Random();
+ var paddingBytes = rnd.Next(minPadding, maxPadding + 1);
+ if (data.Length + paddingBytes > maxBytes)
+ paddingBytes = maxBytes - (int)data.Length;
+
+ var paddedData = new byte[maxBytes];
+ var nonPaddedData = data.ToArray();
+ Array.Copy(nonPaddedData, paddedData, paddingBytes);
+ Array.Copy(nonPaddedData, 0, paddedData, paddingBytes, data.Length);
+ paddedData[0] = 0;
+ paddedData[1] = 2;
+ paddedData[paddingBytes - 1] = 0;
+ var i = 2;
+ for (; i < paddingBytes - 1; i++) {
+ byte b = 0;
+ while (b == 0) {
+ b = (byte)rnd.Next(256);
+ }
+ paddedData[i] = b;
+ }
+ i = nonPaddedData.Length + paddingBytes;
+ while (i < maxBytes) {
+ paddedData[i++] = (byte)rnd.Next(256);
+ }
+
+ var res = Convert.ToBase64String(Rsa.Encrypt(paddedData), Base64FormattingOptions.InsertLineBreaks);
+ return res;
+ }
+ }
+}
diff --git a/utils/ipn_tool/App.config b/utils/ipn_tool/App.config
new file mode 100644
index 0000000..0a564f8
--- /dev/null
+++ b/utils/ipn_tool/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<configuration>
+ <startup>
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
+ </startup>
+</configuration>
diff --git a/utils/ipn_tool/CheckSsvTest.cs b/utils/ipn_tool/CheckSsvTest.cs
new file mode 100644
index 0000000..e5a708d
--- /dev/null
+++ b/utils/ipn_tool/CheckSsvTest.cs
@@ -0,0 +1,170 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace ipn_tool
+{
+ internal static class CheckSsvTest
+ {
+ /* GOOD sequence
+Taggant Test Application
+
+Taggant Library version 1
+
+<fist filename not chacked>
+ - correct PE file
+ - taggant is found
+ - taggant object created
+ - taggant is correct
+ - taggant does not contain timestamp
+ - file protected by packer with 1 id, version .+
+ - hashmap covers following regions:
+\d.+ any lines
+ - hashmap is valid
+ - full file hash is valid
+ - full file hash covers first \d+ bytes
+ - SPV Certificate
+ 30 82 05 5b 30 82 03 43 a0 03 02 01 02 02 10 25 many lines
+ - User Certificate
+ 30 82 04 04 30 82 02 ec a0 03 02 01 02 02 10 05 many lines
+<second filename not chacked> etc
+*/
+ internal static int Result(string logFile, string pemFile)
+ {
+ var expectedLines = new[]
+ {
+ /*00*/ new Regex("^Taggant Test Application$"),
+ /*01*/ null,
+ /*02*/ new Regex("^Taggant Library version 1$"),
+ /*03*/ null,
+ /*04*/ new Regex(@"^.+"),
+ /*05*/ new Regex(@"^ - correct PE file$"),
+ /*06*/ new Regex(@"^ - taggant is found$"),
+ /*07*/ new Regex(@"^ - taggant object created$"),
+ /*08*/ new Regex(@"^ - taggant is correct$"),
+ /*09*/ new Regex(@"^ - taggant does not contain timestamp$"),
+ /*10*/ new Regex(@"^ - file protected by packer with 1 id, version .+$"),
+ /*11*/ new Regex(@"^ - hashmap covers following regions:$"),
+ /*12*/ new Regex(@"^\d.+$"), //any lines
+ /*13*/ new Regex(@"^ - hashmap is valid$"),
+ /*14*/ new Regex(@"^ - full file hash is valid$"),
+ /*15*/ new Regex(@"^ - full file hash covers first \d+ bytes$"),
+ /*16*/ new Regex(@"^ - SPV Certificate$"),
+ /*17*/ null,
+ /*18*/ new Regex(@"^ - User Certificate"),
+ /*19*/ null
+ };
+ try
+ {
+ var stateIndex = 0;
+ var lineNo = 0;
+ var spv = new MemoryStream();
+ var usr = new MemoryStream();
+ var curFile = "unknown";
+ foreach (var line in File.ReadAllLines(logFile))
+ {
+ if (stateIndex == 4)
+ curFile = line;
+ var re = expectedLines[stateIndex];
+ var needCheck = true;
+ switch (stateIndex)
+ {
+ case 13:
+ needCheck = false;
+ if (re.IsMatch(line))
+ ++stateIndex;
+ else if (!expectedLines[stateIndex - 1].IsMatch(line))
+ throw new InvalidDataException(string.Format("Regex '{0}' or '{1}' match was expected at line #{2} but got '{3}'", re, expectedLines[stateIndex - 1], lineNo, line));
+ break;
+ case 17:
+ if (!AppendToMemoryStream(line, spv))
+ {
+ stateIndex = 18;
+ re = expectedLines[stateIndex];
+ }
+ else
+ {
+ needCheck = false;
+ }
+ break;
+ case 19:
+ if (!AppendToMemoryStream(line, usr))
+ {
+ if (!CompareCertificates(pemFile, curFile, spv, usr))
+ return 1;
+ spv = new MemoryStream();
+ usr = new MemoryStream();
+ stateIndex = 4;
+ re = expectedLines[stateIndex];
+ }
+ else
+ {
+ needCheck = false;
+ }
+ break;
+ }
+ if(needCheck)
+ {
+ if (re == null && line != string.Empty)
+ throw new InvalidDataException(string.Format("Empty line #{0} was expected but got '{1}'", lineNo, line));
+ if (re != null && !re.IsMatch(line))
+ throw new InvalidDataException(string.Format("Regex '{0}' match was expected at line #{1} but got '{2}'", re, lineNo, line));
+ ++stateIndex;
+ }
+ ++lineNo;
+ }
+ return CompareCertificates(pemFile, curFile, spv, usr) ? 0 : 1;
+ }
+ catch (Exception ex)
+ {
+ Console.Error.WriteLine(ex);
+ return 1;
+ }
+ }
+
+ private static bool CompareCertificates(string pemFile, string binaryName, MemoryStream spv, MemoryStream usr)
+ {
+ var pemContents = File.ReadAllText(pemFile);
+ var m = Regex.Match(pemContents,
+ @"^-----BEGIN CERTIFICATE-----[\s]*(?<spv>([^-]+))[\s]*-----END CERTIFICATE-----[\s]*-----BEGIN CERTIFICATE-----[\s]*(?<usr>([^-]+))[\s]*-----END CERTIFICATE-----[\s]*-----BEGIN RSA PRIVATE KEY-----[\s]*(?<pkey>([^-]+))[\s]*-----END RSA PRIVATE KEY-----[\s]*$",
+ RegexOptions.Multiline);
+ if (!m.Success)
+ throw new InvalidDataException("Cannot parse " + pemFile);
+ var expectedSpv = Convert.FromBase64String(m.Groups["spv"].Value);
+ var expectedUsr = Convert.FromBase64String(m.Groups["usr"].Value);
+ //TODO: check private key if need
+ return CompareBa("SPV", binaryName, expectedSpv, spv.ToArray()) && CompareBa("USER", binaryName, expectedUsr, usr.ToArray());
+ }
+
+ private static bool CompareBa(string partName, string binaryName, byte[] p1, byte[] p2)
+ {
+ if (p1.Length == p2.Length && p1.Length > 0)
+ {
+ for(var i = 0; i < p1.Length; i++)
+ if (p1[i] != p2[i])
+ throw new InvalidDataException(string.Format("taggant.pem {0} did not match to file {1} signature at position {2}.", partName, binaryName, i));
+ return true;
+ }
+ throw new InvalidDataException(string.Format("taggant.pem {0} did not match to file {1} signature", partName, binaryName));
+ }
+
+ // 30 82 05 5b 30 82 03 43 a0 03 02 01 02 02 10 25 - typical line
+ private static bool AppendToMemoryStream(string line, Stream spv)
+ {
+ if (!Regex.IsMatch(line, @"^[\s0-9A-F]+$", RegexOptions.IgnoreCase))
+ return false;
+ var chunk = StringToByteArray(line.Replace(" ", ""));
+ spv.Write(chunk, 0, chunk.Length);
+ return true;
+ }
+
+ private static byte[] StringToByteArray(string hex)
+ {
+ return Enumerable.Range(0, hex.Length)
+ .Where(x => x % 2 == 0)
+ .Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
+ .ToArray();
+ }
+ }
+} \ No newline at end of file
diff --git a/utils/ipn_tool/Program.cs b/utils/ipn_tool/Program.cs
new file mode 100644
index 0000000..b86dbdb
--- /dev/null
+++ b/utils/ipn_tool/Program.cs
@@ -0,0 +1,301 @@
+using System;
+using System.Data;
+using System.Data.SqlClient;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Xml;
+
+namespace ipn_tool
+{
+ static class Program
+ {
+ static int Main(string[] args)
+ {
+ switch (args.Length)
+ {
+ case 2:
+ if (args[0] == "-export_wm")
+ return ExportWatermarks(args[1]);
+ break;
+ case 3:
+ switch (args[0])
+ {
+ case "-export_bl":
+ return MergeBlacklist(args[1], args[2]);
+ case "-export_tasks":
+ return ExportTasks(null, args[1], args[2]);
+ case "-check_ssvtest":
+ return CheckSsvTest.Result(args[1], args[2]);
+ }
+ break;
+ case 4:
+ if (args[0] == "-export_task")
+ return ExportTasks(args[1], args[2], args[3]);
+ if (args[0] == "-check_wm")
+ return Watermarks.CheckIfPresent(args[1], args[2], args[3]);
+ break;
+ case 5:
+ if (args[0] == "-register_result")
+ return RegisterResult(args[1], args[2], args[3], args[4]);
+ break;
+ }
+ Console.WriteLine("IPN database tool. USAGE:");
+ Console.WriteLine("a) Export watermarks: ipn_tool -export_wm <filename.dat>");
+ Console.WriteLine("b) Merge project with blacklist: ipn_tool -export_bl <filenamein.vmp> <filenameout.vmp>");
+ Console.WriteLine("c) Prepare for all actual end-user builds: ipn_tool -export_tasks <destPath> <version>");
+ Console.WriteLine("d) Prepare for actual end-user build: ipn_tool -export_task <licenseID> <destPath> <version>");
+ Console.WriteLine("e) Register build result: ipn_tool -register_result <licenseID> <bambooBuildUrl> <true|false> <version>");
+ Console.WriteLine("f) Parse and check ssvtest.log: ipn_tool -check_ssvtest <ssvtest.log> <taggant.pem>");
+ Console.WriteLine("g) Check if watermark present: ipn_tool -check_wm <filename.dat> <wm_id> <binary_file>");
+ return 1;
+ }
+
+ private static int RegisterResult(string licenseId, string bambooBuildUrl, string success, string version)
+ {
+ int ret;
+ using (var con = IpnConn())
+ {
+ using (var cmd = new SqlCommand("dbo.RegisterBuildTaskResult", con))
+ {
+ cmd.CommandType = CommandType.StoredProcedure;
+ cmd.CommandTimeout = 600;
+ cmd.Parameters.AddWithValue("@licenseID", int.Parse(licenseId));
+ cmd.Parameters.AddWithValue("@bambooBuildUrl", bambooBuildUrl);
+ cmd.Parameters.AddWithValue("@success", bool.Parse(success));
+ cmd.Parameters.AddWithValue("@version", version);
+
+ con.Open();
+ ret = (int)cmd.ExecuteScalar();
+ Console.WriteLine("RegisterResult (0 - OK): {0}.", ret);
+ }
+ }
+ return ret;
+ }
+
+ private enum Platform
+ {
+ Windows,
+ Linux,
+ Mac
+ }
+
+ private static Platform RunningPlatform()
+ {
+ switch (Environment.OSVersion.Platform)
+ {
+ case PlatformID.Unix:
+ // Well, there are chances MacOSX is reported as Unix instead of MacOSX.
+ // Instead of platform check, we'll do a feature checks (Mac specific root folders)
+ if (Directory.Exists("/Applications")
+ & Directory.Exists("/System")
+ & Directory.Exists("/Users")
+ & Directory.Exists("/Volumes"))
+ return Platform.Mac;
+ else
+ return Platform.Linux;
+
+ case PlatformID.MacOSX:
+ return Platform.Mac;
+
+ default:
+ return Platform.Windows;
+ }
+ }
+
+ private static int ExportTasks(string licenseId, string rootPath, string version)
+ {
+ var ret = 1;
+ if (!rootPath.EndsWith(Path.DirectorySeparatorChar + @"licenses"))
+ {
+ Console.WriteLine(@"RootPath '{0}' check failed (should ends with {1}licenses)", rootPath, Path.DirectorySeparatorChar);
+ }
+ else using (var con = IpnConn())
+ {
+ using (var cmd = new SqlCommand("dbo.ExportBuildTaskInfo", con))
+ {
+ cmd.CommandType = CommandType.StoredProcedure;
+ cmd.CommandTimeout = 600;
+ cmd.Parameters.AddWithValue("@licenseID", licenseId == null ? DBNull.Value : (object)int.Parse(licenseId));
+ cmd.Parameters.AddWithValue("@filterOutVersion", version);
+ cmd.Parameters.AddWithValue("@filterByOperatingSystem", RunningPlatform().ToString());
+
+ con.Open();
+ var cnt = 0;
+ using (var r = cmd.ExecuteReader())
+ {
+ if (licenseId == null)
+ {
+ Directory.Delete(rootPath, true);
+ }
+ while (r.Read())
+ {
+ ++cnt;
+ var lId = r.GetInt32(0);
+ var task = r.GetString(1);
+ var key = r.GetString(2);
+ var taggant = r.GetString(3);
+
+ Directory.CreateDirectory(Path.Combine(rootPath, lId.ToString(CultureInfo.InvariantCulture)));
+ var taskIniName = Path.Combine(rootPath, lId.ToString(), "task.ini");
+ using (var taskIni = new StreamWriter(new FileStream(taskIniName, FileMode.OpenOrCreate, FileAccess.Write), new UTF8Encoding(false)))
+ {
+ var doc = new XmlDocument();
+ doc.LoadXml(task);
+ // ReSharper disable once PossibleNullReferenceException
+ foreach (XmlAttribute attr in doc.DocumentElement.Attributes)
+ {
+ taskIni.WriteLine("{0}={1}", attr.Name, attr.Value);
+ }
+ }
+ var keyName = Path.Combine(rootPath, lId.ToString(), "VMProtect.key");
+ File.WriteAllText(keyName, key);
+ var tagName = Path.Combine(rootPath, lId.ToString(), "taggant.pem");
+ File.WriteAllText(tagName,
+ String.Join("\r\n", taggant.Split(new[] {'\r', '\n'}, StringSplitOptions.RemoveEmptyEntries)));
+ }
+
+ Console.WriteLine("ExportTasks: {0} item(s) exported.", cnt);
+ if (cnt > 0)
+ ret = 0;
+ }
+ }
+ }
+ return ret;
+ }
+
+ private static int MergeBlacklist(string filenameIn, string filenameOut)
+ {
+ var ret = 1;
+ using (var con = IpnConn())
+ {
+ using (var cmd = new SqlCommand("dbo.ExportBlacklist", con))
+ {
+ cmd.CommandType = CommandType.StoredProcedure;
+ cmd.CommandTimeout = 600;
+ con.Open();
+ var xml = new XmlDocument();
+ xml.Load(filenameIn);
+ var lm = xml.SelectSingleNode("Document/LicenseManager");
+ if (lm != null)
+ {
+ lm.InnerXml = "";
+ var cnt = 0;
+ using (var r = cmd.ExecuteReader())
+ {
+ while (r.Read())
+ {
+ XmlNode license = xml.CreateElement("License");
+ XmlAttribute adate = xml.CreateAttribute("Date");
+ adate.Value = r.GetDateTime(1).ToString("yyyy-MM-dd");
+
+ XmlAttribute aname = xml.CreateAttribute("CustomerName");
+ aname.Value = r.GetString(2);
+
+ XmlAttribute aemail = xml.CreateAttribute("CustomerEmail");
+ aemail.Value = r.GetString(3);
+
+ XmlAttribute akey = xml.CreateAttribute("SerialNumber");
+ akey.Value = r.GetString(4);
+
+ if (license.Attributes != null)
+ {
+ license.Attributes.Append(adate);
+ license.Attributes.Append(aname);
+ license.Attributes.Append(aemail);
+ license.Attributes.Append(akey);
+ XmlAttribute ablocked = xml.CreateAttribute("Blocked");
+ ablocked.Value = "1";
+ license.Attributes.Append(ablocked);
+ }
+ lm.AppendChild(license);
+
+ cnt++;
+ }
+ }
+ xml.Save(filenameOut);
+ Console.WriteLine("MergeBlacklist: {0} item(s) exported.", cnt);
+ if (cnt > 0)
+ ret = 0;
+ }
+ }
+ }
+ return ret;
+ }
+
+ private static int ExportWatermarks(string filenameOut)
+ {
+ var ret = 1;
+ using (var con = IpnConn())
+ {
+ using (var cmd = new SqlCommand("dbo.ExportWatermarks", con))
+ {
+ cmd.CommandType = CommandType.StoredProcedure;
+ cmd.CommandTimeout = 600;
+ con.Open();
+ var xml = new XmlDocument();
+ xml.InsertBefore(xml.CreateXmlDeclaration("1.0",null,null), xml.DocumentElement);
+ XmlNode rootNode = xml.CreateElement("Document");
+ xml.AppendChild(rootNode);
+ XmlNode wms = xml.CreateElement("Watermarks");
+ rootNode.AppendChild(wms);
+
+ int cnt = 0;
+ using (var r = cmd.ExecuteReader())
+ {
+ while (r.Read())
+ {
+ XmlNode wm = xml.CreateElement("Watermark");
+ XmlAttribute aid = xml.CreateAttribute("Id");
+ aid.Value = cnt.ToString(CultureInfo.InvariantCulture);
+
+ XmlAttribute aname = xml.CreateAttribute("Name");
+ aname.Value = r.GetString(0);
+
+ XmlAttribute areadablename = xml.CreateAttribute("ReadableName");
+ areadablename.Value = r.GetString(1);
+
+ XmlAttribute aemail = xml.CreateAttribute("EMail");
+ aemail.Value = r.GetString(2);
+
+ wm.InnerText = r.GetString(3);
+
+ if (wm.Attributes != null)
+ {
+ wm.Attributes.Append(aid);
+ wm.Attributes.Append(aname);
+ wm.Attributes.Append(areadablename);
+ wm.Attributes.Append(aemail);
+ if (r.GetInt32(4) == 0)
+ {
+ XmlAttribute aenabled = xml.CreateAttribute("Enabled");
+ aenabled.Value = "0";
+ wm.Attributes.Append(aenabled);
+ }
+ }
+ wms.AppendChild(wm);
+
+ cnt++;
+ }
+ }
+ XmlAttribute acnt = xml.CreateAttribute("Id");
+ acnt.Value = cnt.ToString(CultureInfo.InvariantCulture);
+ if (wms.Attributes != null)
+ wms.Attributes.Append(acnt);
+
+ xml.Save(filenameOut);
+ Console.WriteLine("ExportWatermarks: {0} item(s) exported.", cnt);
+ if (cnt > 0)
+ ret = 0;
+ }
+ }
+ return ret;
+ }
+
+ private static SqlConnection IpnConn()
+ {
+ return new SqlConnection("server=scb-serv;database=ipn;user id=ipn_reader;password=rAqiEiGBOh39;Connection Timeout=300");
+ }
+
+ }
+}
diff --git a/utils/ipn_tool/Properties/AssemblyInfo.cs b/utils/ipn_tool/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..0c49f83
--- /dev/null
+++ b/utils/ipn_tool/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ipn_tool")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ipn_tool")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a555f928-8e1a-4b21-b346-ad777bddebab")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/utils/ipn_tool/Watermarks.cs b/utils/ipn_tool/Watermarks.cs
new file mode 100644
index 0000000..3ed47f5
--- /dev/null
+++ b/utils/ipn_tool/Watermarks.cs
@@ -0,0 +1,111 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Xml;
+
+namespace ipn_tool
+{
+ internal static class Watermarks
+ {
+ internal static int CheckIfPresent(string xmlDb, string id, string binFile)
+ {
+ try
+ {
+ var wm = LoadWm(xmlDb, id);
+ return FindWm(wm, binFile) ? 0 : 1;
+ }
+ catch (Exception ex)
+ {
+ Console.Error.WriteLine(ex);
+ return 1;
+ }
+ }
+
+ private static string LoadWm(string xmlDb, string id)
+ {
+ var s = new FileStream(xmlDb, FileMode.Open, FileAccess.Read);
+ using (var x = new XmlTextReader(s))
+ {
+ while (x.Read())
+ {
+ if (x.NodeType == XmlNodeType.Element && x.Name == "Watermark" && x.GetAttribute("Name") == id)
+ {
+ if(x.Read() && x.NodeType == XmlNodeType.Text && !string.IsNullOrEmpty(x.Value))
+ return x.Value;
+ }
+ }
+ }
+ throw new KeyNotFoundException("WM.id=" + id);
+ }
+
+ private static bool FindWm(string wm, string binFile)
+ {
+ var wmna = WmStringToNibbleArray(wm.ToUpper());
+ var filesToCheck = new List<string>();
+ if (Directory.Exists(binFile))
+ {
+ filesToCheck.AddRange(Directory.EnumerateFiles(binFile));
+ }
+ else
+ {
+ filesToCheck.Add(binFile);
+ }
+ return filesToCheck.All(s => CheckFile(s, wmna));
+ }
+
+ private static bool CheckFile(string binFile, int[] wmna)
+ {
+ var filena = new List<int>(wmna.Length + 1);
+ using (var s = new FileStream(binFile, FileMode.Open, FileAccess.Read))
+ {
+ while (true)
+ {
+ var nextByte = s.ReadByte();
+ if (nextByte == -1)
+ {
+ Console.Error.WriteLine("Watermark was not found in {0}", binFile);
+ return false;
+ }
+ filena.Add(nextByte >> 4);
+ filena.Add(nextByte & 15);
+ while (filena.Count >= wmna.Length)
+ {
+ if (MatchWm(wmna, filena))
+ {
+ Console.WriteLine("Watermark in {0}: FOUND", binFile);
+ return true;
+ }
+ filena.RemoveAt(0);
+ }
+ }
+ }
+ }
+
+ private static bool MatchWm(IEnumerable<int> wmna, IList<int> filena)
+ {
+ return !wmna.Where((t, i) => t != -1 && t != filena[i]).Any();
+ }
+
+ private static int[] WmStringToNibbleArray(string wm)
+ {
+ if(!Regex.IsMatch(wm, @"[A-Z0-9\?]+"))
+ throw new ArgumentException("Watermark contains bad symbols: " + wm, "wm");
+
+ var ret = new int[wm.Length];
+ var idx = 0;
+ foreach (var ch in wm)
+ {
+ if (ch == '?')
+ ret[idx++] = -1;
+ else if (ch <= '9')
+ ret[idx++] = ch - '0';
+ else
+ ret[idx++] = ch - 'A' + 10;
+ }
+ return ret;
+ }
+
+ }
+} \ No newline at end of file
diff --git a/utils/ipn_tool/ipn_tool.csproj b/utils/ipn_tool/ipn_tool.csproj
new file mode 100644
index 0000000..379456e
--- /dev/null
+++ b/utils/ipn_tool/ipn_tool.csproj
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{4ADE08C2-D14E-4FE6-BF66-95EE29C953C6}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>ipn_tool</RootNamespace>
+ <AssemblyName>ipn_tool</AssemblyName>
+ <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="CheckSsvTest.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Watermarks.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="App.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/utils/ipn_tool/ipn_tool.sln b/utils/ipn_tool/ipn_tool.sln
new file mode 100644
index 0000000..2b43a4d
--- /dev/null
+++ b/utils/ipn_tool/ipn_tool.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25123.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ipn_tool", "ipn_tool.csproj", "{4ADE08C2-D14E-4FE6-BF66-95EE29C953C6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {4ADE08C2-D14E-4FE6-BF66-95EE29C953C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4ADE08C2-D14E-4FE6-BF66-95EE29C953C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4ADE08C2-D14E-4FE6-BF66-95EE29C953C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4ADE08C2-D14E-4FE6-BF66-95EE29C953C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/utils/x86disasm/Sconstruct-x86disasm b/utils/x86disasm/Sconstruct-x86disasm
new file mode 100644
index 0000000..409bcc5
--- /dev/null
+++ b/utils/x86disasm/Sconstruct-x86disasm
@@ -0,0 +1,93 @@
+import os
+import platform
+import sys
+sys.path.append("../..")
+import fileop
+
+def get_arg(arg_str):
+ return int((ARGUMENTS.get(arg_str, '0'))) != 0
+
+release = get_arg('release')
+clean = get_arg('clean')
+amd64 = get_arg('amd64')
+
+system = platform.system().lower()
+linux = (system == 'linux')
+macosx = (system == 'darwin')
+win = (system == 'windows')
+assert win or linux or macosx, 'Unsupported platform'
+
+defs = {}
+
+if win:
+ if release:
+ compiler_flags = '-MD -Ox -Oy '
+ defs['NDEBUG'] = None
+ else:
+ compiler_flags = '-WX -MTd -Zi -Od '
+ defs['_DEBUG'] = None
+ defs['_DPRINT'] = None
+ compiler_flags += ' -GS -GF -EHsc '
+ defs['WIN'] = None
+ defs['_CRT_SECURE_NO_DEPRECATE'] = None
+ defs['_FILE_OFFSET_BITS'] = '64'
+ defs['WIN32'] = None
+ defs['_CONSOLE'] = None
+ linker_flags = '-debug -opt:ref'
+elif linux or macosx:
+ if release:
+ compiler_flags = '-O3 -fomit-frame-pointer'
+ defs['NDEBUG'] = None
+ else:
+ compiler_flags = '-g'
+ defs['_DPRINT'] = None
+ if linux:
+ defs['LIN'] = None
+ else:
+ defs['MACOSX'] = None
+ linker_flags = ' -pthread '
+else:
+ assert False, 'Unsupported OS'
+
+defs['UNITTEST'] = None
+
+incdirs = ['../../third-party/libudis86']
+
+if amd64:
+ defs['AMD64'] = None
+ target_arch = 'x86_64'
+else:
+ defs['I386'] = None
+ target_arch = 'x86'
+
+project_name = 'x86disasm'
+
+env = Environment(
+ ENV = os.environ,
+ CCFLAGS = compiler_flags,
+ CPPPATH = incdirs,
+ CPPDEFINES = defs,
+ LINKFLAGS = linker_flags,
+ NAME = project_name,
+ TARGET_ARCH = target_arch
+ )
+
+if win:
+ obj_ext = '.obj'
+elif linux or macosx:
+ obj_ext = '.o'
+else:
+ assert False
+
+dirs = ['.', '../../third-party/libudis86']
+
+if clean:
+ fileop.clean_dirs(dirs, obj_ext)
+else:
+ # Build file list
+ sources = []
+ sources += Glob('./*.cc')
+ sources += Glob('../../third-party/libudis86/*.c')
+ # Perform build
+ env.Program(project_name, sources)
+
diff --git a/utils/x86disasm/disasm.cc b/utils/x86disasm/disasm.cc
new file mode 100644
index 0000000..bd8067b
--- /dev/null
+++ b/utils/x86disasm/disasm.cc
@@ -0,0 +1,295 @@
+#include <stdlib.h>
+#include <vector>
+#include <set>
+#include <stdio.h>
+#include <iostream>
+#include <assert.h>
+#include <algorithm>
+#include <cctype>
+
+#include "disasm.h"
+#include "../../third-party/libudis86/extern.h"
+
+const size_t kBufSize = 20;
+
+typedef unsigned char uint8_t;
+
+static void GenerateBuffer(std::vector<uint8_t> * buf)
+{
+ size_t i;
+ buf->resize(kBufSize);
+ for (i = 0; i < kBufSize; i++)
+ (*buf)[i] = 0x10 + i;
+}
+
+typedef unsigned int operand_encoding_t;
+#define OP_ENC_REG 0x80000000UL
+#define OP_ENC_MEM 0x40000000UL
+
+struct InsnDef {
+ unsigned insn_enc;
+ size_t count;
+ operand_encoding_t enc[3];
+ uint8_t pfx_rex;
+ uint8_t pfx_seg;
+ uint8_t pfx_opr;
+ uint8_t pfx_adr;
+ uint8_t pfx_lock;
+ uint8_t pfx_rep;
+ uint8_t pfx_repe;
+ uint8_t pfx_repne;
+ uint8_t pfx_insn;
+
+ InsnDef(const struct ud & u);
+ friend bool operator == (const InsnDef & left, const InsnDef & right)
+ {
+ return 0 == memcmp(&left, &right, sizeof(InsnDef));
+ }
+ friend bool operator < (const InsnDef & left, const InsnDef & right)
+ {
+ return 0 > memcmp(&left, &right, sizeof(InsnDef));
+ }
+ friend bool operator > (const InsnDef & left, const InsnDef & right)
+ {
+ return 0 < memcmp(&left, &right, sizeof(InsnDef));
+ }
+};
+
+struct InsnDefCompare {
+ bool operator() (const InsnDef & left, const InsnDef & right)
+ {
+ return left < right;
+ }
+};
+typedef std::set<InsnDef, InsnDefCompare> insn_set_t;
+
+InsnDef::InsnDef(const struct ud & u)
+ : count(0)
+{
+ int i;
+ const struct ud_operand *op;
+
+ pfx_adr = u.pfx_adr;
+ pfx_insn = u.pfx_insn;
+ pfx_lock = u.pfx_lock;
+ pfx_opr = u.pfx_opr;
+ pfx_rep = u.pfx_rep;
+ pfx_repe = u.pfx_repe;
+ pfx_repne = u.pfx_repne;
+ pfx_rex = u.pfx_rex;
+ pfx_seg = u.pfx_seg;
+ insn_enc = u.mnemonic;
+ memset(enc, 0, sizeof(enc));
+ /*
+ * Encode registers and operand types. Do not encode offsets and
+ * immediate values.
+ */
+ for (i = 0; i < 3; i++) {
+ op = &u.operand[i];
+ switch (op->type) {
+ case UD_OP_REG:
+ enc[i] |= OP_ENC_REG;
+ enc[i] |= op->base;
+ break;
+ case UD_OP_MEM:
+ /* Encode only registers and scales. */
+ enc[i] |= OP_ENC_MEM;
+ enc[i] |= op->base | (op->index << 8) | (op->scale << 16);
+ break;
+ default:
+ /* Encode operand type other than OP_ENC_MEM or OP_ENC_REG. */
+ enc[i] |= op->type;
+ break;
+ }
+ if (op->type != UD_NONE)
+ count++;
+ }
+
+}
+
+static std::string ReplaceAll(const std::string & str,
+ const std::string & prev_val,
+ const std::string & new_val)
+{
+ size_t pos;
+ std::string s = str;
+
+ while (true) {
+ pos = s.find(prev_val);
+ if (std::string::npos == pos)
+ break;
+ s = s.replace(pos, prev_val.size(), new_val);
+ }
+ return s;
+}
+
+static const struct {
+ const char *from;
+ const char *to;
+} repl[] = {
+ {"retn", "ret"},
+ {"retnw", "ret"},
+ {"iretw", "iret"},
+ {"pushfw", "pushf"},
+ {"popfw", "popf"},
+ {"enterw", "enter"},
+ {"cmovae", "cmovnb"},
+ {"cmova", "cmovnbe"},
+ {"cmovge", "cmovnl"},
+ {"cmovg", "cmovnle"},
+ {"setae", "setnb"},
+ {"seta", "setnbe"},
+ {"setge", "setnl"},
+ {"setg", "setnle"},
+ {"leavew", "leave"},
+ {"int1", "int 01"},
+ {"int3", "int 03"}
+};
+
+/* trim from start */
+static inline std::string &ltrim(std::string &s) {
+ s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace))));
+ return s;
+}
+
+/* trim from end */
+static inline std::string &rtrim(std::string &s) {
+ s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s.end());
+ return s;
+}
+
+/* trim from both ends */
+static inline std::string &trim(std::string &s) {
+ return ltrim(rtrim(s));
+}
+
+static const char *pfx[] = {
+ "cs", "es", "fs", "gs", "ss", "ds"
+};
+
+static std::string FixDisassembly(const std::string & disasm)
+{
+ size_t i, j;
+ std::string s,s2;
+
+ s = ReplaceAll(disasm, "0x", "");
+ s = ReplaceAll(s, "o16 ", "");
+ s = ReplaceAll(s, "a16 ", "");
+ s = ReplaceAll(s, "a32 ", "");
+ for (i = 0; i < _countof(repl); i++) {
+ s2 = ReplaceAll(s, repl[i].from, repl[i].to);
+ if (s2 != s) {
+ s = s2;
+ break;
+ }
+ }
+ s = trim(s);
+ for (i = 0; i < 6; i++) {
+ if (s.substr(0, 3).compare(std::string(pfx[i]) + " ") == 0) {
+ s = s.substr(3);
+ break;
+ } else {
+ j = s.find(" " + std::string(pfx[i]) + " ");
+ if (j != s.npos) {
+ s = s.substr(0, j) + s.substr(j + 3);
+ break;
+ }
+ }
+ }
+ return s;
+}
+
+static bool IsInsnUnique(const struct ud & u, insn_set_t *is)
+{
+ InsnDef insn_def(u);
+
+ insn_set_t::iterator it = is->lower_bound(insn_def);
+ if (it != is->end() && *it == insn_def) {
+ return false;
+ }
+ is->insert(insn_def);
+ return true;
+}
+
+static void WriteOutput(FILE * f, const std::vector<uint8_t> & buf, size_t size,
+ const char *disasm)
+{
+ size_t i;
+ assert(size <= buf.size());
+ for (i = 0; i < size; i++)
+ fprintf(f, "%02x", buf[i]);
+ fprintf(f, " %s\n", FixDisassembly(disasm).c_str());
+ fflush(f);
+}
+
+static void GenerateToFile(FILE * f, bool x64)
+{
+ /* Generate buffer */
+ std::vector<uint8_t> buf;
+ unsigned int p0, p1, p2;
+ insn_set_t is;
+ struct ud u;
+ unsigned int insn_len, n;
+ bool disasm_ok;
+
+ n = 0;
+ GenerateBuffer(&buf);
+ /*
+ for (p0 = 0x10; p0 < 0x110; p0++) {
+ for (p1 = 0x10; p1 < 0x110; p1++) {
+ for (p2 = 0x10; p2 < 0x110; p2++) {
+ */
+ for (p0 = 0x10; p0 < 0x110; p0++) {
+ for (p1 = 0x10; p1 < 0x110; p1++) {
+ for (p2 = 0x10; p2 < 0x110; p2++) {
+ buf[0] = (p0 & 0xff);
+ buf[1] = (p1 & 0xff);
+ buf[2] = (p2 & 0xff);
+ ud_init(&u);
+ ud_set_input_buffer(&u, &buf[0], buf.size());
+ ud_set_pc(&u, 0x401000);
+ ud_set_mode(&u, x64 ? 64 : 32);
+ ud_set_syntax(&u, UD_SYN_INTEL);
+ ud_set_vendor(&u, UD_VENDOR_INTEL);
+
+ disasm_ok = false;
+ if ((insn_len = ud_disassemble(&u)) != 0) {
+ char *disasm = ud_insn_asm(&u);
+ if (0 != strncmp(disasm, "invalid", 7)) {
+ disasm_ok = true;
+ if (IsInsnUnique(u, &is)) {
+ WriteOutput(f, buf, insn_len, disasm);
+ n++;
+ if (n % 10000 == 0)
+ std::cout << n << " opcodes processed\n";
+ }
+ }
+ }
+ if (!disasm_ok) {
+ /* Cannot disassemble. */
+ WriteOutput(f, buf, 10, "db");
+ n++;
+ if (n % 10000 == 0)
+ std::cout << n << " opcodes processed\n";
+ }
+ }
+ }
+ }
+}
+
+int GenerateInstructions(const std::string & out_filename, bool x64)
+{
+ FILE *f;
+
+ f = fopen(out_filename.c_str(), "wt");
+ if (f == NULL) {
+ std::cerr << "ERROR Cannot open file " << out_filename << "\n";
+ return GEN_INSN_IOERROR;
+ }
+
+ GenerateToFile(f, x64);
+
+ fclose(f);
+ return GEN_INSN_OKAY;
+}
+
diff --git a/utils/x86disasm/disasm.h b/utils/x86disasm/disasm.h
new file mode 100644
index 0000000..0124dcc
--- /dev/null
+++ b/utils/x86disasm/disasm.h
@@ -0,0 +1,15 @@
+
+
+#ifndef DISASM_H
+#define DISASM_H
+
+#include <string>
+
+#define GEN_INSN_OKAY 0
+#define GEN_INSN_IOERROR 1
+#define GEN_INSN_ERROR 2
+
+int GenerateInstructions(const std::string & out_filename, bool x64);
+
+#endif
+
diff --git a/utils/x86disasm/main.cc b/utils/x86disasm/main.cc
new file mode 100644
index 0000000..e0d43af
--- /dev/null
+++ b/utils/x86disasm/main.cc
@@ -0,0 +1,24 @@
+#include <iostream>
+#include "disasm.h"
+
+int main(int argc, char **argv)
+{
+ int rc;
+ bool x64;
+ std::cout << "x86 Disassembly Generator (C) 2012\n";
+ if (argc < 2) {
+ std::cerr << "Usage: " << argv[0] << " <output_file_name> [x64]\n";
+ return 1;
+ }
+ if (argc >= 3) {
+ x64 = (0 == _strnicmp(argv[2], "x64", 3));
+ } else {
+ x64 = false;
+ }
+ rc = GenerateInstructions(argv[1], x64);
+ if (rc == GEN_INSN_OKAY)
+ std::cout << "Finished\n";
+ else
+ std::cerr << "ERROR Failed with error " << rc << "\n";
+ return rc;
+}
diff --git a/utils/x86disasm/make-x86disasm.py b/utils/x86disasm/make-x86disasm.py
new file mode 100644
index 0000000..d7b9fdf
--- /dev/null
+++ b/utils/x86disasm/make-x86disasm.py
@@ -0,0 +1,59 @@
+#!/usr/bin/python
+import os
+import os.path
+import sys
+sys.path.append("../..")
+import fileop
+import utils
+
+name = "x86disasm"
+
+def do_clean():
+ fileop.clean_dir(".", ".obj")
+ fileop.clean_dir(".", ".pdb")
+ fileop.clean_dir(".", ".ilk")
+ fileop.clean_dir(".", ".exe")
+ fileop.remove_file(os.path.join(bin_dir, name))
+ fileop.remove_file(os.path.join(bin_dir, name + '.exe'))
+ fileop.remove_file(os.path.join(bin_dir, name + '.pdb'))
+ fileop.remove_file(os.path.join(bin_dir, name + '.ilk'))
+ return 0
+
+def make(clean, release, x64):
+ if clean:
+ do_clean()
+ result = os.system("scons -f Sconstruct-%s release=%d clean=%d amd64=%d" % (name, release, clean, x64))
+ if 0 == result:
+ # Scons does not put file in the required directory. Do it ourselves.
+ if utils.get_platform() == 'windows':
+ os.system("move " + name + ".exe " + bin_dir)
+ os.system("move " + name + ".pdb " + bin_dir)
+ os.system("move " + name + ".ilk " + bin_dir)
+ else:
+ os.system("mv " + name + " " + bin_dir)
+ return result
+
+def title(clean, release, x64):
+ print "*** %s making ... ***" % name
+ print "clean = ", clean
+ print "release = ", release
+ print "x64 = ", x64
+
+def print_result(result):
+ if 0 == result:
+ print "*** %s make: OK ***" % name
+ else:
+ print "*** %s make: error %d" % (name, result)
+
+clean = 'clean' in sys.argv
+release = 'release' in sys.argv
+x64 = 'x64' in sys.argv
+
+bin_dir = fileop.get_bin_dir('../..', x64, release)
+assert os.path.isdir(bin_dir)
+
+title(clean, release, x64)
+result = make(clean, release, x64)
+print_result(result)
+sys.exit(result)
+
diff --git a/utils/x86disasm/x86disasm.sln b/utils/x86disasm/x86disasm.sln
new file mode 100644
index 0000000..0ba0f4a
--- /dev/null
+++ b/utils/x86disasm/x86disasm.sln
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x86disasm", "x86disasm.vcxproj", "{C4688533-8E09-4F65-A04D-39201C9B2D33}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Debug|Win32.Build.0 = Debug|Win32
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Debug|x64.ActiveCfg = Debug|x64
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Debug|x64.Build.0 = Debug|x64
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Release|Win32.ActiveCfg = Release|Win32
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Release|Win32.Build.0 = Release|Win32
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Release|x64.ActiveCfg = Release|x64
+ {C4688533-8E09-4F65-A04D-39201C9B2D33}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/utils/x86disasm/x86disasm.vcxproj b/utils/x86disasm/x86disasm.vcxproj
new file mode 100644
index 0000000..fc1cdb6
--- /dev/null
+++ b/utils/x86disasm/x86disasm.vcxproj
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C4688533-8E09-4F65-A04D-39201C9B2D33}</ProjectGuid>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>x86disasm</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LinkIncremental>true</LinkIncremental>
+ <OutDir>$(ProjectDir)../../bin/i386/$(Configuration)</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LinkIncremental>true</LinkIncremental>
+ <OutDir>$(ProjectDir)../../bin/amd64/$(Configuration)</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LinkIncremental>false</LinkIncremental>
+ <OutDir>$(ProjectDir)../../bin/i386/$(Configuration)</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LinkIncremental>false</LinkIncremental>
+ <OutDir>$(ProjectDir)../../bin/amd64/$(Configuration)</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)../../third-party/libudis86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)../../third-party/libudis86;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)../../third-party/libudis86</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>$(ProjectDir)../../third-party/libudis86</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\third-party\libudis86\decode.c" />
+ <ClCompile Include="..\..\third-party\libudis86\input.c" />
+ <ClCompile Include="..\..\third-party\libudis86\itab.c" />
+ <ClCompile Include="..\..\third-party\libudis86\mnem.c" />
+ <ClCompile Include="..\..\third-party\libudis86\syn-intel.c" />
+ <ClCompile Include="..\..\third-party\libudis86\syn.c" />
+ <ClCompile Include="..\..\third-party\libudis86\udis86.c" />
+ <ClCompile Include="disasm.cc" />
+ <ClCompile Include="main.cc" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\third-party\libudis86\decode.h" />
+ <ClInclude Include="..\..\third-party\libudis86\extern.h" />
+ <ClInclude Include="..\..\third-party\libudis86\input.h" />
+ <ClInclude Include="..\..\third-party\libudis86\itab.h" />
+ <ClInclude Include="..\..\third-party\libudis86\mnem.h" />
+ <ClInclude Include="..\..\third-party\libudis86\syn.h" />
+ <ClInclude Include="..\..\third-party\libudis86\types.h" />
+ <ClInclude Include="disasm.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/utils/x86disasm/x86disasm.vcxproj.filters b/utils/x86disasm/x86disasm.vcxproj.filters
new file mode 100644
index 0000000..1f99f34
--- /dev/null
+++ b/utils/x86disasm/x86disasm.vcxproj.filters
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ <Filter Include="libudis86">
+ <UniqueIdentifier>{0fa6ebf3-658c-4c86-89c7-425c16cf7ba6}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="main.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="disasm.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third-party\libudis86\udis86.c">
+ <Filter>libudis86</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third-party\libudis86\decode.c">
+ <Filter>libudis86</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third-party\libudis86\input.c">
+ <Filter>libudis86</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third-party\libudis86\itab.c">
+ <Filter>libudis86</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third-party\libudis86\mnem.c">
+ <Filter>libudis86</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third-party\libudis86\syn.c">
+ <Filter>libudis86</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\third-party\libudis86\syn-intel.c">
+ <Filter>libudis86</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="disasm.h">
+ <Filter>Source Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third-party\libudis86\decode.h">
+ <Filter>libudis86</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third-party\libudis86\extern.h">
+ <Filter>libudis86</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third-party\libudis86\input.h">
+ <Filter>libudis86</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third-party\libudis86\itab.h">
+ <Filter>libudis86</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third-party\libudis86\mnem.h">
+ <Filter>libudis86</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third-party\libudis86\syn.h">
+ <Filter>libudis86</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\third-party\libudis86\types.h">
+ <Filter>libudis86</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file