package okhttp3.internal.ws;

import d.b.a.a.a;
import g.h0.c.l;
import j.d;
import j.h;

/* JADX INFO: compiled from: WebSocketProtocol.kt */
/* JADX INFO: loaded from: classes.dex */
public final class WebSocketProtocol {
    public static final String ACCEPT_MAGIC = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
    public static final int B0_FLAG_FIN = 128;
    public static final int B0_FLAG_RSV1 = 64;
    public static final int B0_FLAG_RSV2 = 32;
    public static final int B0_FLAG_RSV3 = 16;
    public static final int B0_MASK_OPCODE = 15;
    public static final int B1_FLAG_MASK = 128;
    public static final int B1_MASK_LENGTH = 127;
    public static final int CLOSE_CLIENT_GOING_AWAY = 1001;
    public static final long CLOSE_MESSAGE_MAX = 123;
    public static final int CLOSE_NO_STATUS_CODE = 1005;
    public static final WebSocketProtocol INSTANCE = new WebSocketProtocol();
    public static final int OPCODE_BINARY = 2;
    public static final int OPCODE_CONTINUATION = 0;
    public static final int OPCODE_CONTROL_CLOSE = 8;
    public static final int OPCODE_CONTROL_PING = 9;
    public static final int OPCODE_CONTROL_PONG = 10;
    public static final int OPCODE_FLAG_CONTROL = 8;
    public static final int OPCODE_TEXT = 1;
    public static final long PAYLOAD_BYTE_MAX = 125;
    public static final int PAYLOAD_LONG = 127;
    public static final int PAYLOAD_SHORT = 126;
    public static final long PAYLOAD_SHORT_MAX = 65535;

    private WebSocketProtocol() {
    }

    public final String acceptHeader(String str) {
        l.f(str, "key");
        return h.f4612e.c(str + ACCEPT_MAGIC).i().a();
    }

    public final String closeCodeExceptionMessage(int i2) {
        if (i2 < 1000 || i2 >= 5000) {
            return a.j("Code must be in range [1000,5000): ", i2);
        }
        if ((1004 > i2 || 1006 < i2) && (1015 > i2 || 2999 < i2)) {
            return null;
        }
        return "Code " + i2 + " is reserved and may not be used.";
    }

    public final void toggleMask(d.a aVar, byte[] bArr) {
        long j2;
        l.f(aVar, "cursor");
        l.f(bArr, "key");
        int length = bArr.length;
        int i2 = 0;
        do {
            byte[] bArr2 = aVar.f4606h;
            int i3 = aVar.f4607i;
            int i4 = aVar.f4608j;
            if (bArr2 != null) {
                while (i3 < i4) {
                    int i5 = i2 % length;
                    bArr2[i3] = (byte) (bArr2[i3] ^ bArr[i5]);
                    i3++;
                    i2 = i5 + 1;
                }
            }
            long j3 = aVar.f4605g;
            d dVar = aVar.f4602b;
            l.c(dVar);
            if (!(j3 != dVar.f4601e)) {
                throw new IllegalStateException("no more bytes".toString());
            }
            j2 = aVar.f4605g;
        } while (aVar.b(j2 == -1 ? 0L : j2 + ((long) (aVar.f4608j - aVar.f4607i))) != -1);
    }

    public final void validateCloseCode(int i2) {
        String strCloseCodeExceptionMessage = closeCodeExceptionMessage(i2);
        if (strCloseCodeExceptionMessage == null) {
            return;
        }
        l.c(strCloseCodeExceptionMessage);
        throw new IllegalArgumentException(strCloseCodeExceptionMessage.toString());
    }
}
