DTLSEpoch.smali

.class Lorg/spongycastle/crypto/tls/DTLSEpoch;
.super Ljava/lang/Object;
.source "DTLSEpoch.java"


# instance fields
.field private final cipher:Lorg/spongycastle/crypto/tls/TlsCipher;

.field private final epoch:I

.field private final replayWindow:Lorg/spongycastle/crypto/tls/DTLSReplayWindow;

.field private sequenceNumber:J


# direct methods
.method constructor <init>(ILorg/spongycastle/crypto/tls/TlsCipher;)V
    .registers 5

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

    .line 5
    new-instance v0, Lorg/spongycastle/crypto/tls/DTLSReplayWindow;

    invoke-direct {v0}, Lorg/spongycastle/crypto/tls/DTLSReplayWindow;-><init>()V

    iput-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->replayWindow:Lorg/spongycastle/crypto/tls/DTLSReplayWindow;

    .line 10
    const-wide/16 v0, 0x0

    iput-wide v0, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->sequenceNumber:J

    .line 14
    if-gez p1, :cond_18

    .line 16
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "\'epoch\' must be >= 0"

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 18
    :cond_18
    if-nez p2, :cond_22

    .line 20
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "\'cipher\' cannot be null"

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 23
    :cond_22
    iput p1, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->epoch:I

    .line 24
    iput-object p2, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->cipher:Lorg/spongycastle/crypto/tls/TlsCipher;

    .line 25
    return-void
.end method


# virtual methods
.method allocateSequenceNumber()J
    .registers 5

    .prologue
    .line 30
    iget-wide v0, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->sequenceNumber:J

    const-wide/16 v2, 0x1

    add-long/2addr v2, v0

    iput-wide v2, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->sequenceNumber:J

    return-wide v0
.end method

.method getCipher()Lorg/spongycastle/crypto/tls/TlsCipher;
    .registers 2

    .prologue
    .line 35
    iget-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->cipher:Lorg/spongycastle/crypto/tls/TlsCipher;

    return-object v0
.end method

.method getEpoch()I
    .registers 2

    .prologue
    .line 40
    iget v0, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->epoch:I

    return v0
.end method

.method getReplayWindow()Lorg/spongycastle/crypto/tls/DTLSReplayWindow;
    .registers 2

    .prologue
    .line 45
    iget-object v0, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->replayWindow:Lorg/spongycastle/crypto/tls/DTLSReplayWindow;

    return-object v0
.end method

.method getSequenceNumber()J
    .registers 3

    .prologue
    .line 50
    iget-wide v0, p0, Lorg/spongycastle/crypto/tls/DTLSEpoch;->sequenceNumber:J

    return-wide v0
.end method