McEliecePKCSCipherSpi.smali
.class public Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;
.super Lorg/spongycastle/pqc/jcajce/provider/util/AsymmetricBlockCipher;
.source "McEliecePKCSCipherSpi.java"
# interfaces
.implements Lorg/spongycastle/asn1/pkcs/PKCSObjectIdentifiers;
.implements Lorg/spongycastle/asn1/x509/X509ObjectIdentifiers;
# instance fields
.field private cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
.field private digest:Lorg/spongycastle/crypto/Digest;
# direct methods
.method public constructor <init>(Lorg/spongycastle/crypto/Digest;Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;)V
.registers 3
.prologue
.line 37
invoke-direct {p0}, Lorg/spongycastle/pqc/jcajce/provider/util/AsymmetricBlockCipher;-><init>()V
.line 38
iput-object p1, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->digest:Lorg/spongycastle/crypto/Digest;
.line 39
iput-object p2, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
.line 40
return-void
.end method
# virtual methods
.method public getKeySize(Ljava/security/Key;)I
.registers 4
.prologue
.line 109
instance-of v0, p1, Ljava/security/PublicKey;
if-eqz v0, :cond_13
.line 111
check-cast p1, Ljava/security/PublicKey;
invoke-static {p1}, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McElieceKeysToParams;->generatePublicKeyParameter(Ljava/security/PublicKey;)Lorg/spongycastle/crypto/params/AsymmetricKeyParameter;
move-result-object v0
check-cast v0, Lorg/spongycastle/pqc/crypto/mceliece/McElieceKeyParameters;
.line 120
:goto_c
iget-object v1, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
invoke-virtual {v1, v0}, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->getKeySize(Lorg/spongycastle/pqc/crypto/mceliece/McElieceKeyParameters;)I
move-result v0
return v0
.line 115
:cond_13
check-cast p1, Ljava/security/PrivateKey;
invoke-static {p1}, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McElieceKeysToParams;->generatePrivateKeyParameter(Ljava/security/PrivateKey;)Lorg/spongycastle/crypto/params/AsymmetricKeyParameter;
move-result-object v0
check-cast v0, Lorg/spongycastle/pqc/crypto/mceliece/McElieceKeyParameters;
goto :goto_c
.end method
.method public getName()Ljava/lang/String;
.registers 2
.prologue
.line 102
const-string v0, "McEliecePKCS"
return-object v0
.end method
.method protected initCipherDecrypt(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
.registers 6
.prologue
.line 62
check-cast p1, Ljava/security/PrivateKey;
invoke-static {p1}, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McElieceKeysToParams;->generatePrivateKeyParameter(Ljava/security/PrivateKey;)Lorg/spongycastle/crypto/params/AsymmetricKeyParameter;
move-result-object v0
.line 64
iget-object v1, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->digest:Lorg/spongycastle/crypto/Digest;
invoke-interface {v1}, Lorg/spongycastle/crypto/Digest;->reset()V
.line 65
iget-object v1, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
const/4 v2, 0x0
invoke-virtual {v1, v2, v0}, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->init(ZLorg/spongycastle/crypto/CipherParameters;)V
.line 66
iget-object v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
iget v0, v0, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->maxPlainTextSize:I
iput v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->maxPlainTextSize:I
.line 67
iget-object v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
iget v0, v0, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->cipherTextSize:I
iput v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipherTextSize:I
.line 68
return-void
.end method
.method protected initCipherEncrypt(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
.registers 7
.prologue
.line 49
check-cast p1, Ljava/security/PublicKey;
invoke-static {p1}, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McElieceKeysToParams;->generatePublicKeyParameter(Ljava/security/PublicKey;)Lorg/spongycastle/crypto/params/AsymmetricKeyParameter;
move-result-object v0
.line 51
new-instance v1, Lorg/spongycastle/crypto/params/ParametersWithRandom;
invoke-direct {v1, v0, p3}, Lorg/spongycastle/crypto/params/ParametersWithRandom;-><init>(Lorg/spongycastle/crypto/CipherParameters;Ljava/security/SecureRandom;)V
.line 52
iget-object v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->digest:Lorg/spongycastle/crypto/Digest;
invoke-interface {v0}, Lorg/spongycastle/crypto/Digest;->reset()V
.line 53
iget-object v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
const/4 v2, 0x1
invoke-virtual {v0, v2, v1}, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->init(ZLorg/spongycastle/crypto/CipherParameters;)V
.line 54
iget-object v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
iget v0, v0, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->maxPlainTextSize:I
iput v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->maxPlainTextSize:I
.line 55
iget-object v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
iget v0, v0, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->cipherTextSize:I
iput v0, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipherTextSize:I
.line 56
return-void
.end method
.method protected messageDecrypt([B)[B
.registers 4
.prologue
.line 88
const/4 v0, 0x0
.line 91
:try_start_1
iget-object v1, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
invoke-virtual {v1, p1}, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->messageDecrypt([B)[B
:try_end_6
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_6} :catch_8
move-result-object v0
.line 97
:goto_7
return-object v0
.line 95
:catch_8
move-exception v1
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_7
.end method
.method protected messageEncrypt([B)[B
.registers 4
.prologue
.line 73
const/4 v0, 0x0
.line 76
:try_start_1
iget-object v1, p0, Lorg/spongycastle/pqc/jcajce/provider/mceliece/McEliecePKCSCipherSpi;->cipher:Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;
invoke-virtual {v1, p1}, Lorg/spongycastle/pqc/crypto/mceliece/McEliecePKCSCipher;->messageEncrypt([B)[B
:try_end_6
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_6} :catch_8
move-result-object v0
.line 82
:goto_7
return-object v0
.line 80
:catch_8
move-exception v1
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_7
.end method