public final class android.net.IpSecAlgorithm implements android.os.Parcelable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.net.IpSecAlgorithm
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "IpSecAlgorithm"
public static final java.lang.String CRYPT_NULL;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "ecb(cipher_null)"
public static final java.lang.String CRYPT_AES_CBC;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "cbc(aes)"
public static final java.lang.String AUTH_HMAC_MD5;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "hmac(md5)"
public static final java.lang.String AUTH_HMAC_SHA1;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "hmac(sha1)"
public static final java.lang.String AUTH_HMAC_SHA256;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "hmac(sha256)"
public static final java.lang.String AUTH_HMAC_SHA384;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "hmac(sha384)"
public static final java.lang.String AUTH_HMAC_SHA512;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "hmac(sha512)"
public static final java.lang.String AUTH_CRYPT_AES_GCM;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "rfc4106(gcm(aes))"
private final java.lang.String mName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] mKey;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mTruncLenBits;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static final android.os.Parcelable$Creator<android.net.IpSecAlgorithm> CREATOR;
descriptor: Landroid/os/Parcelable$Creator;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Landroid/os/Parcelable$Creator<Landroid/net/IpSecAlgorithm;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new android.net.IpSecAlgorithm$1
dup
invokespecial android.net.IpSecAlgorithm$1.<init>:()V
1: putstatic android.net.IpSecAlgorithm.CREATOR:Landroid/os/Parcelable$Creator;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
iconst_0
invokespecial android.net.IpSecAlgorithm.<init>:(Ljava/lang/String;[BI)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/net/IpSecAlgorithm;
0 2 1 algorithm Ljava/lang/String;
0 2 2 key [B
MethodParameters:
Name Flags
algorithm
key
public void <init>(java.lang.String, byte[], int);
descriptor: (Ljava/lang/String;[BI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield android.net.IpSecAlgorithm.mName:Ljava/lang/String;
2: aload 0
aload 2
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield android.net.IpSecAlgorithm.mKey:[B
3: aload 0
iload 3
putfield android.net.IpSecAlgorithm.mTruncLenBits:I
4: aload 0
getfield android.net.IpSecAlgorithm.mName:Ljava/lang/String;
aload 0
getfield android.net.IpSecAlgorithm.mKey:[B
arraylength
bipush 8
imul
aload 0
getfield android.net.IpSecAlgorithm.mTruncLenBits:I
invokestatic android.net.IpSecAlgorithm.checkValidOrThrow:(Ljava/lang/String;II)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/net/IpSecAlgorithm;
0 6 1 algorithm Ljava/lang/String;
0 6 2 key [B
0 6 3 truncLenBits I
MethodParameters:
Name Flags
algorithm
key
truncLenBits
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.net.IpSecAlgorithm.mName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/IpSecAlgorithm;
public byte[] getKey();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.net.IpSecAlgorithm.mKey:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/IpSecAlgorithm;
public int getTruncationLengthBits();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.net.IpSecAlgorithm.mTruncLenBits:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/IpSecAlgorithm;
public int describeContents();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/IpSecAlgorithm;
public void writeToParcel(android.os.Parcel, int);
descriptor: (Landroid/os/Parcel;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield android.net.IpSecAlgorithm.mName:Ljava/lang/String;
invokevirtual android.os.Parcel.writeString:(Ljava/lang/String;)V
1: aload 1
aload 0
getfield android.net.IpSecAlgorithm.mKey:[B
invokevirtual android.os.Parcel.writeByteArray:([B)V
2: aload 1
aload 0
getfield android.net.IpSecAlgorithm.mTruncLenBits:I
invokevirtual android.os.Parcel.writeInt:(I)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/net/IpSecAlgorithm;
0 4 1 out Landroid/os/Parcel;
0 4 2 flags I
MethodParameters:
Name Flags
out
flags
private static void checkValidOrThrow(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
istore 3
start local 3 1: iconst_1
istore 4
start local 4 2: aload 0
dup
astore 5
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 7
-1137603038: 3
394796030: 4
559425185: 5
559457797: 6
559510590: 7
759177996: 8
2065384259: 9
default: 56
}
StackMap locals: int int java.lang.String
StackMap stack:
3: aload 5
ldc "rfc4106(gcm(aes))"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 49
goto 56
StackMap locals:
StackMap stack:
4: aload 5
ldc "cbc(aes)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 56
StackMap locals:
StackMap stack:
5: aload 5
ldc "hmac(sha256)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 28
goto 56
StackMap locals:
StackMap stack:
6: aload 5
ldc "hmac(sha384)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 35
goto 56
StackMap locals:
StackMap stack:
7: aload 5
ldc "hmac(sha512)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 42
goto 56
StackMap locals:
StackMap stack:
8: aload 5
ldc "hmac(md5)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
goto 56
StackMap locals:
StackMap stack:
9: aload 5
ldc "hmac(sha1)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
goto 56
10: StackMap locals:
StackMap stack:
iload 1
sipush 128
if_icmpeq 11
iload 1
sipush 192
if_icmpeq 11
iload 1
sipush 256
if_icmpeq 11
iconst_0
goto 12
StackMap locals:
StackMap stack:
11: iconst_1
StackMap locals:
StackMap stack: int
12: istore 3
13: goto 57
14: StackMap locals:
StackMap stack:
iload 1
sipush 128
if_icmpne 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 3
17: iload 2
bipush 96
if_icmplt 18
iload 2
sipush 128
if_icmpgt 18
iconst_1
goto 19
StackMap locals:
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: istore 4
20: goto 57
21: StackMap locals:
StackMap stack:
iload 1
sipush 160
if_icmpne 22
iconst_1
goto 23
StackMap locals:
StackMap stack:
22: iconst_0
StackMap locals:
StackMap stack: int
23: istore 3
24: iload 2
bipush 96
if_icmplt 25
iload 2
sipush 160
if_icmpgt 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: istore 4
27: goto 57
28: StackMap locals:
StackMap stack:
iload 1
sipush 256
if_icmpne 29
iconst_1
goto 30
StackMap locals:
StackMap stack:
29: iconst_0
StackMap locals:
StackMap stack: int
30: istore 3
31: iload 2
bipush 96
if_icmplt 32
iload 2
sipush 256
if_icmpgt 32
iconst_1
goto 33
StackMap locals:
StackMap stack:
32: iconst_0
StackMap locals:
StackMap stack: int
33: istore 4
34: goto 57
35: StackMap locals:
StackMap stack:
iload 1
sipush 384
if_icmpne 36
iconst_1
goto 37
StackMap locals:
StackMap stack:
36: iconst_0
StackMap locals:
StackMap stack: int
37: istore 3
38: iload 2
sipush 192
if_icmplt 39
iload 2
sipush 384
if_icmpgt 39
iconst_1
goto 40
StackMap locals:
StackMap stack:
39: iconst_0
StackMap locals:
StackMap stack: int
40: istore 4
41: goto 57
42: StackMap locals:
StackMap stack:
iload 1
sipush 512
if_icmpne 43
iconst_1
goto 44
StackMap locals:
StackMap stack:
43: iconst_0
StackMap locals:
StackMap stack: int
44: istore 3
45: iload 2
sipush 256
if_icmplt 46
iload 2
sipush 512
if_icmpgt 46
iconst_1
goto 47
StackMap locals:
StackMap stack:
46: iconst_0
StackMap locals:
StackMap stack: int
47: istore 4
48: goto 57
49: StackMap locals:
StackMap stack:
iload 1
sipush 160
if_icmpeq 50
iload 1
sipush 224
if_icmpeq 50
iload 1
sipush 288
if_icmpeq 50
iconst_0
goto 51
StackMap locals:
StackMap stack:
50: iconst_1
StackMap locals:
StackMap stack: int
51: istore 3
52: iload 2
bipush 64
if_icmpeq 53
iload 2
bipush 96
if_icmpeq 53
iload 2
sipush 128
if_icmpeq 53
iconst_0
goto 54
StackMap locals:
StackMap stack:
53: iconst_1
StackMap locals:
StackMap stack: int
54: istore 4
55: goto 57
56: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Couldn't find an algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
57: StackMap locals:
StackMap stack:
iload 3
ifne 59
58: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid key material keyLength: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
59: StackMap locals:
StackMap stack:
iload 4
ifne 61
60: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid truncation keyLength: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
61: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 name Ljava/lang/String;
0 62 1 keyLen I
0 62 2 truncLen I
1 62 3 isValidLen Z
2 62 4 isValidTruncLen Z
MethodParameters:
Name Flags
name
keyLen
truncLen
public boolean isAuthentication();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.net.IpSecAlgorithm.getName:()Ljava/lang/String;
dup
astore 1
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 5
559425185: 1
559457797: 2
559510590: 3
759177996: 4
2065384259: 5
default: 7
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 1
ldc "hmac(sha256)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
StackMap locals:
StackMap stack:
2: aload 1
ldc "hmac(sha384)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
StackMap locals:
StackMap stack:
3: aload 1
ldc "hmac(sha512)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
StackMap locals:
StackMap stack:
4: aload 1
ldc "hmac(md5)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
StackMap locals:
StackMap stack:
5: aload 1
ldc "hmac(sha1)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/net/IpSecAlgorithm;
public boolean isEncryption();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.net.IpSecAlgorithm.getName:()Ljava/lang/String;
ldc "cbc(aes)"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/IpSecAlgorithm;
public boolean isAead();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.net.IpSecAlgorithm.getName:()Ljava/lang/String;
ldc "rfc4106(gcm(aes))"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/net/IpSecAlgorithm;
private static boolean isUnsafeBuild();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic android.os.Build.IS_DEBUGGABLE:Z
ifeq 1
getstatic android.os.Build.IS_ENG:Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
1: ldc "{mName="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
getfield android.net.IpSecAlgorithm.mName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc ", mKey="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokestatic android.net.IpSecAlgorithm.isUnsafeBuild:()Z
ifeq 5
aload 0
getfield android.net.IpSecAlgorithm.mKey:[B
invokestatic com.android.internal.util.HexDump.toHexString:([B)Ljava/lang/String;
goto 6
StackMap locals:
StackMap stack: java.lang.StringBuilder
5: ldc "<hidden>"
StackMap locals: android.net.IpSecAlgorithm
StackMap stack: java.lang.StringBuilder java.lang.String
6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc ", mTruncLenBits="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: aload 0
getfield android.net.IpSecAlgorithm.mTruncLenBits:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
9: ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/net/IpSecAlgorithm;
public static boolean equals(android.net.IpSecAlgorithm, android.net.IpSecAlgorithm);
descriptor: (Landroid/net/IpSecAlgorithm;Landroid/net/IpSecAlgorithm;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnull 1
aload 1
ifnonnull 3
StackMap locals:
StackMap stack:
1: aload 0
aload 1
if_acmpne 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield android.net.IpSecAlgorithm.mName:Ljava/lang/String;
aload 1
getfield android.net.IpSecAlgorithm.mName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
4: aload 0
getfield android.net.IpSecAlgorithm.mKey:[B
aload 1
getfield android.net.IpSecAlgorithm.mKey:[B
invokestatic java.util.Arrays.equals:([B[B)Z
ifeq 7
5: aload 0
getfield android.net.IpSecAlgorithm.mTruncLenBits:I
aload 1
getfield android.net.IpSecAlgorithm.mTruncLenBits:I
if_icmpne 7
6: iconst_1
ireturn
StackMap locals:
StackMap stack:
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 lhs Landroid/net/IpSecAlgorithm;
0 8 1 rhs Landroid/net/IpSecAlgorithm;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
lhs
rhs
}
SourceFile: "IpSecAlgorithm.java"
NestMembers:
android.net.IpSecAlgorithm$1 android.net.IpSecAlgorithm$AlgorithmName
InnerClasses:
android.net.IpSecAlgorithm$1
public abstract AlgorithmName = android.net.IpSecAlgorithm$AlgorithmName of android.net.IpSecAlgorithm
public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable