Imports System
Imports System.IO
Imports System.Security.Cryptography
Imports System.Text
Public Class DSASign
Public Shared Sub Main(ByVal CmdArgs() As String)
If CmdArgs.Length <> 3 Then
Console.WriteLine("usage: DSAVerify <key xml> <data> <sign>")
End
End If
Dim xkey As String = LoadString(CmdArgs(0))
Dim data() As Byte = (New ASCIIEncoding).GetBytes(LoadString(CmdArgs(1)))
Dim xsig As String = LoadString(CmdArgs(2))
Dim dsa As DSACryptoServiceProvider = New DSACryptoServiceProvider
dsa.FromXmlString(xkey)
Dim xsigAsByte() As Byte = New Byte(xsig) {}
Dim verify As Boolean
verify = dsa.VerifyData(data, xsigAsByte)
Console.WriteLine("Signature Verification is {0}", verify)
End Sub
Shared Public Sub SaveString(ByVal fname As String, ByVal data As String)
Dim datas() As Byte = (New ASCIIEncoding).GetBytes(data)
Dim fs As FileStream = File.OpenWrite(fname)
fs.SetLength(0)
fs.Write(datas, 0, datas.Length)
fs.Close()
End Sub
Shared Public Function LoadString(ByVal fname As String) As String
Dim finfo As FileInfo = New FileInfo(fname)
Dim length As String = CType(finfo.Length, String)
Dim buf() As Byte = New Byte(length) {}
Dim fs As FileStream = File.OpenRead(fname)
fs.Read(buf, 0, buf.Length)
fs.Close()
Return (New ASCIIEncoding).GetString(buf)
End Function
End Class
|