EntropyUtil.smali

.class public Lorg/spongycastle/crypto/prng/EntropyUtil;
.super Ljava/lang/Object;
.source "EntropyUtil.java"


# direct methods
.method public constructor <init>()V
    .registers 1

    .prologue
    .line 6
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static generateSeed(Lorg/spongycastle/crypto/prng/EntropySource;I)[B
    .registers 9

    .prologue
    const/4 v1, 0x0

    .line 17
    new-array v2, p1, [B

    .line 19
    shl-int/lit8 v0, p1, 0x3

    invoke-interface {p0}, Lorg/spongycastle/crypto/prng/EntropySource;->entropySize()I

    move-result v3

    if-gt v0, v3, :cond_13

    .line 21
    invoke-interface {p0}, Lorg/spongycastle/crypto/prng/EntropySource;->getEntropy()[B

    move-result-object v0

    .line 23
    invoke-static {v0, v1, v2, v1, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 44
    :cond_12
    return-object v2

    .line 27
    :cond_13
    invoke-interface {p0}, Lorg/spongycastle/crypto/prng/EntropySource;->entropySize()I

    move-result v0

    div-int/lit8 v3, v0, 0x8

    move v0, v1

    .line 29
    :goto_1a
    if-ge v0, p1, :cond_12

    .line 31
    invoke-interface {p0}, Lorg/spongycastle/crypto/prng/EntropySource;->getEntropy()[B

    move-result-object v4

    .line 33
    array-length v5, v4

    sub-int v6, p1, v0

    if-gt v5, v6, :cond_2b

    .line 35
    array-length v5, v4

    invoke-static {v4, v1, v2, v0, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 29
    :goto_29
    add-int/2addr v0, v3

    goto :goto_1a

    .line 39
    :cond_2b
    sub-int v5, p1, v0

    invoke-static {v4, v1, v2, v0, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    goto :goto_29
.end method