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

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

DSACryptoServiceProvider.FromXmlString

  

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


DSACryptoServiceProvider.SignData

  
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