ARTICLE

System.Security.Cryptography.Xml Namespace in VB.NET

Posted by Sapna Articles | Visual Basic Language September 09, 2010
In this article I will explain you about the System.Security.Cryptography.Xml Namespace in VB.NET.
 
Reader Level:

The System.Security.Cryptography.Xml namespace contains a full implementation of the World Wide Web Consortium standard for digitally signing XML data and files. In other words, the namespace helps you to sign any XML object with a digital signature. Refer to the XML-Signature Syntax and Processing page at http://www.w3.org/TR/xmldsig-core/ for details on this progressing standard.

The sample code in Listing 22.37 shows how to sign XML data and produce an envelope for it via the RSA algorithm.


Listing 22.37: SignXML1.VB, Compute Signature for XML Data


Imports
System.Xml
Imports System.Security.Cryptography
Imports System.Security.Cryptography.Xml
Public Class DigitalSignSample
    Shared Sub Main()
        ' generate XML data
        Dim document As New XmlDocument()
        Dim node As XmlNode = document.CreateNode(XmlNodeType.Element, "", "T", "s")
        node.InnerText = "C# wimps the lama's bass..."
        document.AppendChild(node)
        Console.WriteLine("OriginalXML data:" & vbCr & vbLf & document.OuterXml & vbCr & vbLf) 
        ' create signedxml variable
        Dim rsa As RSA = System.Security.Cryptography.RSA.Create()
        Dim signedXml As New SignedXml()
        signedXml.SigningKey = rsa 
        ' create dataobject
        Dim dataObject As DataObject = New System.Security.Cryptography.Xml.DataObject()
        dataObject.Data = document.ChildNodes
        dataObject.Id = "goo"
 
        ' add dataobject and reference
        signedXml.AddObject(dataObject)
        signedXml.AddReference(New Reference("#goo"))
        ' add keyinfo
        Dim keyInfo As New KeyInfo()
        keyInfo.AddClause(New RSAKeyValue(rsa))
        signedXml.KeyInfo = keyInfo
        ' compute signature and get an envelope for the XML data
        signedXml.ComputeSignature()
        Dim xmlDigitalSignature As XmlElement = signedXml.GetXml() 
        ' output the envelope
        Console.WriteLine("====================================================")
        Dim w As New XmlTextWriter(Console.Out)
        w.Formatting = Formatting.Indented
        xmlDigitalSignature.WriteTo(w)
        Console.ReadLine()
    End Sub
End Class

Output Window

name.gif

Conclusion

Hope this article would have helped you in understanding the
System.Security.Cryptography.Xml Namespace in VB.NET.

Login to add your contents and source code to this article
share this article :
post comment
 
Nevron Diagram
Become a Sponsor
PREMIUM SPONSORS
  • Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
    Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Team Foundation Server Hosting
Become a Sponsor