what-the-bank/sources/org/bouncycastle/crypto/engines/ChaCha7539Engine.java

99 lines
3.5 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package org.bouncycastle.crypto.engines;
import io.flutter.embedding.android.KeyboardMap;
import org.bouncycastle.util.Pack;
/* loaded from: classes6.dex */
public class ChaCha7539Engine extends Salsa20Engine {
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected int getNonceSize() {
return 12;
}
/* JADX INFO: Access modifiers changed from: protected */
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
public void setKey(byte[] bArr, byte[] bArr2) {
if (bArr != null) {
if (bArr.length != 32) {
StringBuilder sb = new StringBuilder();
sb.append(getAlgorithmName());
sb.append(" requires 256 bit key");
throw new IllegalArgumentException(sb.toString());
}
packTauOrSigma(bArr.length, this.engineState, 0);
Pack.littleEndianToInt(bArr, 0, this.engineState, 4, 8);
}
Pack.littleEndianToInt(bArr2, 0, this.engineState, 13, 3);
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected void retreatCounter(long j) {
int i = (int) (j >>> 32);
int i2 = (int) j;
if (i != 0) {
throw new IllegalStateException("attempt to reduce counter past zero.");
}
if ((this.engineState[12] & KeyboardMap.kValueMask) < (KeyboardMap.kValueMask & i2)) {
throw new IllegalStateException("attempt to reduce counter past zero.");
}
int[] iArr = this.engineState;
iArr[12] = iArr[12] - i2;
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected void retreatCounter() {
if (this.engineState[12] == 0) {
throw new IllegalStateException("attempt to reduce counter past zero.");
}
this.engineState[12] = r0[12] - 1;
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected void resetCounter() {
this.engineState[12] = 0;
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected long getCounter() {
return this.engineState[12] & KeyboardMap.kValueMask;
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine, org.bouncycastle.crypto.StreamCipher
public String getAlgorithmName() {
StringBuilder sb = new StringBuilder("ChaCha");
sb.append(this.rounds);
return sb.toString();
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected void generateKeyStream(byte[] bArr) {
ChaChaEngine.chachaCore(this.rounds, this.engineState, this.x);
Pack.intToLittleEndian(this.x, bArr, 0);
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected void advanceCounter(long j) {
int i = (int) (j >>> 32);
int i2 = (int) j;
if (i > 0) {
throw new IllegalStateException("attempt to increase counter past 2^32.");
}
int i3 = this.engineState[12];
int[] iArr = this.engineState;
iArr[12] = iArr[12] + i2;
if (i3 != 0 && this.engineState[12] < i3) {
throw new IllegalStateException("attempt to increase counter past 2^32.");
}
}
@Override // org.bouncycastle.crypto.engines.Salsa20Engine
protected void advanceCounter() {
int[] iArr = this.engineState;
int i = iArr[12] + 1;
iArr[12] = i;
if (i == 0) {
throw new IllegalStateException("attempt to increase counter past 2^32.");
}
}
}