what-the-bank/sources/org/bouncycastle/asn1/DefiniteLengthInputStream.java

96 lines
3.0 KiB
Java
Raw Normal View History

2024-07-27 18:17:47 +07:00
package org.bouncycastle.asn1;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import org.bouncycastle.util.io.Streams;
/* loaded from: classes6.dex */
class DefiniteLengthInputStream extends LimitedInputStream {
private static final byte[] EMPTY_BYTES = new byte[0];
private final int _originalLength;
private int _remaining;
/* JADX INFO: Access modifiers changed from: package-private */
public byte[] toByteArray() throws IOException {
int i = this._remaining;
if (i == 0) {
return EMPTY_BYTES;
}
byte[] bArr = new byte[i];
int readFully = i - Streams.readFully(this._in, bArr);
this._remaining = readFully;
if (readFully == 0) {
setParentEofDetect(true);
return bArr;
}
StringBuilder sb = new StringBuilder("DEF length ");
sb.append(this._originalLength);
sb.append(" object truncated by ");
sb.append(this._remaining);
throw new EOFException(sb.toString());
}
@Override // java.io.InputStream
public int read(byte[] bArr, int i, int i2) throws IOException {
int i3 = this._remaining;
if (i3 == 0) {
return -1;
}
int read = this._in.read(bArr, i, Math.min(i2, i3));
if (read >= 0) {
int i4 = this._remaining - read;
this._remaining = i4;
if (i4 == 0) {
setParentEofDetect(true);
}
return read;
}
StringBuilder sb = new StringBuilder("DEF length ");
sb.append(this._originalLength);
sb.append(" object truncated by ");
sb.append(this._remaining);
throw new EOFException(sb.toString());
}
@Override // java.io.InputStream
public int read() throws IOException {
if (this._remaining == 0) {
return -1;
}
int read = this._in.read();
if (read >= 0) {
int i = this._remaining - 1;
this._remaining = i;
if (i == 0) {
setParentEofDetect(true);
}
return read;
}
StringBuilder sb = new StringBuilder("DEF length ");
sb.append(this._originalLength);
sb.append(" object truncated by ");
sb.append(this._remaining);
throw new EOFException(sb.toString());
}
/* JADX INFO: Access modifiers changed from: package-private */
@Override // org.bouncycastle.asn1.LimitedInputStream
public int getRemaining() {
return this._remaining;
}
/* JADX INFO: Access modifiers changed from: package-private */
public DefiniteLengthInputStream(InputStream inputStream, int i) {
super(inputStream, i);
if (i < 0) {
throw new IllegalArgumentException("negative lengths not allowed");
}
this._originalLength = i;
this._remaining = i;
if (i == 0) {
setParentEofDetect(true);
}
}
}