VB/VB.Net Problème RSACrypt.vb

A

Anonymous

Invité
#1
Salut,
je programme en ce moment mon propre bot basé sur les sources du bot de ToOns
Mais je rencontre actuellement une erreur que j'ai du mal à comprendre

Voici le screen de l'erreur : http://snag.gy/MS0yy.jpg

Le code source entier :
Code:
Imports System.Security.Cryptography
Imports CSInteropKeys
Public Class RSA

    Shared PUBLIC_KEY As String = "-----BEGIN PUBLIC KEY-----\n" + "MIIBUzANBgkqhkiG9w0BAQEFAAOCAUAAMIIBOwKCATIAq8EYkkGCUg86Bf2CHaM1z1Q2ahQgVXkx\n" + "49I0igwTVCIqG86jsgNb22na1DThZ+IP7DfyBszIecVSP8nwbYPbx6Z7dwq4pnMVx/lx5lyMZUO1\n" + "HGEkw1S06AlfXzSg58ci5DL9RJ9ZIa1oMDKtrZiNYA5C3L+7NSCVp/2H/yypWkDjzkFan65+TN\n" + "RExo/2O3+MytJtQ/BXVkbYD58+iiZegddNTNGvz8WlPz2cZvPQt4x1TN+KOgJRKZH5imNAxCtRg6\n" + "l1OLVxfwwUjKFgM4uAsto8vJv5DUFZQMO1Sh9gMpmzeMwXIF4fDD4O1TNiVmu3ABybt2Y4EdaQhs\n" + "ponC0SNcWbrY0stYbX+Wpk9/Hcxmo3zoduf1ZAdGM01E1g3IjQMd0gOP4v1KQtBjoHim2MCAwEA\n" + "AQ==\n" + "-----END PUBLIC KEY-----"
    Friend Shared Crypt As RSACryptoServiceProvider
    Friend Shared rsaParameter As RSAParameters
    Friend Shared KEY_HEADER As String = "-----BEGIN PUBLIC KEY-----"
    Friend Shared KEY_FOOTER As String = "-----END PUBLIC KEY-----"

    Public Shared Function cipherRsaString(ByVal key As String, ByVal password As String) As String
        'On encode la _key reçus dans HelloConnectMessage avec le mot de passe en Bytes.
        Dim Input() As Byte = System.Text.Encoding.UTF8.GetBytes(key + password)
        'On déclare un nouveau Service de cryptage RSA pour chiffrer et déchiffrer.
        Crypt = New RSACryptoServiceProvider

        'On convertit la PUBLIC_KEY en un tableau d'entiers de 8bits.
        Dim BinaryData() As Byte = GetPublicKey()

        'On utilise CSInteropKeys pour parser la clé et obtenir les informations du cryptage RSA.
        Dim KeyParser As New AsnKeyParser(BinaryData)
        rsaParameter = KeyParser.ParseRSAPublicKey()


        'On importe les paramètres dans notre service de cryptage.
        Crypt.ImportParameters(rsaParameter)

        'On encrypte La clé, avec le mot de passe, celon les paramètres de la public key.
        Dim Ouput() As Byte = Crypt.Encrypt(Input, False)

        'On convertit notre tableau de bytes en chaine de caractère, et on la renvoit en résultat de fonction.
        Return System.Convert.ToBase64String(Ouput)
    End Function

    'Fonction développée par Maxilia.
    Friend Shared Function GetPublicKey() As Byte()

        'On définie deux index pour lire la PublicKey
        Dim Index1 As Integer = KEY_HEADER.Length
        Dim Index2 As Integer = PUBLIC_KEY.IndexOf(KEY_FOOTER) - Index1

        'On obtient ici la PublicKey sans le header et le footer
        Dim Temp As String = PUBLIC_KEY.Substring(Index1, Index2)

        'On supprime les saut de ligne
        Temp = Temp.Replace("\n", "")

        'On convertie la Key en Byte et on la retourne.
        Return Convert.FromBase64String(Temp)

    End Function
End Class
Voilà merci de m'aider à comprendre, bonne soirée et joyeux noël. :p
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#2
Salut,

Quel sont tes notions de programmation ?
L'erreur ici t'indique que le compiler n'arrive pas à convertir ton tableau de Byte en String.

Essaye avec ceci :
Code:
Dim KeyParser As New AsnKeyParser(System.Text.Encoding.Unicode.GetString(BinaryData))
Mais j'ai des doute sur le fonctionnement de cette solution étant donné que ce sont des données binaire (donc non délimité par le \0)
 
Haut Bas