123 lines
4.3 KiB
Java
123 lines
4.3 KiB
Java
|
package org.bouncycastle.asn1;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
import org.bouncycastle.util.Arrays;
|
||
|
import org.bouncycastle.util.Strings;
|
||
|
|
||
|
/* loaded from: classes6.dex */
|
||
|
public class DERPrintableString extends ASN1Primitive implements ASN1String {
|
||
|
private final byte[] string;
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
@Override // org.bouncycastle.asn1.ASN1Primitive
|
||
|
public boolean isConstructed() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
public String toString() {
|
||
|
return getString();
|
||
|
}
|
||
|
|
||
|
@Override // org.bouncycastle.asn1.ASN1Primitive, org.bouncycastle.asn1.ASN1Object
|
||
|
public int hashCode() {
|
||
|
return Arrays.hashCode(this.string);
|
||
|
}
|
||
|
|
||
|
@Override // org.bouncycastle.asn1.ASN1String
|
||
|
public String getString() {
|
||
|
return Strings.fromByteArray(this.string);
|
||
|
}
|
||
|
|
||
|
public byte[] getOctets() {
|
||
|
return Arrays.clone(this.string);
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
@Override // org.bouncycastle.asn1.ASN1Primitive
|
||
|
public int encodedLength() {
|
||
|
return StreamUtil.calculateBodyLength(this.string.length) + 1 + this.string.length;
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
@Override // org.bouncycastle.asn1.ASN1Primitive
|
||
|
public void encode(ASN1OutputStream aSN1OutputStream) throws IOException {
|
||
|
aSN1OutputStream.writeEncoded(19, this.string);
|
||
|
}
|
||
|
|
||
|
@Override // org.bouncycastle.asn1.ASN1Primitive
|
||
|
boolean asn1Equals(ASN1Primitive aSN1Primitive) {
|
||
|
if (aSN1Primitive instanceof DERPrintableString) {
|
||
|
return Arrays.areEqual(this.string, ((DERPrintableString) aSN1Primitive).string);
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
public static boolean isPrintableString(String str) {
|
||
|
for (int length = str.length() - 1; length >= 0; length--) {
|
||
|
char charAt = str.charAt(length);
|
||
|
if (charAt > 127) {
|
||
|
return false;
|
||
|
}
|
||
|
if (('a' > charAt || charAt > 'z') && (('A' > charAt || charAt > 'Z') && (('0' > charAt || charAt > '9') && charAt != ' ' && charAt != ':' && charAt != '=' && charAt != '?'))) {
|
||
|
switch (charAt) {
|
||
|
case '\'':
|
||
|
case '(':
|
||
|
case ')':
|
||
|
continue;
|
||
|
default:
|
||
|
switch (charAt) {
|
||
|
case '+':
|
||
|
case ',':
|
||
|
case '-':
|
||
|
case '.':
|
||
|
case '/':
|
||
|
break;
|
||
|
default:
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public static DERPrintableString getInstance(ASN1TaggedObject aSN1TaggedObject, boolean z) {
|
||
|
ASN1Primitive object = aSN1TaggedObject.getObject();
|
||
|
return (z || (object instanceof DERPrintableString)) ? getInstance(object) : new DERPrintableString(ASN1OctetString.getInstance(object).getOctets());
|
||
|
}
|
||
|
|
||
|
public static DERPrintableString getInstance(Object obj) {
|
||
|
if (obj == null || (obj instanceof DERPrintableString)) {
|
||
|
return (DERPrintableString) obj;
|
||
|
}
|
||
|
if (!(obj instanceof byte[])) {
|
||
|
StringBuilder sb = new StringBuilder("illegal object in getInstance: ");
|
||
|
sb.append(obj.getClass().getName());
|
||
|
throw new IllegalArgumentException(sb.toString());
|
||
|
}
|
||
|
try {
|
||
|
return (DERPrintableString) fromByteArray((byte[]) obj);
|
||
|
} catch (Exception e) {
|
||
|
StringBuilder sb2 = new StringBuilder("encoding error in getInstance: ");
|
||
|
sb2.append(e.toString());
|
||
|
throw new IllegalArgumentException(sb2.toString());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public DERPrintableString(byte[] bArr) {
|
||
|
this.string = bArr;
|
||
|
}
|
||
|
|
||
|
public DERPrintableString(String str, boolean z) {
|
||
|
if (z && !isPrintableString(str)) {
|
||
|
throw new IllegalArgumentException("string contains illegal characters");
|
||
|
}
|
||
|
this.string = Strings.toByteArray(str);
|
||
|
}
|
||
|
|
||
|
public DERPrintableString(String str) {
|
||
|
this(str, false);
|
||
|
}
|
||
|
}
|