Toon posts:

.NET C# Cryptografie: Error tijdens decrypten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een front-end voor m'n enc/decryptie library geschreven wat werkt waneer Key & vector juist zijn. Ik krijg vaage errors waneer deze niet juist zijn:

code:
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
public byte[] Decrypt(byte[] bytesData, byte[] bytesKey)
        {
            //Set up the memory stream for the decrypted data.
            MemoryStream memStreamDecryptedData = new MemoryStream();

            //Pass in the initialization vector.
            transformer.IV = initVec;
            ICryptoTransform transform = transformer.GetCryptoServiceProvider(bytesKey);
            CryptoStream decStream = new CryptoStream(memStreamDecryptedData, 
                transform, 
                CryptoStreamMode.Write);
            try
            {
                decStream.Write(bytesData, 0, bytesData.Length);
            }
            catch(Exception ex)
            {
                throw new Exception("Error while writing encrypted data to the stream: \n" 
                    + ex.Message);
            }
            decStream.FlushFinalBlock();
            decStream.Close();
            // Send the data back.
            return memStreamDecryptedData.ToArray();
        } //end Decrypt


ihg. De Key niet juist is krijg ik een

'A first chance exception of type 'System.Security.Cryptography.CryptographicException' occurred in X-EncryptionGUI.exe

Additional information: PKCS7 padding is invalid and cannot be removed.'

Waneer ik met google zoek naar een oplossing krijg ik alleen lappen met code te zien waarbij wordt gezegd 'deze code werkt'..

kom er maar niet achter wat die PKCS7 error message betekend,
-edit hij klapt er nu dus uit op decStream.Close(); < waneer de stream gesloten word.

[ Voor 6% gewijzigd door Verwijderd op 04-10-2004 15:40 ]


  • Tuxie
  • Registratie: Augustus 2003
  • Laatst online: 20-05 19:17

Tuxie

En WeL nU!

Je hebt het probleem zelf al te pakken :?

De functie gooit een exception omdat de key niet juist is. PKCS7 schrijft een bepaald formaat voor, dus hoe de key en de iv eruit moeten zien. Deze twee (met name de bitgrootte) zijn altijd aan elkaar gerelateerd, je kunt niet zomaar elke key hierin gooien. Zoek uit waaraan ze aan moeten voldoen en controleer de input in de arrays, dit doen die cryptofuncties namelijk niet voor je. (eigen ervaring ;) )

Verwijderd

Topicstarter
ja ik heb zelf mischien het probleem te pakken..

maar m'n key word aangemaakt door SHA256 > deze returned een hash van de key welke altijd 32bytes in lengte is

als ik deze door rijndael heen probeer te douwen met bhv. een CBC mode aan
krijg ik bovenstaand error melding .. wat ik nog niet 123 heb kunnen opvangen

alleen dmv. 16byte sleutels te gebruiken, iets wat lullig .. heeft iemand nog suggesties?

overigens geldt IV=key, deze zijn dus altijd gelijk :Y) (nog wel ; )

IV moet 16bytes zijn en Key max 32, dus ik geloof dat ik hier de fout in ga O-)
zal even de IV's afsplitsen van de keys in zekere zin.

[ Voor 24% gewijzigd door Verwijderd op 05-10-2004 16:19 ]