DESedeParameters.smali
.class public Lorg/spongycastle/crypto/params/DESedeParameters;
.super Lorg/spongycastle/crypto/params/DESParameters;
.source "DESedeParameters.java"
# static fields
.field public static final DES_EDE_KEY_LENGTH:I = 0x18
# direct methods
.method public constructor <init>([B)V
.registers 4
.prologue
.line 14
invoke-direct {p0, p1}, Lorg/spongycastle/crypto/params/DESParameters;-><init>([B)V
.line 16
const/4 v0, 0x0
array-length v1, p1
invoke-static {p1, v0, v1}, Lorg/spongycastle/crypto/params/DESedeParameters;->isWeakKey([BII)Z
move-result v0
if-eqz v0, :cond_13
.line 18
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "attempt to create weak DESede key"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 20
:cond_13
return-void
.end method
.method public static isReal2Key([BI)Z
.registers 6
.prologue
.line 77
const/4 v0, 0x0
move v1, p1
.line 78
:goto_2
add-int/lit8 v2, p1, 0x8
if-eq v1, v2, :cond_12
.line 80
aget-byte v2, p0, v1
add-int/lit8 v3, v1, 0x8
aget-byte v3, p0, v3
if-eq v2, v3, :cond_f
.line 82
const/4 v0, 0x1
.line 78
:cond_f
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 86
:cond_12
return v0
.end method
.method public static isReal3Key([BI)Z
.registers 10
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 97
move v3, p1
move v4, v2
move v5, v2
move v6, v2
.line 98
:goto_6
add-int/lit8 v0, p1, 0x8
if-eq v3, v0, :cond_34
.line 100
aget-byte v0, p0, v3
add-int/lit8 v7, v3, 0x8
aget-byte v7, p0, v7
if-eq v0, v7, :cond_2e
move v0, v1
:goto_13
or-int/2addr v6, v0
.line 101
aget-byte v0, p0, v3
add-int/lit8 v7, v3, 0x10
aget-byte v7, p0, v7
if-eq v0, v7, :cond_30
move v0, v1
:goto_1d
or-int/2addr v5, v0
.line 102
add-int/lit8 v0, v3, 0x8
aget-byte v0, p0, v0
add-int/lit8 v7, v3, 0x10
aget-byte v7, p0, v7
if-eq v0, v7, :cond_32
move v0, v1
:goto_29
or-int/2addr v4, v0
.line 98
add-int/lit8 v0, v3, 0x1
move v3, v0
goto :goto_6
:cond_2e
move v0, v2
.line 100
goto :goto_13
:cond_30
move v0, v2
.line 101
goto :goto_1d
:cond_32
move v0, v2
.line 102
goto :goto_29
.line 104
:cond_34
if-eqz v6, :cond_3b
if-eqz v5, :cond_3b
if-eqz v4, :cond_3b
:goto_3a
return v1
:cond_3b
move v1, v2
goto :goto_3a
.end method
.method public static isRealEDEKey([BI)Z
.registers 4
.prologue
.line 66
array-length v0, p0
const/16 v1, 0x10
if-ne v0, v1, :cond_a
invoke-static {p0, p1}, Lorg/spongycastle/crypto/params/DESedeParameters;->isReal2Key([BI)Z
move-result v0
:goto_9
return v0
:cond_a
invoke-static {p0, p1}, Lorg/spongycastle/crypto/params/DESedeParameters;->isReal3Key([BI)Z
move-result v0
goto :goto_9
.end method
.method public static isWeakKey([BI)Z
.registers 3
.prologue
.line 55
array-length v0, p0
sub-int/2addr v0, p1
invoke-static {p0, p1, v0}, Lorg/spongycastle/crypto/params/DESedeParameters;->isWeakKey([BII)Z
move-result v0
return v0
.end method
.method public static isWeakKey([BII)Z
.registers 4
.prologue
.line 34
:goto_0
if-ge p1, p2, :cond_d
.line 36
invoke-static {p0, p1}, Lorg/spongycastle/crypto/params/DESParameters;->isWeakKey([BI)Z
move-result v0
if-eqz v0, :cond_a
.line 38
const/4 v0, 0x1
.line 42
:goto_9
return v0
.line 34
:cond_a
add-int/lit8 p1, p1, 0x8
goto :goto_0
.line 42
:cond_d
const/4 v0, 0x0
goto :goto_9
.end method