ARTICLE
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.
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

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