public final byte[] generateConfirmationInputs(final byte[] provisionerKeyXY,
                                                   final byte[] provisioneeKeyXY) {
        //invite: 1 bytes, capabilities: 11 bytes, start: 5 bytes, provisionerKey: 64 bytes, deviceKey: 64 bytes
        //Append all the raw data together
        if (confirmationInputs != null) {
            return confirmationInputs;
        }

        //We must remove the first two bytes which is the pdu type and the provisioning pdu type
        final int offset = 2;
        final int inviteLength = mUnprovisionedMeshNode.getProvisioningInvitePdu().length - offset;
        final ByteBuffer inviteBuffer = ByteBuffer.allocate(inviteLength).
                put(mUnprovisionedMeshNode.getProvisioningInvitePdu(), offset, inviteLength);
        final byte[] invite = inviteBuffer.array();

        //We must remove the first two bytes which is the pdu type and the provisioning pdu type
        final int capabilitiesLength = mUnprovisionedMeshNode.getProvisioningCapabilitiesPdu().length - offset;
        final ByteBuffer capabilitiesBuffer = ByteBuffer.allocate(capabilitiesLength)
                .put(mUnprovisionedMeshNode.getProvisioningCapabilitiesPdu(), offset, capabilitiesLength);
        final byte[] capabilities = capabilitiesBuffer.array();

        //We must remove the first two bytes which is the pdu type and the provisioning pdu type
        final int startDataLength = mUnprovisionedMeshNode.getProvisioningStartPdu().length - offset;
        final ByteBuffer startDataBuffer = ByteBuffer.allocate(startDataLength).
                put(mUnprovisionedMeshNode.getProvisioningStartPdu(), offset, startDataLength);
        final byte[] startData = startDataBuffer.array();//get(startData, 2, startDataLength);

        final int length = invite.length +
                capabilities.length +
                startData.length +
                provisionerKeyXY.length +
                provisioneeKeyXY.length;

        final ByteBuffer buffer = ByteBuffer.allocate(length);
        buffer.put(invite);
        buffer.put(capabilities);
        buffer.put(startData);
        buffer.put(provisionerKeyXY);
        buffer.put(provisioneeKeyXY);
        confirmationInputs = buffer.array();
        return confirmationInputs;
    }
Generates the confirmation inputs for a provisionee

@param provisionerKeyXY xy components of the provisioner public key
@param provisioneeKeyXY xy components of the provisionee public key
mesh/src/main/java/no/nordicsemi/android/mesh/MeshProvisioningHandler.java