标签: signedxml

使用PHP验证Windows 8购买(收据)

我需要使用PHP验证在Windows 8应用程序服务器端进行的应用内购买.MSDN的文档页面仅在C#中有一个示例.现在我花了一整天的时间来寻找一种在PHP中实现它的方法.没有成功.在整个互联网上,只有这个主题的.NET示例.

我发现了一些有关已签名的XML和x509的部分信息,一些库(xmlseclibs - 无用,使用不支持sha256的openssl_*函数; phpseclib - 看起来很有前途,但他们的文档和示例很差,没有任何帮助).

是否有可能在不学习有关签名XML,RSA和x509的所有内容的情况下以某种方式完成?现在我几乎读过所有内容,但到处都是关于编码的信息.没有关于验证的事情.

php signedxml in-app-purchase windows-8 xmlseclibs

5
推荐指数
1
解决办法
1251
查看次数

.Net:SignedXml - 用变换算法exc-c14n签名xml

我正在尝试使用SignedXml类在C#中签名Xml(实际上是SOAP xml),签名阶段成功通过,但是当我尝试验证签名时它告诉我它无效.我在MSDN中使用XmlDsigExcC14NTransform而不是转换XmlDsigEnvelopedSignatureTransform 的示例中所做的唯一更改.如果我使用XmlDsigEnvelopedSignatureTransform,我将获得有效的签名.

这是我的签名代码:

 private static XmlDocument SignXml(XmlDocument doc)
             {
                 SignedXml signedXml = new SignedXml(doc);
                 signedXml.SigningKey = Certificate.PrivateKey;

                 Reference reference = new Reference();
                 reference.Uri = "";

                 XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
                 //XmlDsigExcC14NTransform env = new XmlDsigExcC14NTransform();

                 reference.AddTransform(env);

                 signedXml.AddReference(reference);
                 signedXml.ComputeSignature();

                 XmlElement signature = signedXml.GetXml();
                 doc.DocumentElement.AppendChild(signature);
                 doc.Save(SignedXmlPath);
                 return doc;
             }
Run Code Online (Sandbox Code Playgroud)

上面的代码将给我一个有效的签名,但如果我使用

XmlDsigExcC14NTransform env = new XmlDsigExcC14NTransform();
Run Code Online (Sandbox Code Playgroud)

代替

XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
Run Code Online (Sandbox Code Playgroud)

我会得到一个无效的签名.

这是我的验证码:

private static bool Verify(XmlDocument doc)
        {
            SignedXml signedDoc = new SignedXml(doc);
            XmlNodeList nodeList = …
Run Code Online (Sandbox Code Playgroud)

c# signedxml

4
推荐指数
1
解决办法
8303
查看次数

C#如何使用SignedXml使用XAdES正确签名消息?

我正在努力使用XAdES进行消息签名。我一直在寻找将我带到以下代码的解决方案。但是我要连接的服务告诉我签名错误。我究竟做错了什么?

public static class Signature
    {
        #region Private fields
        public const string XmlDsigSignatureProperties = "http://uri.etsi.org/01903#SignedProperties";
        public const string XadesProofOfApproval = "http://uri.etsi.org/01903/v1.2.2#ProofOfApproval";
        public const string XadesPrefix = "xades";
        public const string SignaturePrefix = "ds";
        public const string SignatureNamespace = "http://www.w3.org/2000/09/xmldsig#";
        public const string XadesNamespaceUrl = "http://uri.etsi.org/01903/v1.3.2#";

        private const string SignatureId = "Signature";
        private const string SignaturePropertiesId = "SignedProperties";
        #endregion Private fields

        #region Public methods
        public static XmlElement SignWithXades(X509Certificate2 signingCertificate, string xml)
        {
            var xmlDocument = new XmlDocument();
            xmlDocument.LoadXml(xml);

            AddSignatureProperties(xmlDocument, signingCertificate);

            var …
Run Code Online (Sandbox Code Playgroud)

c# sign signature signedxml

3
推荐指数
1
解决办法
1433
查看次数

是否可以签署xml文档而无需使用KeyContainerName?

我想创建2个非常简单的dll:

1)将签署一个xml文档2),它将检查xml文档是否未被修改.

我尝试使用RSACryptoServiceProvider和一个密钥容器.但是当我移动到另一台机器时,这不起作用,因为钥匙存储在机器中.

我想将密钥存储在我创建的dll中(我知道这不是推荐的)但是我无法弄清楚如何编写一些代码来简单地签署一个xml文档,然后验证它没有被更改.

所以我需要使用对称密钥来做我想要的这可能吗?

皮特

c# licensing cryptography signedxml

1
推荐指数
1
解决办法
2519
查看次数