Documentation ¶
Overview ¶
Package bitbox02 contains the API to the physical device.
Package bitbox02 contains the API to the physical device.
Index ¶
- Constants
- type Backup
- type Communication
- type Device
- func (device *Device) Attestation() bool
- func (device *Device) BTCPub(coin messages.BTCCoin, keypath []uint32, ...) (string, error)
- func (device *Device) BTCSign(btcProposedTx *btc.ProposedTransaction) ([]*btcec.Signature, error)
- func (device *Device) ChannelHash() (string, bool)
- func (device *Device) ChannelHashVerify(ok bool)
- func (device *Device) CheckBackup(silent bool) (string, error)
- func (device *Device) CheckSDCard() (bool, error)
- func (device *Device) Close()
- func (device *Device) CreateBackup() error
- func (device *Device) DeviceInfo() (*DeviceInfo, error)
- func (device *Device) ETHPub(coin messages.ETHCoin, keypath []uint32, ...) (string, error)
- func (device *Device) ETHSign(coin messages.ETHCoin, keypath []uint32, nonce uint64, gasPrice *big.Int, ...) ([]byte, error)
- func (device *Device) Edition() bitbox02common.Edition
- func (device *Device) Identifier() string
- func (device *Device) Init(testing bool) error
- func (device *Device) InsertRemoveSDCard(action messages.InsertRemoveSDCardRequest_SDCardAction) error
- func (device *Device) KeystoreForConfiguration(configuration *signing.Configuration, cosignerIndex int) keystoreInterface.Keystore
- func (device *Device) ListBackups() ([]*Backup, error)
- func (device *Device) ProductName() string
- func (device *Device) Random() ([]byte, error)
- func (device *Device) Reset() error
- func (device *Device) RestoreBackup(id string) error
- func (device *Device) RestoreFromMnemonic() error
- func (device *Device) SetDeviceName(deviceName string) error
- func (device *Device) SetMnemonicPassphraseEnabled(enabled bool) error
- func (device *Device) SetOnEvent(onEvent func(devicepkg.Event, interface{}))
- func (device *Device) SetPassword() error
- func (device *Device) ShowMnemonic() error
- func (device *Device) Status() Status
- func (device *Device) UpgradeFirmware() error
- func (device *Device) Version() *semver.SemVer
- type DeviceInfo
- type Error
- type Status
Constants ¶
const ( // EventChannelHashChanged is fired when the return values of ChannelHash() change. EventChannelHashChanged device.Event = "channelHashChanged" // EventStatusChanged is fired when the status changes. Check the status using Status(). EventStatusChanged device.Event = "statusChanged" // EventAttestationCheckFailed is fired when the device does not pass the attestation signature // check, indicating that it might not be an authentic device. EventAttestationCheckFailed device.Event = "attestationCheckFailed" )
const ( // ErrInvalidInput is returned when the request sends and invalid or unexpected input ErrInvalidInput = 101 // ErrUserAbort is returned when the user aborts an action on the device. ErrUserAbort = 104 )
const ProductName = "bitbox02"
ProductName is the name of the BitBox02 product. If you change this, be sure to check the frontend and other places which assume this is a constant.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Communication ¶
Communication contains functions needed to communicate with the device.
type Device ¶
type Device struct {
// contains filtered or unexported fields
}
Device provides the API to communicate with the BitBox02.
func NewDevice ¶
func NewDevice( deviceID string, version *semver.SemVer, edition bitbox02common.Edition, configDir string, communication Communication, ) *Device
NewDevice creates a new instance of Device.
func (*Device) Attestation ¶
Attestation returns the result of the automatic attestation check.
func (*Device) BTCPub ¶
func (device *Device) BTCPub( coin messages.BTCCoin, keypath []uint32, outputType messages.BTCPubRequest_OutputType, scriptType messages.BTCScriptType, display bool) (string, error)
BTCPub queries the device for a btc, ltc, tbtc, tltc xpub or address.
func (*Device) ChannelHash ¶
ChannelHash returns the hashed handshake channel binding
func (*Device) ChannelHashVerify ¶
ChannelHashVerify verifies the ChannelHash
func (*Device) CheckBackup ¶
CheckBackup checks if any backup on the SD card matches the current seed on the device and returns the name and ID of the matching backup
func (*Device) CheckSDCard ¶
CheckSDCard checks whether an sd card is inserted in the device
func (*Device) CreateBackup ¶
CreateBackup is called after SetPassword() to create the backup.
func (*Device) DeviceInfo ¶
func (device *Device) DeviceInfo() (*DeviceInfo, error)
DeviceInfo retrieves the current device info from the bitbox
func (*Device) ETHPub ¶
func (device *Device) ETHPub( coin messages.ETHCoin, keypath []uint32, outputType messages.ETHPubRequest_OutputType, display bool, contractAddress []byte, ) (string, error)
ETHPub queries the device for an ethereum address or publickey.
func (*Device) ETHSign ¶
func (device *Device) ETHSign( coin messages.ETHCoin, keypath []uint32, nonce uint64, gasPrice *big.Int, gasLimit uint64, recipient [20]byte, value *big.Int, data []byte) ([]byte, error)
ETHSign signs an ethereum transaction. It returns a 65 byte signature (R, S, and 1 byte recID).
func (*Device) Edition ¶
func (device *Device) Edition() bitbox02common.Edition
Edition returns the device edition.
func (*Device) Identifier ¶
Identifier implements device.Device.
func (*Device) InsertRemoveSDCard ¶
func (device *Device) InsertRemoveSDCard(action messages.InsertRemoveSDCardRequest_SDCardAction) error
InsertRemoveSDCard sends a command to the device to insert of remove the sd card based on the workflow state
func (*Device) KeystoreForConfiguration ¶
func (device *Device) KeystoreForConfiguration(configuration *signing.Configuration, cosignerIndex int) keystoreInterface.Keystore
KeystoreForConfiguration implements device.Device.
func (*Device) ListBackups ¶
ListBackups returns a list of all backups on the SD card.
func (*Device) ProductName ¶
ProductName implements device.Device.
func (*Device) RestoreBackup ¶
RestoreBackup restores a backup returned by ListBackups (id).
func (*Device) RestoreFromMnemonic ¶
RestoreFromMnemonic invokes the mnemonic phrase import workflow.
func (*Device) SetDeviceName ¶
SetDeviceName sends a request to the device using protobuf to set the device name
func (*Device) SetMnemonicPassphraseEnabled ¶
SetMnemonicPassphraseEnabled enables or disables entering a mnemonic passphrase after the normal unlock.
func (*Device) SetOnEvent ¶
SetOnEvent implements device.Device.
func (*Device) SetPassword ¶
SetPassword invokes the set password workflow on the device. Should be called only if deviceInfo.Initialized is false.
func (*Device) ShowMnemonic ¶
ShowMnemonic lets the user export the bip39 mnemonic phrase on the device.
func (*Device) UpgradeFirmware ¶
UpgradeFirmware reboots into the bootloader so a firmware can be flashed.
type DeviceInfo ¶
type DeviceInfo struct { Name string `json:"name"` Version string `json:"version"` Initialized bool `json:"initialized"` MnemonicPassphraseEnabled bool `json:"mnemonicPassphraseEnabled"` }
DeviceInfo is the data returned from the device info api call.
type Error ¶
Error wraps an error from bitbox02.
type Status ¶
type Status string
Status represents the device status.
const ( // StatusConnected ist the first status, right after the device is connected. We automatically // move to StatusUnpaired (directly if the device is uninitialized, or after unlocking the // device if it is initialzed). StatusConnected = "connected" // StatusUnpaired means the pairing has not been confirmed yet. After the pairing screen has // been confirmed, we move to StatusUninitialized or StatusInitialized depending on the device // status. StatusUnpaired Status = "unpaired" // StatusPairingFailed is when the pairing code was rejected on the app or on the device. StatusPairingFailed Status = "pairingFailed" // StatusUninitialized is the uninitialized device. Use SetPassword() to proceed to // StatusSeeded. StatusUninitialized Status = "uninitialized" // StatusSeeded is after SetPassword(), before CreateBack() during initialization of the // device. Use CreateBackup() to move to StatusInitialized. StatusSeeded Status = "seeded" // StatusInitialized means the device is seeded and the backup was created, and the device is // unlocked. The keystore is ready to use. StatusInitialized Status = "initialized" // StatusRequireFirmwareUpgrade means that the a firmware upgrade is required before being able // to proceed to StatusLoggedIn or StatusSeeded (firmware version too old). StatusRequireFirmwareUpgrade Status = "require_firmware_upgrade" // StatusRequireAppUpgrade means that the an app upgrade is required (firmware version too new). StatusRequireAppUpgrade Status = "require_app_upgrade" )