コード例 #1
0
        private byte[] DecryptDatabaseFile(byte[] fileData)
        {
            using var reader = new BinaryReader(new MemoryStream(fileData));
            var dataEncryptionFlagRawData = reader.ReadBytes(1);
            var dataEncryptionFlag        = BitConverter.ToBoolean(dataEncryptionFlagRawData, 0);

            if (dataEncryptionFlag)
            {
                var key        = reader.ReadBytes(EncryptionKeyLength);
                var cipherData = reader.ReadBytes(fileData.Length - dataEncryptionFlagRawData.Length - EncryptionKeyLength);
                return(CryptoUtility.AesDecrypt(cipherData, key));
            }
            else
            {
                return(reader.ReadBytes(fileData.Length - dataEncryptionFlagRawData.Length));
            }
        }