X931SecureRandom.smali
.class public Lorg/spongycastle/crypto/prng/X931SecureRandom;
.super Ljava/security/SecureRandom;
.source "X931SecureRandom.java"
# instance fields
.field private final drbg:Lorg/spongycastle/crypto/prng/X931RNG;
.field private final predictionResistant:Z
.field private final randomSource:Ljava/security/SecureRandom;
# direct methods
.method constructor <init>(Ljava/security/SecureRandom;Lorg/spongycastle/crypto/prng/X931RNG;Z)V
.registers 4
.prologue
.line 13
invoke-direct {p0}, Ljava/security/SecureRandom;-><init>()V
.line 14
iput-object p1, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->randomSource:Ljava/security/SecureRandom;
.line 15
iput-object p2, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->drbg:Lorg/spongycastle/crypto/prng/X931RNG;
.line 16
iput-boolean p3, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->predictionResistant:Z
.line 17
return-void
.end method
# virtual methods
.method public generateSeed(I)[B
.registers 3
.prologue
.line 57
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->drbg:Lorg/spongycastle/crypto/prng/X931RNG;
invoke-virtual {v0}, Lorg/spongycastle/crypto/prng/X931RNG;->getEntropySource()Lorg/spongycastle/crypto/prng/EntropySource;
move-result-object v0
invoke-static {v0, p1}, Lorg/spongycastle/crypto/prng/EntropyUtil;->generateSeed(Lorg/spongycastle/crypto/prng/EntropySource;I)[B
move-result-object v0
return-object v0
.end method
.method public nextBytes([B)V
.registers 4
.prologue
.line 44
monitor-enter p0
.line 47
:try_start_1
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->drbg:Lorg/spongycastle/crypto/prng/X931RNG;
iget-boolean v1, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->predictionResistant:Z
invoke-virtual {v0, p1, v1}, Lorg/spongycastle/crypto/prng/X931RNG;->generate([BZ)I
move-result v0
if-gez v0, :cond_17
.line 49
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->drbg:Lorg/spongycastle/crypto/prng/X931RNG;
invoke-virtual {v0}, Lorg/spongycastle/crypto/prng/X931RNG;->reseed()V
.line 50
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->drbg:Lorg/spongycastle/crypto/prng/X931RNG;
iget-boolean v1, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->predictionResistant:Z
invoke-virtual {v0, p1, v1}, Lorg/spongycastle/crypto/prng/X931RNG;->generate([BZ)I
.line 52
:cond_17
monitor-exit p0
return-void
:catchall_19
move-exception v0
monitor-exit p0
:try_end_1b
.catchall {:try_start_1 .. :try_end_1b} :catchall_19
throw v0
.end method
.method public setSeed(J)V
.registers 4
.prologue
.line 32
monitor-enter p0
.line 35
:try_start_1
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->randomSource:Ljava/security/SecureRandom;
if-eqz v0, :cond_a
.line 37
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->randomSource:Ljava/security/SecureRandom;
invoke-virtual {v0, p1, p2}, Ljava/security/SecureRandom;->setSeed(J)V
.line 39
:cond_a
monitor-exit p0
return-void
:catchall_c
move-exception v0
monitor-exit p0
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_c
throw v0
.end method
.method public setSeed([B)V
.registers 3
.prologue
.line 21
monitor-enter p0
.line 23
:try_start_1
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->randomSource:Ljava/security/SecureRandom;
if-eqz v0, :cond_a
.line 25
iget-object v0, p0, Lorg/spongycastle/crypto/prng/X931SecureRandom;->randomSource:Ljava/security/SecureRandom;
invoke-virtual {v0, p1}, Ljava/security/SecureRandom;->setSeed([B)V
.line 27
:cond_a
monitor-exit p0
return-void
:catchall_c
move-exception v0
monitor-exit p0
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_c
throw v0
.end method