final class javax.crypto.JceSecurity
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: javax.crypto.JceSecurity
super_class: java.lang.Object
{
private static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.security.SecureRandom RANDOM;
descriptor: Ljava/security/SecureRandom;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static javax.crypto.CryptoPermissions defaultPolicy;
descriptor: Ljavax/crypto/CryptoPermissions;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static javax.crypto.CryptoPermissions exemptPolicy;
descriptor: Ljavax/crypto/CryptoPermissions;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.util.Map<javax.crypto.JceSecurity$IdentityWrapper, java.lang.Object> verificationResults;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljavax/crypto/JceSecurity$IdentityWrapper;Ljava/lang/Object;>;
private static final java.util.Map<java.security.Provider, java.lang.Object> verifyingProviders;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/security/Provider;Ljava/lang/Object;>;
private static final boolean isRestricted;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Object PROVIDER_VERIFIED;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.net.URL NULL_URL;
descriptor: Ljava/net/URL;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.Class<?>, java.net.URL> codeBaseCacheRef;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/net/URL;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: ldc "jca"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putstatic javax.crypto.JceSecurity.debug:Lsun/security/util/Debug;
1: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putstatic javax.crypto.JceSecurity.RANDOM:Ljava/security/SecureRandom;
2: aconst_null
putstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
3: aconst_null
putstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
4: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
5: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
6: putstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
7: new javax.crypto.JceSecurity$1
dup
invokespecial javax.crypto.JceSecurity$1.<init>:()V
8: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
pop
9: getstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
10: getstatic javax.crypto.CryptoAllPermission.INSTANCE:Ljavax/crypto/CryptoAllPermission;
11: invokevirtual javax.crypto.CryptoPermissions.implies:(Ljava/security/Permission;)Z
12: ifeq 13
iconst_0
goto 14
StackMap locals:
StackMap stack:
13: iconst_1
14: StackMap locals:
StackMap stack: int
putstatic javax.crypto.JceSecurity.isRestricted:Z
15: goto 20
StackMap locals:
StackMap stack: java.lang.Exception
16: astore 0
start local 0 17: new java.lang.SecurityException
dup
18: ldc "Can not initialize cryptographic mechanism"
aload 0
19: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 0 20: StackMap locals:
StackMap stack:
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
putstatic javax.crypto.JceSecurity.PROVIDER_VERIFIED:Ljava/lang/Object;
21: new java.net.URL
dup
ldc "http://null.oracle.com/"
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
putstatic javax.crypto.JceSecurity.NULL_URL:Ljava/net/URL;
22: goto 25
StackMap locals:
StackMap stack: java.lang.Exception
23: astore 0
start local 0 24: new java.lang.RuntimeException
dup
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 25: StackMap locals:
StackMap stack:
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
26: putstatic javax.crypto.JceSecurity.codeBaseCacheRef:Ljava/util/Map;
27: return
LocalVariableTable:
Start End Slot Name Signature
17 20 0 e Ljava/lang/Exception;
24 25 0 e Ljava/lang/Exception;
Exception table:
from to target type
7 15 16 Class java.lang.Exception
21 22 23 Class java.lang.Exception
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavax/crypto/JceSecurity;
static sun.security.jca.GetInstance$Instance getInstance(java.lang.String, java.lang.Class<?>, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 3
invokestatic sun.security.jca.GetInstance.getService:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
astore 4
start local 4 1: aload 4
invokevirtual java.security.Provider$Service.getProvider:()Ljava/security/Provider;
invokestatic javax.crypto.JceSecurity.getVerificationResult:(Ljava/security/Provider;)Ljava/lang/Exception;
astore 5
start local 5 2: aload 5
ifnull 6
3: new java.lang.StringBuilder
dup
ldc "JCE cannot authenticate the provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
start local 6 4: new java.security.NoSuchProviderException
dup
aload 6
invokespecial java.security.NoSuchProviderException.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.security.NoSuchProviderException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
5: checkcast java.security.NoSuchProviderException
athrow
end local 6 6: StackMap locals: java.security.Provider$Service java.lang.Exception
StackMap stack:
aload 4
aload 1
invokestatic sun.security.jca.GetInstance.getInstance:(Ljava/security/Provider$Service;Ljava/lang/Class;)Lsun/security/jca/GetInstance$Instance;
areturn
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 7 0 type Ljava/lang/String;
0 7 1 clazz Ljava/lang/Class<*>;
0 7 2 algorithm Ljava/lang/String;
0 7 3 provider Ljava/lang/String;
1 7 4 s Ljava/security/Provider$Service;
2 7 5 ve Ljava/lang/Exception;
4 6 6 msg Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
MethodParameters:
Name Flags
type
clazz
algorithm
provider
static sun.security.jca.GetInstance$Instance getInstance(java.lang.String, java.lang.Class<?>, java.lang.String, java.security.Provider);
descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 3
invokestatic sun.security.jca.GetInstance.getService:(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Provider$Service;
astore 4
start local 4 1: aload 3
invokestatic javax.crypto.JceSecurity.getVerificationResult:(Ljava/security/Provider;)Ljava/lang/Exception;
astore 5
start local 5 2: aload 5
ifnull 7
3: new java.lang.StringBuilder
dup
ldc "JCE cannot authenticate the provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 3
invokevirtual java.security.Provider.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
start local 6 6: new java.lang.SecurityException
dup
aload 6
aload 5
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 7: StackMap locals: java.security.Provider$Service java.lang.Exception
StackMap stack:
aload 4
aload 1
invokestatic sun.security.jca.GetInstance.getInstance:(Ljava/security/Provider$Service;Ljava/lang/Class;)Lsun/security/jca/GetInstance$Instance;
areturn
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 8 0 type Ljava/lang/String;
0 8 1 clazz Ljava/lang/Class<*>;
0 8 2 algorithm Ljava/lang/String;
0 8 3 provider Ljava/security/Provider;
1 8 4 s Ljava/security/Provider$Service;
2 8 5 ve Ljava/lang/Exception;
6 7 6 msg Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/String;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance;
MethodParameters:
Name Flags
type
clazz
algorithm
provider
static sun.security.jca.GetInstance$Instance getInstance(java.lang.String, java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokestatic sun.security.jca.GetInstance.getServices:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 11
StackMap locals: java.lang.String java.lang.Class java.lang.String java.util.List java.security.NoSuchAlgorithmException top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.Provider$Service
astore 5
start local 5 4: aload 5
invokevirtual java.security.Provider$Service.getProvider:()Ljava/security/Provider;
invokestatic javax.crypto.JceSecurity.canUseProvider:(Ljava/security/Provider;)Z
ifne 6
5: goto 11
6: StackMap locals: java.lang.String java.lang.Class java.lang.String java.util.List java.security.NoSuchAlgorithmException java.security.Provider$Service java.util.Iterator
StackMap stack:
aload 5
aload 1
invokestatic sun.security.jca.GetInstance.getInstance:(Ljava/security/Provider$Service;Ljava/lang/Class;)Lsun/security/jca/GetInstance$Instance;
astore 7
start local 7 7: aload 7
8: areturn
end local 7 9: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 7
start local 7 10: aload 7
astore 4
end local 7 end local 5 11: StackMap locals: java.lang.String java.lang.Class java.lang.String java.util.List java.security.NoSuchAlgorithmException top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
12: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "Algorithm "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc " not available"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
14: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 type Ljava/lang/String;
0 15 1 clazz Ljava/lang/Class<*>;
0 15 2 algorithm Ljava/lang/String;
1 15 3 services Ljava/util/List<Ljava/security/Provider$Service;>;
2 15 4 failure Ljava/security/NoSuchAlgorithmException;
4 11 5 s Ljava/security/Provider$Service;
7 9 7 instance Lsun/security/jca/GetInstance$Instance;
10 11 7 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
6 8 9 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.security.NoSuchAlgorithmException
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
MethodParameters:
Name Flags
type
clazz
algorithm
static javax.crypto.CryptoPermissions verifyExemptJar(java.net.URL);
descriptor: (Ljava/net/URL;)Ljavax/crypto/CryptoPermissions;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new javax.crypto.ProviderVerifier
dup
aload 0
iconst_1
invokespecial javax.crypto.ProviderVerifier.<init>:(Ljava/net/URL;Z)V
astore 1
start local 1 1: aload 1
invokevirtual javax.crypto.ProviderVerifier.verify:()V
2: aload 1
invokevirtual javax.crypto.ProviderVerifier.getPermissions:()Ljavax/crypto/CryptoPermissions;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 codeBase Ljava/net/URL;
1 3 1 pv Ljavax/crypto/ProviderVerifier;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
codeBase
static void verifyProvider(java.net.URL, java.security.Provider);
descriptor: (Ljava/net/URL;Ljava/security/Provider;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new javax.crypto.ProviderVerifier
dup
aload 0
aload 1
iconst_0
invokespecial javax.crypto.ProviderVerifier.<init>:(Ljava/net/URL;Ljava/security/Provider;Z)V
astore 2
start local 2 1: aload 2
invokevirtual javax.crypto.ProviderVerifier.verify:()V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 codeBase Ljava/net/URL;
0 3 1 p Ljava/security/Provider;
1 3 2 pv Ljavax/crypto/ProviderVerifier;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
codeBase
p
static java.lang.Exception getVerificationResult(java.security.Provider);
descriptor: (Ljava/security/Provider;)Ljava/lang/Exception;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: new javax.crypto.JceSecurity$IdentityWrapper
dup
aload 0
invokespecial javax.crypto.JceSecurity$IdentityWrapper.<init>:(Ljava/security/Provider;)V
astore 1
start local 1 1: getstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 2: aload 2
ifnonnull 32
3: ldc Ljavax/crypto/JceSecurity;
dup
astore 3
monitorenter
4: getstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
5: aload 2
ifnonnull 28
6: getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 11
7: new java.security.NoSuchProviderException
dup
8: ldc "Recursion during verification"
9: invokespecial java.security.NoSuchProviderException.<init>:(Ljava/lang/String;)V
aload 3
monitorexit
10: areturn
11: StackMap locals: javax.crypto.JceSecurity$IdentityWrapper java.lang.Object java.lang.Class
StackMap stack:
getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic javax.crypto.JceSecurity.getCodeBase:(Ljava/lang/Class;)Ljava/net/URL;
astore 4
start local 4 13: aload 4
aload 0
invokestatic javax.crypto.JceSecurity.verifyProvider:(Ljava/net/URL;Ljava/security/Provider;)V
14: getstatic javax.crypto.JceSecurity.PROVIDER_VERIFIED:Ljava/lang/Object;
astore 2
end local 4 15: goto 22
StackMap locals:
StackMap stack: java.lang.Exception
16: astore 4
start local 4 17: aload 4
astore 2
end local 4 18: getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
goto 23
19: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
20: getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
21: aload 5
athrow
22: StackMap locals:
StackMap stack:
getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
23: StackMap locals:
StackMap stack:
getstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: getstatic javax.crypto.JceSecurity.debug:Lsun/security/util/Debug;
ifnull 28
25: getstatic javax.crypto.JceSecurity.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.security.Provider.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: ldc " verification result: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
28: StackMap locals:
StackMap stack:
aload 3
monitorexit
29: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 3
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
aload 2
getstatic javax.crypto.JceSecurity.PROVIDER_VERIFIED:Ljava/lang/Object;
if_acmpne 33
aconst_null
goto 34
StackMap locals:
StackMap stack:
33: aload 2
checkcast java.lang.Exception
StackMap locals:
StackMap stack: java.lang.Exception
34: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 p Ljava/security/Provider;
1 35 1 pKey Ljavax/crypto/JceSecurity$IdentityWrapper;
2 35 2 o Ljava/lang/Object;
13 15 4 providerURL Ljava/net/URL;
17 18 4 e Ljava/lang/Exception;
Exception table:
from to target type
11 15 16 Class java.lang.Exception
11 18 19 any
4 10 30 any
11 29 30 any
30 31 30 any
MethodParameters:
Name Flags
p
static boolean canUseProvider(java.security.Provider);
descriptor: (Ljava/security/Provider;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic javax.crypto.JceSecurity.getVerificationResult:(Ljava/security/Provider;)Ljava/lang/Exception;
ifnonnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 p Ljava/security/Provider;
MethodParameters:
Name Flags
p
static java.net.URL getCodeBase(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/net/URL;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic javax.crypto.JceSecurity.codeBaseCacheRef:Ljava/util/Map;
dup
astore 1
monitorenter
1: getstatic javax.crypto.JceSecurity.codeBaseCacheRef:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.URL
astore 2
start local 2 2: aload 2
ifnonnull 6
3: new javax.crypto.JceSecurity$2
dup
aload 0
invokespecial javax.crypto.JceSecurity$2.<init>:(Ljava/lang/Class;)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.net.URL
astore 2
5: getstatic javax.crypto.JceSecurity.codeBaseCacheRef:Ljava/util/Map;
aload 0
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: java.util.Map java.net.URL
StackMap stack:
aload 2
getstatic javax.crypto.JceSecurity.NULL_URL:Ljava/net/URL;
if_acmpne 7
aconst_null
goto 8
StackMap locals:
StackMap stack:
7: aload 2
StackMap locals:
StackMap stack: java.net.URL
8: aload 1
monitorexit
9: areturn
end local 2 10: StackMap locals: java.lang.Class java.util.Map
StackMap stack: java.lang.Throwable
aload 1
monitorexit
11: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 clazz Ljava/lang/Class<*>;
2 10 2 url Ljava/net/URL;
Exception table:
from to target type
1 9 10 any
10 11 10 any
Signature: (Ljava/lang/Class<*>;)Ljava/net/URL;
MethodParameters:
Name Flags
clazz final
private static void setupJurisdictionPolicies();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=15, args_size=0
0: ldc "crypto.policy"
invokestatic java.security.Security.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnonnull 9
2: ldc "unlimited"
astore 0
3: getstatic javax.crypto.JceSecurity.debug:Lsun/security/util/Debug;
ifnull 9
4: getstatic javax.crypto.JceSecurity.debug:Lsun/security/util/Debug;
5: new java.lang.StringBuilder
dup
ldc "Security Property 'crypto.policy' not found: using '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' as fallback"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
9: StackMap locals: java.lang.String
StackMap stack:
aload 0
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 1
start local 1 10: aload 1
invokeinterface java.nio.file.Path.getNameCount:()I
iconst_1
if_icmpne 12
11: aload 1
aload 1
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.compareTo:(Ljava/nio/file/Path;)I
ifeq 17
12: StackMap locals: java.nio.file.Path
StackMap stack:
new java.lang.SecurityException
dup
13: new java.lang.StringBuilder
dup
ldc "Invalid policy directory name format: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
invokestatic jdk.internal.util.StaticProperty.javaHome:()Ljava/lang/String;
astore 2
start local 2 18: aload 2
iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "conf"
aastore
dup
iconst_1
19: ldc "security"
aastore
dup
iconst_2
ldc "policy"
aastore
20: invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
21: invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
22: astore 3
start local 3 23: aload 2
iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "conf"
aastore
dup
iconst_1
ldc "security"
aastore
dup
iconst_2
24: ldc "policy"
aastore
dup
iconst_3
aload 0
aastore
25: invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
26: invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
27: astore 4
start local 4 28: aload 4
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
aload 3
invokeinterface java.nio.file.Path.compareTo:(Ljava/nio/file/Path;)I
ifeq 34
29: new java.lang.SecurityException
dup
30: new java.lang.StringBuilder
dup
ldc "Invalid cryptographic jurisdiction policy directory path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
31: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
32: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals: java.lang.String java.nio.file.Path java.nio.file.Path
StackMap stack:
aload 4
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 36
35: aload 4
invokestatic java.nio.file.Files.isReadable:(Ljava/nio/file/Path;)Z
ifne 41
36: StackMap locals:
StackMap stack:
new java.lang.SecurityException
dup
37: new java.lang.StringBuilder
dup
ldc "Can't read cryptographic policy directory: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
38: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
39: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
aconst_null
astore 5
aconst_null
astore 6
42: aload 4
ldc "{default,exempt}_*.policy"
43: invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/DirectoryStream;
astore 7
start local 7 44: aload 7
invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
astore 9
goto 80
StackMap locals: java.lang.String java.nio.file.Path java.lang.String java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
45: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 8
start local 8 46: aconst_null
astore 10
aconst_null
astore 11
47: new java.io.BufferedInputStream
dup
48: aload 8
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
49: invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 12
start local 12 50: aload 8
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 13
start local 13 51: new javax.crypto.CryptoPermissions
dup
invokespecial javax.crypto.CryptoPermissions.<init>:()V
astore 14
start local 14 52: aload 14
aload 12
invokevirtual javax.crypto.CryptoPermissions.load:(Ljava/io/InputStream;)V
53: aload 13
ldc "default_"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 58
54: getstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
ifnonnull 55
aload 14
goto 56
55: StackMap locals: java.lang.String java.nio.file.Path java.lang.String java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.String javax.crypto.CryptoPermissions
StackMap stack:
getstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
aload 14
invokevirtual javax.crypto.CryptoPermissions.getMinimum:(Ljavax/crypto/CryptoPermissions;)Ljavax/crypto/CryptoPermissions;
56: StackMap locals:
StackMap stack: javax.crypto.CryptoPermissions
putstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
57: goto 68
StackMap locals:
StackMap stack:
58: aload 13
ldc "exempt_"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 63
59: getstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
ifnonnull 60
aload 14
goto 61
60: StackMap locals:
StackMap stack:
getstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
aload 14
invokevirtual javax.crypto.CryptoPermissions.getMinimum:(Ljavax/crypto/CryptoPermissions;)Ljavax/crypto/CryptoPermissions;
61: StackMap locals:
StackMap stack: javax.crypto.CryptoPermissions
putstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
62: goto 68
63: StackMap locals:
StackMap stack:
new java.lang.SecurityException
dup
64: new java.lang.StringBuilder
dup
ldc "Unexpected jurisdiction policy files in : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
65: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
66: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
67: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
end local 14 end local 13 68: StackMap locals:
StackMap stack:
aload 12
ifnull 80
aload 12
invokevirtual java.io.InputStream.close:()V
goto 80
StackMap locals:
StackMap stack: java.lang.Throwable
69: astore 10
aload 12
ifnull 70
aload 12
invokevirtual java.io.InputStream.close:()V
end local 12 StackMap locals:
StackMap stack:
70: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
71: astore 11
aload 10
ifnonnull 72
aload 11
astore 10
goto 73
StackMap locals:
StackMap stack:
72: aload 10
aload 11
if_acmpeq 73
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
73: aload 10
athrow
StackMap locals: java.lang.String java.nio.file.Path java.lang.String java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator
StackMap stack: java.lang.Exception
74: pop
75: new java.lang.SecurityException
dup
76: new java.lang.StringBuilder
dup
ldc "Couldn't parse jurisdiction policy files in: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
77: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
78: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
79: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
end local 8 80: StackMap locals: java.lang.String java.nio.file.Path java.lang.String java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 45
81: aload 7
ifnull 93
aload 7
invokeinterface java.nio.file.DirectoryStream.close:()V
goto 93
StackMap locals: java.lang.String java.nio.file.Path java.lang.String java.nio.file.Path java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
StackMap stack: java.lang.Throwable
82: astore 5
aload 7
ifnull 83
aload 7
invokeinterface java.nio.file.DirectoryStream.close:()V
end local 7 StackMap locals:
StackMap stack:
83: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
84: astore 6
aload 5
ifnonnull 85
aload 6
astore 5
goto 86
StackMap locals:
StackMap stack:
85: aload 5
aload 6
if_acmpeq 86
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
86: aload 5
athrow
StackMap locals: java.lang.String java.nio.file.Path java.lang.String java.nio.file.Path java.nio.file.Path
StackMap stack: java.nio.file.DirectoryIteratorException
87: pop
88: new java.lang.SecurityException
dup
89: new java.lang.StringBuilder
dup
ldc "Couldn't iterate through the jurisdiction policy files: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
90: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
91: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
92: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
93: StackMap locals:
StackMap stack:
getstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
ifnull 94
getstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
invokevirtual javax.crypto.CryptoPermissions.isEmpty:()Z
ifeq 99
94: StackMap locals:
StackMap stack:
new java.lang.SecurityException
dup
95: new java.lang.StringBuilder
dup
ldc "Missing mandatory jurisdiction policy files: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
96: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
97: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
98: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
99: StackMap locals:
StackMap stack:
getstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
ifnull 101
getstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
invokevirtual javax.crypto.CryptoPermissions.isEmpty:()Z
ifeq 101
100: aconst_null
putstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
101: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 102 0 cryptoPolicyProperty Ljava/lang/String;
10 102 1 cpPath Ljava/nio/file/Path;
18 102 2 javaHomeProperty Ljava/lang/String;
23 102 3 javaHomePolicyPath Ljava/nio/file/Path;
28 102 4 cryptoPolicyPath Ljava/nio/file/Path;
44 83 7 stream Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
46 80 8 entry Ljava/nio/file/Path;
50 70 12 is Ljava/io/InputStream;
51 68 13 filename Ljava/lang/String;
52 68 14 tmpPerms Ljavax/crypto/CryptoPermissions;
Exception table:
from to target type
50 68 69 any
47 71 71 any
46 74 74 Class java.lang.Exception
44 81 82 any
42 84 84 any
41 87 87 Class java.nio.file.DirectoryIteratorException
Exceptions:
throws java.lang.Exception
static javax.crypto.CryptoPermissions getDefaultPolicy();
descriptor: ()Ljavax/crypto/CryptoPermissions;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
areturn
LocalVariableTable:
Start End Slot Name Signature
static javax.crypto.CryptoPermissions getExemptPolicy();
descriptor: ()Ljavax/crypto/CryptoPermissions;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic javax.crypto.JceSecurity.exemptPolicy:Ljavax/crypto/CryptoPermissions;
areturn
LocalVariableTable:
Start End Slot Name Signature
static boolean isRestricted();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic javax.crypto.JceSecurity.isRestricted:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "JceSecurity.java"
NestMembers:
javax.crypto.JceSecurity$1 javax.crypto.JceSecurity$2 javax.crypto.JceSecurity$IdentityWrapper
InnerClasses:
public Service = java.security.Provider$Service of java.security.Provider
javax.crypto.JceSecurity$1
javax.crypto.JceSecurity$2
private final IdentityWrapper = javax.crypto.JceSecurity$IdentityWrapper of javax.crypto.JceSecurity
public final Instance = sun.security.jca.GetInstance$Instance of sun.security.jca.GetInstance