private void parseProvisioneePublicKeyXY(final UnprovisionedMeshNode node, final byte[] data) {
        if (provisioningState instanceof ProvisioningPublicKeyState) {
            final ProvisioningPublicKeyState provisioningPublicKeyState = ((ProvisioningPublicKeyState) provisioningState);
            if (data.length != 66) {
                throw new IllegalArgumentException("Invalid Provisionee Public Key PDU," +
                        " length of the Provisionee public key must be 66 bytes, but was " + data.length);
            }
            final ByteBuffer buffer = ByteBuffer.allocate(data.length - 2);
            buffer.put(data, 2, buffer.limit());
            final byte[] xy = buffer.array();
            isProvisioneePublicKeyReceived = provisioningPublicKeyState.parseData(xy);
            if (isProvisioningPublicKeySent && isProvisioneePublicKeyReceived) {
                handleConfirmationState(node, data);
            }
        }
    }
Read provisioning capabilities of node

@param capabilities provisioning capabilities of the node
@return true if the message is valid
mesh/src/main/java/no/nordicsemi/android/mesh/MeshProvisioningHandler.java