DES$KeyFactory.smali
.class public Lorg/spongycastle/jcajce/provider/symmetric/DES$KeyFactory;
.super Lorg/spongycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory;
.source "DES.java"
# direct methods
.method public constructor <init>()V
.registers 3
.prologue
.line 232
const-string v0, "DES"
const/4 v1, 0x0
invoke-direct {p0, v0, v1}, Lorg/spongycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory;-><init>(Ljava/lang/String;Lorg/spongycastle/asn1/ASN1ObjectIdentifier;)V
.line 233
return-void
.end method
# virtual methods
.method protected engineGenerateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
.registers 5
.prologue
.line 274
instance-of v0, p1, Ljavax/crypto/spec/DESKeySpec;
if-eqz v0, :cond_12
.line 276
check-cast p1, Ljavax/crypto/spec/DESKeySpec;
.line 277
new-instance v0, Ljavax/crypto/spec/SecretKeySpec;
invoke-virtual {p1}, Ljavax/crypto/spec/DESKeySpec;->getKey()[B
move-result-object v1
const-string v2, "DES"
invoke-direct {v0, v1, v2}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
.line 280
:goto_11
return-object v0
:cond_12
invoke-super {p0, p1}, Lorg/spongycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory;->engineGenerateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
move-result-object v0
goto :goto_11
.end method
.method protected engineGetKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
.registers 6
.prologue
.line 240
if-nez p2, :cond_a
.line 242
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
const-string v1, "keySpec parameter is null"
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.line 244
:cond_a
if-nez p1, :cond_14
.line 246
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
const-string v1, "key parameter is null"
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.line 249
:cond_14
const-class v0, Ljavax/crypto/spec/SecretKeySpec;
invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_28
.line 251
new-instance v0, Ljavax/crypto/spec/SecretKeySpec;
invoke-interface {p1}, Ljavax/crypto/SecretKey;->getEncoded()[B
move-result-object v1
iget-object v2, p0, Lorg/spongycastle/jcajce/provider/symmetric/DES$KeyFactory;->algName:Ljava/lang/String;
invoke-direct {v0, v1, v2}, Ljavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
.line 259
:goto_27
return-object v0
.line 253
:cond_28
const-class v0, Ljavax/crypto/spec/DESKeySpec;
invoke-virtual {v0, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_45
.line 255
invoke-interface {p1}, Ljavax/crypto/SecretKey;->getEncoded()[B
move-result-object v1
.line 259
:try_start_34
new-instance v0, Ljavax/crypto/spec/DESKeySpec;
invoke-direct {v0, v1}, Ljavax/crypto/spec/DESKeySpec;-><init>([B)V
:try_end_39
.catch Ljava/lang/Exception; {:try_start_34 .. :try_end_39} :catch_3a
goto :goto_27
.line 261
:catch_3a
move-exception v0
.line 263
new-instance v1, Ljava/security/spec/InvalidKeySpecException;
invoke-virtual {v0}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v1
.line 267
:cond_45
new-instance v0, Ljava/security/spec/InvalidKeySpecException;
const-string v1, "Invalid KeySpec"
invoke-direct {v0, v1}, Ljava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
throw v0
.end method