first commit

Version 3.x.x
This commit is contained in:
VNGhostMans
2023-05-14 20:21:09 +07:00
parent a3037a8db3
commit 5ec92ee05e
1166 changed files with 1036539 additions and 0 deletions

View File

@@ -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; }
}
}

274
utils/ipn_sqlclr/Taggant.cs Normal file
View File

@@ -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);
}
}
}
}

View File

@@ -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}});
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

File diff suppressed because it is too large Load Diff

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

File diff suppressed because it is too large Load Diff

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

File diff suppressed because it is too large Load Diff

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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;
}
}
}

View File

@@ -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>

212
utils/ipn_sqlclr/keygen.cs Normal file
View File

@@ -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;
}
}
}