salut,
le problème que je n'arrive tjrs pas à comprendre est le suivant :
j'ai 2 fonctions l'une crypte, la seconde decrypte.
si je met ces 2 fonctions dans le meme programme et jexecute, tout est nikel, PAR CONTRE, si je prend celle qui crypte, je l'affecte soigneusement au client ( vue que c'est lui qui va envoyer les données) puis j'intègre celle qui decrypte au niveau du serveur, ca pete !!!!!

, je comprend plus rien....
et ca plante au niveau du vecteur dinitialisation :
une fois je crée un vecteur dinitialisation , je lenvoie au serveur histoire d'avoir le meme que le client qui lui permettra de décrypter la chaine que jenverrai apres! une fois recu, je le convertie a un tableau de Byte, puis je le stocke au niveau d'une variable spécifique cet effet
mCSP.IV ( Initialisation Vector) qui sera utilisée par le CreateDecryptor(mCSP.Key,
mCSP.IV);
et la il commence a me raconté des nulletés genre : la taille du tableau n'est pas adequate ou tableau ne doit pas etre vide sachant que quand je trace, je trouve qu'il est plein... maintenant j'ai reussit a dépassé cela mais ca plante au niveau d'une fonction
FlushFinalBlock() !!
je vous met ci dessous ma fonction qui s'occupe de decrypter la chaine envoyée par le client peut etre que ca pourrais aider à comprendre mieux mon problème :
//instanciation de SymmetricAlgorithm au début du programme serveur :
privateSymmetricAlgorithm mCSP = SymmetricAlgorithm.Create() ;// fonction de décryptage
privatestring DecryptString(string Value)
{
ICryptoTransform ct;MemoryStream ms;CryptoStream cs;byte[] byt;// le vecteur d'initialisation envoyer par le client, ici mis dans une variable pour faciliter la compréhension
String m_initVector = "@1B2c3D4e5F6g7H8";
// conversion du vecteur d'initialisation a un tableau de Byte
Byte[] IVArray = StrToByteArray(m_initVector);
// affectation du tableau de Byte a la variable .IV qui sera utiliser par la fonction createDecryptor:
mCSP.IV = IVArray;
// de meme pour la clé de cryptage
String m_key = "g0VjERYkOzgb5p7YGKrOH778DvfEMyqj";
Byte[] KeyArray = StrToByteArray(m_key);
mCSP.Key = KeyArray;
// ici on crée un decrypteur avec les 2 elements : clé de cryptage et vecteur dinitialisation
ct = mCSP.CreateDecryptor(mCSP.Key,mCSP.IV);
byt = Convert.FromBase64String(Value);
// allocation d'un buffer
ms = newMemoryStream();
cs = newCryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
// a ce niveau ca plante !!!!
cs.FlushFinalBlock();
cs.Close();
returnEncoding.UTF8.GetString(ms.ToArray());
}
est ce que quelqu'un a une bonne idée ?