public class sun.security.krb5.internal.ktab.KeyTab implements sun.security.krb5.internal.ktab.KeyTabConstants
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.krb5.internal.ktab.KeyTab
super_class: java.lang.Object
{
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static java.lang.String defaultTabName;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.util.Map<java.lang.String, sun.security.krb5.internal.ktab.KeyTab> map;
descriptor: Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Map<Ljava/lang/String;Lsun/security/krb5/internal/ktab/KeyTab;>;
private boolean isMissing;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isValid;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.lang.String tabName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long lastModified;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int kt_vno;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.Vector<sun.security.krb5.internal.ktab.KeyTabEntry> entries;
descriptor: Ljava/util/Vector;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Vector<Lsun/security/krb5/internal/ktab/KeyTabEntry;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
putstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
1: aconst_null
putstatic sun.security.krb5.internal.ktab.KeyTab.defaultTabName:Ljava/lang/String;
2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic sun.security.krb5.internal.ktab.KeyTab.map:Ljava/util/Map;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield sun.security.krb5.internal.ktab.KeyTab.isMissing:Z
2: aload 0
iconst_1
putfield sun.security.krb5.internal.ktab.KeyTab.isValid:Z
3: aload 0
sipush 1282
putfield sun.security.krb5.internal.ktab.KeyTab.kt_vno:I
4: aload 0
new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
5: aload 0
aload 1
putfield sun.security.krb5.internal.ktab.KeyTab.tabName:Ljava/lang/String;
6: aload 0
new java.io.File
dup
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.tabName:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.lastModified:()J
putfield sun.security.krb5.internal.ktab.KeyTab.lastModified:J
7: aconst_null
astore 2
aconst_null
astore 3
8: new sun.security.krb5.internal.ktab.KeyTabInputStream
dup
new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
invokespecial sun.security.krb5.internal.ktab.KeyTabInputStream.<init>:(Ljava/io/InputStream;)V
9: astore 4
start local 4 10: aload 0
aload 4
invokevirtual sun.security.krb5.internal.ktab.KeyTab.load:(Lsun/security/krb5/internal/ktab/KeyTabInputStream;)V
11: aload 4
ifnull 23
aload 4
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.close:()V
goto 23
StackMap locals: sun.security.krb5.internal.ktab.KeyTab java.lang.String java.lang.Throwable java.lang.Throwable sun.security.krb5.internal.ktab.KeyTabInputStream
StackMap stack: java.lang.Throwable
12: astore 2
aload 4
ifnull 13
aload 4
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
13: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 3
aload 2
ifnonnull 15
aload 3
astore 2
goto 16
StackMap locals:
StackMap stack:
15: aload 2
aload 3
if_acmpeq 16
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 2
athrow
17: StackMap locals: sun.security.krb5.internal.ktab.KeyTab java.lang.String
StackMap stack: java.io.FileNotFoundException
pop
18: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.clear:()V
19: aload 0
iconst_1
putfield sun.security.krb5.internal.ktab.KeyTab.isMissing:Z
goto 23
20: StackMap locals:
StackMap stack: java.lang.Exception
pop
21: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.clear:()V
22: aload 0
iconst_0
putfield sun.security.krb5.internal.ktab.KeyTab.isValid:Z
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 24 1 filename Ljava/lang/String;
10 13 4 kis Lsun/security/krb5/internal/ktab/KeyTabInputStream;
Exception table:
from to target type
10 11 12 any
8 14 14 any
6 17 17 Class java.io.FileNotFoundException
6 17 20 Class java.lang.Exception
MethodParameters:
Name Flags
filename
private static synchronized sun.security.krb5.internal.ktab.KeyTab getInstance0(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=5, args_size=1
start local 0 0: new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.lastModified:()J
lstore 1
start local 1 1: getstatic sun.security.krb5.internal.ktab.KeyTab.map:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTab
astore 3
start local 3 2: aload 3
ifnull 4
aload 3
invokevirtual sun.security.krb5.internal.ktab.KeyTab.isValid:()Z
ifeq 4
aload 3
getfield sun.security.krb5.internal.ktab.KeyTab.lastModified:J
lload 1
lcmp
ifne 4
3: aload 3
areturn
4: StackMap locals: long sun.security.krb5.internal.ktab.KeyTab
StackMap stack:
new sun.security.krb5.internal.ktab.KeyTab
dup
aload 0
invokespecial sun.security.krb5.internal.ktab.KeyTab.<init>:(Ljava/lang/String;)V
astore 4
start local 4 5: aload 4
invokevirtual sun.security.krb5.internal.ktab.KeyTab.isValid:()Z
ifeq 8
6: getstatic sun.security.krb5.internal.ktab.KeyTab.map:Ljava/util/Map;
aload 0
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 4
areturn
8: StackMap locals: sun.security.krb5.internal.ktab.KeyTab
StackMap stack:
aload 3
ifnull 10
9: aload 3
areturn
10: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 s Ljava/lang/String;
1 11 1 lm J
2 11 3 old Lsun/security/krb5/internal/ktab/KeyTab;
5 11 4 ktab Lsun/security/krb5/internal/ktab/KeyTab;
MethodParameters:
Name Flags
s
public static sun.security.krb5.internal.ktab.KeyTab getInstance(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:()Lsun/security/krb5/internal/ktab/KeyTab;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.security.krb5.internal.ktab.KeyTab.normalize:(Ljava/lang/String;)Ljava/lang/String;
invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance0:(Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
public static sun.security.krb5.internal.ktab.KeyTab getInstance(java.io.File);
descriptor: (Ljava/io/File;)Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:()Lsun/security/krb5/internal/ktab/KeyTab;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.File.getPath:()Ljava/lang/String;
invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance0:(Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 file Ljava/io/File;
MethodParameters:
Name Flags
file
public static sun.security.krb5.internal.ktab.KeyTab getInstance();
descriptor: ()Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic sun.security.krb5.internal.ktab.KeyTab.getDefaultTabName:()Ljava/lang/String;
invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:(Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
areturn
LocalVariableTable:
Start End Slot Name Signature
public boolean isMissing();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.isMissing:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/ktab/KeyTab;
public boolean isValid();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.isValid:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/ktab/KeyTab;
private static java.lang.String getDefaultTabName();
descriptor: ()Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=0
0: getstatic sun.security.krb5.internal.ktab.KeyTab.defaultTabName:Ljava/lang/String;
ifnull 2
1: getstatic sun.security.krb5.internal.ktab.KeyTab.defaultTabName:Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
astore 0
start local 0 3: invokestatic sun.security.krb5.Config.getInstance:()Lsun/security/krb5/Config;
iconst_2
anewarray java.lang.String
dup
iconst_0
4: ldc "libdefaults"
aastore
dup
iconst_1
ldc "default_keytab_name"
aastore
5: invokevirtual sun.security.krb5.Config.get:([Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 6: aload 1
ifnull 16
7: new java.util.StringTokenizer
dup
aload 1
ldc " "
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 2
start local 2 8: goto 12
9: StackMap locals: java.lang.String java.lang.String java.util.StringTokenizer
StackMap stack:
aload 2
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokestatic sun.security.krb5.internal.ktab.KeyTab.normalize:(Ljava/lang/String;)Ljava/lang/String;
astore 0
10: new java.io.File
dup
aload 0
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.exists:()Z
ifeq 12
11: goto 16
12: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 9
end local 2 end local 1 13: goto 16
StackMap locals: java.lang.String
StackMap stack: sun.security.krb5.KrbException
14: pop
15: aconst_null
astore 0
16: StackMap locals:
StackMap stack:
aload 0
ifnonnull 25
17: new sun.security.action.GetPropertyAction
dup
ldc "user.home"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
18: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
19: astore 1
start local 1 20: aload 1
ifnonnull 24
21: new sun.security.action.GetPropertyAction
dup
ldc "user.dir"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
22: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
23: astore 1
24: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "krb5.keytab"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 0
end local 1 25: StackMap locals:
StackMap stack:
aload 0
putstatic sun.security.krb5.internal.ktab.KeyTab.defaultTabName:Ljava/lang/String;
26: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
3 27 0 kname Ljava/lang/String;
6 13 1 keytab_names Ljava/lang/String;
8 13 2 st Ljava/util/StringTokenizer;
20 25 1 user_home Ljava/lang/String;
Exception table:
from to target type
3 13 14 Class sun.security.krb5.KrbException
public static java.lang.String normalize(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.length:()I
iconst_5
if_icmplt 4
1: aload 0
iconst_0
iconst_5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
ldc "FILE:"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 4
2: aload 0
iconst_5
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
start local 1 3: goto 13
end local 1 StackMap locals:
StackMap stack:
4: aload 0
invokevirtual java.lang.String.length:()I
bipush 9
if_icmplt 8
5: aload 0
iconst_0
bipush 9
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
ldc "ANY:FILE:"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 8
6: aload 0
bipush 9
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
start local 1 7: goto 13
end local 1 StackMap locals:
StackMap stack:
8: aload 0
invokevirtual java.lang.String.length:()I
bipush 7
if_icmplt 12
9: aload 0
iconst_0
bipush 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
ldc "SRVTAB:"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 12
10: aload 0
bipush 7
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
start local 1 11: goto 13
end local 1 12: StackMap locals:
StackMap stack:
aload 0
astore 1
start local 1 13: StackMap locals: java.lang.String
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 name Ljava/lang/String;
3 4 1 kname Ljava/lang/String;
7 8 1 kname Ljava/lang/String;
11 12 1 kname Ljava/lang/String;
13 14 1 kname Ljava/lang/String;
MethodParameters:
Name Flags
name
private void load(sun.security.krb5.internal.ktab.KeyTabInputStream);
descriptor: (Lsun/security/krb5/internal/ktab/KeyTabInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.clear:()V
1: aload 0
aload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.readVersion:()I
putfield sun.security.krb5.internal.ktab.KeyTab.kt_vno:I
2: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.kt_vno:I
sipush 1281
if_icmpne 4
3: aload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.setNativeByteOrder:()V
4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: goto 17
6: StackMap locals: int
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.readEntryLength:()I
istore 2
7: aload 1
iload 2
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.kt_vno:I
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.readEntry:(II)Lsun/security/krb5/internal/ktab/KeyTabEntry;
astore 3
start local 3 8: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 15
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ">>> KeyTab: load() entry length: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "; type: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 3
ifnull 12
aload 3
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
goto 13
StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.internal.ktab.KeyTabInputStream int sun.security.krb5.internal.ktab.KeyTabEntry
StackMap stack: java.io.PrintStream java.lang.StringBuilder
12: iconst_0
StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.internal.ktab.KeyTabInputStream int sun.security.krb5.internal.ktab.KeyTabEntry
StackMap stack: java.io.PrintStream java.lang.StringBuilder int
13: invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: StackMap locals:
StackMap stack:
aload 3
ifnull 17
16: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
aload 3
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
end local 3 17: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.available:()I
ifgt 6
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 19 1 kis Lsun/security/krb5/internal/ktab/KeyTabInputStream;
5 19 2 entryLength I
8 17 3 entry Lsun/security/krb5/internal/ktab/KeyTabEntry;
Exceptions:
throws java.io.IOException, sun.security.krb5.RealmException
MethodParameters:
Name Flags
kis
public sun.security.krb5.PrincipalName getOneName();
descriptor: ()Lsun/security/krb5/PrincipalName;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
istore 1
start local 1 1: iload 1
ifle 2
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 1
iconst_1
isub
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
getfield sun.security.krb5.internal.ktab.KeyTabEntry.service:Lsun/security/krb5/PrincipalName;
goto 3
StackMap locals: int
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: sun.security.krb5.PrincipalName
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/krb5/internal/ktab/KeyTab;
1 4 1 size I
public sun.security.krb5.EncryptionKey[] readServiceKeys(sun.security.krb5.PrincipalName);
descriptor: (Lsun/security/krb5/PrincipalName;)[Lsun/security/krb5/EncryptionKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
istore 4
start local 4 1: new java.util.ArrayList
dup
iload 4
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 2: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 4
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Looking for keys for: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList
StackMap stack:
iload 4
iconst_1
isub
istore 6
start local 6 5: goto 24
6: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 6
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
astore 2
start local 2 7: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.service:Lsun/security/krb5/PrincipalName;
aload 1
invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
ifeq 23
8: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
ifeq 19
9: new sun.security.krb5.EncryptionKey
dup
aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyblock:[B
10: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
11: new java.lang.Integer
dup
aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
invokespecial java.lang.Integer.<init>:(I)V
12: invokespecial sun.security.krb5.EncryptionKey.<init>:([BILjava/lang/Integer;)V
astore 3
start local 3 13: aload 5
aload 3
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
14: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 23
15: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Added key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
16: ldc "version: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: goto 23
end local 3 StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName sun.security.krb5.internal.ktab.KeyTabEntry top int java.util.ArrayList int
StackMap stack:
19: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 23
20: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Found unsupported keytype ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
21: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
22: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
23: StackMap locals:
StackMap stack:
iinc 6 -1
end local 2 StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList int
StackMap stack:
24: iload 6
ifge 6
end local 6 25: aload 5
invokevirtual java.util.ArrayList.size:()I
istore 4
26: aload 5
iload 4
anewarray sun.security.krb5.EncryptionKey
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.security.krb5.EncryptionKey[]
astore 6
start local 6 27: aload 6
new sun.security.krb5.internal.ktab.KeyTab$1
dup
aload 0
invokespecial sun.security.krb5.internal.ktab.KeyTab$1.<init>:(Lsun/security/krb5/internal/ktab/KeyTab;)V
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
28: aload 6
areturn
end local 6 end local 5 end local 4 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 29 1 service Lsun/security/krb5/PrincipalName;
7 24 2 entry Lsun/security/krb5/internal/ktab/KeyTabEntry;
13 19 3 key Lsun/security/krb5/EncryptionKey;
1 29 4 size I
2 29 5 keys Ljava/util/ArrayList<Lsun/security/krb5/EncryptionKey;>;
5 25 6 i I
27 29 6 retVal [Lsun/security/krb5/EncryptionKey;
MethodParameters:
Name Flags
service
public boolean findServiceEntry(sun.security.krb5.PrincipalName);
descriptor: (Lsun/security/krb5/PrincipalName;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: goto 11
2: StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top int
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 3
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
astore 2
start local 2 3: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.service:Lsun/security/krb5/PrincipalName;
aload 1
invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
ifeq 10
4: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName sun.security.krb5.internal.ktab.KeyTabEntry int
StackMap stack:
getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 10
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Found unsupported keytype ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") for "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: StackMap locals:
StackMap stack:
iinc 3 1
end local 2 StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top int
StackMap stack:
11: iload 3
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
if_icmplt 2
end local 3 12: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 13 1 service Lsun/security/krb5/PrincipalName;
3 11 2 entry Lsun/security/krb5/internal/ktab/KeyTabEntry;
1 12 3 i I
MethodParameters:
Name Flags
service
public java.lang.String tabName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.tabName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/ktab/KeyTab;
public void addEntry(sun.security.krb5.PrincipalName, char[], int, boolean);
descriptor: (Lsun/security/krb5/PrincipalName;[CIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 1
invokevirtual sun.security.krb5.PrincipalName.getSalt:()Ljava/lang/String;
aload 2
iload 3
iload 4
invokevirtual sun.security.krb5.internal.ktab.KeyTab.addEntry:(Lsun/security/krb5/PrincipalName;Ljava/lang/String;[CIZ)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 2 1 service Lsun/security/krb5/PrincipalName;
0 2 2 psswd [C
0 2 3 kvno I
0 2 4 append Z
Exceptions:
throws sun.security.krb5.KrbException
MethodParameters:
Name Flags
service
psswd
kvno
append
public void addEntry(sun.security.krb5.PrincipalName, java.lang.String, char[], int, boolean);
descriptor: (Lsun/security/krb5/PrincipalName;Ljava/lang/String;[CIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
aload 2
1: invokestatic sun.security.krb5.EncryptionKey.acquireSecretKeys:([CLjava/lang/String;)[Lsun/security/krb5/EncryptionKey;
astore 6
start local 6 2: iconst_0
istore 7
start local 7 3: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
isub
istore 8
start local 8 4: goto 12
5: StackMap locals: sun.security.krb5.EncryptionKey[] int int
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 8
invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
astore 9
start local 9 6: aload 9
getfield sun.security.krb5.internal.ktab.KeyTabEntry.service:Lsun/security/krb5/PrincipalName;
aload 1
invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
ifeq 11
7: aload 9
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
iload 7
if_icmple 9
8: aload 9
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
istore 7
9: StackMap locals: sun.security.krb5.internal.ktab.KeyTabEntry
StackMap stack:
iload 5
ifeq 10
aload 9
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
iload 4
if_icmpne 11
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 8
invokevirtual java.util.Vector.removeElementAt:(I)V
end local 9 11: StackMap locals:
StackMap stack:
iinc 8 -1
StackMap locals:
StackMap stack:
12: iload 8
ifge 5
end local 8 13: iload 4
iconst_m1
if_icmpne 15
14: iload 7
iconst_1
iadd
istore 4
15: StackMap locals:
StackMap stack:
iconst_0
istore 8
start local 8 16: goto 26
17: StackMap locals: int
StackMap stack:
aload 6
iload 8
aaload
invokevirtual sun.security.krb5.EncryptionKey.getEType:()I
istore 9
start local 9 18: aload 6
iload 8
aaload
invokevirtual sun.security.krb5.EncryptionKey.getBytes:()[B
astore 10
start local 10 19: new sun.security.krb5.internal.ktab.KeyTabEntry
dup
aload 1
20: aload 1
invokevirtual sun.security.krb5.PrincipalName.getRealm:()Lsun/security/krb5/Realm;
21: new sun.security.krb5.internal.KerberosTime
dup
invokestatic java.lang.System.currentTimeMillis:()J
invokespecial sun.security.krb5.internal.KerberosTime.<init>:(J)V
22: iload 4
iload 9
aload 10
23: invokespecial sun.security.krb5.internal.ktab.KeyTabEntry.<init>:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Realm;Lsun/security/krb5/internal/KerberosTime;II[B)V
astore 11
start local 11 24: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
aload 11
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
end local 11 end local 10 end local 9 25: iinc 8 1
StackMap locals:
StackMap stack:
26: aload 6
ifnull 27
iload 8
aload 6
arraylength
if_icmplt 17
end local 8 27: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 28 1 service Lsun/security/krb5/PrincipalName;
0 28 2 salt Ljava/lang/String;
0 28 3 psswd [C
0 28 4 kvno I
0 28 5 append Z
2 28 6 encKeys [Lsun/security/krb5/EncryptionKey;
3 28 7 maxKvno I
4 13 8 i I
6 11 9 e Lsun/security/krb5/internal/ktab/KeyTabEntry;
16 27 8 i I
18 25 9 keyType I
19 25 10 keyValue [B
24 25 11 newEntry Lsun/security/krb5/internal/ktab/KeyTabEntry;
Exceptions:
throws sun.security.krb5.KrbException
MethodParameters:
Name Flags
service
salt
psswd
kvno
append
public sun.security.krb5.internal.ktab.KeyTabEntry[] getEntries();
descriptor: ()[Lsun/security/krb5/internal/ktab/KeyTabEntry;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
anewarray sun.security.krb5.internal.ktab.KeyTabEntry
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: sun.security.krb5.internal.ktab.KeyTabEntry[] int
StackMap stack:
aload 1
iload 2
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 2
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
aastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 1
arraylength
if_icmplt 3
end local 2 6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/krb5/internal/ktab/KeyTab;
1 7 1 kentries [Lsun/security/krb5/internal/ktab/KeyTabEntry;
2 6 2 i I
public static synchronized sun.security.krb5.internal.ktab.KeyTab create();
descriptor: ()Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=0
0: invokestatic sun.security.krb5.internal.ktab.KeyTab.getDefaultTabName:()Ljava/lang/String;
astore 0
start local 0 1: aload 0
invokestatic sun.security.krb5.internal.ktab.KeyTab.create:(Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 2 0 dname Ljava/lang/String;
Exceptions:
throws java.io.IOException, sun.security.krb5.RealmException
public static synchronized sun.security.krb5.internal.ktab.KeyTab create(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new sun.security.krb5.internal.ktab.KeyTabOutputStream
dup
new java.io.FileOutputStream
dup
aload 0
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
invokespecial sun.security.krb5.internal.ktab.KeyTabOutputStream.<init>:(Ljava/io/OutputStream;)V
2: astore 3
start local 3 3: aload 3
sipush 1282
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.writeVersion:(I)V
4: aload 3
ifnull 10
aload 3
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
goto 10
StackMap locals: java.lang.String java.lang.Throwable java.lang.Throwable sun.security.krb5.internal.ktab.KeyTabOutputStream
StackMap stack: java.lang.Throwable
5: astore 1
aload 3
ifnull 6
aload 3
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
6: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
aload 1
ifnonnull 8
aload 2
astore 1
goto 9
StackMap locals:
StackMap stack:
8: aload 1
aload 2
if_acmpeq 9
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
9: aload 1
athrow
10: StackMap locals:
StackMap stack:
new sun.security.krb5.internal.ktab.KeyTab
dup
aload 0
invokespecial sun.security.krb5.internal.ktab.KeyTab.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 name Ljava/lang/String;
3 6 3 kos Lsun/security/krb5/internal/ktab/KeyTabOutputStream;
Exception table:
from to target type
3 4 5 any
1 7 7 any
Exceptions:
throws java.io.IOException, sun.security.krb5.RealmException
MethodParameters:
Name Flags
name
public synchronized void save();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: new sun.security.krb5.internal.ktab.KeyTabOutputStream
dup
new java.io.FileOutputStream
dup
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.tabName:Ljava/lang/String;
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
invokespecial sun.security.krb5.internal.ktab.KeyTabOutputStream.<init>:(Ljava/io/OutputStream;)V
2: astore 3
start local 3 3: aload 3
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.kt_vno:I
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.writeVersion:(I)V
4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: sun.security.krb5.internal.ktab.KeyTab java.lang.Throwable java.lang.Throwable sun.security.krb5.internal.ktab.KeyTabOutputStream int
StackMap stack:
aload 3
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 4
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.writeEntry:(Lsun/security/krb5/internal/ktab/KeyTabEntry;)V
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
if_icmplt 6
end local 4 9: aload 3
ifnull 15
aload 3
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
goto 15
StackMap locals: sun.security.krb5.internal.ktab.KeyTab java.lang.Throwable java.lang.Throwable sun.security.krb5.internal.ktab.KeyTabOutputStream
StackMap stack: java.lang.Throwable
10: astore 1
aload 3
ifnull 11
aload 3
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
end local 3 StackMap locals:
StackMap stack:
11: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 1
ifnonnull 13
aload 2
astore 1
goto 14
StackMap locals:
StackMap stack:
13: aload 1
aload 2
if_acmpeq 14
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/security/krb5/internal/ktab/KeyTab;
3 11 3 kos Lsun/security/krb5/internal/ktab/KeyTabOutputStream;
5 9 4 i I
Exception table:
from to target type
3 9 10 any
1 12 12 any
Exceptions:
throws java.io.IOException
public int deleteEntries(sun.security.krb5.PrincipalName, int, int);
descriptor: (Lsun/security/krb5/PrincipalName;II)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 5
start local 5 2: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
isub
istore 6
start local 6 3: goto 19
4: StackMap locals: int java.util.Map int
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 6
invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
astore 7
start local 7 5: aload 1
aload 7
invokevirtual sun.security.krb5.internal.ktab.KeyTabEntry.getService:()Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
ifeq 18
6: iload 2
iconst_m1
if_icmpeq 7
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
iload 2
if_icmpne 18
7: StackMap locals: sun.security.krb5.internal.ktab.KeyTabEntry
StackMap stack:
iload 3
bipush -2
if_icmpne 15
8: aload 5
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 13
9: aload 5
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 8
start local 8 10: aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
iload 8
if_icmple 18
11: aload 5
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 12: goto 18
13: StackMap locals:
StackMap stack:
aload 5
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: goto 18
StackMap locals:
StackMap stack:
15: iload 3
iconst_m1
if_icmpeq 16
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
iload 3
if_icmpne 18
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 6
invokevirtual java.util.Vector.removeElementAt:(I)V
17: iinc 4 1
end local 7 18: StackMap locals:
StackMap stack:
iinc 6 -1
StackMap locals:
StackMap stack:
19: iload 6
ifge 4
end local 6 20: iload 3
bipush -2
if_icmpne 32
21: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
isub
istore 6
start local 6 22: goto 31
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 6
invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
astore 7
start local 7 24: aload 1
aload 7
invokevirtual sun.security.krb5.internal.ktab.KeyTabEntry.getService:()Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.match:(Lsun/security/krb5/PrincipalName;)Z
ifeq 30
25: iload 2
iconst_m1
if_icmpeq 26
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
iload 2
if_icmpne 30
26: StackMap locals: sun.security.krb5.internal.ktab.KeyTabEntry
StackMap stack:
aload 5
aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 8
start local 8 27: aload 7
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
iload 8
if_icmpeq 30
28: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 6
invokevirtual java.util.Vector.removeElementAt:(I)V
29: iinc 4 1
end local 8 end local 7 30: StackMap locals:
StackMap stack:
iinc 6 -1
StackMap locals:
StackMap stack:
31: iload 6
ifge 23
end local 6 32: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 33 1 service Lsun/security/krb5/PrincipalName;
0 33 2 etype I
0 33 3 kvno I
1 33 4 count I
2 33 5 highest Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Integer;>;
3 20 6 i I
5 18 7 e Lsun/security/krb5/internal/ktab/KeyTabEntry;
10 12 8 n I
22 32 6 i I
24 30 7 e Lsun/security/krb5/internal/ktab/KeyTabEntry;
27 30 8 n I
MethodParameters:
Name Flags
service
etype
kvno
public synchronized void createVersion(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: new sun.security.krb5.internal.ktab.KeyTabOutputStream
dup
new java.io.FileOutputStream
dup
aload 1
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
invokespecial sun.security.krb5.internal.ktab.KeyTabOutputStream.<init>:(Ljava/io/OutputStream;)V
2: astore 4
start local 4 3: aload 4
sipush 1282
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.write16:(I)V
4: aload 4
ifnull 10
aload 4
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
goto 10
StackMap locals: sun.security.krb5.internal.ktab.KeyTab java.io.File java.lang.Throwable java.lang.Throwable sun.security.krb5.internal.ktab.KeyTabOutputStream
StackMap stack: java.lang.Throwable
5: astore 2
aload 4
ifnull 6
aload 4
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
6: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 3
aload 2
ifnonnull 8
aload 3
astore 2
goto 9
StackMap locals:
StackMap stack:
8: aload 2
aload 3
if_acmpeq 9
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 11 1 file Ljava/io/File;
3 6 4 kos Lsun/security/krb5/internal/ktab/KeyTabOutputStream;
Exception table:
from to target type
3 4 5 any
1 7 7 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
}
SourceFile: "KeyTab.java"
NestMembers:
sun.security.krb5.internal.ktab.KeyTab$1
InnerClasses:
sun.security.krb5.internal.ktab.KeyTab$1