Bonjour,
Je souhaiterai faire un decryptage de datas.
Je dispose d'une clé public, d'un exponent et d'une signature.
voici comment se présente mon programme :
Ca doit surement provenir du contenu de ma clé qui contient des valeurs hexadécimal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 RSAParameters RSAKeyInfo = new RSAParameters(); RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); byte[] modulus = new byte[256]; byte[] exponent = new byte[4]; byte[] signature = new byte[256]; string publicKey = "DCD424...."; try { RSAKeyInfo .Modulus = (byte[]) SCUtil.ToByteArray(PublicKey); // ce ke donne SCUtil.ToByteArray >>> 0xD4 0xDC 0x24 ..... RSAKeyInfo .Exponent = (byte[]) SCUtil.ToByteArray("00010001"); // 0x01 0x00 0x01 signature = (byte[])SCUtil.ToByteArray(dataXml.DataSecurity.SecuritySignature); // string contenant valeur hexa RSAKeyInfo.Modulus = modulus; RSAKeyInfo.Exponent = exponent; RSA.ImportParameters(RSAKeyInfo); byte[] decrypt = RSA.Decrypt(signature, false); // c'est ici que je recoit le message "clé incorrecte" } catch (CryptographicException e) { Console.WriteLine(e.ToString()); }
Voici ce que contient mon fichier xml :
Le problème je pense se situe sur le contenu de ma clé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <PublicKeyValue> D4DC249F78996EC47E328B965506CD939ECBBEA4F450CB ...... </PublicKeyValue>
D'après les exemples que j'ai trouvé sur le net, cette clé devrait etre de la forme :
Mais dans mon cas, celle-ci est codé en Hexa.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <PublicKeyValue>OEIyQkE5QTM5NjM1ODIwODBEQTQzN</PublicKeyValue>
Une fois ma fonction executé, je catch un message me disant que ma "clé est incorrecte".
Quelqu'un aurai une piste à me donner, ca fais deja plusieurs jours que je bute sur ce problème.
Merci d'avance pour votre aide.
Partager