public class sun.security.krb5.internal.tools.Ktab
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.krb5.internal.tools.Ktab
super_class: java.lang.Object
{
sun.security.krb5.internal.ktab.KeyTab table;
descriptor: Lsun/security/krb5/internal/ktab/KeyTab;
flags: (0x0000)
char action;
descriptor: C
flags: (0x0000)
java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String principal;
descriptor: Ljava/lang/String;
flags: (0x0000)
boolean showEType;
descriptor: Z
flags: (0x0000)
boolean showTime;
descriptor: Z
flags: (0x0000)
int etype;
descriptor: I
flags: (0x0000)
char[] password;
descriptor: [C
flags: (0x0000)
boolean forced;
descriptor: Z
flags: (0x0000)
boolean append;
descriptor: Z
flags: (0x0000)
int vDel;
descriptor: I
flags: (0x0000)
int vAdd;
descriptor: I
flags: (0x0000)
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_m1
putfield sun.security.krb5.internal.tools.Ktab.etype:I
2: aload 0
aconst_null
putfield sun.security.krb5.internal.tools.Ktab.password:[C
3: aload 0
iconst_0
putfield sun.security.krb5.internal.tools.Ktab.forced:Z
4: aload 0
iconst_0
putfield sun.security.krb5.internal.tools.Ktab.append:Z
5: aload 0
iconst_m1
putfield sun.security.krb5.internal.tools.Ktab.vDel:I
6: aload 0
iconst_m1
putfield sun.security.krb5.internal.tools.Ktab.vAdd:I
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/krb5/internal/tools/Ktab;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new sun.security.krb5.internal.tools.Ktab
dup
invokespecial sun.security.krb5.internal.tools.Ktab.<init>:()V
astore 1
start local 1 1: aload 0
arraylength
iconst_1
if_icmpne 4
aload 0
iconst_0
aaload
ldc "-help"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 4
2: aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.printHelp:()V
3: return
4: StackMap locals: sun.security.krb5.internal.tools.Ktab
StackMap stack:
aload 0
ifnull 5
aload 0
arraylength
ifne 7
5: StackMap locals:
StackMap stack:
aload 1
bipush 108
putfield sun.security.krb5.internal.tools.Ktab.action:C
6: goto 8
7: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual sun.security.krb5.internal.tools.Ktab.processArgs:([Ljava/lang/String;)V
8: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
ifnonnull 17
9: aload 1
invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:()Lsun/security/krb5/internal/ktab/KeyTab;
putfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
10: aload 1
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
ifnonnull 40
11: aload 1
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 97
if_icmpne 14
12: aload 1
invokestatic sun.security.krb5.internal.ktab.KeyTab.create:()Lsun/security/krb5/internal/ktab/KeyTab;
putfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
13: goto 40
14: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "No default key table exists."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: iconst_m1
invokestatic java.lang.System.exit:(I)V
16: goto 40
17: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 97
if_icmpeq 24
18: new java.io.File
dup
aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.exists:()Z
ifne 24
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Key table "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " does not exist."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
22: iconst_m1
invokestatic java.lang.System.exit:(I)V
23: goto 25
24: StackMap locals:
StackMap stack:
aload 1
aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
invokestatic sun.security.krb5.internal.ktab.KeyTab.getInstance:(Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
putfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
25: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
ifnonnull 40
26: aload 1
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 97
if_icmpne 29
27: aload 1
aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
invokestatic sun.security.krb5.internal.ktab.KeyTab.create:(Ljava/lang/String;)Lsun/security/krb5/internal/ktab/KeyTab;
putfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
28: goto 40
29: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "The format of key table "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
30: aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is incorrect."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
32: iconst_m1
invokestatic java.lang.System.exit:(I)V
33: goto 40
StackMap locals:
StackMap stack: sun.security.krb5.RealmException
34: pop
35: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error loading key table."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
36: iconst_m1
invokestatic java.lang.System.exit:(I)V
goto 40
37: StackMap locals:
StackMap stack: java.io.IOException
pop
38: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error loading key table."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
39: iconst_m1
invokestatic java.lang.System.exit:(I)V
40: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.krb5.internal.tools.Ktab.action:C
lookupswitch { // 3
97: 43
100: 45
108: 41
default: 47
}
41: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.listKt:()V
42: goto 48
43: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.addEntry:()V
44: goto 48
45: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.deleteEntry:()V
46: goto 48
47: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.printHelp:()V
48: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 args [Ljava/lang/String;
1 49 1 ktab Lsun/security/krb5/internal/tools/Ktab;
Exception table:
from to target type
8 33 34 Class sun.security.krb5.RealmException
8 33 37 Class java.io.IOException
MethodParameters:
Name Flags
args
void processArgs(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 82
3: StackMap locals: int int
StackMap stack:
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 64
4: aload 1
iload 3
aaload
getstatic java.util.Locale.US:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 4
start local 4 5: ldc "-l"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: aload 0
bipush 108
putfield sun.security.krb5.internal.tools.Ktab.action:C
7: goto 81
8: StackMap locals: java.lang.String
StackMap stack:
ldc "-a"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
9: aload 0
bipush 97
putfield sun.security.krb5.internal.tools.Ktab.action:C
10: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 11
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
11: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "A principal name must be specified after -a"
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
putfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
13: goto 81
14: StackMap locals:
StackMap stack:
ldc "-d"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
15: aload 0
bipush 100
putfield sun.security.krb5.internal.tools.Ktab.action:C
16: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 17
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 18
17: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "A principal name must be specified after -d"
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
putfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
19: goto 81
20: StackMap locals:
StackMap stack:
ldc "-e"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
21: aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 108
if_icmpne 24
22: aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.showEType:Z
23: goto 81
StackMap locals:
StackMap stack:
24: aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 100
if_icmpne 33
25: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 26
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 27
26: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "An etype must be specified after -e"
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
27: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
putfield sun.security.krb5.internal.tools.Ktab.etype:I
28: aload 0
getfield sun.security.krb5.internal.tools.Ktab.etype:I
ifgt 81
29: new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
athrow
30: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
31: aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
aload 1
iload 3
aaload
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not a valid etype"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
32: goto 81
33: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
aload 1
iload 3
aaload
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not valid after -"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
34: goto 81
35: StackMap locals:
StackMap stack:
ldc "-n"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 44
36: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 37
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 38
37: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "A KVNO must be specified after -n"
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
38: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
putfield sun.security.krb5.internal.tools.Ktab.vAdd:I
39: aload 0
getfield sun.security.krb5.internal.tools.Ktab.vAdd:I
ifge 81
40: new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
athrow
41: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
42: aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
aload 1
iload 3
aaload
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not a valid KVNO"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
43: goto 81
44: StackMap locals:
StackMap stack:
ldc "-k"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 53
45: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 46
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 47
46: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "A keytab name must be specified after -k"
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
47: StackMap locals:
StackMap stack:
aload 1
iload 3
aaload
invokevirtual java.lang.String.length:()I
iconst_5
if_icmplt 51
48: aload 1
iload 3
aaload
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 51
49: aload 0
aload 1
iload 3
aaload
iconst_5
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
putfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
50: goto 81
51: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
putfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
52: goto 81
53: StackMap locals:
StackMap stack:
ldc "-t"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 56
54: aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.showTime:Z
55: goto 81
56: StackMap locals:
StackMap stack:
ldc "-f"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 59
57: aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.forced:Z
58: goto 81
59: StackMap locals:
StackMap stack:
ldc "-append"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 62
60: aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.append:Z
61: goto 81
62: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.krb5.internal.tools.Ktab.printHelp:()V
end local 4 63: goto 81
64: StackMap locals:
StackMap stack:
iload 2
ifeq 66
65: aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
ldc "Useless extra argument "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iload 3
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
66: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 97
if_icmpne 69
67: aload 0
aload 1
iload 3
aaload
invokevirtual java.lang.String.toCharArray:()[C
putfield sun.security.krb5.internal.tools.Ktab.password:[C
68: goto 80
StackMap locals:
StackMap stack:
69: aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 100
if_icmpne 79
70: aload 1
iload 3
aaload
astore 4
start local 4 71: ldc "all"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 72
aload 0
iconst_m1
putfield sun.security.krb5.internal.tools.Ktab.vDel:I
goto 80
72: StackMap locals: java.lang.String
StackMap stack:
ldc "old"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 73
aload 0
bipush -2
putfield sun.security.krb5.internal.tools.Ktab.vDel:I
goto 80
73: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
putfield sun.security.krb5.internal.tools.Ktab.vDel:I
74: aload 0
getfield sun.security.krb5.internal.tools.Ktab.vDel:I
ifge 80
75: new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
athrow
76: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
77: aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
aload 1
iload 3
aaload
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not a valid KVNO"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
end local 4 78: goto 80
79: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
ldc "Useless extra argument "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iload 3
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
80: StackMap locals:
StackMap stack:
iconst_1
istore 2
81: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
82: iload 3
aload 1
arraylength
if_icmplt 3
end local 3 83: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 84 0 this Lsun/security/krb5/internal/tools/Ktab;
0 84 1 args [Ljava/lang/String;
1 84 2 argAlreadyAppeared Z
2 83 3 i I
5 63 4 argLower Ljava/lang/String;
71 78 4 ar Ljava/lang/String;
Exception table:
from to target type
27 30 30 Class java.lang.NumberFormatException
38 41 41 Class java.lang.NumberFormatException
73 76 76 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
args
void addEntry();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: new sun.security.krb5.PrincipalName
dup
aload 0
getfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;)V
astore 1
2: goto 9
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName
StackMap stack: sun.security.krb5.KrbException
3: astore 2
start local 2 4: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Failed to add "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc " to keytab."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: aload 2
invokevirtual sun.security.krb5.KrbException.printStackTrace:()V
8: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 2 9: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Ktab.password:[C
ifnonnull 20
10: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
getstatic java.lang.System.in:Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
11: astore 2
start local 2 12: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Password for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
13: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
14: aload 0
aload 2
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
putfield sun.security.krb5.internal.tools.Ktab.password:[C
end local 2 15: goto 20
StackMap locals:
StackMap stack: java.io.IOException
16: astore 2
start local 2 17: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Failed to read the password."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: aload 2
invokevirtual java.io.IOException.printStackTrace:()V
19: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 2 20: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
aload 1
aload 0
getfield sun.security.krb5.internal.tools.Ktab.password:[C
aload 0
getfield sun.security.krb5.internal.tools.Ktab.vAdd:I
aload 0
getfield sun.security.krb5.internal.tools.Ktab.append:Z
invokevirtual sun.security.krb5.internal.ktab.KeyTab.addEntry:(Lsun/security/krb5/PrincipalName;[CIZ)V
21: aload 0
getfield sun.security.krb5.internal.tools.Ktab.password:[C
bipush 48
invokestatic java.util.Arrays.fill:([CC)V
22: aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual sun.security.krb5.internal.ktab.KeyTab.save:()V
23: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Done!"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Service key for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc " is saved in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokestatic sun.security.krb5.internal.ktab.KeyTab.tabName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: goto 37
StackMap locals:
StackMap stack: sun.security.krb5.KrbException
28: astore 2
start local 2 29: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Failed to add "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " to keytab."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
30: aload 2
invokevirtual sun.security.krb5.KrbException.printStackTrace:()V
31: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 2 32: goto 37
33: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 34: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Failed to save new entry."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
35: aload 2
invokevirtual java.io.IOException.printStackTrace:()V
36: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 2 37: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lsun/security/krb5/internal/tools/Ktab;
1 38 1 pname Lsun/security/krb5/PrincipalName;
4 9 2 e Lsun/security/krb5/KrbException;
12 15 2 cis Ljava/io/BufferedReader;
17 20 2 e Ljava/io/IOException;
29 32 2 e Lsun/security/krb5/KrbException;
34 37 2 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class sun.security.krb5.KrbException
10 15 16 Class java.io.IOException
20 27 28 Class sun.security.krb5.KrbException
20 27 33 Class java.io.IOException
void listKt();
descriptor: ()V
flags: (0x0000)
Code:
stack=8, locals=7, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Keytab name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic sun.security.krb5.internal.ktab.KeyTab.tabName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual sun.security.krb5.internal.ktab.KeyTab.getEntries:()[Lsun/security/krb5/internal/ktab/KeyTabEntry;
astore 1
start local 1 2: aload 1
ifnull 70
aload 1
arraylength
ifle 70
3: aload 1
arraylength
iconst_1
iadd
aload 0
getfield sun.security.krb5.internal.tools.Ktab.showTime:Z
ifeq 4
iconst_3
goto 5
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.internal.ktab.KeyTabEntry[]
StackMap stack: int
4: iconst_2
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.internal.ktab.KeyTabEntry[]
StackMap stack: int int
5: multianewarray [[Ljava/lang/String; 2
astore 2
start local 2 6: iconst_0
istore 3
start local 3 7: aload 2
iconst_0
aaload
iload 3
iinc 3 1
ldc "KVNO"
aastore
8: aload 0
getfield sun.security.krb5.internal.tools.Ktab.showTime:Z
ifeq 9
aload 2
iconst_0
aaload
iload 3
iinc 3 1
ldc "Timestamp"
aastore
9: StackMap locals: java.lang.String[][] int
StackMap stack:
aload 2
iconst_0
aaload
iload 3
iinc 3 1
ldc "Principal"
aastore
10: iconst_0
istore 4
start local 4 11: goto 30
12: StackMap locals: int
StackMap stack:
iconst_0
istore 3
13: aload 2
iload 4
iconst_1
iadd
aaload
iload 3
iinc 3 1
aload 1
iload 4
aaload
invokevirtual sun.security.krb5.internal.ktab.KeyTabEntry.getKey:()Lsun/security/krb5/EncryptionKey;
14: invokevirtual sun.security.krb5.EncryptionKey.getKeyVersionNumber:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
15: aastore
16: aload 0
getfield sun.security.krb5.internal.tools.Ktab.showTime:Z
ifeq 21
aload 2
iload 4
iconst_1
iadd
aaload
iload 3
iinc 3 1
17: iconst_3
iconst_3
18: invokestatic java.text.DateFormat.getDateTimeInstance:(II)Ljava/text/DateFormat;
19: new java.util.Date
dup
aload 1
iload 4
aaload
invokevirtual sun.security.krb5.internal.ktab.KeyTabEntry.getTimeStamp:()Lsun/security/krb5/internal/KerberosTime;
invokevirtual sun.security.krb5.internal.KerberosTime.getTime:()J
invokespecial java.util.Date.<init>:(J)V
20: invokevirtual java.text.DateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
aastore
21: StackMap locals:
StackMap stack:
aload 1
iload 4
aaload
invokevirtual sun.security.krb5.internal.ktab.KeyTabEntry.getService:()Lsun/security/krb5/PrincipalName;
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
astore 5
start local 5 22: aload 0
getfield sun.security.krb5.internal.tools.Ktab.showEType:Z
ifeq 28
23: aload 1
iload 4
aaload
invokevirtual sun.security.krb5.internal.ktab.KeyTabEntry.getKey:()Lsun/security/krb5/EncryptionKey;
invokevirtual sun.security.krb5.EncryptionKey.getEType:()I
istore 6
start local 6 24: aload 2
iload 4
iconst_1
iadd
aaload
iload 3
iinc 3 1
new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: iload 6
invokestatic sun.security.krb5.internal.crypto.EType.toString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: aastore
end local 6 27: goto 29
28: StackMap locals: java.lang.String
StackMap stack:
aload 2
iload 4
iconst_1
iadd
aaload
iload 3
iinc 3 1
aload 5
aastore
end local 5 29: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
30: iload 4
aload 1
arraylength
if_icmplt 12
end local 4 31: iload 3
newarray 10
astore 4
start local 4 32: iconst_0
istore 5
start local 5 33: goto 42
34: StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.internal.ktab.KeyTabEntry[] java.lang.String[][] int int[] int
StackMap stack:
iconst_0
istore 6
start local 6 35: goto 39
36: StackMap locals: int
StackMap stack:
aload 2
iload 6
aaload
iload 5
aaload
invokevirtual java.lang.String.length:()I
aload 4
iload 5
iaload
if_icmple 38
37: aload 4
iload 5
aload 2
iload 6
aaload
iload 5
aaload
invokevirtual java.lang.String.length:()I
iastore
38: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
39: iload 6
aload 1
arraylength
if_icmple 36
end local 6 40: iload 5
ifeq 41
aload 4
iload 5
aload 4
iload 5
iaload
ineg
iastore
41: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
42: iload 5
iload 3
if_icmplt 34
end local 5 43: iconst_0
istore 5
start local 5 44: goto 47
45: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
iload 5
iaload
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
iconst_0
aaload
iload 5
aaload
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
46: iinc 5 1
StackMap locals:
StackMap stack:
47: iload 5
iload 3
if_icmplt 45
end local 5 48: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
49: iconst_0
istore 5
start local 5 50: goto 57
51: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 52: goto 54
StackMap locals: int
StackMap stack:
53: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "-"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
iinc 6 1
StackMap locals:
StackMap stack:
54: iload 6
aload 4
iload 5
iaload
invokestatic java.lang.Math.abs:(I)I
if_icmplt 53
end local 6 55: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
56: iinc 5 1
StackMap locals:
StackMap stack:
57: iload 5
iload 3
if_icmplt 51
end local 5 58: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
59: iconst_0
istore 5
start local 5 60: goto 68
61: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 62: goto 65
63: StackMap locals: int
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "%"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
iload 6
iaload
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "s "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
iload 5
iconst_1
iadd
aaload
iload 6
aaload
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
64: iinc 6 1
StackMap locals:
StackMap stack:
65: iload 6
iload 3
if_icmplt 63
end local 6 66: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
67: iinc 5 1
StackMap locals:
StackMap stack:
68: iload 5
aload 1
arraylength
if_icmplt 61
end local 5 end local 4 end local 3 end local 2 69: goto 71
70: StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.internal.ktab.KeyTabEntry[]
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "0 entry."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
71: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 72 0 this Lsun/security/krb5/internal/tools/Ktab;
2 72 1 entries [Lsun/security/krb5/internal/ktab/KeyTabEntry;
6 69 2 output [[Ljava/lang/String;
7 69 3 column I
11 31 4 i I
22 29 5 princ Ljava/lang/String;
24 27 6 e I
32 69 4 width [I
33 43 5 j I
35 40 6 i I
44 48 5 j I
50 58 5 j I
52 55 6 k I
60 69 5 i I
62 66 6 j I
void deleteEntry();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: new sun.security.krb5.PrincipalName
dup
aload 0
getfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
invokespecial sun.security.krb5.PrincipalName.<init>:(Ljava/lang/String;)V
astore 1
2: aload 0
getfield sun.security.krb5.internal.tools.Ktab.forced:Z
ifne 31
3: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
getstatic java.lang.System.in:Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
4: astore 3
start local 3 5: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Are you sure you want to delete service key(s) for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 1
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.krb5.internal.tools.Ktab.etype:I
iconst_m1
if_icmpne 8
ldc "all etypes"
goto 9
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName top java.io.BufferedReader
StackMap stack: java.io.PrintStream java.lang.StringBuilder
8: new java.lang.StringBuilder
dup
ldc "etype="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.krb5.internal.tools.Ktab.etype:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName top java.io.BufferedReader
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: aload 0
getfield sun.security.krb5.internal.tools.Ktab.vDel:I
iconst_m1
if_icmpne 11
ldc "all kvno"
goto 13
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName top java.io.BufferedReader
StackMap stack: java.io.PrintStream java.lang.StringBuilder
11: aload 0
getfield sun.security.krb5.internal.tools.Ktab.vDel:I
bipush -2
if_icmpne 12
ldc "old kvno"
goto 13
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName top java.io.BufferedReader
StackMap stack: java.io.PrintStream java.lang.StringBuilder
12: new java.lang.StringBuilder
dup
ldc "kvno="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.krb5.internal.tools.Ktab.vDel:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName top java.io.BufferedReader
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc ") in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokestatic sun.security.krb5.internal.ktab.KeyTab.tabName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "? (Y/[N]): "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
16: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
17: aload 3
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 2
start local 2 18: aload 2
ldc "Y"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 31
19: aload 2
ldc "Yes"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 20
goto 31
20: StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName java.lang.String java.io.BufferedReader
StackMap stack:
iconst_0
invokestatic java.lang.System.exit:(I)V
end local 3 end local 2 21: goto 31
StackMap locals: sun.security.krb5.internal.tools.Ktab sun.security.krb5.PrincipalName
StackMap stack: sun.security.krb5.KrbException
22: astore 2
start local 2 23: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error occured while deleting the entry. Deletion failed."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: aload 2
invokevirtual sun.security.krb5.KrbException.printStackTrace:()V
25: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 2 26: goto 31
27: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 28: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error occured while deleting the entry. Deletion failed."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: aload 2
invokevirtual java.io.IOException.printStackTrace:()V
30: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 2 31: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
aload 1
aload 0
getfield sun.security.krb5.internal.tools.Ktab.etype:I
aload 0
getfield sun.security.krb5.internal.tools.Ktab.vDel:I
invokevirtual sun.security.krb5.internal.ktab.KeyTab.deleteEntries:(Lsun/security/krb5/PrincipalName;II)I
istore 2
start local 2 32: iload 2
ifne 36
33: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "No matched entry in the keytab. Deletion fails."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
34: iconst_m1
invokestatic java.lang.System.exit:(I)V
35: goto 43
36: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual sun.security.krb5.internal.ktab.KeyTab.save:()V
37: goto 42
StackMap locals:
StackMap stack: java.io.IOException
38: astore 3
start local 3 39: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error occurs while saving the keytab. Deletion fails."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
40: aload 3
invokevirtual java.io.IOException.printStackTrace:()V
41: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 3 42: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Done! "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " entries removed."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
43: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lsun/security/krb5/internal/tools/Ktab;
1 44 1 pname Lsun/security/krb5/PrincipalName;
18 21 2 answer Ljava/lang/String;
5 21 3 cis Ljava/io/BufferedReader;
23 26 2 e Lsun/security/krb5/KrbException;
28 31 2 e Ljava/io/IOException;
32 44 2 count I
39 42 3 e Ljava/io/IOException;
Exception table:
from to target type
1 21 22 Class sun.security.krb5.KrbException
1 21 27 Class java.io.IOException
36 37 38 Class java.io.IOException
void error(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0080) ACC_VARARGS
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: sun.security.krb5.internal.tools.Ktab java.lang.String[] top int int java.lang.String[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 2 3: iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: aload 0
invokevirtual sun.security.krb5.internal.tools.Ktab.printHelp:()V
6: iconst_m1
invokestatic java.lang.System.exit:(I)V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/krb5/internal/tools/Ktab;
0 8 1 errors [Ljava/lang/String;
2 3 2 error Ljava/lang/String;
MethodParameters:
Name Flags
errors
void printHelp();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\nUsage: ktab <commands> <options>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Available commands:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "-l [-e] [-t]\n list the keytab name and entries. -e with etype, -t with timestamp."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "-a <principal name> [<password>] [-n <kvno>] [-append]\n add new key entries to the keytab for the given principal name with\n optional <password>. If a <kvno> is specified, new keys' Key Version\n Numbers equal to the value, otherwise, automatically incrementing\n the Key Version Numbers. If -append is specified, new keys are\n appended to the keytab, otherwise, old keys for the\n same principal are removed."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "-d <principal name> [-f] [-e <etype>] [<kvno> | all | old]\n delete key entries from the keytab for the specified principal. If\n <kvno> is specified, delete keys whose Key Version Numbers match\n kvno. If \"all\" is specified, delete all keys. If \"old\" is specified,\n delete all keys except those with the highest kvno. Default action\n is \"all\". If <etype> is specified, only keys of this encryption type\n are deleted. <etype> should be specified as the numberic value etype\n defined in RFC 3961, section 8. A prompt to confirm the deletion is\n displayed unless -f is specified."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
8: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Common option(s):"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.println:()V
10: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "-k <keytab name>\n specify keytab name and path with prefix FILE:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/krb5/internal/tools/Ktab;
}
SourceFile: "Ktab.java"