2010-11-18 81 views
2

程序正在使用的一些信息以xml格式使用輸入文件。這些文件具有以下結構。使用XadES-BES算法對XMLDSIG進行XML驗證

<?xml version="1.0" encoding="UTF-8"?> 
<Envelope xmlns="urn:envelope"> 
<MyData Id="MyDataId"> 
    <!-- some data --> 
</MyData> 
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
    <SignedInfo> 
    <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> 
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig-more#rsa-sha256" /> 
    <Reference URI="#MyDataId"> 
    <Transforms> 
    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> 
    </Transforms> 
    <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> 
    <DigestValue> 
    <!-- digest for MyData --> 
    </DigestValue> 
    </Reference> 
    <Reference URI="#KeyInfoId"> 
    <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> 
    <DigestValue> 
    <!-- digest for KeyInfo --> 
    </DigestValue> 
    </Reference> 
    </SignedInfo> 
    <SignatureValue> 
    <!-- signature from SignedInfo data --> 
    </SignatureValue> 
    <KeyInfo id="KeyInfoId"> 
    <X509Data> 
    <X509Certificate> 
    <!-- some certificate --> 
    </X509Certificate> 
    </X509Data> 
    </KeyInfo> 
</Signature> 
</Envelope> 

我發現了一些例子只有一個參考標記,但不與在XML文件的其餘部分已經在那裏muliple或僅refereces。我知道編碼是XADES-BES。有誰知道能夠驗證這種XML文件的.NET 1.1組件嗎?提前致謝。

問候,

回答

0

試試這個項目:

​​

+0

0.1版開始一兩天以前? – 2010-11-18 20:22:43

3

您顯示的XML不是真正的XAdES簽名,而是XMLDSIG。您可以知道,因爲沒有節點(XAdES添加此節點,它必須在對象標記中,作爲簽名節點的子節點)。

正如裏卡多之前所說,我所在的項目(XAdES .Net Project)應該能夠驗證您提供的xml。如果沒有,請隨時在我們的問題跟蹤器中添加問題(您可能需要在codeplex上註冊,但它是免費的)。

在這一點上,我們仍在構建我們的庫的框架(真正旨在實現的是.NET中的XAdES),因此您可能會發現缺陷或缺少功能。如果是這樣,再次,隨時添加任何你需要的問題。我們開發了使用.NET Framework 3.5的庫,如果你真的只能使用1.1,它將無法工作:(在Framework 1.1更改後的安全層,所以它不會向後兼容。工作中使用2.0及以上。

我希望它能幫助。

問候,

路易斯·M.別墅

-1

如果你還需要生成的XAdES簽名,我們已經發布1.0 alpha版本XAdES .NET Project。這個版本的廣告ds支持XAdES-BES簽名,並且一些代碼片段已被重寫爲與.NET 2.0 Framework兼容。

您可以在這裏下載版本: XAdES .NET Project

希望它能幫助,

路易斯·M.別墅