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=5, 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 9
2: aload 0
iconst_0
aaload
ldc "-?"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 6
3: aload 0
iconst_0
aaload
ldc "-h"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 6
4: aload 0
iconst_0
aaload
ldc "--help"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 6
5: aload 0
iconst_0
aaload
ldc "-help"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 9
6: StackMap locals: sun.security.krb5.internal.tools.Ktab
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.printHelp:()V
7: iconst_0
invokestatic java.lang.System.exit:(I)V
8: return
9: StackMap locals:
StackMap stack:
aload 0
ifnull 10
aload 0
arraylength
ifne 12
10: StackMap locals:
StackMap stack:
aload 1
bipush 108
putfield sun.security.krb5.internal.tools.Ktab.action:C
11: goto 13
12: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual sun.security.krb5.internal.tools.Ktab.processArgs:([Ljava/lang/String;)V
13: 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;
14: aload 1
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual sun.security.krb5.internal.ktab.KeyTab.isMissing:()Z
ifeq 22
aload 1
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 97
if_icmpeq 22
15: aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
ifnonnull 18
16: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "No default key table exists."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: goto 21
18: StackMap locals:
StackMap stack:
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
19: 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;
20: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: StackMap locals:
StackMap stack:
iconst_m1
invokestatic java.lang.System.exit:(I)V
22: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual sun.security.krb5.internal.ktab.KeyTab.isValid:()Z
ifne 30
23: aload 1
getfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
ifnonnull 26
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "The format of the default key table is incorrect."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: goto 29
26: 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
27: 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;
28: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: StackMap locals:
StackMap stack:
iconst_m1
invokestatic java.lang.System.exit:(I)V
30: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.krb5.internal.tools.Ktab.action:C
lookupswitch { // 3
97: 33
100: 35
108: 31
default: 37
}
31: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.listKt:()V
32: goto 38
33: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.addEntry:()V
34: goto 38
35: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.krb5.internal.tools.Ktab.deleteEntry:()V
36: goto 38
37: StackMap locals:
StackMap stack:
aload 1
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "A command must be provided"
aastore
invokevirtual sun.security.krb5.internal.tools.Ktab.error:([Ljava/lang/String;)V
38: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 args [Ljava/lang/String;
1 39 1 ktab Lsun/security/krb5/internal/tools/Ktab;
MethodParameters:
Name Flags
args
void processArgs(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=8, locals=6, 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 84
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;
dup
astore 4
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 9
-128108153: 5
1492: 6
1495: 7
1496: 8
1497: 9
1502: 10
1503: 11
1505: 12
1511: 13
default: 62
}
StackMap locals: java.lang.String
StackMap stack:
5: aload 4
ldc "-append"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 60
goto 62
StackMap locals:
StackMap stack:
6: aload 4
ldc "-a"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
goto 62
StackMap locals:
StackMap stack:
7: aload 4
ldc "-d"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
goto 62
StackMap locals:
StackMap stack:
8: aload 4
ldc "-e"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
goto 62
StackMap locals:
StackMap stack:
9: aload 4
ldc "-f"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 58
goto 62
StackMap locals:
StackMap stack:
10: aload 4
ldc "-k"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 48
goto 62
StackMap locals:
StackMap stack:
11: aload 4
ldc "-l"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
goto 62
StackMap locals:
StackMap stack:
12: aload 4
ldc "-n"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 40
goto 62
StackMap locals:
StackMap stack:
13: aload 4
ldc "-t"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 56
goto 62
14: StackMap locals:
StackMap stack:
aload 0
bipush 108
putfield sun.security.krb5.internal.tools.Ktab.action:C
15: goto 83
16: StackMap locals:
StackMap stack:
aload 0
bipush 97
putfield sun.security.krb5.internal.tools.Ktab.action:C
17: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 18
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 19
18: 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
19: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
putfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
20: goto 83
21: StackMap locals:
StackMap stack:
aload 0
bipush 100
putfield sun.security.krb5.internal.tools.Ktab.action:C
22: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 23
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 24
23: 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
24: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
putfield sun.security.krb5.internal.tools.Ktab.principal:Ljava/lang/String;
25: goto 83
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 108
if_icmpne 29
27: aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.showEType:Z
28: goto 83
StackMap locals:
StackMap stack:
29: aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 100
if_icmpne 38
30: iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 31
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 32
31: 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
32: 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
33: aload 0
getfield sun.security.krb5.internal.tools.Ktab.etype:I
ifgt 83
34: new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
athrow
35: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
36: 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
37: goto 83
38: 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
39: goto 83
40: StackMap locals:
StackMap stack:
iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 41
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 42
41: 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
42: 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
43: aload 0
getfield sun.security.krb5.internal.tools.Ktab.vAdd:I
ifge 83
44: new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
athrow
45: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
46: 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
47: goto 83
48: StackMap locals:
StackMap stack:
iinc 3 1
iload 3
aload 1
arraylength
if_icmpge 49
aload 1
iload 3
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 50
49: 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
50: StackMap locals:
StackMap stack:
aload 1
iload 3
aaload
invokevirtual java.lang.String.length:()I
iconst_5
if_icmplt 54
51: 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 54
52: 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;
53: goto 83
54: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 3
aaload
putfield sun.security.krb5.internal.tools.Ktab.name:Ljava/lang/String;
55: goto 83
56: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.showTime:Z
57: goto 83
58: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.forced:Z
59: goto 83
60: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.krb5.internal.tools.Ktab.append:Z
61: goto 83
62: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
ldc "Unknown command: "
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
63: goto 83
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 82
StackMap locals:
StackMap stack:
69: aload 0
getfield sun.security.krb5.internal.tools.Ktab.action:C
bipush 100
if_icmpne 81
70: aload 1
iload 3
aaload
dup
astore 5
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
96673: 71
110119: 72
default: 75
}
StackMap locals: sun.security.krb5.internal.tools.Ktab java.lang.String[] int int top java.lang.String
StackMap stack:
71: aload 5
ldc "all"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 73
goto 75
StackMap locals:
StackMap stack:
72: aload 5
ldc "old"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 74
goto 75
73: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield sun.security.krb5.internal.tools.Ktab.vDel:I
goto 82
74: StackMap locals:
StackMap stack:
aload 0
bipush -2
putfield sun.security.krb5.internal.tools.Ktab.vDel:I
goto 82
75: 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
76: aload 0
getfield sun.security.krb5.internal.tools.Ktab.vDel:I
ifge 82
77: new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
athrow
78: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
79: 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
80: goto 82
81: StackMap locals: sun.security.krb5.internal.tools.Ktab java.lang.String[] int int
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
82: StackMap locals:
StackMap stack:
iconst_1
istore 2
83: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
84: iload 3
aload 1
arraylength
if_icmplt 3
end local 3 85: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 86 0 this Lsun/security/krb5/internal/tools/Ktab;
0 86 1 args [Ljava/lang/String;
1 86 2 argAlreadyAppeared Z
2 85 3 i I
Exception table:
from to target type
32 35 35 Class java.lang.NumberFormatException
42 45 45 Class java.lang.NumberFormatException
75 78 78 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;
aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual 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
aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual 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;
aload 0
getfield sun.security.krb5.internal.tools.Ktab.table:Lsun/security/krb5/internal/ktab/KeyTab;
invokevirtual 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 occurred 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 occurred 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"