func Devices() []*HidDevice {
	u2fDevices := []*HidDevice{}
	devices := hid.Enumerate(0x0, 0x0)
	for i, device := range devices {
		if device.UsagePage == 0xf1d0 && device.Usage == 1 {
			u2fDevices = append(u2fDevices, newHidDevice(newRawHidDevice(&devices[i])))
		}
	}
	return u2fDevices
}
Returns an array of available HID devices.
package hid
import (
	"bytes"
	"crypto/rand"
	"encoding/binary"
	"errors"
	"fmt"
	"io"
	"github.com/karalabe/hid"
	butil "github.com/marshallbrekka/go-u2fhost/bytes"
)
const TYPE_INIT uint8 = 0x80
const HID_RPT_SIZE uint16 = 64
const CMD_INIT uint8 = 0x06
const CMD_WINK uint8 = 0x08
const CMD_APDU uint8 = 0x03
const STAT_ERR uint8 = 0xbf
type Device interface {
	Open() error
	Close()
	SendAPDU(instruction, p1, p2 uint8, data []byte) (uint16, []byte, error)
}
type baseDevice interface {
	Open() error
	Close()
	Write([]byte) (int, error)
	Read([]byte) (int, error)
}