package org.snmp4j.mp;

import java.io.IOException;
import java.nio.ByteBuffer;
import org.snmp4j.MessageDispatcher;
import org.snmp4j.MutablePDU;
import org.snmp4j.PDU;
import org.snmp4j.PDUv1;
import org.snmp4j.ScopedPDU;
import org.snmp4j.Target;
import org.snmp4j.TransportStateReference;
import org.snmp4j.asn1.BER;
import org.snmp4j.asn1.BERInputStream;
import org.snmp4j.asn1.BEROutputStream;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.log.LogFactory;
import org.snmp4j.security.SecurityModels;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.Integer32;
import org.snmp4j.smi.OctetString;
import org.snmp4j.util.PDUFactory;

/* JADX INFO: loaded from: classes.dex */
public class MPv1 implements MessageProcessingModel {
    public static final int ID = 0;
    private static final LogAdapter logger = LogFactory.getLogger(MPv1.class);
    protected PDUFactory incomingPDUFactory;

    public MPv1() {
        this.incomingPDUFactory = new PDUFactory() { // from class: org.snmp4j.mp.MPv1.1
            @Override // org.snmp4j.util.PDUFactory
            public PDU createPDU(Target target) {
                return new PDUv1();
            }

            @Override // org.snmp4j.util.PDUFactory
            public PDU createPDU(MessageProcessingModel messageProcessingModel) {
                return new PDUv1();
            }
        };
    }

    @Override // org.snmp4j.mp.MessageProcessingModel
    public int getID() {
        return 0;
    }

    @Override // org.snmp4j.mp.MessageProcessingModel
    public boolean isProtocolVersionSupported(int i2) {
        return i2 == 0;
    }

    @Override // org.snmp4j.mp.MessageProcessingModel
    public int prepareDataElements(MessageDispatcher messageDispatcher, Address address, BERInputStream bERInputStream, TransportStateReference transportStateReference, Integer32 integer32, Integer32 integer322, OctetString octetString, Integer32 integer323, MutablePDU mutablePDU, PduHandle pduHandle, Integer32 integer324, StatusInformation statusInformation, MutableStateReference mutableStateReference) throws IOException {
        BER.MutableByte mutableByte = new BER.MutableByte();
        int iDecodeHeader = BER.decodeHeader(bERInputStream, mutableByte);
        int position = (int) bERInputStream.getPosition();
        if (mutableByte.getValue() != 48) {
            logger.error("SNMPv1 PDU must start with a SEQUENCE");
            throw new IOException("SNMPv1 PDU must start with a SEQUENCE");
        }
        new Integer32().decodeBER(bERInputStream);
        octetString.decodeBER(bERInputStream);
        integer323.setValue(1);
        integer322.setValue(1);
        integer32.setValue(0);
        PDU pduCreatePDU = this.incomingPDUFactory.createPDU(this);
        mutablePDU.setPdu(pduCreatePDU);
        pduCreatePDU.decodeBER(bERInputStream);
        BER.checkSequenceLength(iDecodeHeader, ((int) bERInputStream.getPosition()) - position, pduCreatePDU);
        pduHandle.setTransactionID(pduCreatePDU.getRequestID().getValue());
        mutableStateReference.setStateReference(new StateReference(pduHandle, address, null, SecurityModels.getInstance().getSecurityModel(integer322), octetString.getValue(), 0));
        return 0;
    }

    @Override // org.snmp4j.mp.MessageProcessingModel
    public int prepareOutgoingMessage(Address address, int i2, int i3, int i4, byte[] bArr, int i5, PDU pdu, boolean z, PduHandle pduHandle, Address address2, BEROutputStream bEROutputStream, TransportStateReference transportStateReference) throws IOException {
        if (i5 != 1 || i4 != 1) {
            logger.error("MPv1 used with unsupported security model");
            return SnmpConstants.SNMP_MP_UNSUPPORTED_SECURITY_MODEL;
        }
        if (pdu instanceof ScopedPDU) {
            logger.error("ScopedPDU must not be used with MPv1");
            throw new IllegalArgumentException("ScopedPDU must not be used with MPv1");
        }
        if (!isProtocolVersionSupported(i3)) {
            logger.error("MPv1 used with unsupported SNMP version");
            return SnmpConstants.SNMP_MP_UNSUPPORTED_SECURITY_MODEL;
        }
        OctetString octetString = new OctetString(bArr);
        Integer32 integer32 = new Integer32(i3);
        int bERLength = pdu.getBERLength() + octetString.getBERLength() + integer32.getBERLength();
        bEROutputStream.setBuffer(ByteBuffer.allocate(BER.getBERLengthOfLength(bERLength) + bERLength + 1));
        BER.encodeHeader(bEROutputStream, 48, bERLength);
        integer32.encodeBER(bEROutputStream);
        octetString.encodeBER(bEROutputStream);
        pdu.encodeBER(bEROutputStream);
        return 0;
    }

    @Override // org.snmp4j.mp.MessageProcessingModel
    public int prepareResponseMessage(int i2, int i3, int i4, byte[] bArr, int i5, PDU pdu, int i6, StateReference stateReference, StatusInformation statusInformation, BEROutputStream bEROutputStream) throws IOException {
        return prepareOutgoingMessage(stateReference.getAddress(), i3, i2, i4, bArr, i5, pdu, false, stateReference.getPduHandle(), null, bEROutputStream, null);
    }

    @Override // org.snmp4j.mp.MessageProcessingModel
    public void releaseStateReference(PduHandle pduHandle) {
    }

    public MPv1(PDUFactory pDUFactory) {
        this.incomingPDUFactory = new PDUFactory() { // from class: org.snmp4j.mp.MPv1.1
            @Override // org.snmp4j.util.PDUFactory
            public PDU createPDU(Target target) {
                return new PDUv1();
            }

            @Override // org.snmp4j.util.PDUFactory
            public PDU createPDU(MessageProcessingModel messageProcessingModel) {
                return new PDUv1();
            }
        };
        if (pDUFactory != null) {
            this.incomingPDUFactory = pDUFactory;
        }
    }
}
