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
{
int kt_vno;
descriptor: I
flags: (0x0000)
private static sun.security.krb5.internal.ktab.KeyTab singleton;
descriptor: Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
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=1, locals=0, args_size=0
0: aconst_null
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
1: getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
putstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
2: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
2: aload 0
aload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTab.init:(Ljava/lang/String;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 4 1 filename Ljava/lang/String;
Exceptions:
throws java.io.IOException, sun.security.krb5.RealmException
MethodParameters:
Name Flags
filename
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=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic sun.security.krb5.internal.ktab.KeyTab.parse:(Ljava/lang/String;)Ljava/lang/String;
putstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
1: getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
ifnonnull 3
2: invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:()Lsun/security/krb5/internal/ktab/KeyTab;
areturn
3: StackMap locals:
StackMap stack:
new java.io.File
dup
getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:(Ljava/io/File;)Lsun/security/krb5/internal/ktab/KeyTab;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 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=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.io.File.exists:()Z
ifne 3
1: aconst_null
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
2: goto 19
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
astore 1
start local 1 4: getstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
ifnull 11
5: new java.io.File
dup
getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 6: aload 2
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
astore 3
start local 3 7: aload 3
aload 1
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 19
8: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 19
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "KeyTab instance already exists"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 3 end local 2 10: goto 19
11: StackMap locals: java.lang.String
StackMap stack:
new sun.security.krb5.internal.ktab.KeyTab
dup
aload 1
invokespecial sun.security.krb5.internal.ktab.KeyTab.<init>:(Ljava/lang/String;)V
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
end local 1 12: goto 19
StackMap locals: java.io.File
StackMap stack: java.lang.Exception
13: astore 1
start local 1 14: aconst_null
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
15: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 19
16: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Could not obtain an instance of KeyTab"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
17: aload 1
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 1 19: StackMap locals:
StackMap stack:
getstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 file Ljava/io/File;
4 12 1 fname Ljava/lang/String;
6 10 2 kfile Ljava/io/File;
7 10 3 kname Ljava/lang/String;
14 19 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 12 13 Class java.lang.Exception
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=4, locals=1, args_size=0
0: invokestatic sun.security.krb5.internal.ktab.KeyTab.getDefaultKeyTab:()Ljava/lang/String;
putstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
1: getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
ifnull 10
2: new java.io.File
dup
getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:(Ljava/io/File;)Lsun/security/krb5/internal/ktab/KeyTab;
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
3: goto 10
StackMap locals:
StackMap stack: java.lang.Exception
4: astore 0
start local 0 5: aconst_null
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
6: 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 "Could not obtain an instance of KeyTab"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 0
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 0 10: StackMap locals:
StackMap stack:
getstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
areturn
LocalVariableTable:
Start End Slot Name Signature
5 10 0 e Ljava/lang/Exception;
Exception table:
from to target type
0 3 4 Class java.lang.Exception
private static java.lang.String getDefaultKeyTab();
descriptor: ()Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=0
0: getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
ifnull 2
1: getstatic sun.security.krb5.internal.ktab.KeyTab.name: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;
4: ldc "default_keytab_name"
ldc "libdefaults"
5: invokevirtual sun.security.krb5.Config.getDefault:(Ljava/lang/String;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.parse:(Ljava/lang/String;)Ljava/lang/String;
astore 0
10: aload 0
ifnull 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 26
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:
aload 1
ifnull 26
25: 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 26: StackMap locals:
StackMap stack:
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 26 1 user_home Ljava/lang/String;
Exception table:
from to target type
3 13 14 Class sun.security.krb5.KrbException
private static java.lang.String parse(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
iconst_5
if_icmplt 7
4: 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 7
5: aload 0
iconst_5
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
6: goto 16
StackMap locals:
StackMap stack:
7: aload 0
invokevirtual java.lang.String.length:()I
bipush 9
if_icmplt 11
8: 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 11
9: aload 0
bipush 9
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
10: goto 16
StackMap locals:
StackMap stack:
11: aload 0
invokevirtual java.lang.String.length:()I
bipush 7
if_icmplt 15
12: 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 15
13: aload 0
bipush 7
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
astore 1
16: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 name Ljava/lang/String;
1 17 1 kname Ljava/lang/String;
MethodParameters:
Name Flags
name
private synchronized void init(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
1: 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
2: astore 2
start local 2 3: aload 0
aload 2
invokevirtual sun.security.krb5.internal.ktab.KeyTab.load:(Lsun/security/krb5/internal/ktab/KeyTabInputStream;)V
4: aload 2
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.close:()V
5: aload 1
putstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 7 1 filename Ljava/lang/String;
3 6 2 kis Lsun/security/krb5/internal/ktab/KeyTabInputStream;
Exceptions:
throws java.io.IOException, sun.security.krb5.RealmException
MethodParameters:
Name Flags
filename
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.EncryptionKey[] readServiceKeys(sun.security.krb5.PrincipalName);
descriptor: (Lsun/security/krb5/PrincipalName;)[Lsun/security/krb5/EncryptionKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=13, 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: iload 4
iconst_1
isub
istore 6
start local 6 3: goto 22
4: StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList 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 5: 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 21
6: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
invokestatic sun.security.krb5.internal.crypto.EType.isSupported:(I)Z
ifeq 17
7: new sun.security.krb5.EncryptionKey
dup
aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyblock:[B
8: aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyType:I
9: new java.lang.Integer
dup
aload 2
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
invokespecial java.lang.Integer.<init>:(I)V
10: invokespecial sun.security.krb5.EncryptionKey.<init>:([BILjava/lang/Integer;)V
astore 3
start local 3 11: aload 5
aload 3
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
12: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 21
13: 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;
14: 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;
15: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
16: goto 21
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:
17: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 21
18: 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
19: 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;
20: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: 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:
22: iload 6
ifge 4
end local 6 23: aload 5
invokevirtual java.util.ArrayList.size:()I
istore 4
24: iload 4
ifne 26
25: aconst_null
areturn
26: StackMap locals:
StackMap stack:
iload 4
anewarray sun.security.krb5.EncryptionKey
astore 6
start local 6 27: iconst_0
istore 7
start local 7 28: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 30
29: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Ordering keys wrt default_tkt_enctypes list"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
30: StackMap locals: sun.security.krb5.EncryptionKey[] int
StackMap stack:
ldc "default_tkt_enctypes"
invokestatic sun.security.krb5.internal.crypto.EType.getDefaults:(Ljava/lang/String;)[I
astore 9
start local 9 31: aload 9
ifnonnull 38
32: iconst_0
istore 10
start local 10 33: goto 36
34: StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList sun.security.krb5.EncryptionKey[] int top int[] int
StackMap stack:
aload 6
iload 7
iinc 7 1
aload 5
iload 10
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast sun.security.krb5.EncryptionKey
aastore
35: iinc 10 1
StackMap locals:
StackMap stack:
36: iload 10
iload 4
if_icmplt 34
end local 10 37: goto 60
38: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 39: goto 52
40: StackMap locals: int
StackMap stack:
aload 9
iload 10
iaload
istore 11
start local 11 41: iconst_0
istore 12
start local 12 42: goto 50
43: StackMap locals: int int
StackMap stack:
aload 5
iload 12
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast sun.security.krb5.EncryptionKey
astore 8
start local 8 44: aload 8
ifnull 49
aload 8
invokevirtual sun.security.krb5.EncryptionKey.getEType:()I
iload 11
if_icmpne 49
45: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 47
46: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
iload 7
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
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
47: StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList sun.security.krb5.EncryptionKey[] int sun.security.krb5.EncryptionKey int[] int int int
StackMap stack:
aload 6
iload 7
iinc 7 1
aload 8
aastore
48: aload 5
iload 12
aconst_null
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
49: StackMap locals:
StackMap stack:
iinc 12 1
end local 8 StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList sun.security.krb5.EncryptionKey[] int top int[] int int int
StackMap stack:
50: iload 12
iload 4
if_icmpge 51
iload 7
iload 4
if_icmplt 43
end local 12 end local 11 51: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
52: iload 10
aload 9
arraylength
if_icmpge 53
iload 7
iload 4
if_icmplt 40
end local 10 53: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 54: goto 59
55: StackMap locals: int
StackMap stack:
aload 5
iload 10
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast sun.security.krb5.EncryptionKey
astore 8
start local 8 56: aload 8
ifnull 58
57: aload 6
iload 7
iinc 7 1
aload 8
aastore
58: StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList sun.security.krb5.EncryptionKey[] int sun.security.krb5.EncryptionKey int[] int
StackMap stack:
iinc 10 1
end local 8 StackMap locals: sun.security.krb5.internal.ktab.KeyTab sun.security.krb5.PrincipalName top top int java.util.ArrayList sun.security.krb5.EncryptionKey[] int top int[] int
StackMap stack:
59: iload 10
iload 4
if_icmpge 60
iload 7
iload 4
if_icmplt 55
end local 10 60: StackMap locals:
StackMap stack:
iload 7
iload 4
if_icmpeq 66
61: new java.lang.RuntimeException
dup
62: new java.lang.StringBuilder
dup
ldc "Internal Error: did not copy all keys;expecting "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
63: ldc "; got "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
64: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
66: StackMap locals:
StackMap stack:
aload 6
areturn
end local 9 end local 7 end local 6 end local 5 end local 4 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 67 1 service Lsun/security/krb5/PrincipalName;
5 22 2 entry Lsun/security/krb5/internal/ktab/KeyTabEntry;
11 17 3 key Lsun/security/krb5/EncryptionKey;
1 67 4 size I
2 67 5 keys Ljava/util/ArrayList<Lsun/security/krb5/EncryptionKey;>;
3 23 6 i I
27 67 6 retVal [Lsun/security/krb5/EncryptionKey;
28 67 7 pos I
44 50 8 k Lsun/security/krb5/EncryptionKey;
56 59 8 k Lsun/security/krb5/EncryptionKey;
31 67 9 etypes [I
33 37 10 i I
39 53 10 j I
41 51 11 target I
42 51 12 i I
54 60 10 i I
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 static java.lang.String tabName();
descriptor: ()Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void addEntry(sun.security.krb5.PrincipalName, char[], int, boolean);
descriptor: (Lsun/security/krb5/PrincipalName;[CIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 1
invokevirtual sun.security.krb5.PrincipalName.getSalt:()Ljava/lang/String;
1: invokestatic sun.security.krb5.EncryptionKey.acquireSecretKeys:([CLjava/lang/String;)[Lsun/security/krb5/EncryptionKey;
astore 5
start local 5 2: iconst_0
istore 6
start local 6 3: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
isub
istore 7
start local 7 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 7
invokevirtual java.util.Vector.get:(I)Ljava/lang/Object;
checkcast sun.security.krb5.internal.ktab.KeyTabEntry
astore 8
start local 8 6: aload 8
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 8
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
iload 6
if_icmple 9
8: aload 8
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
istore 6
9: StackMap locals: sun.security.krb5.internal.ktab.KeyTabEntry
StackMap stack:
iload 4
ifeq 10
aload 8
getfield sun.security.krb5.internal.ktab.KeyTabEntry.keyVersion:I
iload 3
if_icmpne 11
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
iload 7
invokevirtual java.util.Vector.removeElementAt:(I)V
end local 8 11: StackMap locals:
StackMap stack:
iinc 7 -1
StackMap locals:
StackMap stack:
12: iload 7
ifge 5
end local 7 13: iload 3
iconst_m1
if_icmpne 15
14: iload 6
iconst_1
iadd
istore 3
15: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 16: goto 26
17: StackMap locals: int
StackMap stack:
aload 5
iload 7
aaload
invokevirtual sun.security.krb5.EncryptionKey.getEType:()I
istore 8
start local 8 18: aload 5
iload 7
aaload
invokevirtual sun.security.krb5.EncryptionKey.getBytes:()[B
astore 9
start local 9 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 3
iload 8
aload 9
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 10
start local 10 24: aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
aload 10
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
end local 10 end local 9 end local 8 25: iinc 7 1
StackMap locals:
StackMap stack:
26: aload 5
ifnull 27
iload 7
aload 5
arraylength
if_icmplt 17
end local 7 27: StackMap locals:
StackMap stack:
return
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 psswd [C
0 28 3 kvno I
0 28 4 append Z
2 28 5 encKeys [Lsun/security/krb5/EncryptionKey;
3 28 6 maxKvno I
4 13 7 i I
6 11 8 e Lsun/security/krb5/internal/ktab/KeyTabEntry;
16 27 7 i I
18 25 8 keyType I
19 25 9 keyValue [B
24 25 10 newEntry Lsun/security/krb5/internal/ktab/KeyTabEntry;
Exceptions:
throws sun.security.krb5.KrbException
MethodParameters:
Name Flags
service
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.getDefaultKeyTab:()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=2, args_size=1
start local 0 0: 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
1: astore 1
start local 1 2: aload 1
sipush 1282
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.writeVersion:(I)V
3: aload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
4: new sun.security.krb5.internal.ktab.KeyTab
dup
aload 0
invokespecial sun.security.krb5.internal.ktab.KeyTab.<init>:(Ljava/lang/String;)V
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
5: getstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 name Ljava/lang/String;
2 6 1 kos Lsun/security/krb5/internal/ktab/KeyTabOutputStream;
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=3, args_size=1
start local 0 0: new sun.security.krb5.internal.ktab.KeyTabOutputStream
dup
new java.io.FileOutputStream
dup
getstatic sun.security.krb5.internal.ktab.KeyTab.name:Ljava/lang/String;
invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
invokespecial sun.security.krb5.internal.ktab.KeyTabOutputStream.<init>:(Ljava/io/OutputStream;)V
1: astore 1
start local 1 2: aload 1
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.kt_vno:I
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.writeVersion:(I)V
3: iconst_0
istore 2
start local 2 4: goto 7
5: StackMap locals: sun.security.krb5.internal.ktab.KeyTabOutputStream int
StackMap stack:
aload 1
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
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.writeEntry:(Lsun/security/krb5/internal/ktab/KeyTabEntry;)V
6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 0
getfield sun.security.krb5.internal.ktab.KeyTab.entries:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
if_icmplt 5
end local 2 8: aload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/krb5/internal/ktab/KeyTab;
2 10 1 kos Lsun/security/krb5/internal/ktab/KeyTabOutputStream;
4 8 2 i I
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=3, args_size=2
start local 0 start local 1 0: 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
1: astore 2
start local 2 2: aload 2
sipush 1282
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.write16:(I)V
3: aload 2
invokevirtual sun.security.krb5.internal.ktab.KeyTabOutputStream.close:()V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/krb5/internal/ktab/KeyTab;
0 5 1 file Ljava/io/File;
2 5 2 kos Lsun/security/krb5/internal/ktab/KeyTabOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
public static void refresh();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
ifnull 4
1: getstatic sun.security.krb5.internal.ktab.KeyTab.DEBUG:Z
ifeq 3
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Refreshing Keytab"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aconst_null
putstatic sun.security.krb5.internal.ktab.KeyTab.singleton:Lsun/security/krb5/internal/ktab/KeyTab;
4: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "KeyTab.java"