91 lines
3.1 KiB
Java
91 lines
3.1 KiB
Java
|
package org.bouncycastle.asn1;
|
||
|
|
||
|
import java.io.ByteArrayOutputStream;
|
||
|
import java.io.IOException;
|
||
|
import java.util.Enumeration;
|
||
|
import java.util.Vector;
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
public class BERConstructedOctetString extends BEROctetString {
|
||
|
private static final int MAX_LENGTH = 1000;
|
||
|
private Vector octs;
|
||
|
|
||
|
@Override // org.bouncycastle.asn1.BEROctetString, org.bouncycastle.asn1.ASN1OctetString
|
||
|
public byte[] getOctets() {
|
||
|
return this.string;
|
||
|
}
|
||
|
|
||
|
@Override // org.bouncycastle.asn1.BEROctetString
|
||
|
public Enumeration getObjects() {
|
||
|
Vector vector = this.octs;
|
||
|
return vector == null ? generateOcts().elements() : vector.elements();
|
||
|
}
|
||
|
|
||
|
private static byte[] toBytes(Vector vector) {
|
||
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||
|
for (int i = 0; i != vector.size(); i++) {
|
||
|
try {
|
||
|
byteArrayOutputStream.write(((DEROctetString) vector.elementAt(i)).getOctets());
|
||
|
} catch (IOException e) {
|
||
|
StringBuilder sb = new StringBuilder("exception converting octets ");
|
||
|
sb.append(e.toString());
|
||
|
throw new IllegalArgumentException(sb.toString());
|
||
|
} catch (ClassCastException unused) {
|
||
|
StringBuilder sb2 = new StringBuilder();
|
||
|
sb2.append(vector.elementAt(i).getClass().getName());
|
||
|
sb2.append(" found in input should only contain DEROctetString");
|
||
|
throw new IllegalArgumentException(sb2.toString());
|
||
|
}
|
||
|
}
|
||
|
return byteArrayOutputStream.toByteArray();
|
||
|
}
|
||
|
|
||
|
private static byte[] toByteArray(ASN1Primitive aSN1Primitive) {
|
||
|
try {
|
||
|
return aSN1Primitive.getEncoded();
|
||
|
} catch (IOException unused) {
|
||
|
throw new IllegalArgumentException("Unable to encode object");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private Vector generateOcts() {
|
||
|
Vector vector = new Vector();
|
||
|
int i = 0;
|
||
|
while (i < this.string.length) {
|
||
|
int i2 = i + 1000;
|
||
|
int length = (i2 > this.string.length ? this.string.length : i2) - i;
|
||
|
byte[] bArr = new byte[length];
|
||
|
System.arraycopy(this.string, i, bArr, 0, length);
|
||
|
vector.addElement(new DEROctetString(bArr));
|
||
|
i = i2;
|
||
|
}
|
||
|
return vector;
|
||
|
}
|
||
|
|
||
|
public static BEROctetString fromSequence(ASN1Sequence aSN1Sequence) {
|
||
|
Vector vector = new Vector();
|
||
|
Enumeration objects = aSN1Sequence.getObjects();
|
||
|
while (objects.hasMoreElements()) {
|
||
|
vector.addElement(objects.nextElement());
|
||
|
}
|
||
|
return new BERConstructedOctetString(vector);
|
||
|
}
|
||
|
|
||
|
public BERConstructedOctetString(byte[] bArr) {
|
||
|
super(bArr);
|
||
|
}
|
||
|
|
||
|
public BERConstructedOctetString(ASN1Primitive aSN1Primitive) {
|
||
|
super(toByteArray(aSN1Primitive));
|
||
|
}
|
||
|
|
||
|
public BERConstructedOctetString(ASN1Encodable aSN1Encodable) {
|
||
|
this(aSN1Encodable.toASN1Primitive());
|
||
|
}
|
||
|
|
||
|
public BERConstructedOctetString(Vector vector) {
|
||
|
super(toBytes(vector));
|
||
|
this.octs = vector;
|
||
|
}
|
||
|
}
|