vb.nethashhexscryptlitecoin

Not the excpected hash from the scrypt algo


i am using this scrypt from here inside my vb application

I tried this code to hash a hex string:

Imports Replicon.Cryptography.SCrypt

Public Class Form1


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim ss() As Byte = System.Text.Encoding.Default.GetBytes(TextBox1.Text)

        RichTextBox1.Text = System.Text.Encoding.Default.GetString(SCrypt.DeriveKey(ss, ss, 1024, 1, 1, 32))


    End Sub
End Class

The hex string inside the textbox:

TextBox1.text = "01000000f615f7ce3b4fc6b8f61e8f89aedb1d0852507650533a9e3b10b9bbcc30639f279fcaa86746e1ef52d3edb3c4ad8259920d509bd073605c9bf1d59983752a6b06b817bb4ea78e011d012d59d4"

It gives me this:

r3Î<ÛãhšÏ-$:8´"ýäP+°‡ W«&‰Â

The excpected result after inversing the little endian is this:

0000000110c8357966576df46f3b802ca897deb7ad18b12f1c24ecff6386ebd9

I think the problem is the byte conversion, string conversion?

Help is appreciated

Thanks to all.


Solution

  • I found the solution:

    The code is:

    
    Imports Replicon.Cryptography.SCrypt
    Imports System.Globalization
    Imports System.Text
    
    Public Class Form1
    
    
        Public Shared Function Btog(ByVal ba() As Byte) As String
            Dim hex As StringBuilder = New StringBuilder(ba.Length * 2)
            Dim b As Byte
            For Each b In ba
                hex.AppendFormat("{0:x2}", b)
            Next
            Return hex.ToString()
        End Function
    
    
    
        Public Function HexDecode(ByVal s As String) As Byte()
            Return HexDecode(s, 0)
        End Function
    
        Public Function HexDecode(ByVal s As String, ByVal paddingBytes As Integer) As Byte()
            If s Is Nothing Then
                Throw New ArgumentNullException("s")
            End If
    
            If s.IndexOf(":"c) > -1 Then
                s = s.Replace(":", "")
            End If
    
            If (s.Length Mod 2) <> 0 Then
                Throw New FormatException("parameter 's' must have an even number of hex characters")
            End If
    
            Dim result As Byte() = New Byte(s.Length \ 2 + (paddingBytes - 1)) {}
            For i As Integer = 0 To result.Length - paddingBytes - 1
                result(i) = Byte.Parse(s.Substring(i * 2, 2), NumberStyles.AllowHexSpecifier)
            Next
            Return result
        End Function
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
    
    
            RichTextBox1.Text = Btog(SCrypt.DeriveKey(HexDecode(TextBox1.Text), HexDecode(TextBox1.Text), 1024, 1, 1, 32))
    
    
        End Sub
    End Class