ProductsAppsFor Business

Coins

Support

Blog

Docs

Highlander

Using GO-keepkey to mange your device

Using GO-keepkey to mange your device

Using GO-keepkey to Manage Your Device

Manage your KeepKey with the GO programming language.

Repo: https://github.com/solipsis/go-keepkey

Dependencies

brew install libusb

Installation

go get -u github.com/solipsis/go-keepkey go install github.com/solipsis/go-keepkey

Command Line Interface (CLI)

go-keepkey --help Usage: go-keepkey [command] Available Commands: applyPolicy Enable/Disable a named policy applySettings Update the label, language, and enable/disable the passphrase changePin Change or add a pin to the device clearSession Clear session data such as the pin session and passphrase debugGetState Get device debug info. This REVEALS SECRETS and can only be used with debug enabled firmware decryptKeyValue Decrypt a value with a given key and nodepath encryptKeyValue Encrypt a value with a given key and nodepath flashDump Dump certain section of flash flashHash Request hash of certain segment of flash memory flashWrite Write data over flash sectors getAddress Get an address for a coinType and nodePath getEntropy Request sample data from the hardware RNG getEthAddress Get the ethereum address for a given node path getFeatures Ask the device for features and model information getPublicKey Get a public key for a nodePath including the XPUB help Help about any command loadDevice Load the device from seed words ping Ping the device with a message recoverDevice Begin interactive device recovery removePin Disable pin on the device replay Replay messages in kk log format to the device resetDevice Reset the device and generate a new seed using device RNG signEthTx Sign an ethereum transaction signMessage Sign a message using a given node path and coin softReset Soft reset / power cycle the device. Only works on devices in manufacturer mode upgradeFirmware Upgrade firmware to a specified tagged version or latest if none is specified uploadFirmware Upload a new firmware binary to the device verifyMessage Verify a signed message wipeDevice Erase all sensitive information on the device Flags: --autoButton Automatic button pressing if debug link is enabled (default true) --debug Debug level logging -h, --help Help for go-keepkey --target string Device label or HID serial to connect to if more than one device is connected

Finding the bin file:

cd ~ cd Go/bin

KeepKey CLI

Updating KeepKey Firmware

Download the latest firmware from the KeepKey repo: github.com

Place Device in Updater Mode

  1. Unplug device
  2. Hold down button
  3. While holding down button, plug device back in

Use Go-keepkey to Update Firmware

./go-keepkey uploadFirmware --filepath ../../Downloads/firmware.keepkey.bin

Note: The location you downloaded the firmware to must match the location where you unzipped the CLI.

Firmware Update

Import go-keepkey as a GO Developer

import "github.com/solipsis/go-keepkey/keepkey"

Connect to All Connected KeepKey Devices

devices, err := keepkey.GetDevices()
// Get the features supported by the first connected device kk := devices[0] features, err := kk.GetFeatures()

Dev Tools

Load Device:

./go-keepkey loadDevice alcohol woman abuse must during monitor noble actual mixed trade anger aisle

More info: https://github.com/solipsis/go-keepkey/blob/master/README.md