public final class android.security.KeyChain
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.security.KeyChain
super_class: java.lang.Object
{
public static final java.lang.String ACCOUNT_TYPE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "com.android.keychain"
private static final java.lang.String KEYCHAIN_PACKAGE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "com.android.keychain"
private static final java.lang.String ACTION_CHOOSER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "com.android.keychain.CHOOSER"
private static final java.lang.String CERT_INSTALLER_PACKAGE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "com.android.certinstaller"
public static final java.lang.String EXTRA_RESPONSE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "response"
public static final java.lang.String EXTRA_URI;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "uri"
public static final java.lang.String EXTRA_ALIAS;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "alias"
public static final java.lang.String EXTRA_SENDER;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "sender"
private static final java.lang.String ACTION_INSTALL;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "android.credentials.INSTALL"
public static final java.lang.String EXTRA_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "name"
public static final java.lang.String EXTRA_CERTIFICATE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "CERT"
public static final java.lang.String EXTRA_PKCS12;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "PKCS12"
public static final java.lang.String ACTION_STORAGE_CHANGED;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.security.STORAGE_CHANGED"
public static final java.lang.String ACTION_KEYCHAIN_CHANGED;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.security.action.KEYCHAIN_CHANGED"
public static final java.lang.String ACTION_TRUST_STORE_CHANGED;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.security.action.TRUST_STORE_CHANGED"
public static final java.lang.String ACTION_KEY_ACCESS_CHANGED;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.security.action.KEY_ACCESS_CHANGED"
public static final java.lang.String EXTRA_KEY_ALIAS;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.security.extra.KEY_ALIAS"
public static final java.lang.String EXTRA_KEY_ACCESSIBLE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.security.extra.KEY_ACCESSIBLE"
public static final int KEY_GEN_SUCCESS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int KEY_GEN_MISSING_ALIAS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int KEY_GEN_SUPERFLUOUS_ATTESTATION_CHALLENGE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int KEY_GEN_NO_SUCH_ALGORITHM;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int KEY_GEN_INVALID_ALGORITHM_PARAMETERS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final int KEY_GEN_NO_KEYSTORE_PROVIDER;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 5
public static final int KEY_GEN_FAILURE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 6
public static final int KEY_ATTESTATION_SUCCESS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int KEY_ATTESTATION_MISSING_CHALLENGE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int KEY_ATTESTATION_CANNOT_COLLECT_DATA;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int KEY_ATTESTATION_CANNOT_ATTEST_IDS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int KEY_ATTESTATION_FAILURE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/security/KeyChain;
public static android.content.Intent createInstallIntent();
descriptor: ()Landroid/content/Intent;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: new android.content.Intent
dup
ldc "android.credentials.INSTALL"
invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
astore 0
start local 0 1: aload 0
ldc "com.android.certinstaller"
2: ldc "com.android.certinstaller.CertInstallerMain"
3: invokevirtual android.content.Intent.setClassName:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
pop
4: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 intent Landroid/content/Intent;
public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String);
descriptor: (Landroid/app/Activity;Landroid/security/KeyChainAliasCallback;[Ljava/lang/String;[Ljava/security/Principal;Ljava/lang/String;ILjava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aconst_null
astore 7
start local 7 1: aload 4
ifnull 8
2: new android.net.Uri$Builder
dup
invokespecial android.net.Uri$Builder.<init>:()V
3: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
iconst_m1
if_icmpeq 4
new java.lang.StringBuilder
dup
ldc ":"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 5
StackMap locals: android.app.Activity android.security.KeyChainAliasCallback java.lang.String[] java.security.Principal[] java.lang.String int java.lang.String android.net.Uri
StackMap stack: android.net.Uri$Builder java.lang.StringBuilder
4: ldc ""
StackMap locals: android.app.Activity android.security.KeyChainAliasCallback java.lang.String[] java.security.Principal[] java.lang.String int java.lang.String android.net.Uri
StackMap stack: android.net.Uri$Builder java.lang.StringBuilder java.lang.String
5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual android.net.Uri$Builder.authority:(Ljava/lang/String;)Landroid/net/Uri$Builder;
6: invokevirtual android.net.Uri$Builder.build:()Landroid/net/Uri;
7: astore 7
8: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 7
aload 6
invokestatic android.security.KeyChain.choosePrivateKeyAlias:(Landroid/app/Activity;Landroid/security/KeyChainAliasCallback;[Ljava/lang/String;[Ljava/security/Principal;Landroid/net/Uri;Ljava/lang/String;)V
9: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 activity Landroid/app/Activity;
0 10 1 response Landroid/security/KeyChainAliasCallback;
0 10 2 keyTypes [Ljava/lang/String;
0 10 3 issuers [Ljava/security/Principal;
0 10 4 host Ljava/lang/String;
0 10 5 port I
0 10 6 alias Ljava/lang/String;
1 10 7 uri Landroid/net/Uri;
MethodParameters:
Name Flags
activity
response
keyTypes
issuers
host
port
alias
public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], android.net.Uri, java.lang.String);
descriptor: (Landroid/app/Activity;Landroid/security/KeyChainAliasCallback;[Ljava/lang/String;[Ljava/security/Principal;Landroid/net/Uri;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "activity == null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "response == null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new android.content.Intent
dup
ldc "com.android.keychain.CHOOSER"
invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
astore 6
start local 6 5: aload 6
ldc "com.android.keychain"
invokevirtual android.content.Intent.setPackage:(Ljava/lang/String;)Landroid/content/Intent;
pop
6: aload 6
ldc "response"
new android.security.KeyChain$AliasResponse
dup
aload 1
invokespecial android.security.KeyChain$AliasResponse.<init>:(Landroid/security/KeyChainAliasCallback;)V
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/IBinder;)Landroid/content/Intent;
pop
7: aload 6
ldc "uri"
aload 4
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
pop
8: aload 6
ldc "alias"
aload 5
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
pop
9: aload 6
ldc "sender"
aload 0
iconst_0
new android.content.Intent
dup
invokespecial android.content.Intent.<init>:()V
iconst_0
invokestatic android.app.PendingIntent.getActivity:(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
invokevirtual android.content.Intent.putExtra:(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
pop
10: aload 0
aload 6
invokevirtual android.app.Activity.startActivity:(Landroid/content/Intent;)V
11: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 activity Landroid/app/Activity;
0 12 1 response Landroid/security/KeyChainAliasCallback;
0 12 2 keyTypes [Ljava/lang/String;
0 12 3 issuers [Ljava/security/Principal;
0 12 4 uri Landroid/net/Uri;
0 12 5 alias Ljava/lang/String;
5 12 6 intent Landroid/content/Intent;
MethodParameters:
Name Flags
activity
response
keyTypes
issuers
uri
alias
public static java.security.PrivateKey getPrivateKey(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)Ljava/security/PrivateKey;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic android.security.KeyChain.getKeyPair:(Landroid/content/Context;Ljava/lang/String;)Ljava/security/KeyPair;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
areturn
3: StackMap locals: java.security.KeyPair
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Landroid/content/Context;
0 4 1 alias Ljava/lang/String;
1 4 2 keyPair Ljava/security/KeyPair;
Exceptions:
throws android.security.KeyChainException, java.lang.InterruptedException
MethodParameters:
Name Flags
context
alias
public static java.security.KeyPair getKeyPair(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)Ljava/security/KeyPair;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "alias == null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "context == null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aconst_null
astore 3
aconst_null
astore 4
5: aload 0
invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
invokestatic android.security.KeyChain.bind:(Landroid/content/Context;)Landroid/security/KeyChain$KeyChainConnection;
astore 5
start local 5 6: aload 5
invokevirtual android.security.KeyChain$KeyChainConnection.getService:()Landroid/security/IKeyChainService;
aload 1
invokeinterface android.security.IKeyChainService.requestPrivateKey:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 7: aload 5
ifnull 17
aload 5
invokevirtual android.security.KeyChain$KeyChainConnection.close:()V
goto 17
end local 2 StackMap locals: android.content.Context java.lang.String top java.lang.Throwable java.lang.Throwable android.security.KeyChain$KeyChainConnection
StackMap stack: java.lang.Throwable
8: astore 3
aload 5
ifnull 9
aload 5
invokevirtual android.security.KeyChain$KeyChainConnection.close:()V
end local 5 StackMap locals:
StackMap stack:
9: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 4
aload 3
ifnonnull 11
aload 4
astore 3
goto 12
StackMap locals:
StackMap stack:
11: aload 3
aload 4
if_acmpeq 12
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 3
athrow
StackMap locals: android.content.Context java.lang.String
StackMap stack: android.os.RemoteException
13: astore 3
start local 3 14: new android.security.KeyChainException
dup
aload 3
invokespecial android.security.KeyChainException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 15: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 3
start local 3 16: new android.security.KeyChainException
dup
aload 3
invokespecial android.security.KeyChainException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 17: StackMap locals: java.lang.String
StackMap stack:
aload 2
ifnonnull 19
18: aconst_null
areturn
19: StackMap locals:
StackMap stack:
invokestatic android.security.KeyStore.getInstance:()Landroid/security/KeyStore;
aload 2
iconst_m1
20: invokestatic android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStoreKeyPairFromKeystore:(Landroid/security/KeyStore;Ljava/lang/String;I)Ljava/security/KeyPair;
21: areturn
22: StackMap locals:
StackMap stack: java.lang.Exception
astore 3
start local 3 23: new android.security.KeyChainException
dup
aload 3
invokespecial android.security.KeyChainException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 context Landroid/content/Context;
0 24 1 alias Ljava/lang/String;
7 8 2 keyId Ljava/lang/String;
17 24 2 keyId Ljava/lang/String;
6 9 5 keyChainConnection Landroid/security/KeyChain$KeyChainConnection;
14 15 3 e Landroid/os/RemoteException;
16 17 3 e Ljava/lang/RuntimeException;
23 24 3 e Ljava/lang/Exception;
Exception table:
from to target type
6 7 8 any
5 10 10 any
4 13 13 Class android.os.RemoteException
4 13 15 Class java.lang.RuntimeException
19 21 22 Class java.lang.RuntimeException
19 21 22 Class java.security.UnrecoverableKeyException
Exceptions:
throws android.security.KeyChainException, java.lang.InterruptedException
MethodParameters:
Name Flags
context
alias
public static java.security.cert.X509Certificate[] getCertificateChain(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tTrustedCertificateStore cannot be resolved to a type\n\tTrustedCertificateStore cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws android.security.KeyChainException, java.lang.InterruptedException
MethodParameters:
Name Flags
context
alias
public static boolean isKeyAlgorithmSupported(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getstatic java.util.Locale.US:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 1
start local 1 1: ldc "EC"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
2: ldc "RSA"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
3: iconst_0
ireturn
StackMap locals: java.lang.String
StackMap stack:
4: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 algorithm Ljava/lang/String;
1 5 1 algUpper Ljava/lang/String;
MethodParameters:
Name Flags
algorithm
public static boolean isBoundKeyAlgorithm(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic android.security.KeyChain.isKeyAlgorithmSupported:(Ljava/lang/String;)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
invokestatic android.security.KeyStore.getInstance:()Landroid/security/KeyStore;
aload 0
invokevirtual android.security.KeyStore.isHardwareBacked:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 algorithm Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
algorithm
public static java.security.cert.X509Certificate toCertificate(byte[]);
descriptor: ([B)Ljava/security/cert/X509Certificate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "bytes == null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 1
start local 1 3: aload 1
new java.io.ByteArrayInputStream
dup
aload 0
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
astore 2
start local 2 4: aload 2
checkcast java.security.cert.X509Certificate
5: areturn
end local 2 end local 1 6: StackMap locals:
StackMap stack: java.security.cert.CertificateException
astore 1
start local 1 7: new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 bytes [B
3 6 1 certFactory Ljava/security/cert/CertificateFactory;
4 6 2 cert Ljava/security/cert/Certificate;
7 8 1 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
2 5 6 Class java.security.cert.CertificateException
MethodParameters:
Name Flags
bytes
public static java.util.Collection<java.security.cert.X509Certificate> toCertificates(byte[]);
descriptor: ([B)Ljava/util/Collection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "bytes == null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 1
start local 1 3: aload 1
4: new java.io.ByteArrayInputStream
dup
aload 0
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
5: invokevirtual java.security.cert.CertificateFactory.generateCertificates:(Ljava/io/InputStream;)Ljava/util/Collection;
6: areturn
end local 1 7: StackMap locals:
StackMap stack: java.security.cert.CertificateException
astore 1
start local 1 8: new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 bytes [B
3 7 1 certFactory Ljava/security/cert/CertificateFactory;
8 9 1 e Ljava/security/cert/CertificateException;
Exception table:
from to target type
2 6 7 Class java.security.cert.CertificateException
Signature: ([B)Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
MethodParameters:
Name Flags
bytes
public static android.security.KeyChain$KeyChainConnection bind(android.content.Context);
descriptor: (Landroid/content/Context;)Landroid/security/KeyChain$KeyChainConnection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic android.os.Process.myUserHandle:()Landroid/os/UserHandle;
invokestatic android.security.KeyChain.bindAsUser:(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Landroid/content/Context;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
context
public static android.security.KeyChain$KeyChainConnection bindAsUser(android.content.Context, android.os.UserHandle);
descriptor: (Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "context == null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokestatic android.security.KeyChain.ensureNotOnMainThread:(Landroid/content/Context;)V
3: new java.util.concurrent.LinkedBlockingQueue
dup
iconst_1
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:(I)V
astore 2
start local 2 4: new android.security.KeyChain$1
dup
aload 2
invokespecial android.security.KeyChain$1.<init>:(Ljava/util/concurrent/BlockingQueue;)V
astore 3
start local 3 5: new android.content.Intent
dup
ldc Landroid/security/IKeyChainService;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
astore 4
start local 4 6: aload 4
aload 0
invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
iconst_0
invokevirtual android.content.Intent.resolveSystemService:(Landroid/content/pm/PackageManager;I)Landroid/content/ComponentName;
astore 5
start local 5 7: aload 4
aload 5
invokevirtual android.content.Intent.setComponent:(Landroid/content/ComponentName;)Landroid/content/Intent;
pop
8: aload 5
ifnull 12
aload 0
9: aload 4
aload 3
iconst_1
aload 1
10: invokevirtual android.content.Context.bindServiceAsUser:(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
11: ifne 13
12: StackMap locals: android.content.Context android.os.UserHandle java.util.concurrent.BlockingQueue android.content.ServiceConnection android.content.Intent android.content.ComponentName
StackMap stack:
new java.lang.AssertionError
dup
ldc "could not bind to KeyChainService"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
new android.security.KeyChain$KeyChainConnection
dup
aload 0
aload 3
aload 2
invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
checkcast android.security.IKeyChainService
invokespecial android.security.KeyChain$KeyChainConnection.<init>:(Landroid/content/Context;Landroid/content/ServiceConnection;Landroid/security/IKeyChainService;)V
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 14 0 context Landroid/content/Context;
0 14 1 user Landroid/os/UserHandle;
4 14 2 q Ljava/util/concurrent/BlockingQueue<Landroid/security/IKeyChainService;>;
5 14 3 keyChainServiceConnection Landroid/content/ServiceConnection;
6 14 4 intent Landroid/content/Intent;
7 14 5 comp Landroid/content/ComponentName;
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
context
user
private static void ensureNotOnMainThread(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
astore 1
start local 1 1: aload 1
ifnull 5
aload 1
aload 0
invokevirtual android.content.Context.getMainLooper:()Landroid/os/Looper;
if_acmpne 5
2: new java.lang.IllegalStateException
dup
3: ldc "calling this from your main thread can lead to deadlock"
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: android.os.Looper
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 context Landroid/content/Context;
1 6 1 looper Landroid/os/Looper;
MethodParameters:
Name Flags
context
}
SourceFile: "KeyChain.java"
NestMembers:
android.security.KeyChain$1 android.security.KeyChain$AliasResponse android.security.KeyChain$KeyChainConnection
InnerClasses:
public final Builder = android.net.Uri$Builder of android.net.Uri
android.security.KeyChain$1
private AliasResponse = android.security.KeyChain$AliasResponse of android.security.KeyChain
public KeyChainConnection = android.security.KeyChain$KeyChainConnection of android.security.KeyChain