BaseKeyFactorySpi.smali
.class public abstract Lorg/spongycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;
.super Ljava/security/KeyFactorySpi;
.source "BaseKeyFactorySpi.java"
# interfaces
.implements Lorg/spongycastle/jcajce/provider/util/AsymmetricKeyInfoConverter;
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 15
invoke-direct {p0}, Ljava/security/KeyFactorySpi;-><init>()V
return-void
.end method
# virtual methods
.method public engineGeneratePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
.registers 4
.prologue
.line 23
instance-of v0, p1, Ljava/security/spec/PKCS8EncodedKeySpec;
if-eqz v0, :cond_1c
.line 27
:try_start_4
check-cast p1, Ljava/security/spec/PKCS8EncodedKeySpec;
invoke-virtual {p1}, Ljava/security/spec/PKCS8EncodedKeySpec;->getEncoded()[B
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/pkcs/PrivateKeyInfo;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/pkcs/PrivateKeyInfo;
move-result-object v0
invoke-virtual {p0, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;->generatePrivate(Lorg/spongycastle/asn1/pkcs/PrivateKeyInfo;)Ljava/security/PrivateKey;
:try_end_11
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_11} :catch_13
move-result-object v0
return-object v0
.line 31
:catch_13
move-exception v0
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
const-string v1, "encoded key spec not recognised"
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.line 36
:cond_1c
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
const-string v1, "key spec not recognised"
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
.registers 4
.prologue
.line 44
instance-of v0, p1, Ljava/security/spec/X509EncodedKeySpec;
if-eqz v0, :cond_1c
.line 48
:try_start_4
check-cast p1, Ljava/security/spec/X509EncodedKeySpec;
invoke-virtual {p1}, Ljava/security/spec/X509EncodedKeySpec;->getEncoded()[B
move-result-object v0
invoke-static {v0}, Lorg/spongycastle/asn1/x509/SubjectPublicKeyInfo;->getInstance(Ljava/lang/Object;)Lorg/spongycastle/asn1/x509/SubjectPublicKeyInfo;
move-result-object v0
invoke-virtual {p0, v0}, Lorg/spongycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;->generatePublic(Lorg/spongycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
:try_end_11
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_11} :catch_13
move-result-object v0
return-object v0
.line 52
:catch_13
move-exception v0
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
const-string v1, "encoded key spec not recognised"
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.line 57
:cond_1c
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
const-string v1, "key spec not recognised"
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public engineGetKeySpec(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
.registers 6
.prologue
.line 66
const-class v0, Ljava/security/spec/PKCS8EncodedKeySpec;
invoke-virtual {p2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_1e
invoke-interface {p1}, Ljava/security/Key;->getFormat()Ljava/lang/String;
move-result-object v0
const-string v1, "PKCS#8"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1e
.line 68
new-instance v0, Ljava/security/spec/PKCS8EncodedKeySpec;
invoke-interface {p1}, Ljava/security/Key;->getEncoded()[B
move-result-object v1
invoke-direct {v0, v1}, Ljava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V
.line 72
:goto_1d
return-object v0
.line 70
:cond_1e
const-class v0, Ljava/security/spec/X509EncodedKeySpec;
invoke-virtual {p2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_3c
invoke-interface {p1}, Ljava/security/Key;->getFormat()Ljava/lang/String;
move-result-object v0
const-string v1, "X.509"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_3c
.line 72
new-instance v0, Ljava/security/spec/X509EncodedKeySpec;
invoke-interface {p1}, Ljava/security/Key;->getEncoded()[B
move-result-object v1
invoke-direct {v0, v1}, Ljava/security/spec/X509EncodedKeySpec;-><init>([B)V
goto :goto_1d
.line 75
:cond_3c
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "not implemented yet "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.end method