OpenSSLAeadCipherAES$GCM_SIV.smali
.class public Lorg/conscrypt/OpenSSLAeadCipherAES$GCM_SIV;
.super Lorg/conscrypt/OpenSSLAeadCipherAES;
.source ""
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/conscrypt/OpenSSLAeadCipherAES;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "GCM_SIV"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lorg/conscrypt/OpenSSLAeadCipherAES$GCM_SIV$AES_256;,
Lorg/conscrypt/OpenSSLAeadCipherAES$GCM_SIV$AES_128;
}
.end annotation
# direct methods
.method public constructor <init>()V
.registers 2
sget-object v0, Lorg/conscrypt/OpenSSLCipher$Mode;->GCM_SIV:Lorg/conscrypt/OpenSSLCipher$Mode;
invoke-direct {p0, v0}, Lorg/conscrypt/OpenSSLAeadCipherAES;-><init>(Lorg/conscrypt/OpenSSLCipher$Mode;)V
return-void
.end method
# virtual methods
.method allowsNonceReuse()Z
.registers 2
const/4 v0, 0x1
return v0
.end method
.method checkSupportedMode(Lorg/conscrypt/OpenSSLCipher$Mode;)V
.registers 3
sget-object v0, Lorg/conscrypt/OpenSSLCipher$Mode;->GCM_SIV:Lorg/conscrypt/OpenSSLCipher$Mode;
if-ne p1, v0, :cond_5
return-void
:cond_5
new-instance p1, Ljava/security/NoSuchAlgorithmException;
const-string v0, "Mode must be GCM-SIV"
invoke-direct {p1, v0}, Ljava/security/NoSuchAlgorithmException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method checkSupportedTagLength(I)V
.registers 3
const/16 v0, 0x80
if-ne p1, v0, :cond_5
return-void
:cond_5
new-instance p1, Ljava/security/InvalidAlgorithmParameterException;
const-string v0, "Tag length must be 128 bits"
invoke-direct {p1, v0}, Ljava/security/InvalidAlgorithmParameterException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method getEVP_AEAD(I)J
.registers 5
const/16 v0, 0x10
if-ne p1, v0, :cond_9
invoke-static {}, Lorg/conscrypt/NativeCrypto;->EVP_aead_aes_128_gcm_siv()J
move-result-wide v0
return-wide v0
:cond_9
const/16 v0, 0x20
if-ne p1, v0, :cond_12
invoke-static {}, Lorg/conscrypt/NativeCrypto;->EVP_aead_aes_256_gcm_siv()J
move-result-wide v0
return-wide v0
:cond_12
new-instance v0, Ljava/lang/RuntimeException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Unexpected key length: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method