Documentation ¶
Index ¶
- func DeviceInfos() []hid.DeviceInfo
- type Communication
- func (communication *Communication) Close()
- func (communication *Communication) ReadFrame() ([]byte, error)
- func (communication *Communication) SendBootloader(msg []byte) ([]byte, error)
- func (communication *Communication) SendEncrypt(msg, password string) (map[string]interface{}, error)
- func (communication *Communication) SendFrame(msg string) error
- func (communication *Communication) SendPlain(msg string) (map[string]interface{}, error)
- type CommunicationErr
- type Manager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeviceInfos ¶
func DeviceInfos() []hid.DeviceInfo
DeviceInfos returns a slice of all found bitbox devices.
Types ¶
type Communication ¶
type Communication struct {
// contains filtered or unexported fields
}
Communication encodes JSON messages to/from a bitbox. The serialized messages are sent/received as USB packets, following the ISO 7816-4 standard.
func NewCommunication ¶
func NewCommunication( device io.ReadWriteCloser, usbWriteReportSize, usbReadReportSize int, usbCMD byte, hmac bool) *Communication
NewCommunication creates a new Communication.
func (*Communication) Close ¶
func (communication *Communication) Close()
Close closes the underlying device.
func (*Communication) ReadFrame ¶
func (communication *Communication) ReadFrame() ([]byte, error)
ReadFrame reads one usb message.
func (*Communication) SendBootloader ¶
func (communication *Communication) SendBootloader(msg []byte) ([]byte, error)
SendBootloader sends a message in the format the bootloader expects and fetches the response.
func (*Communication) SendEncrypt ¶
func (communication *Communication) SendEncrypt(msg, password string) (map[string]interface{}, error)
SendEncrypt sends an encrypted message. The response is json-deserialized into a map. If the response contains an error field, it is returned as a DBBErr.
func (*Communication) SendFrame ¶
func (communication *Communication) SendFrame(msg string) error
SendFrame sends one usb message.
type CommunicationErr ¶
type CommunicationErr error
CommunicationErr is returned if there was an error with the device IO.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager listens for devices and notifies when a device has been inserted or removed.
func NewManager ¶
func NewManager( channelConfigDir string, onRegister func(device.Interface) error, onUnregister func(string), ) *Manager
NewManager creates a new Manager. onRegister is called when a device has been inserted. onUnregister is called when the device has been removed.
The channelConfigDir argument is passed to each device during initialization, before onRegister is called.