Ejemplo n.º 1
0
        public virtual TLBool deserializeResponse(InputStream stream, TLContext context)
        {
            TLObject obj2 = StreamingUtils.readTLObject(stream, context);

            if (obj2 == null)
            {
                Throwable.__ <suppressFillInStackTrace>();
                throw new IOException("Unable to parse response");
            }
            if (obj2 is TLBool)
            {
                return((TLBool)obj2);
            }
            Throwable.__ <suppressFillInStackTrace>();
            throw new IOException(new StringBuilder().append("Incorrect response type. Expected org.telegram.tl.TLBool, got: ").append(Object.instancehelper_getClass(obj2).getCanonicalName()).toString());
        }
Ejemplo n.º 2
0
        public virtual DhGenResult deserializeResponse(InputStream stream, TLContext context)
        {
            TLObject obj2 = context.deserializeMessage(stream);

            if (obj2 == null)
            {
                Throwable.__ <suppressFillInStackTrace>();
                throw new DeserializeException("Unable to deserialize response");
            }
            if (obj2 is DhGenResult)
            {
                return((DhGenResult)obj2);
            }
            Throwable.__ <suppressFillInStackTrace>();
            throw new DeserializeException("Response has incorrect type");
        }
Ejemplo n.º 3
0
        public static void readBytes(byte[] buffer, int offset, int count, InputStream stream)
        {
            int num = 0;

            while (num < count)
            {
                int num2 = stream.read(buffer, num + offset, count - num);
                if (num2 > 0)
                {
                    num += num2;
                }
                else
                {
                    if (num2 < 0)
                    {
                        Throwable.__ <suppressFillInStackTrace>();
                        throw new IOException();
                    }
                    Thread.yield();
                }
            }
        }
Ejemplo n.º 4
0
        public static byte[] readBytes(int count, InputStream stream)
        {
            byte[] buffer = new byte[count];
            int    num    = 0;

            while (num < buffer.Length)
            {
                int num2 = stream.read(buffer, num, buffer.Length - num);
                if (num2 > 0)
                {
                    num += num2;
                }
                else
                {
                    if (num2 < 0)
                    {
                        Throwable.__ <suppressFillInStackTrace>();
                        throw new IOException();
                    }
                    Thread.yield();
                }
            }
            return(buffer);
        }
Ejemplo n.º 5
0
 public override void deserializeBody(InputStream stream, TLContext context)
 {
     Throwable.__ <suppressFillInStackTrace>();
     throw new UnsupportedOperationException("Unable to deserialize invokeAfterMsg#-878758099");
 }
Ejemplo n.º 6
0
        private int[][] generateWorkingKey(byte[] buffer1, bool flag1)
        {
            int num7;
            int expressionStack_DD_0;
            int expressionStack_FA_1;

            int[] expressionStack_FA_2;
            int   expressionStack_FA_3;
            int   expressionStack_FF_0;

            int[] expressionStack_FF_1;
            int   expressionStack_FF_2;
            int   expressionStack_118_0;
            int   num  = (int)flag1;
            int   num2 = buffer1.Length / 4;

            if ((((num2 != 4) && (num2 != 6)) && (num2 != 8)) || ((num2 * 4) != buffer1.Length))
            {
                Throwable.__ <suppressFillInStackTrace>();
                throw new IllegalArgumentException("Key length not 128/192/256 bits.");
            }
            this.ROUNDS = num2 + 6;
            int[] numArray = new int[2];
            int   num3     = 4;

            numArray[1] = num3;
            num3        = this.ROUNDS + 1;
            numArray[0] = num3;
            int[][] numArray2 = (int[][])ByteCodeHelper.multianewarray(typeof(int[][]).TypeHandle, numArray);
            int     num4      = 0;
            int     index     = 0;

            while (true)
            {
                if (index >= buffer1.Length)
                {
                    break;
                }
                numArray2[num4 >> 2][num4 & 3] = ((buffer1[index] | (buffer1[index + 1] << 8)) | (buffer1[index + 2] << 0x10)) | (buffer1[index + 3] << 0x18);
                index += 4;
                num4++;
            }
            int num6 = (this.ROUNDS + 1) << 2;

            index = num2;
Label_00B5:
            if (index >= num6)
            {
                if (num != 0)
                {
                    return(numArray2);
                }
                num7 = 1;
                goto Label_0155;
            }
            num7 = numArray2[(index - 1) >> 2][(index - 1) & 3];
            if (num2 != -1)
            {
                int expressionStack_DC_1 = index;
                int expressionStack_DC_0 = num2;
                expressionStack_DD_0 = expressionStack_DC_1 % expressionStack_DC_0;
                goto Label_00DD;
            }
            else
            {
                int expressionStack_D7_1 = index;
                int expressionStack_D7_0 = num2;
            }
            expressionStack_DD_0 = 0;
Label_00DD:
            if (expressionStack_DD_0 != 0)
            {
                if (num2 <= 6)
                {
                    goto Label_0125;
                }
                if (num2 != -1)
                {
                    int expressionStack_117_1 = index;
                    int expressionStack_117_0 = num2;
                    expressionStack_118_0 = expressionStack_117_1 % expressionStack_117_0;
                    goto Label_0118;
                }
                else
                {
                    int expressionStack_112_1 = index;
                    int expressionStack_112_0 = num2;
                }
                expressionStack_118_0 = 0;
                goto Label_0118;
            }
            if (num2 != -1)
            {
                int   expressionStack_FE_3 = this.subWord(this.shift(num7, 8));
                int[] rcon = AESFastEngine.rcon;
                int   expressionStack_FE_1 = index;
                int   expressionStack_FE_0 = num2;
                expressionStack_FF_2 = expressionStack_FE_3;
                expressionStack_FF_1 = rcon;
                expressionStack_FF_0 = expressionStack_FE_1 / expressionStack_FE_0;
                goto Label_00FF;
            }
            else
            {
                expressionStack_FA_3 = this.subWord(this.shift(num7, 8));
                expressionStack_FA_2 = AESFastEngine.rcon;
                expressionStack_FA_1 = index;
                int expressionStack_FA_0 = num2;
            }
            expressionStack_FF_2 = expressionStack_FA_3;
            expressionStack_FF_1 = expressionStack_FA_2;
            expressionStack_FF_0 = -expressionStack_FA_1;
Label_00FF:
            num7 = expressionStack_FF_2 ^ expressionStack_FF_1[expressionStack_FF_0 - 1];
            goto Label_0125;
Label_0118:
            if (expressionStack_118_0 == 4)
            {
                num7 = this.subWord(num7);
            }
Label_0125:
            numArray2[index >> 2][index & 3] = numArray2[(index - num2) >> 2][(index - num2) & 3] ^ num7;
            index++;
            goto Label_00B5;
Label_0155:
            if (num7 >= this.ROUNDS)
            {
                return(numArray2);
            }
            index = 0;
            while (true)
            {
                if (index >= 4)
                {
                    break;
                }
                numArray2[num7][index] = this.inv_mcol(numArray2[num7][index]);
                index++;
            }
            num7++;
            goto Label_0155;
        }
Ejemplo n.º 7
0
 public override void deserializeBody(InputStream stream, TLContext context)
 {
     Throwable.__ <suppressFillInStackTrace>();
     throw new IOException("Unsupported operation");
 }