n.smali
.class public Lcom/subgraph/orchid/circuits/hs/n;
.super Ljava/lang/Object;
.source "RendezvousCircuitBuilder.java"
# interfaces
.implements Ljava/util/concurrent/Callable;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/concurrent/Callable",
"<",
"Lcom/subgraph/orchid/q;",
">;"
}
.end annotation
# instance fields
.field private final bBL:Lcom/subgraph/orchid/circuits/g;
.field private final bBs:Lcom/subgraph/orchid/j;
.field private final bEL:Lcom/subgraph/orchid/circuits/hs/c;
.field private final bEm:Lcom/subgraph/orchid/circuits/hs/i;
.field private final logger:Ljava/util/logging/Logger;
# direct methods
.method public constructor <init>(Lcom/subgraph/orchid/j;Lcom/subgraph/orchid/circuits/g;Lcom/subgraph/orchid/circuits/hs/i;Lcom/subgraph/orchid/circuits/hs/c;)V
.registers 6
.prologue
.line 24
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 16
const-class v0, Lcom/subgraph/orchid/circuits/hs/n;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
move-result-object v0
iput-object v0, p0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
.line 25
iput-object p1, p0, Lcom/subgraph/orchid/circuits/hs/n;->bBs:Lcom/subgraph/orchid/j;
.line 26
iput-object p2, p0, Lcom/subgraph/orchid/circuits/hs/n;->bBL:Lcom/subgraph/orchid/circuits/g;
.line 27
iput-object p3, p0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
.line 28
iput-object p4, p0, Lcom/subgraph/orchid/circuits/hs/n;->bEL:Lcom/subgraph/orchid/circuits/hs/c;
.line 29
return-void
.end method
.method private Lz()Lcom/subgraph/orchid/circuits/hs/m;
.registers 5
.prologue
.line 73
iget-object v0, p0, Lcom/subgraph/orchid/circuits/hs/n;->bEL:Lcom/subgraph/orchid/circuits/hs/c;
.line 13085
new-instance v1, Ljava/util/ArrayList;
iget-object v0, v0, Lcom/subgraph/orchid/circuits/hs/c;->bEh:Ljava/util/List;
invoke-direct {v1, v0}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
.line 12089
invoke-static {v1}, Lcom/subgraph/orchid/circuits/hs/c;->af(Ljava/util/List;)Ljava/util/List;
move-result-object v0
.line 73
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_11
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_2c
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/subgraph/orchid/circuits/hs/k;
.line 74
invoke-direct {p0, v0}, Lcom/subgraph/orchid/circuits/hs/n;->b(Lcom/subgraph/orchid/circuits/hs/k;)Lcom/subgraph/orchid/c;
move-result-object v2
.line 75
if-eqz v2, :cond_11
.line 76
new-instance v1, Lcom/subgraph/orchid/circuits/hs/m;
iget-object v3, p0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-direct {v1, v3, v2, v0}, Lcom/subgraph/orchid/circuits/hs/m;-><init>(Lcom/subgraph/orchid/circuits/hs/i;Lcom/subgraph/orchid/c;Lcom/subgraph/orchid/circuits/hs/k;)V
move-object v0, v1
.line 79
:goto_2b
return-object v0
:cond_2c
const/4 v0, 0x0
goto :goto_2b
.end method
.method private b(Lcom/subgraph/orchid/circuits/hs/k;)Lcom/subgraph/orchid/c;
.registers 7
.prologue
const/4 v0, 0x0
.line 83
iget-object v1, p0, Lcom/subgraph/orchid/circuits/hs/n;->bBs:Lcom/subgraph/orchid/j;
.line 14040
iget-object v2, p1, Lcom/subgraph/orchid/circuits/hs/k;->bDD:Lcom/subgraph/orchid/d/c;
.line 83
invoke-interface {v1, v2}, Lcom/subgraph/orchid/j;->b(Lcom/subgraph/orchid/d/c;)Lcom/subgraph/orchid/v;
move-result-object v1
.line 84
if-nez v1, :cond_c
.line 96
:goto_b
return-object v0
.line 89
:cond_c
:try_start_c
iget-object v2, p0, Lcom/subgraph/orchid/circuits/hs/n;->bBL:Lcom/subgraph/orchid/circuits/g;
invoke-virtual {v2}, Lcom/subgraph/orchid/circuits/g;->KN()Lcom/subgraph/orchid/r;
move-result-object v2
.line 90
invoke-interface {v2, v1}, Lcom/subgraph/orchid/r;->d(Lcom/subgraph/orchid/v;)Lcom/subgraph/orchid/c;
:try_end_15
.catch Ljava/lang/InterruptedException; {:try_start_c .. :try_end_15} :catch_17
.catch Lcom/subgraph/orchid/TorException; {:try_start_c .. :try_end_15} :catch_20
move-result-object v0
goto :goto_b
.line 92
:catch_17
move-exception v1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Thread;->interrupt()V
goto :goto_b
.line 94
:catch_20
move-exception v1
.line 95
iget-object v2, p0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "cannibalizeTo() failed : "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Lcom/subgraph/orchid/TorException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
goto :goto_b
.end method
# virtual methods
.method public final Ly()Lcom/subgraph/orchid/q;
.registers 20
.prologue
.line 33
move-object/from16 v0, p0
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "Opening rendezvous circuit for "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1069
move-object/from16 v0, p0
iget-object v4, v0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v4}, Lcom/subgraph/orchid/circuits/hs/i;->Lv()Ljava/lang/String;
move-result-object v4
.line 33
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 35
move-object/from16 v0, p0
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/n;->bBL:Lcom/subgraph/orchid/circuits/g;
invoke-virtual {v2}, Lcom/subgraph/orchid/circuits/g;->KN()Lcom/subgraph/orchid/r;
move-result-object v3
.line 36
move-object/from16 v0, p0
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Establishing rendezvous for "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 2069
move-object/from16 v0, p0
iget-object v5, v0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v5}, Lcom/subgraph/orchid/circuits/hs/i;->Lv()Ljava/lang/String;
move-result-object v5
.line 36
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v2, v4}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 37
new-instance v4, Lcom/subgraph/orchid/circuits/hs/o;
invoke-direct {v4, v3}, Lcom/subgraph/orchid/circuits/hs/o;-><init>(Lcom/subgraph/orchid/r;)V
.line 3033
iget-object v2, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
const/16 v5, 0x21
const/4 v6, 0x0
iget-object v7, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
invoke-interface {v7}, Lcom/subgraph/orchid/r;->It()Lcom/subgraph/orchid/f;
move-result-object v7
invoke-interface {v2, v5, v6, v7}, Lcom/subgraph/orchid/r;->a(IILcom/subgraph/orchid/f;)Lcom/subgraph/orchid/t;
move-result-object v2
.line 3034
iget-object v5, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEN:[B
invoke-interface {v2, v5}, Lcom/subgraph/orchid/t;->ai([B)V
.line 3035
iget-object v5, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
invoke-interface {v5, v2}, Lcom/subgraph/orchid/r;->a(Lcom/subgraph/orchid/t;)V
.line 3036
iget-object v2, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
invoke-interface {v2}, Lcom/subgraph/orchid/r;->Is()Lcom/subgraph/orchid/t;
move-result-object v2
.line 3037
if-nez v2, :cond_79
.line 3038
sget-object v2, Lcom/subgraph/orchid/circuits/hs/o;->logger:Ljava/util/logging/Logger;
const-string v5, "Timeout waiting for Rendezvous establish response"
invoke-virtual {v2, v5}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 3039
const/4 v2, 0x0
.line 38
:goto_72
if-nez v2, :cond_9d
.line 39
invoke-interface {v3}, Lcom/subgraph/orchid/r;->Iu()V
.line 40
const/4 v2, 0x0
.line 65
:goto_78
return-object v2
.line 3040
:cond_79
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Jw()I
move-result v5
const/16 v6, 0x27
if-eq v5, v6, :cond_9b
.line 3041
sget-object v5, Lcom/subgraph/orchid/circuits/hs/o;->logger:Ljava/util/logging/Logger;
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "Response received from Rendezvous establish was not expected acknowledgement, Relay Command: "
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Jw()I
move-result v2
invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v5, v2}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 3042
const/4 v2, 0x0
goto :goto_72
.line 3044
:cond_9b
const/4 v2, 0x1
goto :goto_72
.line 42
:cond_9d
move-object/from16 v0, p0
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
new-instance v5, Ljava/lang/StringBuilder;
const-string v6, "Opening introduction circuit for "
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 3069
move-object/from16 v0, p0
iget-object v6, v0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v6}, Lcom/subgraph/orchid/circuits/hs/i;->Lv()Ljava/lang/String;
move-result-object v6
.line 42
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {v2, v5}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 43
invoke-direct/range {p0 .. p0}, Lcom/subgraph/orchid/circuits/hs/n;->Lz()Lcom/subgraph/orchid/circuits/hs/m;
move-result-object v5
.line 44
if-nez v5, :cond_cf
.line 45
move-object/from16 v0, p0
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
const-string v4, "Failed to open connection to any introduction point"
invoke-virtual {v2, v4}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 46
invoke-interface {v3}, Lcom/subgraph/orchid/r;->Iu()V
.line 47
const/4 v2, 0x0
goto :goto_78
.line 49
:cond_cf
move-object/from16 v0, p0
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "Sending introduce cell for "
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 4069
move-object/from16 v0, p0
iget-object v7, v0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v7}, Lcom/subgraph/orchid/circuits/hs/i;->Lv()Ljava/lang/String;
move-result-object v7
.line 49
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-virtual {v2, v6}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 50
new-instance v6, Lcom/subgraph/orchid/crypto/s;
invoke-direct {v6}, Lcom/subgraph/orchid/crypto/s;-><init>()V
.line 5028
iget-object v2, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEK:Lcom/subgraph/orchid/circuits/hs/k;
.line 5056
iget-object v7, v2, Lcom/subgraph/orchid/circuits/hs/k;->bEE:Lcom/subgraph/orchid/crypto/o;
.line 51
invoke-virtual {v6}, Lcom/subgraph/orchid/crypto/s;->getPublicKeyBytes()[B
move-result-object v8
.line 5090
iget-object v9, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEN:[B
.line 5094
iget-object v2, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
invoke-interface {v2}, Lcom/subgraph/orchid/r;->It()Lcom/subgraph/orchid/f;
move-result-object v2
invoke-interface {v2}, Lcom/subgraph/orchid/f;->Iy()Lcom/subgraph/orchid/v;
move-result-object v2
.line 6032
iget-object v10, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEJ:Lcom/subgraph/orchid/c;
const/16 v11, 0x22
const/4 v12, 0x0
iget-object v13, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEJ:Lcom/subgraph/orchid/c;
invoke-interface {v13}, Lcom/subgraph/orchid/c;->It()Lcom/subgraph/orchid/f;
move-result-object v13
invoke-interface {v10, v11, v12, v13}, Lcom/subgraph/orchid/c;->a(IILcom/subgraph/orchid/f;)Lcom/subgraph/orchid/t;
move-result-object v10
.line 6060
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v12
const-wide/16 v14, 0x3e8
div-long/2addr v12, v14
long-to-int v11, v12
.line 6065
const/16 v12, 0x200
invoke-static {v12}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v12
.line 6066
invoke-interface {v2}, Lcom/subgraph/orchid/v;->JC()Lcom/subgraph/orchid/d/d;
move-result-object v13
invoke-virtual {v13}, Lcom/subgraph/orchid/d/d;->Mq()[B
move-result-object v13
.line 6067
invoke-interface {v2}, Lcom/subgraph/orchid/v;->JD()I
move-result v14
int-to-short v14, v14
.line 6068
invoke-interface {v2}, Lcom/subgraph/orchid/v;->JF()Lcom/subgraph/orchid/d/c;
move-result-object v15
invoke-virtual {v15}, Lcom/subgraph/orchid/d/c;->Mf()[B
move-result-object v15
.line 6069
invoke-interface {v2}, Lcom/subgraph/orchid/v;->IV()Lcom/subgraph/orchid/crypto/o;
move-result-object v2
invoke-virtual {v2}, Lcom/subgraph/orchid/crypto/o;->Mf()[B
move-result-object v16
.line 6071
const/4 v2, 0x3
invoke-virtual {v12, v2}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 6087
iget-object v2, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v2}, Lcom/subgraph/orchid/circuits/hs/i;->Lx()Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie;
move-result-object v17
.line 6088
if-nez v17, :cond_1b7
.line 6089
const/4 v2, 0x0
invoke-virtual {v12, v2}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 6074
:goto_150
invoke-virtual {v12, v11}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
.line 6075
invoke-virtual {v12, v13}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
.line 6076
invoke-virtual {v12, v14}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
.line 6077
invoke-virtual {v12, v15}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
.line 6078
move-object/from16 v0, v16
array-length v2, v0
int-to-short v2, v2
invoke-virtual {v12, v2}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
.line 6079
move-object/from16 v0, v16
invoke-virtual {v12, v0}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
.line 6080
invoke-virtual {v12, v9}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
.line 6081
invoke-virtual {v12, v8}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
.line 8098
invoke-virtual {v12}, Ljava/nio/ByteBuffer;->position()I
move-result v2
.line 8099
new-array v2, v2, [B
.line 8100
invoke-virtual {v12}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;
.line 8101
invoke-virtual {v12, v2}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
.line 8102
new-instance v8, Lcom/subgraph/orchid/crypto/h;
invoke-direct {v8}, Lcom/subgraph/orchid/crypto/h;-><init>()V
.line 8103
invoke-virtual {v8, v2, v7}, Lcom/subgraph/orchid/crypto/h;->a([BLcom/subgraph/orchid/crypto/o;)[B
move-result-object v2
.line 6035
iget-object v7, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEK:Lcom/subgraph/orchid/circuits/hs/k;
.line 9056
iget-object v7, v7, Lcom/subgraph/orchid/circuits/hs/k;->bEE:Lcom/subgraph/orchid/crypto/o;
.line 6036
invoke-virtual {v7}, Lcom/subgraph/orchid/crypto/o;->Mg()Lcom/subgraph/orchid/d/c;
move-result-object v7
invoke-virtual {v7}, Lcom/subgraph/orchid/d/c;->Mf()[B
move-result-object v7
invoke-interface {v10, v7}, Lcom/subgraph/orchid/t;->ai([B)V
.line 6037
invoke-interface {v10, v2}, Lcom/subgraph/orchid/t;->ai([B)V
.line 6038
iget-object v2, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEJ:Lcom/subgraph/orchid/c;
invoke-interface {v2, v10}, Lcom/subgraph/orchid/c;->a(Lcom/subgraph/orchid/t;)V
.line 6040
iget-object v2, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEJ:Lcom/subgraph/orchid/c;
invoke-interface {v2}, Lcom/subgraph/orchid/c;->Is()Lcom/subgraph/orchid/t;
move-result-object v2
.line 6041
if-nez v2, :cond_1e6
.line 6042
sget-object v2, Lcom/subgraph/orchid/circuits/hs/m;->logger:Ljava/util/logging/Logger;
const-string v7, "Timeout waiting for response to INTRODUCE1 cell"
invoke-virtual {v2, v7}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 6043
const/4 v2, 0x0
.line 10056
:goto_1aa
iget-object v5, v5, Lcom/subgraph/orchid/circuits/hs/m;->bEJ:Lcom/subgraph/orchid/c;
invoke-interface {v5}, Lcom/subgraph/orchid/c;->Iu()V
.line 53
if-nez v2, :cond_22a
.line 54
invoke-interface {v3}, Lcom/subgraph/orchid/r;->Iu()V
.line 55
const/4 v2, 0x0
goto/16 :goto_78
.line 7016
:cond_1b7
sget-object v2, Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie$1;->bEj:[I
move-object/from16 v0, v17
iget-object v0, v0, Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie;->bEi:Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie$CookieType;
move-object/from16 v18, v0
invoke-virtual/range {v18 .. v18}, Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie$CookieType;->ordinal()I
move-result v18
aget v2, v2, v18
packed-switch v2, :pswitch_data_2dc
.line 7022
new-instance v2, Ljava/lang/IllegalStateException;
invoke-direct {v2}, Ljava/lang/IllegalStateException;-><init>()V
throw v2
.line 7018
:pswitch_1ce
const/4 v2, 0x1
.line 6091
:goto_1cf
invoke-virtual {v12, v2}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 7031
move-object/from16 v0, v17
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie;->value:[B
.line 6092
array-length v2, v2
int-to-short v2, v2
invoke-virtual {v12, v2}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
.line 8031
move-object/from16 v0, v17
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/HSDescriptorCookie;->value:[B
.line 6093
invoke-virtual {v12, v2}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
goto/16 :goto_150
.line 7020
:pswitch_1e4
const/4 v2, 0x2
goto :goto_1cf
.line 6044
:cond_1e6
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Jw()I
move-result v7
const/16 v8, 0x28
if-eq v7, v8, :cond_208
.line 6045
sget-object v7, Lcom/subgraph/orchid/circuits/hs/m;->logger:Ljava/util/logging/Logger;
new-instance v8, Ljava/lang/StringBuilder;
const-string v9, "Unexpected relay cell type received waiting for response to INTRODUCE1 cell: "
invoke-direct {v8, v9}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Jw()I
move-result v2
invoke-virtual {v8, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v7, v2}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 6046
const/4 v2, 0x0
goto :goto_1aa
.line 6047
:cond_208
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Io()I
move-result v7
if-nez v7, :cond_210
.line 6048
const/4 v2, 0x1
goto :goto_1aa
.line 6050
:cond_210
sget-object v7, Lcom/subgraph/orchid/circuits/hs/m;->logger:Ljava/util/logging/Logger;
new-instance v8, Ljava/lang/StringBuilder;
const-string v9, "INTRODUCE_ACK indicates that introduction was not forwarded: "
invoke-direct {v8, v9}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Ik()I
move-result v2
invoke-virtual {v8, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v7, v2}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 6051
const/4 v2, 0x0
goto :goto_1aa
.line 57
:cond_22a
move-object/from16 v0, p0
iget-object v2, v0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
new-instance v5, Ljava/lang/StringBuilder;
const-string v7, "Processing RV2 for "
invoke-direct {v5, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 10069
move-object/from16 v0, p0
iget-object v7, v0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v7}, Lcom/subgraph/orchid/circuits/hs/i;->Lv()Ljava/lang/String;
move-result-object v7
.line 57
invoke-virtual {v5, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {v2, v5}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
.line 11049
iget-object v2, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
invoke-interface {v2}, Lcom/subgraph/orchid/r;->Is()Lcom/subgraph/orchid/t;
move-result-object v2
.line 11050
if-nez v2, :cond_27d
.line 11051
sget-object v2, Lcom/subgraph/orchid/circuits/hs/o;->logger:Ljava/util/logging/Logger;
const-string v4, "Timeout waiting for RENDEZVOUS2"
invoke-virtual {v2, v4}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 11052
const/4 v2, 0x0
.line 59
:goto_258
if-nez v2, :cond_25d
.line 60
invoke-interface {v3}, Lcom/subgraph/orchid/r;->Iu()V
.line 63
:cond_25d
move-object/from16 v0, p0
iget-object v3, v0, Lcom/subgraph/orchid/circuits/hs/n;->logger:Ljava/util/logging/Logger;
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "Rendezvous circuit opened for "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 12069
move-object/from16 v0, p0
iget-object v5, v0, Lcom/subgraph/orchid/circuits/hs/n;->bEm:Lcom/subgraph/orchid/circuits/hs/i;
invoke-virtual {v5}, Lcom/subgraph/orchid/circuits/hs/i;->Lv()Ljava/lang/String;
move-result-object v5
.line 63
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V
goto/16 :goto_78
.line 11053
:cond_27d
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Jw()I
move-result v5
const/16 v7, 0x25
if-eq v5, v7, :cond_29f
.line 11054
sget-object v4, Lcom/subgraph/orchid/circuits/hs/o;->logger:Ljava/util/logging/Logger;
new-instance v5, Ljava/lang/StringBuilder;
const-string v6, "Unexpected Relay cell type received while waiting for RENDEZVOUS2: "
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-interface {v2}, Lcom/subgraph/orchid/t;->Jw()I
move-result v2
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v4, v2}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 11055
const/4 v2, 0x0
goto :goto_258
.line 11057
:cond_29f
invoke-static {v2}, Lcom/subgraph/orchid/circuits/hs/o;->e(Lcom/subgraph/orchid/b;)Ljava/math/BigInteger;
move-result-object v5
.line 11058
invoke-static {v2}, Lcom/subgraph/orchid/circuits/hs/o;->f(Lcom/subgraph/orchid/b;)Lcom/subgraph/orchid/d/c;
move-result-object v2
.line 11059
if-eqz v5, :cond_2ab
if-nez v2, :cond_2ad
.line 11060
:cond_2ab
const/4 v2, 0x0
goto :goto_258
.line 11062
:cond_2ad
const/16 v7, 0x14
new-array v7, v7, [B
.line 11063
const/16 v8, 0x48
new-array v8, v8, [B
.line 11064
invoke-virtual {v2}, Lcom/subgraph/orchid/d/c;->Mf()[B
move-result-object v2
invoke-virtual {v6, v5, v2, v8, v7}, Lcom/subgraph/orchid/crypto/s;->a(Ljava/math/BigInteger;[B[B[B)Z
move-result v2
if-nez v2, :cond_2c8
.line 11065
sget-object v2, Lcom/subgraph/orchid/circuits/hs/o;->logger:Ljava/util/logging/Logger;
const-string v4, "Error deriving session keys while extending to hidden service"
invoke-virtual {v2, v4}, Ljava/util/logging/Logger;->info(Ljava/lang/String;)V
.line 11066
const/4 v2, 0x0
goto :goto_258
.line 11068
:cond_2c8
iget-object v2, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
iget-object v4, v4, Lcom/subgraph/orchid/circuits/hs/o;->bEM:Lcom/subgraph/orchid/r;
invoke-interface {v4}, Lcom/subgraph/orchid/r;->It()Lcom/subgraph/orchid/f;
move-result-object v4
.line 12012
const/4 v5, 0x0
invoke-static {v5, v4, v8, v7}, Lcom/subgraph/orchid/circuits/k;->a(Lcom/subgraph/orchid/v;Lcom/subgraph/orchid/f;[B[B)Lcom/subgraph/orchid/f;
move-result-object v4
.line 11068
invoke-interface {v2, v4}, Lcom/subgraph/orchid/r;->b(Lcom/subgraph/orchid/f;)Lcom/subgraph/orchid/q;
move-result-object v2
goto/16 :goto_258
.line 7016
nop
:pswitch_data_2dc
.packed-switch 0x1
:pswitch_1ce
:pswitch_1e4
.end packed-switch
.end method
.method public synthetic call()Ljava/lang/Object;
.registers 2
.prologue
.line 15
invoke-virtual {p0}, Lcom/subgraph/orchid/circuits/hs/n;->Ly()Lcom/subgraph/orchid/q;
move-result-object v0
return-object v0
.end method