Beispiel #1
0
        public void Encrypt(byte[] inputData, int offset, int length, Stream output, DataType dataType)
        {
            switch (getFilter(dataType))
            {
            case CryptFilter.Identity:
                output.Write(inputData, offset, length);
                return;

            case CryptFilter.V2:
                RC4 rc4 = getRC4(_curObjectKey, _curObjectKey.Length);
                rc4.Crypt(inputData, offset, length, output);
                return;

            case CryptFilter.AESV3:
            case CryptFilter.AESV2:
                AES aes = getAES(_curObjectKey);
                aes.Encrypt(inputData, offset, length, output);
                return;
            }
        }
Beispiel #2
0
        public void Decrypt(Stream input, int length, Stream output, DataType dataType)
        {
            switch (getFilter(dataType))
            {
            case CryptFilter.Identity:
                for (int i = 0; i < length; ++i)
                {
                    output.WriteByte((byte)input.ReadByte());
                }
                return;

            case CryptFilter.V2:
                RC4 rc4 = getRC4(_curObjectKey, _curObjectKey.Length);
                rc4.Crypt(input, length, output);
                return;

            case CryptFilter.AESV2:
            case CryptFilter.AESV3:
                AES aes = getAES(_curObjectKey);
                aes.Decrypt(input, length, output);
                return;
            }
        }