public class sun.security.krb5.internal.tools.Kinit
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.krb5.internal.tools.Kinit
super_class: java.lang.Object
{
private sun.security.krb5.internal.tools.KinitOptions options;
descriptor: Lsun/security/krb5/internal/tools/KinitOptions;
flags: (0x0002) ACC_PRIVATE
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
putstatic sun.security.krb5.internal.tools.Kinit.DEBUG:Z
return
LocalVariableTable:
Start End Slot Name Signature
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: new sun.security.krb5.internal.tools.Kinit
aload 0
invokespecial sun.security.krb5.internal.tools.Kinit.<init>:([Ljava/lang/String;)V
1: goto 16
2: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 3: aconst_null
astore 2
start local 2 4: aload 1
instanceof sun.security.krb5.KrbException
ifeq 9
5: new java.lang.StringBuilder
dup
aload 1
checkcast sun.security.krb5.KrbException
invokevirtual sun.security.krb5.KrbException.krbErrorMessage:()Ljava/lang/String;
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;
6: aload 1
checkcast sun.security.krb5.KrbException
invokevirtual sun.security.krb5.KrbException.returnCodeMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
8: goto 10
9: StackMap locals: java.lang.Exception java.lang.String
StackMap stack:
aload 1
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
astore 2
10: StackMap locals:
StackMap stack:
aload 2
ifnull 13
11: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Exception: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
12: goto 14
13: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Exception: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Exception.printStackTrace:()V
15: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 2 end local 1 16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 args [Ljava/lang/String;
3 16 1 e Ljava/lang/Exception;
4 16 2 msg Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
MethodParameters:
Name Flags
args
private void <init>(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnull 2
aload 1
arraylength
ifne 4
2: StackMap locals: sun.security.krb5.internal.tools.Kinit java.lang.String[]
StackMap stack:
aload 0
new sun.security.krb5.internal.tools.KinitOptions
dup
invokespecial sun.security.krb5.internal.tools.KinitOptions.<init>:()V
putfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
new sun.security.krb5.internal.tools.KinitOptions
dup
aload 1
invokespecial sun.security.krb5.internal.tools.KinitOptions.<init>:([Ljava/lang/String;)V
putfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
5: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 6: aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
invokevirtual sun.security.krb5.internal.tools.KinitOptions.getPrincipal:()Lsun/security/krb5/PrincipalName;
astore 3
start local 3 7: aload 3
ifnull 9
8: aload 3
invokevirtual sun.security.krb5.PrincipalName.toString:()Ljava/lang/String;
astore 2
9: StackMap locals: java.lang.String sun.security.krb5.PrincipalName
StackMap stack:
getstatic sun.security.krb5.internal.tools.Kinit.DEBUG:Z
ifeq 11
10: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Principal is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.password:[C
astore 5
start local 5 12: aconst_null
astore 6
start local 6 13: aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
invokevirtual sun.security.krb5.internal.tools.KinitOptions.useKeytabFile:()Z
istore 7
start local 7 14: iload 7
ifne 29
15: aload 2
ifnonnull 19
16: new java.lang.IllegalArgumentException
dup
17: ldc " Can not obtain principal name"
18: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals: sun.security.krb5.internal.tools.Kinit java.lang.String[] java.lang.String sun.security.krb5.PrincipalName top char[] sun.security.krb5.EncryptionKey[] int
StackMap stack:
aload 5
ifnonnull 27
20: 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 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.print:(Ljava/lang/String;)V
21: getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.io.PrintStream.flush:()V
22: getstatic java.lang.System.in:Ljava/io/InputStream;
invokestatic sun.security.util.Password.readPassword:(Ljava/io/InputStream;)[C
astore 5
23: getstatic sun.security.krb5.internal.tools.Kinit.DEBUG:Z
ifeq 27
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ">>> Kinit console input "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
25: new java.lang.String
dup
aload 5
invokespecial java.lang.String.<init>:([C)V
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: StackMap locals:
StackMap stack:
new sun.security.krb5.KrbAsReqBuilder
dup
aload 3
aload 5
invokespecial sun.security.krb5.KrbAsReqBuilder.<init>:(Lsun/security/krb5/PrincipalName;[C)V
astore 4
start local 4 28: goto 48
end local 4 29: StackMap locals:
StackMap stack:
getstatic sun.security.krb5.internal.tools.Kinit.DEBUG:Z
ifeq 31
30: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> Kinit using keytab"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
31: StackMap locals:
StackMap stack:
aload 2
ifnonnull 35
32: new java.lang.IllegalArgumentException
dup
33: ldc "Principal name must be specified."
34: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
invokevirtual sun.security.krb5.internal.tools.KinitOptions.keytabFileName:()Ljava/lang/String;
astore 8
start local 8 36: aload 8
ifnull 41
37: getstatic sun.security.krb5.internal.tools.Kinit.DEBUG:Z
ifeq 41
38: getstatic java.lang.System.out:Ljava/io/PrintStream;
39: new java.lang.StringBuilder
dup
ldc ">>> Kinit keytab file name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
41: StackMap locals: java.lang.String
StackMap stack:
aload 3
aload 8
invokestatic sun.security.krb5.EncryptionKey.acquireSecretKeys:(Lsun/security/krb5/PrincipalName;Ljava/lang/String;)[Lsun/security/krb5/EncryptionKey;
astore 6
42: aload 6
ifnull 43
aload 6
arraylength
ifne 47
43: StackMap locals:
StackMap stack:
ldc "No supported key found in keytab"
astore 9
start local 9 44: aload 2
ifnull 46
45: new java.lang.StringBuilder
dup
aload 9
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " for principal "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 9
46: StackMap locals: java.lang.String
StackMap stack:
new sun.security.krb5.KrbException
dup
aload 9
invokespecial sun.security.krb5.KrbException.<init>:(Ljava/lang/String;)V
athrow
end local 9 47: StackMap locals:
StackMap stack:
new sun.security.krb5.KrbAsReqBuilder
dup
aload 3
aload 6
invokespecial sun.security.krb5.KrbAsReqBuilder.<init>:(Lsun/security/krb5/PrincipalName;[Lsun/security/krb5/EncryptionKey;)V
astore 4
end local 8 start local 4 48: StackMap locals: sun.security.krb5.internal.tools.Kinit java.lang.String[] java.lang.String sun.security.krb5.PrincipalName sun.security.krb5.KrbAsReqBuilder char[] sun.security.krb5.EncryptionKey[] int
StackMap stack:
new sun.security.krb5.internal.KDCOptions
dup
invokespecial sun.security.krb5.internal.KDCOptions.<init>:()V
astore 8
start local 8 49: iconst_1
aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.forwardable:S
aload 8
invokestatic sun.security.krb5.internal.tools.Kinit.setOptions:(IILsun/security/krb5/internal/KDCOptions;)V
50: iconst_3
aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.proxiable:S
aload 8
invokestatic sun.security.krb5.internal.tools.Kinit.setOptions:(IILsun/security/krb5/internal/KDCOptions;)V
51: aload 4
aload 8
invokevirtual sun.security.krb5.KrbAsReqBuilder.setOptions:(Lsun/security/krb5/internal/KDCOptions;)V
52: aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
invokevirtual sun.security.krb5.internal.tools.KinitOptions.getKDCRealm:()Ljava/lang/String;
astore 9
start local 9 53: aload 9
ifnonnull 55
54: invokestatic sun.security.krb5.Config.getInstance:()Lsun/security/krb5/Config;
invokevirtual sun.security.krb5.Config.getDefaultRealm:()Ljava/lang/String;
astore 9
55: StackMap locals: sun.security.krb5.internal.KDCOptions java.lang.String
StackMap stack:
getstatic sun.security.krb5.internal.tools.Kinit.DEBUG:Z
ifeq 57
56: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ">>> Kinit realm name is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
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
57: StackMap locals:
StackMap stack:
aload 9
aload 9
invokestatic sun.security.krb5.PrincipalName.tgsService:(Ljava/lang/String;Ljava/lang/String;)Lsun/security/krb5/PrincipalName;
astore 10
start local 10 58: aload 4
aload 10
invokevirtual sun.security.krb5.KrbAsReqBuilder.setTarget:(Lsun/security/krb5/PrincipalName;)V
59: getstatic sun.security.krb5.internal.tools.Kinit.DEBUG:Z
ifeq 61
60: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ">>> Creating KrbAsReq"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
61: StackMap locals: sun.security.krb5.PrincipalName
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
invokevirtual sun.security.krb5.internal.tools.KinitOptions.getAddressOption:()Z
ifeq 63
62: aload 4
invokestatic sun.security.krb5.internal.HostAddresses.getLocalAddresses:()Lsun/security/krb5/internal/HostAddresses;
invokevirtual sun.security.krb5.KrbAsReqBuilder.setAddresses:(Lsun/security/krb5/internal/HostAddresses;)V
63: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.security.krb5.KrbAsReqBuilder.action:()Lsun/security/krb5/KrbAsReqBuilder;
pop
64: aload 4
invokevirtual sun.security.krb5.KrbAsReqBuilder.getCCreds:()Lsun/security/krb5/internal/ccache/Credentials;
65: astore 11
start local 11 66: aload 4
invokevirtual sun.security.krb5.KrbAsReqBuilder.destroy:()V
67: aload 3
aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.cachename:Ljava/lang/String;
invokestatic sun.security.krb5.internal.ccache.CredentialsCache.create:(Lsun/security/krb5/PrincipalName;Ljava/lang/String;)Lsun/security/krb5/internal/ccache/CredentialsCache;
68: astore 12
start local 12 69: aload 12
ifnonnull 73
70: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Unable to create the cache file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
71: aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.cachename:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
72: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
73: StackMap locals: sun.security.krb5.internal.ccache.Credentials sun.security.krb5.internal.ccache.CredentialsCache
StackMap stack:
aload 12
aload 11
invokevirtual sun.security.krb5.internal.ccache.CredentialsCache.update:(Lsun/security/krb5/internal/ccache/Credentials;)V
74: aload 12
invokevirtual sun.security.krb5.internal.ccache.CredentialsCache.save:()V
75: aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.password:[C
ifnonnull 80
76: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "New ticket is stored in cache file "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
77: aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.cachename:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
78: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
79: goto 81
80: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
getfield sun.security.krb5.internal.tools.KinitOptions.password:[C
bipush 48
invokestatic java.util.Arrays.fill:([CC)V
81: StackMap locals:
StackMap stack:
aload 5
ifnull 83
82: aload 5
bipush 48
invokestatic java.util.Arrays.fill:([CC)V
83: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.krb5.internal.tools.Kinit.options:Lsun/security/krb5/internal/tools/KinitOptions;
84: return
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 85 0 this Lsun/security/krb5/internal/tools/Kinit;
0 85 1 args [Ljava/lang/String;
6 85 2 princName Ljava/lang/String;
7 85 3 principal Lsun/security/krb5/PrincipalName;
28 29 4 builder Lsun/security/krb5/KrbAsReqBuilder;
48 85 4 builder Lsun/security/krb5/KrbAsReqBuilder;
12 85 5 psswd [C
13 85 6 skeys [Lsun/security/krb5/EncryptionKey;
14 85 7 useKeytab Z
36 48 8 ktabName Ljava/lang/String;
44 47 9 msg Ljava/lang/String;
49 85 8 opt Lsun/security/krb5/internal/KDCOptions;
53 85 9 realm Ljava/lang/String;
58 85 10 sname Lsun/security/krb5/PrincipalName;
66 85 11 credentials Lsun/security/krb5/internal/ccache/Credentials;
69 85 12 cache Lsun/security/krb5/internal/ccache/CredentialsCache;
Exceptions:
throws java.io.IOException, sun.security.krb5.RealmException, sun.security.krb5.KrbException
MethodParameters:
Name Flags
args
private static void setOptions(int, int, sun.security.krb5.internal.KDCOptions);
descriptor: (IILsun/security/krb5/internal/KDCOptions;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
tableswitch { // -1 - 1
-1: 2
0: 1
1: 4
default: 5
}
1: StackMap locals:
StackMap stack:
goto 5
2: StackMap locals:
StackMap stack:
aload 2
iload 0
iconst_0
invokevirtual sun.security.krb5.internal.KDCOptions.set:(IZ)V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 2
iload 0
iconst_1
invokevirtual sun.security.krb5.internal.KDCOptions.set:(IZ)V
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 flag I
0 6 1 option I
0 6 2 opt Lsun/security/krb5/internal/KDCOptions;
MethodParameters:
Name Flags
flag
option
opt
}
SourceFile: "Kinit.java"