public class sun.security.krb5.internal.ktab.KeyTabInputStream extends sun.security.krb5.internal.util.KrbDataInputStream implements sun.security.krb5.internal.ktab.KeyTabConstants
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.krb5.internal.ktab.KeyTabInputStream
super_class: sun.security.krb5.internal.util.KrbDataInputStream
{
boolean DEBUG;
descriptor: Z
flags: (0x0000)
int index;
descriptor: I
flags: (0x0000)
public void <init>(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.security.krb5.internal.util.KrbDataInputStream.<init>:(Ljava/io/InputStream;)V
1: aload 0
getstatic sun.security.krb5.internal.Krb5.DEBUG:Z
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.DEBUG:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/krb5/internal/ktab/KeyTabInputStream;
0 3 1 is Ljava/io/InputStream;
MethodParameters:
Name Flags
is
int readEntryLength();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_4
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/krb5/internal/ktab/KeyTabInputStream;
Exceptions:
throws java.io.IOException
sun.security.krb5.internal.ktab.KeyTabEntry readEntry(int, int);
descriptor: (II)Lsun/security/krb5/internal/ktab/KeyTabEntry;
flags: (0x0000)
Code:
stack=8, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
1: aload 0
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
ifne 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
ifge 12
4: aload 0
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
ineg
i2l
lstore 3
start local 3 5: goto 10
6: StackMap locals: long
StackMap stack:
aload 0
lload 3
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.skip:(J)J
lstore 5
start local 5 7: lload 5
lconst_0
lcmp
ifne 9
8: new java.io.IOException
dup
ldc "Premature end of stream reached"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: long
StackMap stack:
lload 3
lload 5
lsub
lstore 3
end local 5 10: StackMap locals:
StackMap stack:
lload 3
lconst_0
lcmp
ifgt 6
11: aconst_null
areturn
end local 3 12: StackMap locals:
StackMap stack:
aload 0
iconst_2
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
istore 3
start local 3 13: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_2
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
14: iload 2
sipush 1281
if_icmpne 16
15: iinc 3 -1
16: StackMap locals: int
StackMap stack:
new sun.security.krb5.Realm
dup
aload 0
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.readName:()Ljava/lang/String;
invokespecial sun.security.krb5.Realm.<init>:(Ljava/lang/String;)V
astore 4
start local 4 17: iload 3
anewarray java.lang.String
astore 5
start local 5 18: iconst_0
istore 6
start local 6 19: goto 22
20: StackMap locals: sun.security.krb5.Realm java.lang.String[] int
StackMap stack:
aload 5
iload 6
aload 0
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.readName:()Ljava/lang/String;
aastore
21: iinc 6 1
StackMap locals:
StackMap stack:
22: iload 6
iload 3
if_icmplt 20
end local 6 23: aload 0
iconst_4
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
istore 6
start local 6 24: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_4
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
25: new sun.security.krb5.PrincipalName
dup
iload 6
aload 5
aload 4
invokespecial sun.security.krb5.PrincipalName.<init>:(I[Ljava/lang/String;Lsun/security/krb5/Realm;)V
astore 7
start local 7 26: aload 0
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.readTimeStamp:()Lsun/security/krb5/internal/KerberosTime;
astore 8
start local 8 27: aload 0
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:()I
sipush 255
iand
istore 9
start local 9 28: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_1
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
29: aload 0
iconst_2
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
istore 10
start local 10 30: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_2
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
31: aload 0
iconst_2
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
istore 11
start local 11 32: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_2
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
33: aload 0
iload 11
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.readKey:(I)[B
astore 12
start local 12 34: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iload 11
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
35: aload 0
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_4
if_icmplt 40
36: aload 0
iconst_4
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
istore 13
start local 13 37: iload 13
ifeq 39
38: iload 13
istore 9
39: StackMap locals: sun.security.krb5.internal.ktab.KeyTabInputStream int int int sun.security.krb5.Realm java.lang.String[] int sun.security.krb5.PrincipalName sun.security.krb5.internal.KerberosTime int int int byte[] int
StackMap stack:
aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_4
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
end local 13 40: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
ifge 42
41: new sun.security.krb5.RealmException
dup
ldc "Keytab is corrupted"
invokespecial sun.security.krb5.RealmException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
i2l
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.skip:(J)J
pop2
43: new sun.security.krb5.internal.ktab.KeyTabEntry
dup
aload 7
aload 4
aload 8
iload 9
iload 10
aload 12
invokespecial sun.security.krb5.internal.ktab.KeyTabEntry.<init>:(Lsun/security/krb5/PrincipalName;Lsun/security/krb5/Realm;Lsun/security/krb5/internal/KerberosTime;II[B)V
areturn
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 44 0 this Lsun/security/krb5/internal/ktab/KeyTabInputStream;
0 44 1 entryLen I
0 44 2 ktVersion I
5 12 3 n J
7 10 5 n2 J
13 44 3 principalNum I
17 44 4 realm Lsun/security/krb5/Realm;
18 44 5 nameParts [Ljava/lang/String;
19 23 6 i I
24 44 6 nameType I
26 44 7 service Lsun/security/krb5/PrincipalName;
27 44 8 timeStamp Lsun/security/krb5/internal/KerberosTime;
28 44 9 keyVersion I
30 44 10 keyType I
32 44 11 keyLength I
34 44 12 keyblock [B
37 40 13 extKvno I
Exceptions:
throws java.io.IOException, sun.security.krb5.RealmException
MethodParameters:
Name Flags
entryLen
ktVersion
byte[] readKey(int);
descriptor: (I)[B
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
newarray 8
astore 2
start local 2 1: aload 0
aload 2
iconst_0
iload 1
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:([BII)I
pop
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/krb5/internal/ktab/KeyTabInputStream;
0 3 1 length I
1 3 2 bytes [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
length
sun.security.krb5.internal.KerberosTime readTimeStamp();
descriptor: ()Lsun/security/krb5/internal/KerberosTime;
flags: (0x0000)
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_4
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
1: new sun.security.krb5.internal.KerberosTime
dup
aload 0
iconst_4
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
i2l
ldc 1000
lmul
invokespecial sun.security.krb5.internal.KerberosTime.<init>:(J)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/krb5/internal/ktab/KeyTabInputStream;
Exceptions:
throws java.io.IOException
java.lang.String readName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
iconst_2
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:(I)I
istore 2
start local 2 1: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iconst_2
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
2: iload 2
newarray 8
astore 3
start local 3 3: aload 0
aload 3
iconst_0
iload 2
invokevirtual sun.security.krb5.internal.ktab.KeyTabInputStream.read:([BII)I
pop
4: aload 0
dup
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
iload 2
isub
putfield sun.security.krb5.internal.ktab.KeyTabInputStream.index:I
5: new java.lang.String
dup
aload 3
invokespecial java.lang.String.<init>:([B)V
astore 1
start local 1 6: aload 0
getfield sun.security.krb5.internal.ktab.KeyTabInputStream.DEBUG:Z
ifeq 8
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc ">>> KeyTabInputStream, readName(): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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
8: StackMap locals: java.lang.String int byte[]
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/krb5/internal/ktab/KeyTabInputStream;
6 9 1 name Ljava/lang/String;
1 9 2 length I
3 9 3 bytes [B
Exceptions:
throws java.io.IOException
}
SourceFile: "KeyTabInputStream.java"