public final class com.google.crypto.tink.subtle.EngineFactory<T_WRAPPER extends com.google.crypto.tink.subtle.EngineWrapper<T_ENGINE>, T_ENGINE>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.crypto.tink.subtle.EngineFactory
super_class: java.lang.Object
{
private static final java.util.logging.Logger logger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.List<java.security.Provider> defaultPolicy;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/security/Provider;>;
private static final boolean DEFAULT_LET_FALLBACK;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TCipher, javax.crypto.Cipher> CIPHER;
descriptor: Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TCipher;Ljavax/crypto/Cipher;>;
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TMac, javax.crypto.Mac> MAC;
descriptor: Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TMac;Ljavax/crypto/Mac;>;
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TSignature, java.security.Signature> SIGNATURE;
descriptor: Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TSignature;Ljava/security/Signature;>;
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TMessageDigest, java.security.MessageDigest> MESSAGE_DIGEST;
descriptor: Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TMessageDigest;Ljava/security/MessageDigest;>;
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TKeyAgreement, javax.crypto.KeyAgreement> KEY_AGREEMENT;
descriptor: Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TKeyAgreement;Ljavax/crypto/KeyAgreement;>;
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TKeyPairGenerator, java.security.KeyPairGenerator> KEY_PAIR_GENERATOR;
descriptor: Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TKeyPairGenerator;Ljava/security/KeyPairGenerator;>;
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TKeyFactory, java.security.KeyFactory> KEY_FACTORY;
descriptor: Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TKeyFactory;Ljava/security/KeyFactory;>;
private T_WRAPPER instanceBuilder;
descriptor: Lcom/google/crypto/tink/subtle/EngineWrapper;
flags: (0x0002) ACC_PRIVATE
Signature: TT_WRAPPER;
private java.util.List<java.security.Provider> policy;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/security/Provider;>;
private boolean letFallback;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lcom/google/crypto/tink/subtle/EngineFactory;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic com.google.crypto.tink.subtle.EngineFactory.logger:Ljava/util/logging/Logger;
1: invokestatic com.google.crypto.tink.subtle.SubtleUtil.isAndroid:()Z
ifeq 8
2: iconst_2
anewarray java.lang.String
dup
iconst_0
3: ldc "GmsCore_OpenSSL"
aastore
dup
iconst_1
4: ldc "AndroidOpenSSL"
aastore
5: invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
6: putstatic com.google.crypto.tink.subtle.EngineFactory.defaultPolicy:Ljava/util/List;
7: goto 9
8: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putstatic com.google.crypto.tink.subtle.EngineFactory.defaultPolicy:Ljava/util/List;
9: StackMap locals:
StackMap stack:
new com.google.crypto.tink.subtle.EngineFactory
dup
new com.google.crypto.tink.subtle.EngineWrapper$TCipher
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TCipher.<init>:()V
invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;)V
10: putstatic com.google.crypto.tink.subtle.EngineFactory.CIPHER:Lcom/google/crypto/tink/subtle/EngineFactory;
11: new com.google.crypto.tink.subtle.EngineFactory
dup
new com.google.crypto.tink.subtle.EngineWrapper$TMac
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TMac.<init>:()V
invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;)V
12: putstatic com.google.crypto.tink.subtle.EngineFactory.MAC:Lcom/google/crypto/tink/subtle/EngineFactory;
13: new com.google.crypto.tink.subtle.EngineFactory
dup
new com.google.crypto.tink.subtle.EngineWrapper$TSignature
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TSignature.<init>:()V
invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;)V
14: putstatic com.google.crypto.tink.subtle.EngineFactory.SIGNATURE:Lcom/google/crypto/tink/subtle/EngineFactory;
15: new com.google.crypto.tink.subtle.EngineFactory
dup
new com.google.crypto.tink.subtle.EngineWrapper$TMessageDigest
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TMessageDigest.<init>:()V
invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;)V
16: putstatic com.google.crypto.tink.subtle.EngineFactory.MESSAGE_DIGEST:Lcom/google/crypto/tink/subtle/EngineFactory;
17: new com.google.crypto.tink.subtle.EngineFactory
dup
new com.google.crypto.tink.subtle.EngineWrapper$TKeyAgreement
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TKeyAgreement.<init>:()V
invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;)V
18: putstatic com.google.crypto.tink.subtle.EngineFactory.KEY_AGREEMENT:Lcom/google/crypto/tink/subtle/EngineFactory;
19: new com.google.crypto.tink.subtle.EngineFactory
dup
new com.google.crypto.tink.subtle.EngineWrapper$TKeyPairGenerator
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TKeyPairGenerator.<init>:()V
invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;)V
putstatic com.google.crypto.tink.subtle.EngineFactory.KEY_PAIR_GENERATOR:Lcom/google/crypto/tink/subtle/EngineFactory;
20: new com.google.crypto.tink.subtle.EngineFactory
dup
new com.google.crypto.tink.subtle.EngineWrapper$TKeyFactory
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TKeyFactory.<init>:()V
invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;)V
21: putstatic com.google.crypto.tink.subtle.EngineFactory.KEY_FACTORY:Lcom/google/crypto/tink/subtle/EngineFactory;
22: return
LocalVariableTable:
Start End Slot Name Signature
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TCipher, javax.crypto.Cipher> getCustomCipherProvider(boolean, java.lang.String[]);
descriptor: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0099) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.google.crypto.tink.subtle.EngineFactory
dup
1: new com.google.crypto.tink.subtle.EngineWrapper$TCipher
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TCipher.<init>:()V
aload 1
invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
iload 0
2: invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 letFallbackToDefault Z
0 3 1 providerNames [Ljava/lang/String;
Signature: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TCipher;Ljavax/crypto/Cipher;>;
MethodParameters:
Name Flags
letFallbackToDefault
providerNames
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TMac, javax.crypto.Mac> getCustomMacProvider(boolean, java.lang.String[]);
descriptor: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0099) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.google.crypto.tink.subtle.EngineFactory
dup
1: new com.google.crypto.tink.subtle.EngineWrapper$TMac
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TMac.<init>:()V
aload 1
invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
iload 0
2: invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 letFallbackToDefault Z
0 3 1 providerNames [Ljava/lang/String;
Signature: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TMac;Ljavax/crypto/Mac;>;
MethodParameters:
Name Flags
letFallbackToDefault
providerNames
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TSignature, java.security.Signature> getCustomSignatureProvider(boolean, java.lang.String[]);
descriptor: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0099) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.google.crypto.tink.subtle.EngineFactory
dup
1: new com.google.crypto.tink.subtle.EngineWrapper$TSignature
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TSignature.<init>:()V
aload 1
invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
iload 0
2: invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 letFallbackToDefault Z
0 3 1 providerNames [Ljava/lang/String;
Signature: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TSignature;Ljava/security/Signature;>;
MethodParameters:
Name Flags
letFallbackToDefault
providerNames
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TMessageDigest, java.security.MessageDigest> getCustomMessageDigestProvider(boolean, java.lang.String[]);
descriptor: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0099) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.google.crypto.tink.subtle.EngineFactory
dup
1: new com.google.crypto.tink.subtle.EngineWrapper$TMessageDigest
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TMessageDigest.<init>:()V
aload 1
invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
iload 0
2: invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 letFallbackToDefault Z
0 3 1 providerNames [Ljava/lang/String;
Signature: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TMessageDigest;Ljava/security/MessageDigest;>;
MethodParameters:
Name Flags
letFallbackToDefault
providerNames
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TKeyAgreement, javax.crypto.KeyAgreement> getCustomKeyAgreementProvider(boolean, java.lang.String[]);
descriptor: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0099) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.google.crypto.tink.subtle.EngineFactory
dup
1: new com.google.crypto.tink.subtle.EngineWrapper$TKeyAgreement
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TKeyAgreement.<init>:()V
aload 1
invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
iload 0
2: invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 letFallbackToDefault Z
0 3 1 providerNames [Ljava/lang/String;
Signature: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TKeyAgreement;Ljavax/crypto/KeyAgreement;>;
MethodParameters:
Name Flags
letFallbackToDefault
providerNames
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TKeyPairGenerator, java.security.KeyPairGenerator> getCustomKeyPairGeneratorProvider(boolean, java.lang.String[]);
descriptor: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0099) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.google.crypto.tink.subtle.EngineFactory
dup
1: new com.google.crypto.tink.subtle.EngineWrapper$TKeyPairGenerator
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TKeyPairGenerator.<init>:()V
aload 1
invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
iload 0
2: invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 letFallbackToDefault Z
0 3 1 providerNames [Ljava/lang/String;
Signature: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TKeyPairGenerator;Ljava/security/KeyPairGenerator;>;
MethodParameters:
Name Flags
letFallbackToDefault
providerNames
public static final com.google.crypto.tink.subtle.EngineFactory<com.google.crypto.tink.subtle.EngineWrapper$TKeyFactory, java.security.KeyFactory> getCustomKeyFactoryProvider(boolean, java.lang.String[]);
descriptor: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory;
flags: (0x0099) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_VARARGS
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.google.crypto.tink.subtle.EngineFactory
dup
1: new com.google.crypto.tink.subtle.EngineWrapper$TKeyFactory
dup
invokespecial com.google.crypto.tink.subtle.EngineWrapper$TKeyFactory.<init>:()V
aload 1
invokestatic com.google.crypto.tink.subtle.EngineFactory.toProviderList:([Ljava/lang/String;)Ljava/util/List;
iload 0
2: invokespecial com.google.crypto.tink.subtle.EngineFactory.<init>:(Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 letFallbackToDefault Z
0 3 1 providerNames [Ljava/lang/String;
Signature: (Z[Ljava/lang/String;)Lcom/google/crypto/tink/subtle/EngineFactory<Lcom/google/crypto/tink/subtle/EngineWrapper$TKeyFactory;Ljava/security/KeyFactory;>;
MethodParameters:
Name Flags
letFallbackToDefault
providerNames
public static java.util.List<java.security.Provider> toProviderList(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/util/List;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 9
StackMap locals: java.lang.String[] java.util.List top int int java.lang.String[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
invokestatic java.security.Security.getProvider:(Ljava/lang/String;)Ljava/security/Provider;
astore 6
start local 6 4: aload 6
ifnull 7
5: aload 1
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: goto 8
7: StackMap locals: java.lang.String[] java.util.List java.lang.String int int java.lang.String[] java.security.Provider
StackMap stack:
getstatic com.google.crypto.tink.subtle.EngineFactory.logger:Ljava/util/logging/Logger;
ldc "Provider %s not available"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.logging.Logger.info:(Ljava/lang/String;)V
end local 6 end local 2 8: StackMap locals: java.lang.String[] java.util.List top int int java.lang.String[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
iload 4
if_icmplt 2
10: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 providerNames [Ljava/lang/String;
1 11 1 providers Ljava/util/List<Ljava/security/Provider;>;
3 8 2 s Ljava/lang/String;
4 8 6 p Ljava/security/Provider;
Signature: ([Ljava/lang/String;)Ljava/util/List<Ljava/security/Provider;>;
MethodParameters:
Name Flags
providerNames
public void <init>();
descriptor: (Lcom/google/crypto/tink/subtle/EngineWrapper;)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
aload 1
putfield com.google.crypto.tink.subtle.EngineFactory.instanceBuilder:Lcom/google/crypto/tink/subtle/EngineWrapper;
2: aload 0
getstatic com.google.crypto.tink.subtle.EngineFactory.defaultPolicy:Ljava/util/List;
putfield com.google.crypto.tink.subtle.EngineFactory.policy:Ljava/util/List;
3: aload 0
iconst_1
putfield com.google.crypto.tink.subtle.EngineFactory.letFallback:Z
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/crypto/tink/subtle/EngineFactory<TT_WRAPPER;TT_ENGINE;>;
0 5 1 instanceBuilder TT_WRAPPER;
Signature: (TT_WRAPPER;)V
MethodParameters:
Name Flags
instanceBuilder
public void <init>(T_WRAPPER, java.util.List<java.security.Provider>);
descriptor: (Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.google.crypto.tink.subtle.EngineFactory.instanceBuilder:Lcom/google/crypto/tink/subtle/EngineWrapper;
2: aload 0
aload 2
putfield com.google.crypto.tink.subtle.EngineFactory.policy:Ljava/util/List;
3: aload 0
iconst_1
putfield com.google.crypto.tink.subtle.EngineFactory.letFallback:Z
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/crypto/tink/subtle/EngineFactory<TT_WRAPPER;TT_ENGINE;>;
0 5 1 instanceBuilder TT_WRAPPER;
0 5 2 policy Ljava/util/List<Ljava/security/Provider;>;
Signature: (TT_WRAPPER;Ljava/util/List<Ljava/security/Provider;>;)V
MethodParameters:
Name Flags
instanceBuilder
policy
public void <init>(T_WRAPPER, java.util.List<java.security.Provider>, );
descriptor: (Lcom/google/crypto/tink/subtle/EngineWrapper;Ljava/util/List;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, 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
aload 1
putfield com.google.crypto.tink.subtle.EngineFactory.instanceBuilder:Lcom/google/crypto/tink/subtle/EngineWrapper;
2: aload 0
aload 2
putfield com.google.crypto.tink.subtle.EngineFactory.policy:Ljava/util/List;
3: aload 0
iload 3
putfield com.google.crypto.tink.subtle.EngineFactory.letFallback:Z
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/crypto/tink/subtle/EngineFactory<TT_WRAPPER;TT_ENGINE;>;
0 5 1 instanceBuilder TT_WRAPPER;
0 5 2 policy Ljava/util/List<Ljava/security/Provider;>;
0 5 3 letFallback Z
Signature: (TT_WRAPPER;Ljava/util/List<Ljava/security/Provider;>;Z)V
MethodParameters:
Name Flags
instanceBuilder
policy
letFallback
public T_ENGINE getInstance(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield com.google.crypto.tink.subtle.EngineFactory.policy:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: com.google.crypto.tink.subtle.EngineFactory java.lang.String java.lang.Exception top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.Provider
astore 3
start local 3 3: aload 0
getfield com.google.crypto.tink.subtle.EngineFactory.instanceBuilder:Lcom/google/crypto/tink/subtle/EngineWrapper;
aload 1
aload 3
invokeinterface com.google.crypto.tink.subtle.EngineWrapper.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/lang/Object;
4: areturn
5: StackMap locals: com.google.crypto.tink.subtle.EngineFactory java.lang.String java.lang.Exception java.security.Provider java.util.Iterator
StackMap stack: java.lang.Exception
astore 5
start local 5 6: aload 2
ifnonnull 8
7: aload 5
astore 2
end local 5 end local 3 8: StackMap locals: com.google.crypto.tink.subtle.EngineFactory java.lang.String java.lang.Exception top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
9: aload 0
getfield com.google.crypto.tink.subtle.EngineFactory.letFallback:Z
ifeq 11
10: aload 0
getfield com.google.crypto.tink.subtle.EngineFactory.instanceBuilder:Lcom/google/crypto/tink/subtle/EngineWrapper;
aload 1
aconst_null
invokeinterface com.google.crypto.tink.subtle.EngineWrapper.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/lang/Object;
areturn
11: StackMap locals: com.google.crypto.tink.subtle.EngineFactory java.lang.String java.lang.Exception
StackMap stack:
new java.security.GeneralSecurityException
dup
ldc "No good Provider found."
aload 2
invokespecial java.security.GeneralSecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/google/crypto/tink/subtle/EngineFactory<TT_WRAPPER;TT_ENGINE;>;
0 12 1 algorithm Ljava/lang/String;
1 12 2 cause Ljava/lang/Exception;
3 8 3 provider Ljava/security/Provider;
6 8 5 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
Exceptions:
throws java.security.GeneralSecurityException
Signature: (Ljava/lang/String;)TT_ENGINE;
MethodParameters:
Name Flags
algorithm
}
Signature: <T_WRAPPER::Lcom/google/crypto/tink/subtle/EngineWrapper<TT_ENGINE;>;T_ENGINE:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "EngineFactory.java"
InnerClasses:
public TCipher = com.google.crypto.tink.subtle.EngineWrapper$TCipher of com.google.crypto.tink.subtle.EngineWrapper
public TKeyAgreement = com.google.crypto.tink.subtle.EngineWrapper$TKeyAgreement of com.google.crypto.tink.subtle.EngineWrapper
public TKeyFactory = com.google.crypto.tink.subtle.EngineWrapper$TKeyFactory of com.google.crypto.tink.subtle.EngineWrapper
public TKeyPairGenerator = com.google.crypto.tink.subtle.EngineWrapper$TKeyPairGenerator of com.google.crypto.tink.subtle.EngineWrapper
public TMac = com.google.crypto.tink.subtle.EngineWrapper$TMac of com.google.crypto.tink.subtle.EngineWrapper
public TMessageDigest = com.google.crypto.tink.subtle.EngineWrapper$TMessageDigest of com.google.crypto.tink.subtle.EngineWrapper
public TSignature = com.google.crypto.tink.subtle.EngineWrapper$TSignature of com.google.crypto.tink.subtle.EngineWrapper