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

In this article I will explain you about the System.Security.Cryptography.Xml Namespace in VB.NET.
  • 3920

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 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.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..."
        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.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
        Dim xmlDigitalSignature As XmlElement = signedXml.GetXml() 
        ' output the envelope
        Dim w As New XmlTextWriter(Console.Out)
        w.Formatting = Formatting.Indented
    End Sub
End Class

Output Window



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


More Articles

© 2020 DotNetHeaven. All rights reserved.