package org.snmp4j.smi;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.StringTokenizer;
import org.snmp4j.asn1.BER;
import org.snmp4j.asn1.BERInputStream;

/* JADX INFO: loaded from: classes.dex */
public class OctetString extends AbstractVariable implements AssignableFromByteArray, AssignableFromString {
    private static final char DEFAULT_HEX_DELIMITER = ':';
    private static final long serialVersionUID = 4125661211046256289L;
    private byte[] value;

    public OctetString() {
        this.value = new byte[0];
    }

    public static OctetString fromByteArray(byte[] bArr) {
        if (bArr == null) {
            return null;
        }
        return new OctetString(bArr);
    }

    public static OctetString fromHexString(String str) {
        return fromHexString(str, DEFAULT_HEX_DELIMITER);
    }

    public static OctetString fromHexStringPairs(String str) {
        int length = str.length() / 2;
        byte[] bArr = new byte[length];
        for (int i2 = 0; i2 < length; i2++) {
            int i3 = i2 * 2;
            bArr[i2] = (byte) Integer.parseInt(str.substring(i3, i3 + 2), 16);
        }
        return new OctetString(bArr);
    }

    public static OctetString fromString(String str, char c2, int i2) {
        StringTokenizer stringTokenizer = new StringTokenizer(str, "" + c2);
        byte[] bArr = new byte[stringTokenizer.countTokens()];
        int i3 = 0;
        while (stringTokenizer.hasMoreTokens()) {
            bArr[i3] = (byte) Integer.parseInt(stringTokenizer.nextToken(), i2);
            i3++;
        }
        return new OctetString(bArr);
    }

    public static Collection<OctetString> split(OctetString octetString, OctetString octetString2) {
        boolean z;
        LinkedList linkedList = new LinkedList();
        int i2 = -1;
        for (int i3 = 0; i3 < octetString2.length(); i3++) {
            int i4 = octetString2.get(i3) & 255;
            if (i4 > i2) {
                i2 = i4;
            }
        }
        int i5 = 0;
        for (int i6 = 0; i6 < octetString.length(); i6++) {
            int i7 = octetString.value[i6] & 255;
            if (i7 <= i2) {
                z = false;
                for (int i8 = 0; i8 < octetString2.length(); i8++) {
                    if (i7 == (octetString2.get(i8) & 255)) {
                        if (i5 >= 0 && i6 > i5) {
                            linkedList.add(new OctetString(octetString.value, i5, i6 - i5));
                        }
                        z = true;
                        i5 = -1;
                    }
                }
            } else {
                z = false;
            }
            if (!z && i5 < 0) {
                i5 = i6;
            }
        }
        if (i5 >= 0) {
            linkedList.add(new OctetString(octetString.value, i5, octetString.length() - i5));
        }
        return linkedList;
    }

    public void append(byte b) {
        byte[] bArr = this.value;
        byte[] bArr2 = new byte[bArr.length + 1];
        System.arraycopy(bArr, 0, bArr2, 0, bArr.length);
        bArr2[this.value.length] = b;
        this.value = bArr2;
    }

    public void clear() {
        this.value = new byte[0];
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public Object clone() {
        return new OctetString(this.value);
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.asn1.BERSerializable
    public void decodeBER(BERInputStream bERInputStream) throws IOException {
        BER.MutableByte mutableByte = new BER.MutableByte();
        byte[] bArrDecodeString = BER.decodeString(bERInputStream, mutableByte);
        if (mutableByte.getValue() == 4) {
            setValue(bArrDecodeString);
            return;
        }
        throw new IOException("Wrong type encountered when decoding OctetString: " + ((int) mutableByte.getValue()));
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.asn1.BERSerializable
    public void encodeBER(OutputStream outputStream) throws IOException {
        BER.encodeString(outputStream, (byte) 4, getValue());
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public boolean equals(Object obj) {
        if (obj instanceof OctetString) {
            return Arrays.equals(this.value, ((OctetString) obj).value);
        }
        return false;
    }

    public boolean equalsValue(byte[] bArr) {
        return Arrays.equals(this.value, bArr);
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public void fromSubIndex(OID oid, boolean z) {
        if (z) {
            setValue(oid.toByteArray());
        } else {
            setValue(new OID(oid.getValue(), 1, oid.size() - 1).toByteArray());
        }
    }

    public final byte get(int i2) {
        return this.value[i2];
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.asn1.BERSerializable
    public int getBERLength() {
        byte[] bArr = this.value;
        return bArr.length + BER.getBERLengthOfLength(bArr.length) + 1;
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.asn1.BERSerializable
    public int getBERPayloadLength() {
        return this.value.length;
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public int getSyntax() {
        return 4;
    }

    public byte[] getValue() {
        return this.value;
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public int hashCode() {
        int i2 = 0;
        int length = 0;
        while (true) {
            byte[] bArr = this.value;
            if (i2 >= bArr.length) {
                return length;
            }
            length += ((bArr.length - 1) - i2) ^ (bArr[i2] * 31);
            i2++;
        }
    }

    public boolean isPrintable() {
        int i2;
        for (byte b : this.value) {
            char c2 = (char) b;
            if ((Character.isISOControl(c2) || (c2 & 255) >= 128) && (!Character.isWhitespace(c2) || ((i2 = c2 & 255) >= 28 && i2 <= 31))) {
                return false;
            }
        }
        return true;
    }

    public final int length() {
        return this.value.length;
    }

    public OctetString mask(OctetString octetString) {
        byte[] bArr = this.value;
        int length = bArr.length;
        byte[] bArr2 = new byte[length];
        System.arraycopy(bArr, 0, bArr2, 0, bArr.length);
        for (int i2 = 0; i2 < octetString.length() && i2 < length; i2++) {
            bArr2[i2] = (byte) (bArr2[i2] & octetString.get(i2));
        }
        return new OctetString(bArr2);
    }

    public final void set(int i2, byte b) {
        this.value[i2] = b;
    }

    @Override // org.snmp4j.smi.AssignableFromString
    public void setValue(String str) {
        setValue(str.getBytes());
    }

    public boolean startsWith(OctetString octetString) {
        if (octetString == null || octetString.length() > length()) {
            return false;
        }
        for (int i2 = 0; i2 < octetString.length(); i2++) {
            if (octetString.get(i2) != this.value[i2]) {
                return false;
            }
        }
        return true;
    }

    public OctetString substring(int i2, int i3) {
        if (i2 < 0 || i3 > length()) {
            throw new IndexOutOfBoundsException();
        }
        int i4 = i3 - i2;
        byte[] bArr = new byte[i4];
        System.arraycopy(this.value, i2, bArr, 0, i4);
        return new OctetString(bArr);
    }

    public String toASCII(char c2) {
        StringBuilder sb = new StringBuilder(this.value.length);
        for (byte b : this.value) {
            char c3 = (char) b;
            if (Character.isISOControl(c3) || (b & 255) >= 128) {
                sb.append(c2);
            } else {
                sb.append(c3);
            }
        }
        return sb.toString();
    }

    @Override // org.snmp4j.smi.AssignableFromByteArray
    public byte[] toByteArray() {
        return getValue();
    }

    public String toHexString() {
        return toHexString(DEFAULT_HEX_DELIMITER);
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public int toInt() {
        throw new UnsupportedOperationException();
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public long toLong() {
        throw new UnsupportedOperationException();
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public String toString() {
        return isPrintable() ? new String(this.value) : toHexString();
    }

    @Override // org.snmp4j.smi.AbstractVariable, org.snmp4j.smi.Variable
    public OID toSubIndex(boolean z) {
        int[] iArr;
        int i2 = 1;
        if (z) {
            iArr = new int[length()];
            i2 = 0;
        } else {
            iArr = new int[length() + 1];
            iArr[0] = length();
        }
        for (int i3 = 0; i3 < length(); i3++) {
            iArr[i2 + i3] = get(i3) & 255;
        }
        return new OID(iArr);
    }

    public static OctetString fromHexString(String str, char c2) {
        return fromString(str, c2, 16);
    }

    @Override // org.snmp4j.smi.AbstractVariable, java.lang.Comparable
    public int compareTo(Variable variable) {
        if (!(variable instanceof OctetString)) {
            throw new ClassCastException(variable.getClass().getName());
        }
        OctetString octetString = (OctetString) variable;
        int iMin = Math.min(this.value.length, octetString.value.length);
        for (int i2 = 0; i2 < iMin; i2++) {
            byte[] bArr = this.value;
            byte b = bArr[i2];
            byte[] bArr2 = octetString.value;
            if (b != bArr2[i2]) {
                return (bArr[i2] & 255) < (bArr2[i2] & 255) ? -1 : 1;
            }
        }
        return this.value.length - octetString.value.length;
    }

    @Override // org.snmp4j.smi.AssignableFromByteArray
    public void setValue(byte[] bArr) {
        if (bArr == null) {
            throw new IllegalArgumentException("OctetString must not be assigned a null value");
        }
        this.value = bArr;
    }

    public String toHexString(char c2) {
        return toString(c2, 16);
    }

    public OctetString(byte[] bArr) {
        this(bArr, 0, bArr.length);
    }

    public OctetString(byte[] bArr, int i2, int i3) {
        this.value = new byte[0];
        byte[] bArr2 = new byte[i3];
        this.value = bArr2;
        System.arraycopy(bArr, i2, bArr2, 0, i3);
    }

    public String toString(char c2, int i2) {
        double dLog = (float) Math.log(256.0d);
        double dLog2 = Math.log(i2);
        Double.isNaN(dLog);
        int iRound = (int) Math.round(dLog / dLog2);
        StringBuilder sb = new StringBuilder(this.value.length * (iRound + 1));
        for (int i3 = 0; i3 < this.value.length; i3++) {
            if (i3 > 0) {
                sb.append(c2);
            }
            String string = Integer.toString(this.value[i3] & 255, i2);
            for (int i4 = 0; i4 < iRound - string.length(); i4++) {
                sb.append('0');
            }
            sb.append(string);
        }
        return sb.toString();
    }

    public void append(byte[] bArr) {
        byte[] bArr2 = this.value;
        byte[] bArr3 = new byte[bArr2.length + bArr.length];
        System.arraycopy(bArr2, 0, bArr3, 0, bArr2.length);
        System.arraycopy(bArr, 0, bArr3, this.value.length, bArr.length);
        this.value = bArr3;
    }

    public OctetString(String str) {
        this.value = new byte[0];
        this.value = str.getBytes();
    }

    public static OctetString fromString(String str, int i2) {
        double dLog = (float) Math.log(256.0d);
        double dLog2 = Math.log(i2);
        Double.isNaN(dLog);
        int iRound = (int) Math.round(dLog / dLog2);
        byte[] bArr = new byte[str.length() / iRound];
        int i3 = 0;
        while (i3 < str.length()) {
            int i4 = i3 + iRound;
            bArr[i3 / iRound] = (byte) Integer.parseInt(str.substring(i3, i4), i2);
            i3 = i4;
        }
        return new OctetString(bArr);
    }

    public void append(OctetString octetString) {
        append(octetString.getValue());
    }

    public void append(String str) {
        append(str.getBytes());
    }

    public OctetString(OctetString octetString) {
        this.value = new byte[0];
        this.value = new byte[0];
        append(octetString);
    }

    public String toString(int i2) {
        double dLog = (float) Math.log(256.0d);
        double dLog2 = Math.log(i2);
        Double.isNaN(dLog);
        int iRound = (int) Math.round(dLog / dLog2);
        StringBuilder sb = new StringBuilder(this.value.length * (iRound + 1));
        for (byte b : this.value) {
            String string = Integer.toString(b & 255, i2);
            for (int i3 = 0; i3 < iRound - string.length(); i3++) {
                sb.append('0');
            }
            sb.append(string);
        }
        return sb.toString();
    }
}
