コード例 #1
0
 public byte[] Update(byte[] b, int off, int len) {
     if (aes) {
         if (initiated)
             return cipher.Update(b, off, len);
         else {
             int left = Math.Min(iv.Length - ivptr, len);
             System.Array.Copy(b, off, iv, ivptr, left);
             off += left;
             len -= left;
             ivptr += left;
             if (ivptr == iv.Length) {
                 cipher = new AESCipher(false, key, iv);
                 initiated = true;
                 if (len > 0)
                     return cipher.Update(b, off, len);
             }
             return null;
         }
     }
     else {
         byte[] b2 = new byte[len];
         arcfour.EncryptARCFOUR(b, off, len, b2, 0);
         return b2;
     }
 }
コード例 #2
0
 public byte[] Update(byte[] b, int off, int len)
 {
     if (aes)
     {
         if (initiated)
         {
             return(cipher.Update(b, off, len));
         }
         else
         {
             int left = Math.Min(iv.Length - ivptr, len);
             System.Array.Copy(b, off, iv, ivptr, left);
             off   += left;
             len   -= left;
             ivptr += left;
             if (ivptr == iv.Length)
             {
                 cipher    = new AESCipher(false, key, iv);
                 initiated = true;
                 if (len > 0)
                 {
                     return(cipher.Update(b, off, len));
                 }
             }
             return(null);
         }
     }
     else
     {
         byte[] b2 = new byte[len];
         arcfour.EncryptARCFOUR(b, off, len, b2, 0);
         return(b2);
     }
 }
コード例 #3
0
 public OutputStreamEncryption(Stream outc, byte[] key, int off, int len, int revision) {
     this.outc = outc;
     aes = revision == AES_128;
     if (aes) {
         byte[] iv = IVGenerator.GetIV();
         byte[] nkey = new byte[len];
         System.Array.Copy(key, off, nkey, 0, len);
         cipher = new AESCipher(true, nkey, iv);
         Write(iv, 0, iv.Length);
     }
     else {
         arcfour = new ARCFOUREncryption();
         arcfour.PrepareARCFOURKey(key, off, len);
     }
 }