public class java.security.KeyStore$PasswordProtection implements java.security.KeyStore$ProtectionParameter, javax.security.auth.Destroyable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.security.KeyStore$PasswordProtection
super_class: java.lang.Object
{
private final char[] password;
descriptor: [C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String protectionAlgorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.spec.AlgorithmParameterSpec protectionParameters;
descriptor: Ljava/security/spec/AlgorithmParameterSpec;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean destroyed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
public void <init>(char[]);
descriptor: ([C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.security.KeyStore$PasswordProtection.destroyed:Z
2: aload 0
aload 1
ifnonnull 3
aconst_null
goto 4
StackMap locals: java.security.KeyStore$PasswordProtection char[]
StackMap stack: java.security.KeyStore$PasswordProtection
3: aload 1
invokevirtual char[].clone:()Ljava/lang/Object;
checkcast char[]
StackMap locals: java.security.KeyStore$PasswordProtection char[]
StackMap stack: java.security.KeyStore$PasswordProtection char[]
4: putfield java.security.KeyStore$PasswordProtection.password:[C
5: aload 0
aconst_null
putfield java.security.KeyStore$PasswordProtection.protectionAlgorithm:Ljava/lang/String;
6: aload 0
aconst_null
putfield java.security.KeyStore$PasswordProtection.protectionParameters:Ljava/security/spec/AlgorithmParameterSpec;
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/security/KeyStore$PasswordProtection;
0 8 1 password [C
MethodParameters:
Name Flags
password
public void <init>(char[], java.lang.String, java.security.spec.AlgorithmParameterSpec);
descriptor: ([CLjava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.security.KeyStore$PasswordProtection.destroyed:Z
2: aload 2
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "invalid null input"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.security.KeyStore$PasswordProtection char[] java.lang.String java.security.spec.AlgorithmParameterSpec
StackMap stack:
aload 0
aload 1
ifnonnull 5
aconst_null
goto 6
StackMap locals:
StackMap stack: java.security.KeyStore$PasswordProtection
5: aload 1
invokevirtual char[].clone:()Ljava/lang/Object;
checkcast char[]
StackMap locals: java.security.KeyStore$PasswordProtection char[] java.lang.String java.security.spec.AlgorithmParameterSpec
StackMap stack: java.security.KeyStore$PasswordProtection char[]
6: putfield java.security.KeyStore$PasswordProtection.password:[C
7: aload 0
aload 2
putfield java.security.KeyStore$PasswordProtection.protectionAlgorithm:Ljava/lang/String;
8: aload 0
aload 3
putfield java.security.KeyStore$PasswordProtection.protectionParameters:Ljava/security/spec/AlgorithmParameterSpec;
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/security/KeyStore$PasswordProtection;
0 10 1 password [C
0 10 2 protectionAlgorithm Ljava/lang/String;
0 10 3 protectionParameters Ljava/security/spec/AlgorithmParameterSpec;
MethodParameters:
Name Flags
password
protectionAlgorithm
protectionParameters
public java.lang.String getProtectionAlgorithm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.KeyStore$PasswordProtection.protectionAlgorithm:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/KeyStore$PasswordProtection;
public java.security.spec.AlgorithmParameterSpec getProtectionParameters();
descriptor: ()Ljava/security/spec/AlgorithmParameterSpec;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.KeyStore$PasswordProtection.protectionParameters:Ljava/security/spec/AlgorithmParameterSpec;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/KeyStore$PasswordProtection;
public synchronized char[] getPassword();
descriptor: ()[C
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.KeyStore$PasswordProtection.destroyed:Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "password has been cleared"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.security.KeyStore$PasswordProtection.password:[C
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/security/KeyStore$PasswordProtection;
public synchronized void destroy();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield java.security.KeyStore$PasswordProtection.destroyed:Z
1: aload 0
getfield java.security.KeyStore$PasswordProtection.password:[C
ifnull 3
2: aload 0
getfield java.security.KeyStore$PasswordProtection.password:[C
bipush 32
invokestatic java.util.Arrays.fill:([CC)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/security/KeyStore$PasswordProtection;
Exceptions:
throws javax.security.auth.DestroyFailedException
public synchronized boolean isDestroyed();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.KeyStore$PasswordProtection.destroyed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/KeyStore$PasswordProtection;
}
SourceFile: "KeyStore.java"
NestHost: java.security.KeyStore
InnerClasses:
public PasswordProtection = java.security.KeyStore$PasswordProtection of java.security.KeyStore
public abstract ProtectionParameter = java.security.KeyStore$ProtectionParameter of java.security.KeyStore