VB.Net by API/System.Security.Cryptography/DSACryptoServiceProvider

Материал из VB Эксперт
Перейти к: навигация, поиск

DSACryptoServiceProvider.FromXmlString

<source lang="vbnet">

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: DSASign <key xml>  <sign>")
           End
       End If
       Dim xkey As String = LoadString(CmdArgs(0))
       
       
       
       Dim fs As FileStream = File.OpenRead(CmdArgs(1))
       Dim dsa As DSACryptoServiceProvider = New DSACryptoServiceProvider
       dsa.FromXmlString(xkey)
       Dim sig() As Byte = dsa.SignData(fs)
       fs.Close()
       SaveString(CmdArgs(2), Convert.ToString(sig))
       Console.WriteLine("Signature in {0}} file", CmdArgs(2))
   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


 </source>


DSACryptoServiceProvider.SignData

<source lang="vbnet"> 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: DSASign <key xml> <data> <sign>")
           End
       End If
       Dim xkey As String = LoadString(CmdArgs(0))
       
       
       
       Dim fs As FileStream = File.OpenRead(CmdArgs(1))
       Dim dsa As DSACryptoServiceProvider = New DSACryptoServiceProvider
       dsa.FromXmlString(xkey)
       Dim sig() As Byte = dsa.SignData(fs)
       fs.Close()
       SaveString(CmdArgs(2), Convert.ToString(sig))
       Console.WriteLine("Signature in {0}} file", CmdArgs(2))
   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


 </source>