private byte[] createProvisioningStartPDU() {
        final byte[] provisioningPDU = new byte[7];
        provisioningPDU[0] = MeshManagerApi.PDU_TYPE_PROVISIONING;
        provisioningPDU[1] = TYPE_PROVISIONING_START;
        provisioningPDU[2] = AlgorithmType.getSupportedAlgorithmValue(algorithmTypes);
        provisioningPDU[3] = (byte) (node.getProvisioneePublicKeyXY() == null ? 0 : publicKeyType);
        provisioningPDU[4] = (byte) node.getAuthMethodUsed().ordinal();
        switch (node.getAuthMethodUsed()) {
            case NO_OOB_AUTHENTICATION:
            case STATIC_OOB_AUTHENTICATION:
                provisioningPDU[5] = 0;
                provisioningPDU[6] = 0;
                break;
            case OUTPUT_OOB_AUTHENTICATION:
                provisioningPDU[5] = (byte) OutputOOBAction.getOutputOOBActionValue(this.outputActionType);
                provisioningPDU[6] = (byte) outputOOBSize;
                break;
            case INPUT_OOB_AUTHENTICATION:
                provisioningPDU[5] = (byte) InputOOBAction.getInputOOBActionValue(this.inputActionType);
                provisioningPDU[6] = (byte) inputOOBSize;
                node.setInputAuthentication(InputOOBAction.getInputOOOBAuthenticationValue(inputActionType, (byte) inputOOBSize));
                break;

        }
        MeshLogger.verbose(TAG, "Provisioning start PDU: " + MeshParserUtils.bytesToHex(provisioningPDU, true));

        return provisioningPDU;
    }
Constructs the provisioning start state.

@param node                        {@link UnprovisionedMeshNode} node.
@param capabilities                Provisioning capabilities.
@param internalTransportCallbacks  {@link InternalTransportCallbacks} callbacks.
@param provisioningStatusCallbacks {@link MeshProvisioningStatusCallbacks} callbacks.
mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningStartState.java