def _read_capabilities(self):
        """ Read the capabilities list from a YubiKey >= 4.0.0 """

        frame = yubikey_frame.YubiKeyFrame(command=SLOT.YK4_CAPABILITIES)
        self._device._write(frame)
        response = self._device._read_response()
        r_len = yubico_util.ord_byte(response[0])

        # 1 byte length, 2 byte CRC.
        if not yubico_util.validate_crc16(response[:r_len+3]):
            raise YubiKey4_USBHIDError("Read from device failed CRC check")

        return response[1:r_len+1]
Read the capabilities list from a YubiKey >= 4.0.0