package org.bouncycastle.crypto; /* loaded from: classes6.dex */ public abstract class StreamBlockCipher implements BlockCipher, StreamCipher { private final BlockCipher cipher; protected abstract byte calculateByte(byte b); @Override // org.bouncycastle.crypto.StreamCipher public final byte returnByte(byte b) { return calculateByte(b); } @Override // org.bouncycastle.crypto.StreamCipher public int processBytes(byte[] bArr, int i, int i2, byte[] bArr2, int i3) throws DataLengthException { if (i3 + i2 > bArr2.length) { throw new DataLengthException("output buffer too short"); } int i4 = i + i2; if (i4 > bArr.length) { throw new DataLengthException("input buffer too small"); } while (i < i4) { bArr2[i3] = calculateByte(bArr[i]); i3++; i++; } return i2; } public BlockCipher getUnderlyingCipher() { return this.cipher; } public StreamBlockCipher(BlockCipher blockCipher) { this.cipher = blockCipher; } }