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

71 lines
2.1 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package org.bouncycastle.asn1;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/* loaded from: classes6.dex */
public abstract class DERGenerator extends ASN1Generator {
private boolean _isExplicit;
private int _tagNo;
private boolean _tagged;
void writeDEREncoded(OutputStream outputStream, int i, byte[] bArr) throws IOException {
outputStream.write(i);
writeLength(outputStream, bArr.length);
outputStream.write(bArr);
}
/* JADX INFO: Access modifiers changed from: package-private */
public void writeDEREncoded(int i, byte[] bArr) throws IOException {
if (!this._tagged) {
writeDEREncoded(this._out, i, bArr);
return;
}
int i2 = this._tagNo;
if (this._isExplicit) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
writeDEREncoded(byteArrayOutputStream, i, bArr);
writeDEREncoded(this._out, i2 | 160, byteArrayOutputStream.toByteArray());
} else if ((i & 32) != 0) {
writeDEREncoded(this._out, i2 | 160, bArr);
} else {
writeDEREncoded(this._out, i2 | 128, bArr);
}
}
private void writeLength(OutputStream outputStream, int i) throws IOException {
if (i <= 127) {
outputStream.write((byte) i);
return;
}
int i2 = i;
int i3 = 1;
while (true) {
i2 >>>= 8;
if (i2 == 0) {
break;
} else {
i3++;
}
}
outputStream.write((byte) (i3 | 128));
for (int i4 = (i3 - 1) << 3; i4 >= 0; i4 -= 8) {
outputStream.write((byte) (i >> i4));
}
}
public DERGenerator(OutputStream outputStream, int i, boolean z) {
super(outputStream);
this._tagged = true;
this._isExplicit = z;
this._tagNo = i;
}
/* JADX INFO: Access modifiers changed from: protected */
public DERGenerator(OutputStream outputStream) {
super(outputStream);
this._tagged = false;
}
}