예제 #1
0
 private int method_11(byte[] byte_0, int int_2, int int_3)
 {
     if (!this.method_4())
     {
         throw new ZipException("Library cannot extract this entry. Version required is (" + this.class193_0.method_11().ToString() + ")");
     }
     if (this.class193_0.method_0())
     {
         if (this.password == null)
         {
             throw new ZipException("No password set.");
         }
         Class208 @class = new Class208();
         byte[] rgbKey = Class207.smethod_0(Class186.smethod_3(this.password));
         this.class201_0.method_12(@class.CreateDecryptor(rgbKey, null));
         byte[] array = new byte[12];
         this.class201_0.method_7(array, 0, 12);
         if (array[11] != this.class193_0.method_2())
         {
             throw new ZipException("Invalid password");
         }
         if (this.long_0 >= 12L)
         {
             this.long_0 -= 12L;
         }
         else if ((this.class193_0.method_4() & 8) == 0)
         {
             throw new ZipException(string.Format("Entry compressed size {0} too small for encryption", this.long_0));
         }
     }
     else
     {
         this.class201_0.method_12(null);
     }
     if (this.int_0 == 8 && this.class201_0.method_1() > 0)
     {
         this.class201_0.method_3(this.class196_0);
     }
     this.delegate5_0 = new ZIPCompressor.Delegate5(this.method_12);
     return this.method_12(byte_0, int_2, int_3);
 }
예제 #2
0
 public void method_4(string string_1)
 {
     Class208 @class = new Class208();
     byte[] rgbKey = Class207.smethod_0(Class186.smethod_3(string_1));
     this.icryptoTransform_0 = @class.CreateEncryptor(rgbKey, null);
 }