MessageKeyData.smali

.class public Lim/tpelyyftgw/messenger/MessageKeyData;
.super Ljava/lang/Object;
.source "MessageKeyData.java"


# instance fields
.field public aesIv:[B

.field public aesKey:[B


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    .line 7
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static generateMessageKeyData([B[BZI)Lim/tpelyyftgw/messenger/MessageKeyData;
    .registers 20
    .param p0, "authKey"    # [B
    .param p1, "messageKey"    # [B
    .param p2, "incoming"    # Z
    .param p3, "version"    # I

    .line 13
    move-object/from16 v0, p0

    move-object/from16 v1, p1

    move/from16 v2, p3

    new-instance v3, Lim/tpelyyftgw/messenger/MessageKeyData;

    invoke-direct {v3}, Lim/tpelyyftgw/messenger/MessageKeyData;-><init>()V

    .line 14
    .local v3, "keyData":Lim/tpelyyftgw/messenger/MessageKeyData;
    if-eqz v0, :cond_12a

    array-length v4, v0

    if-nez v4, :cond_12

    goto/16 :goto_12a

    .line 20
    :cond_12
    const/4 v4, 0x0

    const/16 v5, 0x8

    if-eqz p2, :cond_1a

    const/16 v6, 0x8

    goto :goto_1b

    :cond_1a
    const/4 v6, 0x0

    .line 22
    .local v6, "x":I
    :goto_1b
    const/4 v7, 0x1

    const/16 v8, 0x10

    if-eq v2, v7, :cond_8a

    const/4 v7, 0x2

    if-eq v2, v7, :cond_25

    goto/16 :goto_129

    .line 24
    :cond_25
    new-instance v7, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v7}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    .line 25
    .local v7, "data":Lim/tpelyyftgw/tgnet/SerializedData;
    invoke-virtual {v7, v1, v4, v8}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 26
    const/16 v9, 0x24

    invoke-virtual {v7, v0, v6, v9}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 27
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v10

    invoke-static {v10}, Lim/tpelyyftgw/messenger/Utilities;->computeSHA256([B)[B

    move-result-object v10

    .line 28
    .local v10, "sha256_a":[B
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 30
    new-instance v11, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v11}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v11

    .line 31
    add-int/lit8 v11, v6, 0x28

    invoke-virtual {v7, v0, v11, v9}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 32
    invoke-virtual {v7, v1, v4, v8}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 33
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v9

    invoke-static {v9}, Lim/tpelyyftgw/messenger/Utilities;->computeSHA256([B)[B

    move-result-object v9

    .line 34
    .local v9, "sha256_b":[B
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 36
    new-instance v11, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v11}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v11

    .line 37
    invoke-virtual {v7, v10, v4, v5}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 38
    invoke-virtual {v7, v9, v5, v8}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 39
    const/16 v11, 0x18

    invoke-virtual {v7, v10, v11, v5}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 40
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v12

    iput-object v12, v3, Lim/tpelyyftgw/messenger/MessageKeyData;->aesKey:[B

    .line 41
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 43
    new-instance v12, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v12}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v12

    .line 44
    invoke-virtual {v7, v9, v4, v5}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 45
    invoke-virtual {v7, v10, v5, v8}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 46
    invoke-virtual {v7, v9, v11, v5}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 47
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v4

    iput-object v4, v3, Lim/tpelyyftgw/messenger/MessageKeyData;->aesIv:[B

    .line 48
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 49
    goto/16 :goto_129

    .line 52
    .end local v7    # "data":Lim/tpelyyftgw/tgnet/SerializedData;
    .end local v9    # "sha256_b":[B
    .end local v10    # "sha256_a":[B
    :cond_8a
    new-instance v7, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v7}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    .line 53
    .restart local v7    # "data":Lim/tpelyyftgw/tgnet/SerializedData;
    invoke-virtual {v7, v1}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([B)V

    .line 54
    const/16 v9, 0x20

    invoke-virtual {v7, v0, v6, v9}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 55
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v10

    invoke-static {v10}, Lim/tpelyyftgw/messenger/Utilities;->computeSHA1([B)[B

    move-result-object v10

    .line 56
    .local v10, "sha1_a":[B
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 58
    new-instance v11, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v11}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v11

    .line 59
    add-int/lit8 v11, v6, 0x20

    invoke-virtual {v7, v0, v11, v8}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 60
    invoke-virtual {v7, v1}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([B)V

    .line 61
    add-int/lit8 v11, v6, 0x30

    invoke-virtual {v7, v0, v11, v8}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 62
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v11

    invoke-static {v11}, Lim/tpelyyftgw/messenger/Utilities;->computeSHA1([B)[B

    move-result-object v11

    .line 63
    .local v11, "sha1_b":[B
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 65
    new-instance v12, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v12}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v12

    .line 66
    add-int/lit8 v12, v6, 0x40

    invoke-virtual {v7, v0, v12, v9}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 67
    invoke-virtual {v7, v1}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([B)V

    .line 68
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v12

    invoke-static {v12}, Lim/tpelyyftgw/messenger/Utilities;->computeSHA1([B)[B

    move-result-object v12

    .line 69
    .local v12, "sha1_c":[B
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 71
    new-instance v13, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v13}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v13

    .line 72
    invoke-virtual {v7, v1}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([B)V

    .line 73
    add-int/lit8 v13, v6, 0x60

    invoke-virtual {v7, v0, v13, v9}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 74
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v9

    invoke-static {v9}, Lim/tpelyyftgw/messenger/Utilities;->computeSHA1([B)[B

    move-result-object v9

    .line 75
    .local v9, "sha1_d":[B
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 77
    new-instance v13, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v13}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v13

    .line 78
    invoke-virtual {v7, v10, v4, v5}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 79
    const/16 v13, 0xc

    invoke-virtual {v7, v11, v5, v13}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 80
    const/4 v14, 0x4

    invoke-virtual {v7, v12, v14, v13}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 81
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v15

    iput-object v15, v3, Lim/tpelyyftgw/messenger/MessageKeyData;->aesKey:[B

    .line 82
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 84
    new-instance v15, Lim/tpelyyftgw/tgnet/SerializedData;

    invoke-direct {v15}, Lim/tpelyyftgw/tgnet/SerializedData;-><init>()V

    move-object v7, v15

    .line 85
    invoke-virtual {v7, v10, v5, v13}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 86
    invoke-virtual {v7, v11, v4, v5}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 87
    invoke-virtual {v7, v12, v8, v14}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 88
    invoke-virtual {v7, v9, v4, v5}, Lim/tpelyyftgw/tgnet/SerializedData;->writeBytes([BII)V

    .line 89
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->toByteArray()[B

    move-result-object v4

    iput-object v4, v3, Lim/tpelyyftgw/messenger/MessageKeyData;->aesIv:[B

    .line 90
    invoke-virtual {v7}, Lim/tpelyyftgw/tgnet/SerializedData;->cleanup()V

    .line 91
    nop

    .line 94
    .end local v7    # "data":Lim/tpelyyftgw/tgnet/SerializedData;
    .end local v9    # "sha1_d":[B
    .end local v10    # "sha1_a":[B
    .end local v11    # "sha1_b":[B
    .end local v12    # "sha1_c":[B
    :goto_129
    return-object v3

    .line 15
    .end local v6    # "x":I
    :cond_12a
    :goto_12a
    const/4 v4, 0x0

    iput-object v4, v3, Lim/tpelyyftgw/messenger/MessageKeyData;->aesIv:[B

    .line 16
    iput-object v4, v3, Lim/tpelyyftgw/messenger/MessageKeyData;->aesKey:[B

    .line 17
    return-object v3
.end method