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<java.security.Provider, java.lang.Object> verificationResults;
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 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.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
5: putstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
6: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
7: putstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
8: new javax.crypto.JceSecurity$1
dup
invokespecial javax.crypto.JceSecurity$1.<init>:()V
9: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
pop
10: getstatic javax.crypto.JceSecurity.defaultPolicy:Ljavax/crypto/CryptoPermissions;
11: getstatic javax.crypto.CryptoAllPermission.INSTANCE:Ljavax/crypto/CryptoAllPermission;
12: invokevirtual javax.crypto.CryptoPermissions.implies:(Ljava/security/Permission;)Z
13: ifeq 14
iconst_0
goto 15
StackMap locals:
StackMap stack:
14: iconst_1
15: StackMap locals:
StackMap stack: int
putstatic javax.crypto.JceSecurity.isRestricted:Z
16: goto 21
StackMap locals:
StackMap stack: java.lang.Exception
17: astore 0
start local 0 18: new java.lang.SecurityException
dup
19: ldc "Can not initialize cryptographic mechanism"
aload 0
20: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 0 21: StackMap locals:
StackMap stack:
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
putstatic javax.crypto.JceSecurity.PROVIDER_VERIFIED:Ljava/lang/Object;
22: 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;
23: goto 26
StackMap locals:
StackMap stack: java.lang.Exception
24: astore 0
start local 0 25: new java.lang.RuntimeException
dup
aload 0
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 26: StackMap locals:
StackMap stack:
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
27: putstatic javax.crypto.JceSecurity.codeBaseCacheRef:Ljava/util/Map;
28: return
LocalVariableTable:
Start End Slot Name Signature
18 21 0 e Ljava/lang/Exception;
25 26 0 e Ljava/lang/Exception;
Exception table:
from to target type
8 16 17 Class java.lang.Exception
22 23 24 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 synchronized java.lang.Exception getVerificationResult(java.security.Provider);
descriptor: (Ljava/security/Provider;)Ljava/lang/Exception;
flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=5, args_size=1
start local 0 0: getstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 1
start local 1 1: aload 1
getstatic javax.crypto.JceSecurity.PROVIDER_VERIFIED:Ljava/lang/Object;
if_acmpne 3
2: aconst_null
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 1
ifnull 5
4: aload 1
checkcast java.lang.Exception
areturn
5: StackMap locals:
StackMap stack:
getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 7
6: new java.security.NoSuchProviderException
dup
ldc "Recursion during verification"
invokespecial java.security.NoSuchProviderException.<init>:(Ljava/lang/String;)V
areturn
7: StackMap locals:
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
8: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic javax.crypto.JceSecurity.getCodeBase:(Ljava/lang/Class;)Ljava/net/URL;
astore 2
start local 2 9: aload 2
aload 0
invokestatic javax.crypto.JceSecurity.verifyProvider:(Ljava/net/URL;Ljava/security/Provider;)V
10: getstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
aload 0
getstatic javax.crypto.JceSecurity.PROVIDER_VERIFIED:Ljava/lang/Object;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aconst_null
areturn
end local 2 13: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 14: getstatic javax.crypto.JceSecurity.verificationResults:Ljava/util/Map;
aload 0
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 2
astore 4
16: getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 4
areturn
end local 2 18: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
19: getstatic javax.crypto.JceSecurity.verifyingProviders:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 p Ljava/security/Provider;
1 21 1 o Ljava/lang/Object;
9 13 2 providerURL Ljava/net/URL;
14 18 2 e Ljava/lang/Exception;
Exception table:
from to target type
7 11 13 Class java.lang.Exception
7 11 18 any
13 16 18 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:
ldc "java.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)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
InnerClasses:
public Service = java.security.Provider$Service of java.security.Provider
javax.crypto.JceSecurity$1
javax.crypto.JceSecurity$2
public final Instance = sun.security.jca.GetInstance$Instance of sun.security.jca.GetInstance