//private bool isDisposed; //protected MyZipArchive archive; //private MyArchiveFileHeader header; //private bool headerLoaded; //private int rawHeaderLength; //protected int headerOffset; //public bool CanRead { get; private set; } public Reader(MyZipArchive archive) : base(archive) { //if (archive == null) // throw new ArgumentNullException(); //this.archive = archive; }
public HeaderReader(MyZipArchive archive) { if (archive == null) { throw new ArgumentNullException(); } this.archive = archive; }
public EncryptionReader(MyZipArchive archive, string key) : base(archive) { var rawKey = UTF8Encoding.UTF8.GetBytes(key); var key2 = new Rfc2898DeriveBytes(key, rawKey, 20); TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); tdes.Key = key2.GetBytes(tdes.KeySize / 8); tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; crypto = tdes.CreateDecryptor(); }
public Writer(MyZipArchive archive, bool overwrite) { if (archive == null) { throw new ArgumentNullException(); } this.archive = archive; state = writerState.Waiting; this.overwrite = overwrite; //if (!overwrite) // tryLoadFile(); //else // blocks = new DataBlockCollection(); }
//public static bool TryGetReader(MyZipArchive archive, out Reader reader) //{ //} public static Writer GetWriter(MyZipArchive archive, bool overwrite, string encryptionKey = "") { int basicType; using (var reader = new HeaderReader(archive)) { basicType = reader.GetArchiveType().BasicType; } switch (basicType) { case 0: return(new Writer(archive, overwrite)); case 1: return(new CompressionWriter(archive, overwrite)); case 2: return(new EncryptionWriter(archive, overwrite, encryptionKey)); default: return(null); } }
public CompressionReader(MyZipArchive archive) : base(archive) { }
public CompressionWriter(MyZipArchive archive, bool overwrite) : base(archive, overwrite) { }