.class final Lorg/apache/http/impl/auth/NTLMEngineImpl; .super Ljava/lang/Object; .source "NTLMEngineImpl.java" # interfaces .implements Lorg/apache/http/impl/auth/NTLMEngine; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;, Lorg/apache/http/impl/auth/NTLMEngineImpl$MD4;, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type3Message;, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type2Message;, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type1Message;, Lorg/apache/http/impl/auth/NTLMEngineImpl$NTLMMessage;, Lorg/apache/http/impl/auth/NTLMEngineImpl$Handle;, Lorg/apache/http/impl/auth/NTLMEngineImpl$Mode;, Lorg/apache/http/impl/auth/NTLMEngineImpl$CipherGen; } .end annotation # static fields .field private static final DEFAULT_CHARSET:Ljava/nio/charset/Charset; .field static final FLAG_DOMAIN_PRESENT:I = 0x1000 .field static final FLAG_REQUEST_128BIT_KEY_EXCH:I = 0x20000000 .field static final FLAG_REQUEST_56BIT_ENCRYPTION:I = -0x80000000 .field static final FLAG_REQUEST_ALWAYS_SIGN:I = 0x8000 .field static final FLAG_REQUEST_EXPLICIT_KEY_EXCH:I = 0x40000000 .field static final FLAG_REQUEST_LAN_MANAGER_KEY:I = 0x80 .field static final FLAG_REQUEST_NTLM2_SESSION:I = 0x80000 .field static final FLAG_REQUEST_NTLMv1:I = 0x200 .field static final FLAG_REQUEST_OEM_ENCODING:I = 0x2 .field static final FLAG_REQUEST_SEAL:I = 0x20 .field static final FLAG_REQUEST_SIGN:I = 0x10 .field static final FLAG_REQUEST_TARGET:I = 0x4 .field static final FLAG_REQUEST_UNICODE_ENCODING:I = 0x1 .field static final FLAG_REQUEST_VERSION:I = 0x2000000 .field static final FLAG_TARGETINFO_PRESENT:I = 0x800000 .field static final FLAG_WORKSTATION_PRESENT:I = 0x2000 .field private static final MAGIC_TLS_SERVER_ENDPOINT:[B .field static final MSV_AV_CHANNEL_BINDINGS:I = 0xa .field static final MSV_AV_DNS_COMPUTER_NAME:I = 0x3 .field static final MSV_AV_DNS_DOMAIN_NAME:I = 0x4 .field static final MSV_AV_DNS_TREE_NAME:I = 0x5 .field static final MSV_AV_EOL:I = 0x0 .field static final MSV_AV_FLAGS:I = 0x6 .field static final MSV_AV_FLAGS_ACCOUNT_AUTH_CONSTAINED:I = 0x1 .field static final MSV_AV_FLAGS_MIC:I = 0x2 .field static final MSV_AV_FLAGS_UNTRUSTED_TARGET_SPN:I = 0x4 .field static final MSV_AV_NB_COMPUTER_NAME:I = 0x1 .field static final MSV_AV_NB_DOMAIN_NAME:I = 0x2 .field static final MSV_AV_SINGLE_HOST:I = 0x8 .field static final MSV_AV_TARGET_NAME:I = 0x9 .field static final MSV_AV_TIMESTAMP:I = 0x7 .field private static final RND_GEN:Ljava/security/SecureRandom; .field private static final SEAL_MAGIC_CLIENT:[B .field private static final SEAL_MAGIC_SERVER:[B .field private static final SIGNATURE:[B .field private static final SIGN_MAGIC_CLIENT:[B .field private static final SIGN_MAGIC_SERVER:[B .field private static final TYPE_1_MESSAGE:Ljava/lang/String; .field private static final UNICODE_LITTLE_UNMARKED:Ljava/nio/charset/Charset; # direct methods .method static constructor ()V .registers 2 .line 54 const-string v0, "UnicodeLittleUnmarked" invoke-static {v0}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset; move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->UNICODE_LITTLE_UNMARKED:Ljava/nio/charset/Charset; .line 56 sget-object v0, Lorg/apache/http/Consts;->ASCII:Ljava/nio/charset/Charset; sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->DEFAULT_CHARSET:Ljava/nio/charset/Charset; .line 103 :try_start_c const-string v0, "SHA1PRNG" invoke-static {v0}, Ljava/security/SecureRandom;->getInstance(Ljava/lang/String;)Ljava/security/SecureRandom; move-result-object v0 :try_end_12 .catch Ljava/lang/Exception; {:try_start_c .. :try_end_12} :catch_13 goto :goto_14 :catch_13 const/4 v0, 0x0 .line 106 :goto_14 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->RND_GEN:Ljava/security/SecureRandom; .line 110 const-string v0, "NTLMSSP" invoke-static {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getNullTerminatedAsciiString(Ljava/lang/String;)[B move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SIGNATURE:[B .line 114 const-string v0, "session key to server-to-client signing key magic constant" invoke-static {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getNullTerminatedAsciiString(Ljava/lang/String;)[B move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SIGN_MAGIC_SERVER:[B .line 116 const-string v0, "session key to client-to-server signing key magic constant" invoke-static {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getNullTerminatedAsciiString(Ljava/lang/String;)[B move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SIGN_MAGIC_CLIENT:[B .line 118 const-string v0, "session key to server-to-client sealing key magic constant" invoke-static {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getNullTerminatedAsciiString(Ljava/lang/String;)[B move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SEAL_MAGIC_SERVER:[B .line 120 const-string v0, "session key to client-to-server sealing key magic constant" invoke-static {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getNullTerminatedAsciiString(Ljava/lang/String;)[B move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SEAL_MAGIC_CLIENT:[B .line 124 const-string v0, "tls-server-end-point:" sget-object v1, Lorg/apache/http/Consts;->ASCII:Ljava/nio/charset/Charset; invoke-virtual {v0, v1}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->MAGIC_TLS_SERVER_ENDPOINT:[B .line 135 new-instance v0, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type1Message; invoke-direct {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type1Message;->()V invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type1Message;->getResponse()Ljava/lang/String; move-result-object v0 sput-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->TYPE_1_MESSAGE:Ljava/lang/String; return-void .end method .method constructor ()V .registers 1 .line 137 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method static F(III)I .registers 3 and-int/2addr p1, p0 not-int p0, p0 and-int/2addr p0, p2 or-int/2addr p0, p1 return p0 .end method .method static G(III)I .registers 4 or-int v0, p1, p2 and-int/2addr p0, v0 and-int/2addr p1, p2 or-int/2addr p0, p1 return p0 .end method .method static H(III)I .registers 3 xor-int/2addr p0, p1 xor-int/2addr p0, p2 return p0 .end method .method static RC4([B[B)[B .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 576 const-string v0, "RC4" :try_start_2 invoke-static {v0}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher; move-result-object v1 .line 577 new-instance v2, Ljavax/crypto/spec/SecretKeySpec; invoke-direct {v2, p1, v0}, Ljavax/crypto/spec/SecretKeySpec;->([BLjava/lang/String;)V const/4 p1, 0x1 invoke-virtual {v1, p1, v2}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V .line 578 invoke-virtual {v1, p0}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object p0 :try_end_13 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_13} :catch_14 return-object p0 :catch_14 move-exception p0 .line 580 new-instance p1, Lorg/apache/http/impl/auth/NTLMEngineException; invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0, p0}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p1 .end method .method static synthetic access$000()Ljava/security/SecureRandom; .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->RND_GEN:Ljava/security/SecureRandom; return-object v0 .end method .method static synthetic access$100(Ljava/util/Random;)[B .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->makeRandomChallenge(Ljava/util/Random;)[B move-result-object p0 return-object p0 .end method .method static synthetic access$1000([BI)Ljava/security/Key; .registers 2 .line 51 invoke-static {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->createDESKey([BI)Ljava/security/Key; move-result-object p0 return-object p0 .end method .method static synthetic access$1100()[B .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SIGN_MAGIC_CLIENT:[B return-object v0 .end method .method static synthetic access$1200()[B .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SEAL_MAGIC_CLIENT:[B return-object v0 .end method .method static synthetic access$1300()[B .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SIGN_MAGIC_SERVER:[B return-object v0 .end method .method static synthetic access$1400()[B .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SEAL_MAGIC_SERVER:[B return-object v0 .end method .method static synthetic access$1500(I)[B .registers 1 .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->encodeLong(I)[B move-result-object p0 return-object p0 .end method .method static synthetic access$1600([BII)V .registers 3 .line 51 invoke-static {p0, p1, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->encodeLong([BII)V return-void .end method .method static synthetic access$1700()Ljava/nio/charset/Charset; .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->DEFAULT_CHARSET:Ljava/nio/charset/Charset; return-object v0 .end method .method static synthetic access$1800()[B .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->SIGNATURE:[B return-object v0 .end method .method static synthetic access$1900([BI)I .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->readUShort([BI)I move-result p0 return p0 .end method .method static synthetic access$200(Ljava/util/Random;)[B .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->makeSecondaryKey(Ljava/util/Random;)[B move-result-object p0 return-object p0 .end method .method static synthetic access$2000([BI)I .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->readULong([BI)I move-result p0 return p0 .end method .method static synthetic access$2100([BI)[B .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->readSecurityBuffer([BI)[B move-result-object p0 return-object p0 .end method .method static synthetic access$2200(Ljava/lang/String;)Ljava/lang/String; .registers 1 .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->convertHost(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method static synthetic access$2300(Ljava/lang/String;)Ljava/lang/String; .registers 1 .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->convertDomain(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method static synthetic access$2400()Ljava/nio/charset/Charset; .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->UNICODE_LITTLE_UNMARKED:Ljava/nio/charset/Charset; return-object v0 .end method .method static synthetic access$2500(I)Ljava/nio/charset/Charset; .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getCharset(I)Ljava/nio/charset/Charset; move-result-object p0 return-object p0 .end method .method static synthetic access$2600()[B .registers 1 .line 51 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->MAGIC_TLS_SERVER_ENDPOINT:[B return-object v0 .end method .method static synthetic access$300(Ljava/lang/String;)[B .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmHash(Ljava/lang/String;)[B move-result-object p0 return-object p0 .end method .method static synthetic access$400([B[B)[B .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmResponse([B[B)[B move-result-object p0 return-object p0 .end method .method static synthetic access$500(Ljava/lang/String;)[B .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->ntlmHash(Ljava/lang/String;)[B move-result-object p0 return-object p0 .end method .method static synthetic access$600(Ljava/lang/String;Ljava/lang/String;[B)[B .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0, p1, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmv2Hash(Ljava/lang/String;Ljava/lang/String;[B)[B move-result-object p0 return-object p0 .end method .method static synthetic access$700(Ljava/lang/String;Ljava/lang/String;[B)[B .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0, p1, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->ntlmv2Hash(Ljava/lang/String;Ljava/lang/String;[B)[B move-result-object p0 return-object p0 .end method .method static synthetic access$800([B[B[B)[B .registers 3 .line 51 invoke-static {p0, p1, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->createBlob([B[B[B)[B move-result-object p0 return-object p0 .end method .method static synthetic access$900([B[B[B)[B .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 51 invoke-static {p0, p1, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmv2Response([B[B[B)[B move-result-object p0 return-object p0 .end method .method private static convertDomain(Ljava/lang/String;)Ljava/lang/String; .registers 1 .line 1066 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->stripDotSuffix(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private static convertHost(Ljava/lang/String;)Ljava/lang/String; .registers 1 .line 1061 invoke-static {p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->stripDotSuffix(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private static createBlob([B[B[B)[B .registers 10 const/4 v0, 0x4 .line 959 new-array v1, v0, [B fill-array-data v1, :array_42 .line 960 new-array v2, v0, [B fill-array-data v2, :array_48 .line 961 new-array v3, v0, [B fill-array-data v3, :array_4e .line 962 new-array v4, v0, [B fill-array-data v4, :array_54 .line 963 array-length v5, p2 add-int/lit8 v5, v5, 0x14 array-length v6, p1 add-int/2addr v5, v6 add-int/2addr v5, v0 new-array v5, v5, [B const/4 v6, 0x0 .line 966 invoke-static {v1, v6, v5, v6, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 968 invoke-static {v2, v6, v5, v0, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 970 array-length v1, p2 const/16 v2, 0x8 invoke-static {p2, v6, v5, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 971 array-length p2, p2 add-int v1, v2, p2 .line 972 invoke-static {p0, v6, v5, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V add-int/lit8 p0, p2, 0x10 .line 974 invoke-static {v3, v6, v5, p0, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V add-int/lit8 p2, p2, 0x14 .line 976 array-length p0, p1 invoke-static {p1, v6, v5, p2, p0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 977 array-length p0, p1 add-int/2addr p2, p0 .line 978 invoke-static {v4, v6, v5, p2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V return-object v5 nop :array_42 .array-data 1 0x1t 0x1t 0x0t 0x0t .end array-data :array_48 .array-data 1 0x0t 0x0t 0x0t 0x0t .end array-data :array_4e .array-data 1 0x0t 0x0t 0x0t 0x0t .end array-data :array_54 .array-data 1 0x0t 0x0t 0x0t 0x0t .end array-data .end method .method private static createDESKey([BI)Ljava/security/Key; .registers 18 const/4 v0, 0x7 .line 996 new-array v1, v0, [B const/4 v2, 0x0 move-object/from16 v3, p0 move/from16 v4, p1 .line 997 invoke-static {v3, v4, v1, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 999 aget-byte v3, v1, v2 shl-int/lit8 v4, v3, 0x7 const/4 v5, 0x1 .line 1000 aget-byte v6, v1, v5 and-int/lit16 v7, v6, 0xff ushr-int/2addr v7, v5 or-int/2addr v4, v7 int-to-byte v4, v4 const/4 v7, 0x6 shl-int/2addr v6, v7 const/4 v8, 0x2 .line 1001 aget-byte v9, v1, v8 and-int/lit16 v10, v9, 0xff ushr-int/2addr v10, v8 or-int/2addr v6, v10 int-to-byte v6, v6 const/4 v10, 0x5 shl-int/2addr v9, v10 const/4 v11, 0x3 .line 1002 aget-byte v12, v1, v11 and-int/lit16 v13, v12, 0xff ushr-int/2addr v13, v11 or-int/2addr v9, v13 int-to-byte v9, v9 const/4 v13, 0x4 shl-int/2addr v12, v13 .line 1003 aget-byte v14, v1, v13 and-int/lit16 v15, v14, 0xff ushr-int/2addr v15, v13 or-int/2addr v12, v15 int-to-byte v12, v12 shl-int/2addr v14, v11 .line 1004 aget-byte v15, v1, v10 and-int/lit16 v0, v15, 0xff ushr-int/2addr v0, v10 or-int/2addr v0, v14 int-to-byte v0, v0 shl-int/lit8 v14, v15, 0x2 .line 1005 aget-byte v1, v1, v7 and-int/lit16 v15, v1, 0xff ushr-int/2addr v15, v7 or-int/2addr v14, v15 int-to-byte v14, v14 shl-int/2addr v1, v5 int-to-byte v1, v1 const/16 v15, 0x8 .line 1006 new-array v15, v15, [B aput-byte v3, v15, v2 aput-byte v4, v15, v5 aput-byte v6, v15, v8 aput-byte v9, v15, v11 aput-byte v12, v15, v13 aput-byte v0, v15, v10 aput-byte v14, v15, v7 const/4 v0, 0x7 aput-byte v1, v15, v0 .line 1007 invoke-static {v15}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->oddParity([B)V .line 1008 new-instance v0, Ljavax/crypto/spec/SecretKeySpec; const-string v1, "DES" invoke-direct {v0, v15, v1}, Ljavax/crypto/spec/SecretKeySpec;->([BLjava/lang/String;)V return-object v0 .end method .method private static encodeLong([BII)V .registers 5 and-int/lit16 v0, p2, 0xff int-to-byte v0, v0 .line 941 aput-byte v0, p0, p1 add-int/lit8 v0, p1, 0x1 shr-int/lit8 v1, p2, 0x8 and-int/lit16 v1, v1, 0xff int-to-byte v1, v1 .line 942 aput-byte v1, p0, v0 add-int/lit8 v0, p1, 0x2 shr-int/lit8 v1, p2, 0x10 and-int/lit16 v1, v1, 0xff int-to-byte v1, v1 .line 943 aput-byte v1, p0, v0 add-int/lit8 p1, p1, 0x3 shr-int/lit8 p2, p2, 0x18 and-int/lit16 p2, p2, 0xff int-to-byte p2, p2 .line 944 aput-byte p2, p0, p1 return-void .end method .method private static encodeLong(I)[B .registers 3 const/4 v0, 0x4 .line 934 new-array v0, v0, [B const/4 v1, 0x0 .line 935 invoke-static {v0, v1, p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->encodeLong([BII)V return-object v0 .end method .method private static getCharset(I)Ljava/nio/charset/Charset; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation and-int/lit8 p0, p0, 0x1 if-nez p0, :cond_7 .line 1038 sget-object p0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->DEFAULT_CHARSET:Ljava/nio/charset/Charset; return-object p0 .line 1040 :cond_7 sget-object p0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->UNICODE_LITTLE_UNMARKED:Ljava/nio/charset/Charset; if-eqz p0, :cond_c return-object p0 .line 1041 :cond_c new-instance p0, Lorg/apache/http/impl/auth/NTLMEngineException; const-string v0, "Unicode not supported" invoke-direct {p0, v0}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;)V throw p0 .end method .method static getMD5()Ljava/security/MessageDigest; .registers 4 .line 1842 :try_start_0 const-string v0, "MD5" invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest; move-result-object v0 :try_end_6 .catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_6} :catch_7 return-object v0 :catch_7 move-exception v0 .line 1844 new-instance v1, Ljava/lang/RuntimeException; new-instance v2, Ljava/lang/StringBuilder; const-string v3, "MD5 message digest doesn\'t seem to exist - fatal error: " invoke-direct {v2, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0}, Ljava/security/NoSuchAlgorithmException;->getMessage()Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2, v0}, Ljava/lang/RuntimeException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v1 .end method .method private static getNullTerminatedAsciiString(Ljava/lang/String;)[B .registers 4 .line 128 sget-object v0, Lorg/apache/http/Consts;->ASCII:Ljava/nio/charset/Charset; invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p0 .line 129 array-length v0, p0 add-int/lit8 v0, v0, 0x1 new-array v0, v0, [B .line 130 array-length v1, p0 const/4 v2, 0x0 invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 131 array-length p0, p0 aput-byte v2, v0, p0 return-object v0 .end method .method static getType1Message(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .registers 2 .line 154 sget-object p0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->TYPE_1_MESSAGE:Ljava/lang/String; return-object p0 .end method .method static getType3Message(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BILjava/lang/String;[B)Ljava/lang/String; .registers 18 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 180 new-instance v9, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type3Message; move-object v0, v9 move-object v1, p3 move-object v2, p2 move-object v3, p0 move-object v4, p1 move-object v5, p4 move v6, p5 move-object/from16 v7, p6 move-object/from16 v8, p7 invoke-direct/range {v0 .. v8}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type3Message;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BILjava/lang/String;[B)V invoke-virtual {v9}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type3Message;->getResponse()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method static getType3Message(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BILjava/lang/String;[BLjava/security/cert/Certificate;[B[B)Ljava/lang/String; .registers 24 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 208 new-instance v12, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type3Message; move-object v0, v12 move-object/from16 v1, p3 move-object v2, p2 move-object v3, p0 move-object v4, p1 move-object/from16 v5, p4 move/from16 v6, p5 move-object/from16 v7, p6 move-object/from16 v8, p7 move-object/from16 v9, p8 move-object/from16 v10, p9 move-object/from16 v11, p10 invoke-direct/range {v0 .. v11}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type3Message;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BILjava/lang/String;[BLjava/security/cert/Certificate;[B[B)V invoke-virtual {v12}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type3Message;->getResponse()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method static hmacMD5([B[B)[B .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 567 new-instance v0, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5; invoke-direct {v0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->([B)V .line 568 invoke-virtual {v0, p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->update([B)V .line 569 invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->getOutput()[B move-result-object p0 return-object p0 .end method .method private static lmHash(Ljava/lang/String;)[B .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 622 :try_start_0 sget-object v0, Ljava/util/Locale;->ROOT:Ljava/util/Locale; invoke-virtual {p0, v0}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object p0 sget-object v0, Lorg/apache/http/Consts;->ASCII:Ljava/nio/charset/Charset; invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p0 .line 623 array-length v0, p0 const/16 v1, 0xe invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 .line 624 new-array v1, v1, [B const/4 v2, 0x0 .line 625 invoke-static {p0, v2, v1, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 626 invoke-static {v1, v2}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->createDESKey([BI)Ljava/security/Key; move-result-object p0 const/4 v0, 0x7 .line 627 invoke-static {v1, v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->createDESKey([BI)Ljava/security/Key; move-result-object v0 .line 628 const-string v1, "KGS!@#$%" sget-object v3, Lorg/apache/http/Consts;->ASCII:Ljava/nio/charset/Charset; invoke-virtual {v1, v3}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v1 .line 629 const-string v3, "DES/ECB/NoPadding" invoke-static {v3}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher; move-result-object v3 const/4 v4, 0x1 .line 630 invoke-virtual {v3, v4, p0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V .line 631 invoke-virtual {v3, v1}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object p0 .line 632 invoke-virtual {v3, v4, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V .line 633 invoke-virtual {v3, v1}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object v0 const/16 v1, 0x10 .line 634 new-array v1, v1, [B const/16 v3, 0x8 .line 635 invoke-static {p0, v2, v1, v2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 636 invoke-static {v0, v2, v1, v3, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V :try_end_4b .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4b} :catch_4c return-object v1 :catch_4c move-exception p0 .line 639 new-instance v0, Lorg/apache/http/impl/auth/NTLMEngineException; invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1, p0}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 .end method .method private static lmResponse([B[B)[B .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation const/16 v0, 0x15 .line 714 :try_start_2 new-array v0, v0, [B const/16 v1, 0x10 const/4 v2, 0x0 .line 715 invoke-static {p0, v2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 716 invoke-static {v0, v2}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->createDESKey([BI)Ljava/security/Key; move-result-object p0 const/4 v3, 0x7 .line 717 invoke-static {v0, v3}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->createDESKey([BI)Ljava/security/Key; move-result-object v3 const/16 v4, 0xe .line 718 invoke-static {v0, v4}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->createDESKey([BI)Ljava/security/Key; move-result-object v0 .line 719 const-string v4, "DES/ECB/NoPadding" invoke-static {v4}, Ljavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher; move-result-object v4 const/4 v5, 0x1 .line 720 invoke-virtual {v4, v5, p0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V .line 721 invoke-virtual {v4, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object p0 .line 722 invoke-virtual {v4, v5, v3}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V .line 723 invoke-virtual {v4, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object v3 .line 724 invoke-virtual {v4, v5, v0}, Ljavax/crypto/Cipher;->init(ILjava/security/Key;)V .line 725 invoke-virtual {v4, p1}, Ljavax/crypto/Cipher;->doFinal([B)[B move-result-object p1 const/16 v0, 0x18 .line 726 new-array v0, v0, [B const/16 v4, 0x8 .line 727 invoke-static {p0, v2, v0, v2, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 728 invoke-static {v3, v2, v0, v4, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 729 invoke-static {p1, v2, v0, v1, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V :try_end_44 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_44} :catch_45 return-object v0 :catch_45 move-exception p0 .line 732 new-instance p1, Lorg/apache/http/impl/auth/NTLMEngineException; invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0, p0}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p1 .end method .method private static lmv2Hash(Ljava/lang/String;Ljava/lang/String;[B)[B .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 670 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->UNICODE_LITTLE_UNMARKED:Ljava/nio/charset/Charset; if-eqz v0, :cond_2a .line 673 new-instance v1, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5; invoke-direct {v1, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->([B)V .line 675 sget-object p2, Ljava/util/Locale;->ROOT:Ljava/util/Locale; invoke-virtual {p1, p2}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object p1 invoke-virtual {p1, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p1 invoke-virtual {v1, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->update([B)V if-eqz p0, :cond_25 .line 677 sget-object p1, Ljava/util/Locale;->ROOT:Ljava/util/Locale; invoke-virtual {p0, p1}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object p0 invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p0 invoke-virtual {v1, p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->update([B)V .line 679 :cond_25 invoke-virtual {v1}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->getOutput()[B move-result-object p0 return-object p0 .line 671 :cond_2a new-instance p0, Lorg/apache/http/impl/auth/NTLMEngineException; const-string p1, "Unicode not supported" invoke-direct {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;)V throw p0 .end method .method private static lmv2Response([B[B[B)[B .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 752 new-instance v0, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5; invoke-direct {v0, p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->([B)V .line 753 invoke-virtual {v0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->update([B)V .line 754 invoke-virtual {v0, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->update([B)V .line 755 invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->getOutput()[B move-result-object p0 .line 756 array-length p1, p0 array-length v0, p2 add-int/2addr p1, v0 new-array p1, p1, [B .line 757 array-length v0, p0 const/4 v1, 0x0 invoke-static {p0, v1, p1, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 758 array-length p0, p0 array-length v0, p2 invoke-static {p2, v1, p1, p0, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V return-object p1 .end method .method private static makeRandomChallenge(Ljava/util/Random;)[B .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation const/16 v0, 0x8 .line 240 new-array v0, v0, [B .line 241 monitor-enter p0 .line 242 :try_start_5 invoke-virtual {p0, v0}, Ljava/util/Random;->nextBytes([B)V .line 243 monitor-exit p0 return-object v0 :catchall_a move-exception v0 monitor-exit p0 :try_end_c .catchall {:try_start_5 .. :try_end_c} :catchall_a throw v0 .end method .method private static makeSecondaryKey(Ljava/util/Random;)[B .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation const/16 v0, 0x10 .line 249 new-array v0, v0, [B .line 250 monitor-enter p0 .line 251 :try_start_5 invoke-virtual {p0, v0}, Ljava/util/Random;->nextBytes([B)V .line 252 monitor-exit p0 return-object v0 :catchall_a move-exception v0 monitor-exit p0 :try_end_c .catchall {:try_start_5 .. :try_end_c} :catchall_a throw v0 .end method .method static ntlm2SessionResponse([B[B[B)[B .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 595 :try_start_0 invoke-static {}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getMD5()Ljava/security/MessageDigest; move-result-object v0 .line 596 invoke-virtual {v0, p1}, Ljava/security/MessageDigest;->update([B)V .line 597 invoke-virtual {v0, p2}, Ljava/security/MessageDigest;->update([B)V .line 598 invoke-virtual {v0}, Ljava/security/MessageDigest;->digest()[B move-result-object p1 const/16 p2, 0x8 .line 600 new-array v0, p2, [B const/4 v1, 0x0 .line 601 invoke-static {p1, v1, v0, v1, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 602 invoke-static {p0, v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmResponse([B[B)[B move-result-object p0 :try_end_1a .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1a} :catch_1b return-object p0 :catch_1b move-exception p0 .line 604 instance-of p1, p0, Lorg/apache/http/impl/auth/NTLMEngineException; if-eqz p1, :cond_23 .line 605 check-cast p0, Lorg/apache/http/impl/auth/NTLMEngineException; throw p0 .line 607 :cond_23 new-instance p1, Lorg/apache/http/impl/auth/NTLMEngineException; invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2, p0}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p1 .end method .method private static ntlmHash(Ljava/lang/String;)[B .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 653 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->UNICODE_LITTLE_UNMARKED:Ljava/nio/charset/Charset; if-eqz v0, :cond_15 .line 656 invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p0 .line 657 new-instance v0, Lorg/apache/http/impl/auth/NTLMEngineImpl$MD4; invoke-direct {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$MD4;->()V .line 658 invoke-virtual {v0, p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$MD4;->update([B)V .line 659 invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$MD4;->getOutput()[B move-result-object p0 return-object p0 .line 654 :cond_15 new-instance p0, Lorg/apache/http/impl/auth/NTLMEngineException; const-string v0, "Unicode not supported" invoke-direct {p0, v0}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;)V throw p0 .end method .method private static ntlmv2Hash(Ljava/lang/String;Ljava/lang/String;[B)[B .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 690 sget-object v0, Lorg/apache/http/impl/auth/NTLMEngineImpl;->UNICODE_LITTLE_UNMARKED:Ljava/nio/charset/Charset; if-eqz v0, :cond_24 .line 693 new-instance v1, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5; invoke-direct {v1, p2}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->([B)V .line 695 sget-object p2, Ljava/util/Locale;->ROOT:Ljava/util/Locale; invoke-virtual {p1, p2}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String; move-result-object p1 invoke-virtual {p1, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p1 invoke-virtual {v1, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->update([B)V if-eqz p0, :cond_1f .line 697 invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p0 invoke-virtual {v1, p0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->update([B)V .line 699 :cond_1f invoke-virtual {v1}, Lorg/apache/http/impl/auth/NTLMEngineImpl$HMACMD5;->getOutput()[B move-result-object p0 return-object p0 .line 691 :cond_24 new-instance p0, Lorg/apache/http/impl/auth/NTLMEngineException; const-string p1, "Unicode not supported" invoke-direct {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineException;->(Ljava/lang/String;)V throw p0 .end method .method private static oddParity([B)V .registers 5 const/4 v0, 0x0 .line 1018 :goto_1 array-length v1, p0 if-ge v0, v1, :cond_2c .line 1019 aget-byte v1, p0, v0 ushr-int/lit8 v2, v1, 0x7 ushr-int/lit8 v3, v1, 0x6 xor-int/2addr v2, v3 ushr-int/lit8 v3, v1, 0x5 xor-int/2addr v2, v3 ushr-int/lit8 v3, v1, 0x4 xor-int/2addr v2, v3 ushr-int/lit8 v3, v1, 0x3 xor-int/2addr v2, v3 ushr-int/lit8 v3, v1, 0x2 xor-int/2addr v2, v3 ushr-int/lit8 v3, v1, 0x1 xor-int/2addr v2, v3 and-int/lit8 v2, v2, 0x1 if-nez v2, :cond_24 or-int/lit8 v1, v1, 0x1 int-to-byte v1, v1 .line 1023 aput-byte v1, p0, v0 goto :goto_29 :cond_24 and-int/lit8 v1, v1, -0x2 int-to-byte v1, v1 .line 1025 aput-byte v1, p0, v0 :goto_29 add-int/lit8 v0, v0, 0x1 goto :goto_1 :cond_2c return-void .end method .method private static readSecurityBuffer([BI)[B .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 228 invoke-static {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->readUShort([BI)I move-result v0 add-int/lit8 p1, p1, 0x4 .line 229 invoke-static {p0, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->readULong([BI)I move-result p1 .line 230 array-length v1, p0 add-int v2, p1, v0 if-ge v1, v2, :cond_12 .line 231 new-array p0, v0, [B return-object p0 .line 233 :cond_12 new-array v1, v0, [B const/4 v2, 0x0 .line 234 invoke-static {p0, p1, v1, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V return-object v1 .end method .method private static readULong([BI)I .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 213 array-length v0, p0 add-int/lit8 v1, p1, 0x4 if-ge v0, v1, :cond_7 const/4 p0, 0x0 return p0 .line 216 :cond_7 aget-byte v0, p0, p1 and-int/lit16 v0, v0, 0xff add-int/lit8 v1, p1, 0x1 aget-byte v1, p0, v1 and-int/lit16 v1, v1, 0xff shl-int/lit8 v1, v1, 0x8 or-int/2addr v0, v1 add-int/lit8 v1, p1, 0x2 aget-byte v1, p0, v1 and-int/lit16 v1, v1, 0xff shl-int/lit8 v1, v1, 0x10 or-int/2addr v0, v1 add-int/lit8 p1, p1, 0x3 aget-byte p0, p0, p1 and-int/lit16 p0, p0, 0xff shl-int/lit8 p0, p0, 0x18 or-int/2addr p0, v0 return p0 .end method .method private static readUShort([BI)I .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 221 array-length v0, p0 add-int/lit8 v1, p1, 0x2 if-ge v0, v1, :cond_7 const/4 p0, 0x0 return p0 .line 224 :cond_7 aget-byte v0, p0, p1 and-int/lit16 v0, v0, 0xff add-int/lit8 p1, p1, 0x1 aget-byte p0, p0, p1 and-int/lit16 p0, p0, 0xff shl-int/lit8 p0, p0, 0x8 or-int/2addr p0, v0 return p0 .end method .method static rotintlft(II)I .registers 3 shl-int v0, p0, p1 rsub-int/lit8 p1, p1, 0x20 ushr-int/2addr p0, p1 or-int/2addr p0, v0 return p0 .end method .method private static stripDotSuffix(Ljava/lang/String;)Ljava/lang/String; .registers 3 if-nez p0, :cond_4 const/4 p0, 0x0 return-object p0 :cond_4 const/16 v0, 0x2e .line 1052 invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(I)I move-result v0 const/4 v1, -0x1 if-eq v0, v1, :cond_12 const/4 v1, 0x0 .line 1054 invoke-virtual {p0, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p0 :cond_12 return-object p0 .end method .method static writeULong([BII)V .registers 5 and-int/lit16 v0, p1, 0xff int-to-byte v0, v0 .line 1818 aput-byte v0, p0, p2 add-int/lit8 v0, p2, 0x1 shr-int/lit8 v1, p1, 0x8 and-int/lit16 v1, v1, 0xff int-to-byte v1, v1 .line 1819 aput-byte v1, p0, v0 add-int/lit8 v0, p2, 0x2 shr-int/lit8 v1, p1, 0x10 and-int/lit16 v1, v1, 0xff int-to-byte v1, v1 .line 1820 aput-byte v1, p0, v0 add-int/lit8 p2, p2, 0x3 shr-int/lit8 p1, p1, 0x18 and-int/lit16 p1, p1, 0xff int-to-byte p1, p1 .line 1821 aput-byte p1, p0, p2 return-void .end method .method static writeUShort([BII)V .registers 4 and-int/lit16 v0, p1, 0xff int-to-byte v0, v0 .line 1813 aput-byte v0, p0, p2 add-int/lit8 p2, p2, 0x1 shr-int/lit8 p1, p1, 0x8 and-int/lit16 p1, p1, 0xff int-to-byte p1, p1 .line 1814 aput-byte p1, p0, p2 return-void .end method # virtual methods .method public generateType1Msg(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 2080 invoke-static {p2, p1}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getType1Message(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public generateType3Msg(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .registers 15 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/impl/auth/NTLMEngineException; } .end annotation .line 2090 new-instance v0, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type2Message; invoke-direct {v0, p5}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type2Message;->(Ljava/lang/String;)V .line 2091 invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type2Message;->getChallenge()[B move-result-object v5 invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type2Message;->getFlags()I move-result v6 invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type2Message;->getTarget()Ljava/lang/String; move-result-object v7 invoke-virtual {v0}, Lorg/apache/http/impl/auth/NTLMEngineImpl$Type2Message;->getTargetInfo()[B move-result-object v8 move-object v1, p1 move-object v2, p2 move-object v3, p4 move-object v4, p3 invoke-static/range {v1 .. v8}, Lorg/apache/http/impl/auth/NTLMEngineImpl;->getType3Message(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BILjava/lang/String;[B)Ljava/lang/String; move-result-object p1 return-object p1 .end method