.class Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate; .super Ljava/lang/Object; .source "SSLContextBuilder.java" # interfaces .implements Ljavax/net/ssl/X509KeyManager; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lorg/apache/http/conn/ssl/SSLContextBuilder; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x8 name = "KeyManagerDelegate" .end annotation # instance fields .field private final aliasStrategy:Lorg/apache/http/conn/ssl/PrivateKeyStrategy; .field private final keyManager:Ljavax/net/ssl/X509KeyManager; # direct methods .method constructor (Ljavax/net/ssl/X509KeyManager;Lorg/apache/http/conn/ssl/PrivateKeyStrategy;)V .registers 3 .line 209 invoke-direct {p0}, Ljava/lang/Object;->()V .line 210 iput-object p1, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; .line 211 iput-object p2, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->aliasStrategy:Lorg/apache/http/conn/ssl/PrivateKeyStrategy; return-void .end method # virtual methods .method public chooseClientAlias([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String; .registers 15 .line 223 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V .line 224 array-length v1, p1 const/4 v2, 0x0 move v3, v2 :goto_8 if-ge v3, v1, :cond_2e aget-object v4, p1, v3 .line 225 iget-object v5, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v5, v4, p2}, Ljavax/net/ssl/X509KeyManager;->getClientAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String; move-result-object v5 if-eqz v5, :cond_2b .line 227 array-length v6, v5 move v7, v2 :goto_16 if-ge v7, v6, :cond_2b aget-object v8, v5, v7 .line 228 new-instance v9, Lorg/apache/http/conn/ssl/PrivateKeyDetails; iget-object v10, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v10, v8}, Ljavax/net/ssl/X509KeyManager;->getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/X509Certificate; move-result-object v10 invoke-direct {v9, v4, v10}, Lorg/apache/http/conn/ssl/PrivateKeyDetails;->(Ljava/lang/String;[Ljava/security/cert/X509Certificate;)V invoke-interface {v0, v8, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; add-int/lit8 v7, v7, 0x1 goto :goto_16 :cond_2b add-int/lit8 v3, v3, 0x1 goto :goto_8 .line 233 :cond_2e iget-object p1, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->aliasStrategy:Lorg/apache/http/conn/ssl/PrivateKeyStrategy; invoke-interface {p1, v0, p3}, Lorg/apache/http/conn/ssl/PrivateKeyStrategy;->chooseAlias(Ljava/util/Map;Ljava/net/Socket;)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public chooseServerAlias(Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String; .registers 10 .line 245 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V .line 246 iget-object v1, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v1, p1, p2}, Ljavax/net/ssl/X509KeyManager;->getServerAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String; move-result-object p2 if-eqz p2, :cond_24 .line 248 array-length v1, p2 const/4 v2, 0x0 :goto_f if-ge v2, v1, :cond_24 aget-object v3, p2, v2 .line 249 new-instance v4, Lorg/apache/http/conn/ssl/PrivateKeyDetails; iget-object v5, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v5, v3}, Ljavax/net/ssl/X509KeyManager;->getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/X509Certificate; move-result-object v5 invoke-direct {v4, p1, v5}, Lorg/apache/http/conn/ssl/PrivateKeyDetails;->(Ljava/lang/String;[Ljava/security/cert/X509Certificate;)V invoke-interface {v0, v3, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; add-int/lit8 v2, v2, 0x1 goto :goto_f .line 253 :cond_24 iget-object p1, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->aliasStrategy:Lorg/apache/http/conn/ssl/PrivateKeyStrategy; invoke-interface {p1, v0, p3}, Lorg/apache/http/conn/ssl/PrivateKeyStrategy;->chooseAlias(Ljava/util/Map;Ljava/net/Socket;)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/X509Certificate; .registers 3 .line 258 iget-object v0, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v0, p1}, Ljavax/net/ssl/X509KeyManager;->getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/X509Certificate; move-result-object p1 return-object p1 .end method .method public getClientAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String; .registers 4 .line 217 iget-object v0, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v0, p1, p2}, Ljavax/net/ssl/X509KeyManager;->getClientAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public getPrivateKey(Ljava/lang/String;)Ljava/security/PrivateKey; .registers 3 .line 263 iget-object v0, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v0, p1}, Ljavax/net/ssl/X509KeyManager;->getPrivateKey(Ljava/lang/String;)Ljava/security/PrivateKey; move-result-object p1 return-object p1 .end method .method public getServerAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String; .registers 4 .line 239 iget-object v0, p0, Lorg/apache/http/conn/ssl/SSLContextBuilder$KeyManagerDelegate;->keyManager:Ljavax/net/ssl/X509KeyManager; invoke-interface {v0, p1, p2}, Ljavax/net/ssl/X509KeyManager;->getServerAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String; move-result-object p1 return-object p1 .end method