3082 lines
115 KiB
Go
3082 lines
115 KiB
Go
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// source: messages.proto
|
|
|
|
package trezor
|
|
|
|
import proto "github.com/golang/protobuf/proto"
|
|
import fmt "fmt"
|
|
import math "math"
|
|
|
|
// Reference imports to suppress errors if they are not otherwise used.
|
|
var _ = proto.Marshal
|
|
var _ = fmt.Errorf
|
|
var _ = math.Inf
|
|
|
|
// *
|
|
// Mapping between Trezor wire identifier (uint) and a protobuf message
|
|
type MessageType int32
|
|
|
|
const (
|
|
MessageType_MessageType_Initialize MessageType = 0
|
|
MessageType_MessageType_Ping MessageType = 1
|
|
MessageType_MessageType_Success MessageType = 2
|
|
MessageType_MessageType_Failure MessageType = 3
|
|
MessageType_MessageType_ChangePin MessageType = 4
|
|
MessageType_MessageType_WipeDevice MessageType = 5
|
|
MessageType_MessageType_FirmwareErase MessageType = 6
|
|
MessageType_MessageType_FirmwareUpload MessageType = 7
|
|
MessageType_MessageType_FirmwareRequest MessageType = 8
|
|
MessageType_MessageType_GetEntropy MessageType = 9
|
|
MessageType_MessageType_Entropy MessageType = 10
|
|
MessageType_MessageType_GetPublicKey MessageType = 11
|
|
MessageType_MessageType_PublicKey MessageType = 12
|
|
MessageType_MessageType_LoadDevice MessageType = 13
|
|
MessageType_MessageType_ResetDevice MessageType = 14
|
|
MessageType_MessageType_SignTx MessageType = 15
|
|
MessageType_MessageType_SimpleSignTx MessageType = 16
|
|
MessageType_MessageType_Features MessageType = 17
|
|
MessageType_MessageType_PinMatrixRequest MessageType = 18
|
|
MessageType_MessageType_PinMatrixAck MessageType = 19
|
|
MessageType_MessageType_Cancel MessageType = 20
|
|
MessageType_MessageType_TxRequest MessageType = 21
|
|
MessageType_MessageType_TxAck MessageType = 22
|
|
MessageType_MessageType_CipherKeyValue MessageType = 23
|
|
MessageType_MessageType_ClearSession MessageType = 24
|
|
MessageType_MessageType_ApplySettings MessageType = 25
|
|
MessageType_MessageType_ButtonRequest MessageType = 26
|
|
MessageType_MessageType_ButtonAck MessageType = 27
|
|
MessageType_MessageType_ApplyFlags MessageType = 28
|
|
MessageType_MessageType_GetAddress MessageType = 29
|
|
MessageType_MessageType_Address MessageType = 30
|
|
MessageType_MessageType_SelfTest MessageType = 32
|
|
MessageType_MessageType_BackupDevice MessageType = 34
|
|
MessageType_MessageType_EntropyRequest MessageType = 35
|
|
MessageType_MessageType_EntropyAck MessageType = 36
|
|
MessageType_MessageType_SignMessage MessageType = 38
|
|
MessageType_MessageType_VerifyMessage MessageType = 39
|
|
MessageType_MessageType_MessageSignature MessageType = 40
|
|
MessageType_MessageType_PassphraseRequest MessageType = 41
|
|
MessageType_MessageType_PassphraseAck MessageType = 42
|
|
MessageType_MessageType_EstimateTxSize MessageType = 43
|
|
MessageType_MessageType_TxSize MessageType = 44
|
|
MessageType_MessageType_RecoveryDevice MessageType = 45
|
|
MessageType_MessageType_WordRequest MessageType = 46
|
|
MessageType_MessageType_WordAck MessageType = 47
|
|
MessageType_MessageType_CipheredKeyValue MessageType = 48
|
|
MessageType_MessageType_EncryptMessage MessageType = 49
|
|
MessageType_MessageType_EncryptedMessage MessageType = 50
|
|
MessageType_MessageType_DecryptMessage MessageType = 51
|
|
MessageType_MessageType_DecryptedMessage MessageType = 52
|
|
MessageType_MessageType_SignIdentity MessageType = 53
|
|
MessageType_MessageType_SignedIdentity MessageType = 54
|
|
MessageType_MessageType_GetFeatures MessageType = 55
|
|
MessageType_MessageType_EthereumGetAddress MessageType = 56
|
|
MessageType_MessageType_EthereumAddress MessageType = 57
|
|
MessageType_MessageType_EthereumSignTx MessageType = 58
|
|
MessageType_MessageType_EthereumTxRequest MessageType = 59
|
|
MessageType_MessageType_EthereumTxAck MessageType = 60
|
|
MessageType_MessageType_GetECDHSessionKey MessageType = 61
|
|
MessageType_MessageType_ECDHSessionKey MessageType = 62
|
|
MessageType_MessageType_SetU2FCounter MessageType = 63
|
|
MessageType_MessageType_EthereumSignMessage MessageType = 64
|
|
MessageType_MessageType_EthereumVerifyMessage MessageType = 65
|
|
MessageType_MessageType_EthereumMessageSignature MessageType = 66
|
|
MessageType_MessageType_DebugLinkDecision MessageType = 100
|
|
MessageType_MessageType_DebugLinkGetState MessageType = 101
|
|
MessageType_MessageType_DebugLinkState MessageType = 102
|
|
MessageType_MessageType_DebugLinkStop MessageType = 103
|
|
MessageType_MessageType_DebugLinkLog MessageType = 104
|
|
MessageType_MessageType_DebugLinkMemoryRead MessageType = 110
|
|
MessageType_MessageType_DebugLinkMemory MessageType = 111
|
|
MessageType_MessageType_DebugLinkMemoryWrite MessageType = 112
|
|
MessageType_MessageType_DebugLinkFlashErase MessageType = 113
|
|
)
|
|
|
|
var MessageType_name = map[int32]string{
|
|
0: "MessageType_Initialize",
|
|
1: "MessageType_Ping",
|
|
2: "MessageType_Success",
|
|
3: "MessageType_Failure",
|
|
4: "MessageType_ChangePin",
|
|
5: "MessageType_WipeDevice",
|
|
6: "MessageType_FirmwareErase",
|
|
7: "MessageType_FirmwareUpload",
|
|
8: "MessageType_FirmwareRequest",
|
|
9: "MessageType_GetEntropy",
|
|
10: "MessageType_Entropy",
|
|
11: "MessageType_GetPublicKey",
|
|
12: "MessageType_PublicKey",
|
|
13: "MessageType_LoadDevice",
|
|
14: "MessageType_ResetDevice",
|
|
15: "MessageType_SignTx",
|
|
16: "MessageType_SimpleSignTx",
|
|
17: "MessageType_Features",
|
|
18: "MessageType_PinMatrixRequest",
|
|
19: "MessageType_PinMatrixAck",
|
|
20: "MessageType_Cancel",
|
|
21: "MessageType_TxRequest",
|
|
22: "MessageType_TxAck",
|
|
23: "MessageType_CipherKeyValue",
|
|
24: "MessageType_ClearSession",
|
|
25: "MessageType_ApplySettings",
|
|
26: "MessageType_ButtonRequest",
|
|
27: "MessageType_ButtonAck",
|
|
28: "MessageType_ApplyFlags",
|
|
29: "MessageType_GetAddress",
|
|
30: "MessageType_Address",
|
|
32: "MessageType_SelfTest",
|
|
34: "MessageType_BackupDevice",
|
|
35: "MessageType_EntropyRequest",
|
|
36: "MessageType_EntropyAck",
|
|
38: "MessageType_SignMessage",
|
|
39: "MessageType_VerifyMessage",
|
|
40: "MessageType_MessageSignature",
|
|
41: "MessageType_PassphraseRequest",
|
|
42: "MessageType_PassphraseAck",
|
|
43: "MessageType_EstimateTxSize",
|
|
44: "MessageType_TxSize",
|
|
45: "MessageType_RecoveryDevice",
|
|
46: "MessageType_WordRequest",
|
|
47: "MessageType_WordAck",
|
|
48: "MessageType_CipheredKeyValue",
|
|
49: "MessageType_EncryptMessage",
|
|
50: "MessageType_EncryptedMessage",
|
|
51: "MessageType_DecryptMessage",
|
|
52: "MessageType_DecryptedMessage",
|
|
53: "MessageType_SignIdentity",
|
|
54: "MessageType_SignedIdentity",
|
|
55: "MessageType_GetFeatures",
|
|
56: "MessageType_EthereumGetAddress",
|
|
57: "MessageType_EthereumAddress",
|
|
58: "MessageType_EthereumSignTx",
|
|
59: "MessageType_EthereumTxRequest",
|
|
60: "MessageType_EthereumTxAck",
|
|
61: "MessageType_GetECDHSessionKey",
|
|
62: "MessageType_ECDHSessionKey",
|
|
63: "MessageType_SetU2FCounter",
|
|
64: "MessageType_EthereumSignMessage",
|
|
65: "MessageType_EthereumVerifyMessage",
|
|
66: "MessageType_EthereumMessageSignature",
|
|
100: "MessageType_DebugLinkDecision",
|
|
101: "MessageType_DebugLinkGetState",
|
|
102: "MessageType_DebugLinkState",
|
|
103: "MessageType_DebugLinkStop",
|
|
104: "MessageType_DebugLinkLog",
|
|
110: "MessageType_DebugLinkMemoryRead",
|
|
111: "MessageType_DebugLinkMemory",
|
|
112: "MessageType_DebugLinkMemoryWrite",
|
|
113: "MessageType_DebugLinkFlashErase",
|
|
}
|
|
var MessageType_value = map[string]int32{
|
|
"MessageType_Initialize": 0,
|
|
"MessageType_Ping": 1,
|
|
"MessageType_Success": 2,
|
|
"MessageType_Failure": 3,
|
|
"MessageType_ChangePin": 4,
|
|
"MessageType_WipeDevice": 5,
|
|
"MessageType_FirmwareErase": 6,
|
|
"MessageType_FirmwareUpload": 7,
|
|
"MessageType_FirmwareRequest": 8,
|
|
"MessageType_GetEntropy": 9,
|
|
"MessageType_Entropy": 10,
|
|
"MessageType_GetPublicKey": 11,
|
|
"MessageType_PublicKey": 12,
|
|
"MessageType_LoadDevice": 13,
|
|
"MessageType_ResetDevice": 14,
|
|
"MessageType_SignTx": 15,
|
|
"MessageType_SimpleSignTx": 16,
|
|
"MessageType_Features": 17,
|
|
"MessageType_PinMatrixRequest": 18,
|
|
"MessageType_PinMatrixAck": 19,
|
|
"MessageType_Cancel": 20,
|
|
"MessageType_TxRequest": 21,
|
|
"MessageType_TxAck": 22,
|
|
"MessageType_CipherKeyValue": 23,
|
|
"MessageType_ClearSession": 24,
|
|
"MessageType_ApplySettings": 25,
|
|
"MessageType_ButtonRequest": 26,
|
|
"MessageType_ButtonAck": 27,
|
|
"MessageType_ApplyFlags": 28,
|
|
"MessageType_GetAddress": 29,
|
|
"MessageType_Address": 30,
|
|
"MessageType_SelfTest": 32,
|
|
"MessageType_BackupDevice": 34,
|
|
"MessageType_EntropyRequest": 35,
|
|
"MessageType_EntropyAck": 36,
|
|
"MessageType_SignMessage": 38,
|
|
"MessageType_VerifyMessage": 39,
|
|
"MessageType_MessageSignature": 40,
|
|
"MessageType_PassphraseRequest": 41,
|
|
"MessageType_PassphraseAck": 42,
|
|
"MessageType_EstimateTxSize": 43,
|
|
"MessageType_TxSize": 44,
|
|
"MessageType_RecoveryDevice": 45,
|
|
"MessageType_WordRequest": 46,
|
|
"MessageType_WordAck": 47,
|
|
"MessageType_CipheredKeyValue": 48,
|
|
"MessageType_EncryptMessage": 49,
|
|
"MessageType_EncryptedMessage": 50,
|
|
"MessageType_DecryptMessage": 51,
|
|
"MessageType_DecryptedMessage": 52,
|
|
"MessageType_SignIdentity": 53,
|
|
"MessageType_SignedIdentity": 54,
|
|
"MessageType_GetFeatures": 55,
|
|
"MessageType_EthereumGetAddress": 56,
|
|
"MessageType_EthereumAddress": 57,
|
|
"MessageType_EthereumSignTx": 58,
|
|
"MessageType_EthereumTxRequest": 59,
|
|
"MessageType_EthereumTxAck": 60,
|
|
"MessageType_GetECDHSessionKey": 61,
|
|
"MessageType_ECDHSessionKey": 62,
|
|
"MessageType_SetU2FCounter": 63,
|
|
"MessageType_EthereumSignMessage": 64,
|
|
"MessageType_EthereumVerifyMessage": 65,
|
|
"MessageType_EthereumMessageSignature": 66,
|
|
"MessageType_DebugLinkDecision": 100,
|
|
"MessageType_DebugLinkGetState": 101,
|
|
"MessageType_DebugLinkState": 102,
|
|
"MessageType_DebugLinkStop": 103,
|
|
"MessageType_DebugLinkLog": 104,
|
|
"MessageType_DebugLinkMemoryRead": 110,
|
|
"MessageType_DebugLinkMemory": 111,
|
|
"MessageType_DebugLinkMemoryWrite": 112,
|
|
"MessageType_DebugLinkFlashErase": 113,
|
|
}
|
|
|
|
func (x MessageType) Enum() *MessageType {
|
|
p := new(MessageType)
|
|
*p = x
|
|
return p
|
|
}
|
|
func (x MessageType) String() string {
|
|
return proto.EnumName(MessageType_name, int32(x))
|
|
}
|
|
func (x *MessageType) UnmarshalJSON(data []byte) error {
|
|
value, err := proto.UnmarshalJSONEnum(MessageType_value, data, "MessageType")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*x = MessageType(value)
|
|
return nil
|
|
}
|
|
func (MessageType) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
|
|
|
|
// *
|
|
// Request: Reset device to default state and ask for device details
|
|
// @next Features
|
|
type Initialize struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Initialize) Reset() { *m = Initialize{} }
|
|
func (m *Initialize) String() string { return proto.CompactTextString(m) }
|
|
func (*Initialize) ProtoMessage() {}
|
|
func (*Initialize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
|
|
|
|
// *
|
|
// Request: Ask for device details (no device reset)
|
|
// @next Features
|
|
type GetFeatures struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *GetFeatures) Reset() { *m = GetFeatures{} }
|
|
func (m *GetFeatures) String() string { return proto.CompactTextString(m) }
|
|
func (*GetFeatures) ProtoMessage() {}
|
|
func (*GetFeatures) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
|
|
|
|
// *
|
|
// Response: Reports various information about the device
|
|
// @prev Initialize
|
|
// @prev GetFeatures
|
|
type Features struct {
|
|
Vendor *string `protobuf:"bytes,1,opt,name=vendor" json:"vendor,omitempty"`
|
|
MajorVersion *uint32 `protobuf:"varint,2,opt,name=major_version,json=majorVersion" json:"major_version,omitempty"`
|
|
MinorVersion *uint32 `protobuf:"varint,3,opt,name=minor_version,json=minorVersion" json:"minor_version,omitempty"`
|
|
PatchVersion *uint32 `protobuf:"varint,4,opt,name=patch_version,json=patchVersion" json:"patch_version,omitempty"`
|
|
BootloaderMode *bool `protobuf:"varint,5,opt,name=bootloader_mode,json=bootloaderMode" json:"bootloader_mode,omitempty"`
|
|
DeviceId *string `protobuf:"bytes,6,opt,name=device_id,json=deviceId" json:"device_id,omitempty"`
|
|
PinProtection *bool `protobuf:"varint,7,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
|
|
PassphraseProtection *bool `protobuf:"varint,8,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
|
|
Language *string `protobuf:"bytes,9,opt,name=language" json:"language,omitempty"`
|
|
Label *string `protobuf:"bytes,10,opt,name=label" json:"label,omitempty"`
|
|
Coins []*CoinType `protobuf:"bytes,11,rep,name=coins" json:"coins,omitempty"`
|
|
Initialized *bool `protobuf:"varint,12,opt,name=initialized" json:"initialized,omitempty"`
|
|
Revision []byte `protobuf:"bytes,13,opt,name=revision" json:"revision,omitempty"`
|
|
BootloaderHash []byte `protobuf:"bytes,14,opt,name=bootloader_hash,json=bootloaderHash" json:"bootloader_hash,omitempty"`
|
|
Imported *bool `protobuf:"varint,15,opt,name=imported" json:"imported,omitempty"`
|
|
PinCached *bool `protobuf:"varint,16,opt,name=pin_cached,json=pinCached" json:"pin_cached,omitempty"`
|
|
PassphraseCached *bool `protobuf:"varint,17,opt,name=passphrase_cached,json=passphraseCached" json:"passphrase_cached,omitempty"`
|
|
FirmwarePresent *bool `protobuf:"varint,18,opt,name=firmware_present,json=firmwarePresent" json:"firmware_present,omitempty"`
|
|
NeedsBackup *bool `protobuf:"varint,19,opt,name=needs_backup,json=needsBackup" json:"needs_backup,omitempty"`
|
|
Flags *uint32 `protobuf:"varint,20,opt,name=flags" json:"flags,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Features) Reset() { *m = Features{} }
|
|
func (m *Features) String() string { return proto.CompactTextString(m) }
|
|
func (*Features) ProtoMessage() {}
|
|
func (*Features) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
|
|
|
|
func (m *Features) GetVendor() string {
|
|
if m != nil && m.Vendor != nil {
|
|
return *m.Vendor
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *Features) GetMajorVersion() uint32 {
|
|
if m != nil && m.MajorVersion != nil {
|
|
return *m.MajorVersion
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *Features) GetMinorVersion() uint32 {
|
|
if m != nil && m.MinorVersion != nil {
|
|
return *m.MinorVersion
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *Features) GetPatchVersion() uint32 {
|
|
if m != nil && m.PatchVersion != nil {
|
|
return *m.PatchVersion
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *Features) GetBootloaderMode() bool {
|
|
if m != nil && m.BootloaderMode != nil {
|
|
return *m.BootloaderMode
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetDeviceId() string {
|
|
if m != nil && m.DeviceId != nil {
|
|
return *m.DeviceId
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *Features) GetPinProtection() bool {
|
|
if m != nil && m.PinProtection != nil {
|
|
return *m.PinProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetPassphraseProtection() bool {
|
|
if m != nil && m.PassphraseProtection != nil {
|
|
return *m.PassphraseProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetLanguage() string {
|
|
if m != nil && m.Language != nil {
|
|
return *m.Language
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *Features) GetLabel() string {
|
|
if m != nil && m.Label != nil {
|
|
return *m.Label
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *Features) GetCoins() []*CoinType {
|
|
if m != nil {
|
|
return m.Coins
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *Features) GetInitialized() bool {
|
|
if m != nil && m.Initialized != nil {
|
|
return *m.Initialized
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetRevision() []byte {
|
|
if m != nil {
|
|
return m.Revision
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *Features) GetBootloaderHash() []byte {
|
|
if m != nil {
|
|
return m.BootloaderHash
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *Features) GetImported() bool {
|
|
if m != nil && m.Imported != nil {
|
|
return *m.Imported
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetPinCached() bool {
|
|
if m != nil && m.PinCached != nil {
|
|
return *m.PinCached
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetPassphraseCached() bool {
|
|
if m != nil && m.PassphraseCached != nil {
|
|
return *m.PassphraseCached
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetFirmwarePresent() bool {
|
|
if m != nil && m.FirmwarePresent != nil {
|
|
return *m.FirmwarePresent
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetNeedsBackup() bool {
|
|
if m != nil && m.NeedsBackup != nil {
|
|
return *m.NeedsBackup
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Features) GetFlags() uint32 {
|
|
if m != nil && m.Flags != nil {
|
|
return *m.Flags
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Request: clear session (removes cached PIN, passphrase, etc).
|
|
// @next Success
|
|
type ClearSession struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ClearSession) Reset() { *m = ClearSession{} }
|
|
func (m *ClearSession) String() string { return proto.CompactTextString(m) }
|
|
func (*ClearSession) ProtoMessage() {}
|
|
func (*ClearSession) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
|
|
|
|
// *
|
|
// Request: change language and/or label of the device
|
|
// @next Success
|
|
// @next Failure
|
|
// @next ButtonRequest
|
|
// @next PinMatrixRequest
|
|
type ApplySettings struct {
|
|
Language *string `protobuf:"bytes,1,opt,name=language" json:"language,omitempty"`
|
|
Label *string `protobuf:"bytes,2,opt,name=label" json:"label,omitempty"`
|
|
UsePassphrase *bool `protobuf:"varint,3,opt,name=use_passphrase,json=usePassphrase" json:"use_passphrase,omitempty"`
|
|
Homescreen []byte `protobuf:"bytes,4,opt,name=homescreen" json:"homescreen,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ApplySettings) Reset() { *m = ApplySettings{} }
|
|
func (m *ApplySettings) String() string { return proto.CompactTextString(m) }
|
|
func (*ApplySettings) ProtoMessage() {}
|
|
func (*ApplySettings) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
|
|
|
|
func (m *ApplySettings) GetLanguage() string {
|
|
if m != nil && m.Language != nil {
|
|
return *m.Language
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *ApplySettings) GetLabel() string {
|
|
if m != nil && m.Label != nil {
|
|
return *m.Label
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *ApplySettings) GetUsePassphrase() bool {
|
|
if m != nil && m.UsePassphrase != nil {
|
|
return *m.UsePassphrase
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *ApplySettings) GetHomescreen() []byte {
|
|
if m != nil {
|
|
return m.Homescreen
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: set flags of the device
|
|
// @next Success
|
|
// @next Failure
|
|
type ApplyFlags struct {
|
|
Flags *uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ApplyFlags) Reset() { *m = ApplyFlags{} }
|
|
func (m *ApplyFlags) String() string { return proto.CompactTextString(m) }
|
|
func (*ApplyFlags) ProtoMessage() {}
|
|
func (*ApplyFlags) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
|
|
|
|
func (m *ApplyFlags) GetFlags() uint32 {
|
|
if m != nil && m.Flags != nil {
|
|
return *m.Flags
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Request: Starts workflow for setting/changing/removing the PIN
|
|
// @next ButtonRequest
|
|
// @next PinMatrixRequest
|
|
type ChangePin struct {
|
|
Remove *bool `protobuf:"varint,1,opt,name=remove" json:"remove,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ChangePin) Reset() { *m = ChangePin{} }
|
|
func (m *ChangePin) String() string { return proto.CompactTextString(m) }
|
|
func (*ChangePin) ProtoMessage() {}
|
|
func (*ChangePin) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
|
|
|
|
func (m *ChangePin) GetRemove() bool {
|
|
if m != nil && m.Remove != nil {
|
|
return *m.Remove
|
|
}
|
|
return false
|
|
}
|
|
|
|
// *
|
|
// Request: Test if the device is alive, device sends back the message in Success response
|
|
// @next Success
|
|
type Ping struct {
|
|
Message *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
|
|
ButtonProtection *bool `protobuf:"varint,2,opt,name=button_protection,json=buttonProtection" json:"button_protection,omitempty"`
|
|
PinProtection *bool `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
|
|
PassphraseProtection *bool `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Ping) Reset() { *m = Ping{} }
|
|
func (m *Ping) String() string { return proto.CompactTextString(m) }
|
|
func (*Ping) ProtoMessage() {}
|
|
func (*Ping) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
|
|
|
|
func (m *Ping) GetMessage() string {
|
|
if m != nil && m.Message != nil {
|
|
return *m.Message
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *Ping) GetButtonProtection() bool {
|
|
if m != nil && m.ButtonProtection != nil {
|
|
return *m.ButtonProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Ping) GetPinProtection() bool {
|
|
if m != nil && m.PinProtection != nil {
|
|
return *m.PinProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *Ping) GetPassphraseProtection() bool {
|
|
if m != nil && m.PassphraseProtection != nil {
|
|
return *m.PassphraseProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
// *
|
|
// Response: Success of the previous request
|
|
type Success struct {
|
|
Message *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Success) Reset() { *m = Success{} }
|
|
func (m *Success) String() string { return proto.CompactTextString(m) }
|
|
func (*Success) ProtoMessage() {}
|
|
func (*Success) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }
|
|
|
|
func (m *Success) GetMessage() string {
|
|
if m != nil && m.Message != nil {
|
|
return *m.Message
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Response: Failure of the previous request
|
|
type Failure struct {
|
|
Code *FailureType `protobuf:"varint,1,opt,name=code,enum=FailureType" json:"code,omitempty"`
|
|
Message *string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Failure) Reset() { *m = Failure{} }
|
|
func (m *Failure) String() string { return proto.CompactTextString(m) }
|
|
func (*Failure) ProtoMessage() {}
|
|
func (*Failure) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }
|
|
|
|
func (m *Failure) GetCode() FailureType {
|
|
if m != nil && m.Code != nil {
|
|
return *m.Code
|
|
}
|
|
return FailureType_Failure_UnexpectedMessage
|
|
}
|
|
|
|
func (m *Failure) GetMessage() string {
|
|
if m != nil && m.Message != nil {
|
|
return *m.Message
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Response: Device is waiting for HW button press.
|
|
// @next ButtonAck
|
|
// @next Cancel
|
|
type ButtonRequest struct {
|
|
Code *ButtonRequestType `protobuf:"varint,1,opt,name=code,enum=ButtonRequestType" json:"code,omitempty"`
|
|
Data *string `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ButtonRequest) Reset() { *m = ButtonRequest{} }
|
|
func (m *ButtonRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*ButtonRequest) ProtoMessage() {}
|
|
func (*ButtonRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} }
|
|
|
|
func (m *ButtonRequest) GetCode() ButtonRequestType {
|
|
if m != nil && m.Code != nil {
|
|
return *m.Code
|
|
}
|
|
return ButtonRequestType_ButtonRequest_Other
|
|
}
|
|
|
|
func (m *ButtonRequest) GetData() string {
|
|
if m != nil && m.Data != nil {
|
|
return *m.Data
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Request: Computer agrees to wait for HW button press
|
|
// @prev ButtonRequest
|
|
type ButtonAck struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ButtonAck) Reset() { *m = ButtonAck{} }
|
|
func (m *ButtonAck) String() string { return proto.CompactTextString(m) }
|
|
func (*ButtonAck) ProtoMessage() {}
|
|
func (*ButtonAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} }
|
|
|
|
// *
|
|
// Response: Device is asking computer to show PIN matrix and awaits PIN encoded using this matrix scheme
|
|
// @next PinMatrixAck
|
|
// @next Cancel
|
|
type PinMatrixRequest struct {
|
|
Type *PinMatrixRequestType `protobuf:"varint,1,opt,name=type,enum=PinMatrixRequestType" json:"type,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *PinMatrixRequest) Reset() { *m = PinMatrixRequest{} }
|
|
func (m *PinMatrixRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*PinMatrixRequest) ProtoMessage() {}
|
|
func (*PinMatrixRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{12} }
|
|
|
|
func (m *PinMatrixRequest) GetType() PinMatrixRequestType {
|
|
if m != nil && m.Type != nil {
|
|
return *m.Type
|
|
}
|
|
return PinMatrixRequestType_PinMatrixRequestType_Current
|
|
}
|
|
|
|
// *
|
|
// Request: Computer responds with encoded PIN
|
|
// @prev PinMatrixRequest
|
|
type PinMatrixAck struct {
|
|
Pin *string `protobuf:"bytes,1,req,name=pin" json:"pin,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *PinMatrixAck) Reset() { *m = PinMatrixAck{} }
|
|
func (m *PinMatrixAck) String() string { return proto.CompactTextString(m) }
|
|
func (*PinMatrixAck) ProtoMessage() {}
|
|
func (*PinMatrixAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{13} }
|
|
|
|
func (m *PinMatrixAck) GetPin() string {
|
|
if m != nil && m.Pin != nil {
|
|
return *m.Pin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Request: Abort last operation that required user interaction
|
|
// @prev ButtonRequest
|
|
// @prev PinMatrixRequest
|
|
// @prev PassphraseRequest
|
|
type Cancel struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Cancel) Reset() { *m = Cancel{} }
|
|
func (m *Cancel) String() string { return proto.CompactTextString(m) }
|
|
func (*Cancel) ProtoMessage() {}
|
|
func (*Cancel) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14} }
|
|
|
|
// *
|
|
// Response: Device awaits encryption passphrase
|
|
// @next PassphraseAck
|
|
// @next Cancel
|
|
type PassphraseRequest struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *PassphraseRequest) Reset() { *m = PassphraseRequest{} }
|
|
func (m *PassphraseRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*PassphraseRequest) ProtoMessage() {}
|
|
func (*PassphraseRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15} }
|
|
|
|
// *
|
|
// Request: Send passphrase back
|
|
// @prev PassphraseRequest
|
|
type PassphraseAck struct {
|
|
Passphrase *string `protobuf:"bytes,1,req,name=passphrase" json:"passphrase,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *PassphraseAck) Reset() { *m = PassphraseAck{} }
|
|
func (m *PassphraseAck) String() string { return proto.CompactTextString(m) }
|
|
func (*PassphraseAck) ProtoMessage() {}
|
|
func (*PassphraseAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{16} }
|
|
|
|
func (m *PassphraseAck) GetPassphrase() string {
|
|
if m != nil && m.Passphrase != nil {
|
|
return *m.Passphrase
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Request: Request a sample of random data generated by hardware RNG. May be used for testing.
|
|
// @next ButtonRequest
|
|
// @next Entropy
|
|
// @next Failure
|
|
type GetEntropy struct {
|
|
Size *uint32 `protobuf:"varint,1,req,name=size" json:"size,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *GetEntropy) Reset() { *m = GetEntropy{} }
|
|
func (m *GetEntropy) String() string { return proto.CompactTextString(m) }
|
|
func (*GetEntropy) ProtoMessage() {}
|
|
func (*GetEntropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{17} }
|
|
|
|
func (m *GetEntropy) GetSize() uint32 {
|
|
if m != nil && m.Size != nil {
|
|
return *m.Size
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Response: Reply with random data generated by internal RNG
|
|
// @prev GetEntropy
|
|
type Entropy struct {
|
|
Entropy []byte `protobuf:"bytes,1,req,name=entropy" json:"entropy,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Entropy) Reset() { *m = Entropy{} }
|
|
func (m *Entropy) String() string { return proto.CompactTextString(m) }
|
|
func (*Entropy) ProtoMessage() {}
|
|
func (*Entropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{18} }
|
|
|
|
func (m *Entropy) GetEntropy() []byte {
|
|
if m != nil {
|
|
return m.Entropy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device for public key corresponding to address_n path
|
|
// @next PassphraseRequest
|
|
// @next PublicKey
|
|
// @next Failure
|
|
type GetPublicKey struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
EcdsaCurveName *string `protobuf:"bytes,2,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
|
|
ShowDisplay *bool `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
|
|
CoinName *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *GetPublicKey) Reset() { *m = GetPublicKey{} }
|
|
func (m *GetPublicKey) String() string { return proto.CompactTextString(m) }
|
|
func (*GetPublicKey) ProtoMessage() {}
|
|
func (*GetPublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{19} }
|
|
|
|
const Default_GetPublicKey_CoinName string = "Bitcoin"
|
|
|
|
func (m *GetPublicKey) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *GetPublicKey) GetEcdsaCurveName() string {
|
|
if m != nil && m.EcdsaCurveName != nil {
|
|
return *m.EcdsaCurveName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *GetPublicKey) GetShowDisplay() bool {
|
|
if m != nil && m.ShowDisplay != nil {
|
|
return *m.ShowDisplay
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *GetPublicKey) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_GetPublicKey_CoinName
|
|
}
|
|
|
|
// *
|
|
// Response: Contains public key derived from device private seed
|
|
// @prev GetPublicKey
|
|
type PublicKey struct {
|
|
Node *HDNodeType `protobuf:"bytes,1,req,name=node" json:"node,omitempty"`
|
|
Xpub *string `protobuf:"bytes,2,opt,name=xpub" json:"xpub,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *PublicKey) Reset() { *m = PublicKey{} }
|
|
func (m *PublicKey) String() string { return proto.CompactTextString(m) }
|
|
func (*PublicKey) ProtoMessage() {}
|
|
func (*PublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{20} }
|
|
|
|
func (m *PublicKey) GetNode() *HDNodeType {
|
|
if m != nil {
|
|
return m.Node
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *PublicKey) GetXpub() string {
|
|
if m != nil && m.Xpub != nil {
|
|
return *m.Xpub
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device for address corresponding to address_n path
|
|
// @next PassphraseRequest
|
|
// @next Address
|
|
// @next Failure
|
|
type GetAddress struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
CoinName *string `protobuf:"bytes,2,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
ShowDisplay *bool `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
|
|
Multisig *MultisigRedeemScriptType `protobuf:"bytes,4,opt,name=multisig" json:"multisig,omitempty"`
|
|
ScriptType *InputScriptType `protobuf:"varint,5,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *GetAddress) Reset() { *m = GetAddress{} }
|
|
func (m *GetAddress) String() string { return proto.CompactTextString(m) }
|
|
func (*GetAddress) ProtoMessage() {}
|
|
func (*GetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{21} }
|
|
|
|
const Default_GetAddress_CoinName string = "Bitcoin"
|
|
const Default_GetAddress_ScriptType InputScriptType = InputScriptType_SPENDADDRESS
|
|
|
|
func (m *GetAddress) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *GetAddress) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_GetAddress_CoinName
|
|
}
|
|
|
|
func (m *GetAddress) GetShowDisplay() bool {
|
|
if m != nil && m.ShowDisplay != nil {
|
|
return *m.ShowDisplay
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *GetAddress) GetMultisig() *MultisigRedeemScriptType {
|
|
if m != nil {
|
|
return m.Multisig
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *GetAddress) GetScriptType() InputScriptType {
|
|
if m != nil && m.ScriptType != nil {
|
|
return *m.ScriptType
|
|
}
|
|
return Default_GetAddress_ScriptType
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device for Ethereum address corresponding to address_n path
|
|
// @next PassphraseRequest
|
|
// @next EthereumAddress
|
|
// @next Failure
|
|
type EthereumGetAddress struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
ShowDisplay *bool `protobuf:"varint,2,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumGetAddress) Reset() { *m = EthereumGetAddress{} }
|
|
func (m *EthereumGetAddress) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumGetAddress) ProtoMessage() {}
|
|
func (*EthereumGetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{22} }
|
|
|
|
func (m *EthereumGetAddress) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumGetAddress) GetShowDisplay() bool {
|
|
if m != nil && m.ShowDisplay != nil {
|
|
return *m.ShowDisplay
|
|
}
|
|
return false
|
|
}
|
|
|
|
// *
|
|
// Response: Contains address derived from device private seed
|
|
// @prev GetAddress
|
|
type Address struct {
|
|
Address *string `protobuf:"bytes,1,req,name=address" json:"address,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *Address) Reset() { *m = Address{} }
|
|
func (m *Address) String() string { return proto.CompactTextString(m) }
|
|
func (*Address) ProtoMessage() {}
|
|
func (*Address) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{23} }
|
|
|
|
func (m *Address) GetAddress() string {
|
|
if m != nil && m.Address != nil {
|
|
return *m.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Response: Contains an Ethereum address derived from device private seed
|
|
// @prev EthereumGetAddress
|
|
type EthereumAddress struct {
|
|
Address []byte `protobuf:"bytes,1,req,name=address" json:"address,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumAddress) Reset() { *m = EthereumAddress{} }
|
|
func (m *EthereumAddress) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumAddress) ProtoMessage() {}
|
|
func (*EthereumAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{24} }
|
|
|
|
func (m *EthereumAddress) GetAddress() []byte {
|
|
if m != nil {
|
|
return m.Address
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Request device to wipe all sensitive data and settings
|
|
// @next ButtonRequest
|
|
type WipeDevice struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *WipeDevice) Reset() { *m = WipeDevice{} }
|
|
func (m *WipeDevice) String() string { return proto.CompactTextString(m) }
|
|
func (*WipeDevice) ProtoMessage() {}
|
|
func (*WipeDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{25} }
|
|
|
|
// *
|
|
// Request: Load seed and related internal settings from the computer
|
|
// @next ButtonRequest
|
|
// @next Success
|
|
// @next Failure
|
|
type LoadDevice struct {
|
|
Mnemonic *string `protobuf:"bytes,1,opt,name=mnemonic" json:"mnemonic,omitempty"`
|
|
Node *HDNodeType `protobuf:"bytes,2,opt,name=node" json:"node,omitempty"`
|
|
Pin *string `protobuf:"bytes,3,opt,name=pin" json:"pin,omitempty"`
|
|
PassphraseProtection *bool `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
|
|
Language *string `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"`
|
|
Label *string `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"`
|
|
SkipChecksum *bool `protobuf:"varint,7,opt,name=skip_checksum,json=skipChecksum" json:"skip_checksum,omitempty"`
|
|
U2FCounter *uint32 `protobuf:"varint,8,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *LoadDevice) Reset() { *m = LoadDevice{} }
|
|
func (m *LoadDevice) String() string { return proto.CompactTextString(m) }
|
|
func (*LoadDevice) ProtoMessage() {}
|
|
func (*LoadDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{26} }
|
|
|
|
const Default_LoadDevice_Language string = "english"
|
|
|
|
func (m *LoadDevice) GetMnemonic() string {
|
|
if m != nil && m.Mnemonic != nil {
|
|
return *m.Mnemonic
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *LoadDevice) GetNode() *HDNodeType {
|
|
if m != nil {
|
|
return m.Node
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *LoadDevice) GetPin() string {
|
|
if m != nil && m.Pin != nil {
|
|
return *m.Pin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *LoadDevice) GetPassphraseProtection() bool {
|
|
if m != nil && m.PassphraseProtection != nil {
|
|
return *m.PassphraseProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *LoadDevice) GetLanguage() string {
|
|
if m != nil && m.Language != nil {
|
|
return *m.Language
|
|
}
|
|
return Default_LoadDevice_Language
|
|
}
|
|
|
|
func (m *LoadDevice) GetLabel() string {
|
|
if m != nil && m.Label != nil {
|
|
return *m.Label
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *LoadDevice) GetSkipChecksum() bool {
|
|
if m != nil && m.SkipChecksum != nil {
|
|
return *m.SkipChecksum
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *LoadDevice) GetU2FCounter() uint32 {
|
|
if m != nil && m.U2FCounter != nil {
|
|
return *m.U2FCounter
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to do initialization involving user interaction
|
|
// @next EntropyRequest
|
|
// @next Failure
|
|
type ResetDevice struct {
|
|
DisplayRandom *bool `protobuf:"varint,1,opt,name=display_random,json=displayRandom" json:"display_random,omitempty"`
|
|
Strength *uint32 `protobuf:"varint,2,opt,name=strength,def=256" json:"strength,omitempty"`
|
|
PassphraseProtection *bool `protobuf:"varint,3,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
|
|
PinProtection *bool `protobuf:"varint,4,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
|
|
Language *string `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"`
|
|
Label *string `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"`
|
|
U2FCounter *uint32 `protobuf:"varint,7,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
|
|
SkipBackup *bool `protobuf:"varint,8,opt,name=skip_backup,json=skipBackup" json:"skip_backup,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ResetDevice) Reset() { *m = ResetDevice{} }
|
|
func (m *ResetDevice) String() string { return proto.CompactTextString(m) }
|
|
func (*ResetDevice) ProtoMessage() {}
|
|
func (*ResetDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{27} }
|
|
|
|
const Default_ResetDevice_Strength uint32 = 256
|
|
const Default_ResetDevice_Language string = "english"
|
|
|
|
func (m *ResetDevice) GetDisplayRandom() bool {
|
|
if m != nil && m.DisplayRandom != nil {
|
|
return *m.DisplayRandom
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *ResetDevice) GetStrength() uint32 {
|
|
if m != nil && m.Strength != nil {
|
|
return *m.Strength
|
|
}
|
|
return Default_ResetDevice_Strength
|
|
}
|
|
|
|
func (m *ResetDevice) GetPassphraseProtection() bool {
|
|
if m != nil && m.PassphraseProtection != nil {
|
|
return *m.PassphraseProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *ResetDevice) GetPinProtection() bool {
|
|
if m != nil && m.PinProtection != nil {
|
|
return *m.PinProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *ResetDevice) GetLanguage() string {
|
|
if m != nil && m.Language != nil {
|
|
return *m.Language
|
|
}
|
|
return Default_ResetDevice_Language
|
|
}
|
|
|
|
func (m *ResetDevice) GetLabel() string {
|
|
if m != nil && m.Label != nil {
|
|
return *m.Label
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *ResetDevice) GetU2FCounter() uint32 {
|
|
if m != nil && m.U2FCounter != nil {
|
|
return *m.U2FCounter
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *ResetDevice) GetSkipBackup() bool {
|
|
if m != nil && m.SkipBackup != nil {
|
|
return *m.SkipBackup
|
|
}
|
|
return false
|
|
}
|
|
|
|
// *
|
|
// Request: Perform backup of the device seed if not backed up using ResetDevice
|
|
// @next ButtonRequest
|
|
type BackupDevice struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *BackupDevice) Reset() { *m = BackupDevice{} }
|
|
func (m *BackupDevice) String() string { return proto.CompactTextString(m) }
|
|
func (*BackupDevice) ProtoMessage() {}
|
|
func (*BackupDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{28} }
|
|
|
|
// *
|
|
// Response: Ask for additional entropy from host computer
|
|
// @prev ResetDevice
|
|
// @next EntropyAck
|
|
type EntropyRequest struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EntropyRequest) Reset() { *m = EntropyRequest{} }
|
|
func (m *EntropyRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*EntropyRequest) ProtoMessage() {}
|
|
func (*EntropyRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{29} }
|
|
|
|
// *
|
|
// Request: Provide additional entropy for seed generation function
|
|
// @prev EntropyRequest
|
|
// @next ButtonRequest
|
|
type EntropyAck struct {
|
|
Entropy []byte `protobuf:"bytes,1,opt,name=entropy" json:"entropy,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EntropyAck) Reset() { *m = EntropyAck{} }
|
|
func (m *EntropyAck) String() string { return proto.CompactTextString(m) }
|
|
func (*EntropyAck) ProtoMessage() {}
|
|
func (*EntropyAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{30} }
|
|
|
|
func (m *EntropyAck) GetEntropy() []byte {
|
|
if m != nil {
|
|
return m.Entropy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Start recovery workflow asking user for specific words of mnemonic
|
|
// Used to recovery device safely even on untrusted computer.
|
|
// @next WordRequest
|
|
type RecoveryDevice struct {
|
|
WordCount *uint32 `protobuf:"varint,1,opt,name=word_count,json=wordCount" json:"word_count,omitempty"`
|
|
PassphraseProtection *bool `protobuf:"varint,2,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
|
|
PinProtection *bool `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
|
|
Language *string `protobuf:"bytes,4,opt,name=language,def=english" json:"language,omitempty"`
|
|
Label *string `protobuf:"bytes,5,opt,name=label" json:"label,omitempty"`
|
|
EnforceWordlist *bool `protobuf:"varint,6,opt,name=enforce_wordlist,json=enforceWordlist" json:"enforce_wordlist,omitempty"`
|
|
// 7 reserved for unused recovery method
|
|
Type *uint32 `protobuf:"varint,8,opt,name=type" json:"type,omitempty"`
|
|
U2FCounter *uint32 `protobuf:"varint,9,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
|
|
DryRun *bool `protobuf:"varint,10,opt,name=dry_run,json=dryRun" json:"dry_run,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *RecoveryDevice) Reset() { *m = RecoveryDevice{} }
|
|
func (m *RecoveryDevice) String() string { return proto.CompactTextString(m) }
|
|
func (*RecoveryDevice) ProtoMessage() {}
|
|
func (*RecoveryDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{31} }
|
|
|
|
const Default_RecoveryDevice_Language string = "english"
|
|
|
|
func (m *RecoveryDevice) GetWordCount() uint32 {
|
|
if m != nil && m.WordCount != nil {
|
|
return *m.WordCount
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetPassphraseProtection() bool {
|
|
if m != nil && m.PassphraseProtection != nil {
|
|
return *m.PassphraseProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetPinProtection() bool {
|
|
if m != nil && m.PinProtection != nil {
|
|
return *m.PinProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetLanguage() string {
|
|
if m != nil && m.Language != nil {
|
|
return *m.Language
|
|
}
|
|
return Default_RecoveryDevice_Language
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetLabel() string {
|
|
if m != nil && m.Label != nil {
|
|
return *m.Label
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetEnforceWordlist() bool {
|
|
if m != nil && m.EnforceWordlist != nil {
|
|
return *m.EnforceWordlist
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetType() uint32 {
|
|
if m != nil && m.Type != nil {
|
|
return *m.Type
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetU2FCounter() uint32 {
|
|
if m != nil && m.U2FCounter != nil {
|
|
return *m.U2FCounter
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *RecoveryDevice) GetDryRun() bool {
|
|
if m != nil && m.DryRun != nil {
|
|
return *m.DryRun
|
|
}
|
|
return false
|
|
}
|
|
|
|
// *
|
|
// Response: Device is waiting for user to enter word of the mnemonic
|
|
// Its position is shown only on device's internal display.
|
|
// @prev RecoveryDevice
|
|
// @prev WordAck
|
|
type WordRequest struct {
|
|
Type *WordRequestType `protobuf:"varint,1,opt,name=type,enum=WordRequestType" json:"type,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *WordRequest) Reset() { *m = WordRequest{} }
|
|
func (m *WordRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*WordRequest) ProtoMessage() {}
|
|
func (*WordRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{32} }
|
|
|
|
func (m *WordRequest) GetType() WordRequestType {
|
|
if m != nil && m.Type != nil {
|
|
return *m.Type
|
|
}
|
|
return WordRequestType_WordRequestType_Plain
|
|
}
|
|
|
|
// *
|
|
// Request: Computer replies with word from the mnemonic
|
|
// @prev WordRequest
|
|
// @next WordRequest
|
|
// @next Success
|
|
// @next Failure
|
|
type WordAck struct {
|
|
Word *string `protobuf:"bytes,1,req,name=word" json:"word,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *WordAck) Reset() { *m = WordAck{} }
|
|
func (m *WordAck) String() string { return proto.CompactTextString(m) }
|
|
func (*WordAck) ProtoMessage() {}
|
|
func (*WordAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{33} }
|
|
|
|
func (m *WordAck) GetWord() string {
|
|
if m != nil && m.Word != nil {
|
|
return *m.Word
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to sign message
|
|
// @next MessageSignature
|
|
// @next Failure
|
|
type SignMessage struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
Message []byte `protobuf:"bytes,2,req,name=message" json:"message,omitempty"`
|
|
CoinName *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
ScriptType *InputScriptType `protobuf:"varint,4,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *SignMessage) Reset() { *m = SignMessage{} }
|
|
func (m *SignMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*SignMessage) ProtoMessage() {}
|
|
func (*SignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{34} }
|
|
|
|
const Default_SignMessage_CoinName string = "Bitcoin"
|
|
const Default_SignMessage_ScriptType InputScriptType = InputScriptType_SPENDADDRESS
|
|
|
|
func (m *SignMessage) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SignMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SignMessage) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_SignMessage_CoinName
|
|
}
|
|
|
|
func (m *SignMessage) GetScriptType() InputScriptType {
|
|
if m != nil && m.ScriptType != nil {
|
|
return *m.ScriptType
|
|
}
|
|
return Default_SignMessage_ScriptType
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to verify message
|
|
// @next Success
|
|
// @next Failure
|
|
type VerifyMessage struct {
|
|
Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
|
|
Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
|
|
Message []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
|
|
CoinName *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *VerifyMessage) Reset() { *m = VerifyMessage{} }
|
|
func (m *VerifyMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*VerifyMessage) ProtoMessage() {}
|
|
func (*VerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{35} }
|
|
|
|
const Default_VerifyMessage_CoinName string = "Bitcoin"
|
|
|
|
func (m *VerifyMessage) GetAddress() string {
|
|
if m != nil && m.Address != nil {
|
|
return *m.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *VerifyMessage) GetSignature() []byte {
|
|
if m != nil {
|
|
return m.Signature
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *VerifyMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *VerifyMessage) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_VerifyMessage_CoinName
|
|
}
|
|
|
|
// *
|
|
// Response: Signed message
|
|
// @prev SignMessage
|
|
type MessageSignature struct {
|
|
Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
|
|
Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *MessageSignature) Reset() { *m = MessageSignature{} }
|
|
func (m *MessageSignature) String() string { return proto.CompactTextString(m) }
|
|
func (*MessageSignature) ProtoMessage() {}
|
|
func (*MessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{36} }
|
|
|
|
func (m *MessageSignature) GetAddress() string {
|
|
if m != nil && m.Address != nil {
|
|
return *m.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *MessageSignature) GetSignature() []byte {
|
|
if m != nil {
|
|
return m.Signature
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to encrypt message
|
|
// @next EncryptedMessage
|
|
// @next Failure
|
|
type EncryptMessage struct {
|
|
Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey" json:"pubkey,omitempty"`
|
|
Message []byte `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
|
|
DisplayOnly *bool `protobuf:"varint,3,opt,name=display_only,json=displayOnly" json:"display_only,omitempty"`
|
|
AddressN []uint32 `protobuf:"varint,4,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
CoinName *string `protobuf:"bytes,5,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EncryptMessage) Reset() { *m = EncryptMessage{} }
|
|
func (m *EncryptMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*EncryptMessage) ProtoMessage() {}
|
|
func (*EncryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{37} }
|
|
|
|
const Default_EncryptMessage_CoinName string = "Bitcoin"
|
|
|
|
func (m *EncryptMessage) GetPubkey() []byte {
|
|
if m != nil {
|
|
return m.Pubkey
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EncryptMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EncryptMessage) GetDisplayOnly() bool {
|
|
if m != nil && m.DisplayOnly != nil {
|
|
return *m.DisplayOnly
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *EncryptMessage) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EncryptMessage) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_EncryptMessage_CoinName
|
|
}
|
|
|
|
// *
|
|
// Response: Encrypted message
|
|
// @prev EncryptMessage
|
|
type EncryptedMessage struct {
|
|
Nonce []byte `protobuf:"bytes,1,opt,name=nonce" json:"nonce,omitempty"`
|
|
Message []byte `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
|
|
Hmac []byte `protobuf:"bytes,3,opt,name=hmac" json:"hmac,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EncryptedMessage) Reset() { *m = EncryptedMessage{} }
|
|
func (m *EncryptedMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*EncryptedMessage) ProtoMessage() {}
|
|
func (*EncryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{38} }
|
|
|
|
func (m *EncryptedMessage) GetNonce() []byte {
|
|
if m != nil {
|
|
return m.Nonce
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EncryptedMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EncryptedMessage) GetHmac() []byte {
|
|
if m != nil {
|
|
return m.Hmac
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to decrypt message
|
|
// @next Success
|
|
// @next Failure
|
|
type DecryptMessage struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
Nonce []byte `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"`
|
|
Message []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
|
|
Hmac []byte `protobuf:"bytes,4,opt,name=hmac" json:"hmac,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DecryptMessage) Reset() { *m = DecryptMessage{} }
|
|
func (m *DecryptMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*DecryptMessage) ProtoMessage() {}
|
|
func (*DecryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{39} }
|
|
|
|
func (m *DecryptMessage) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DecryptMessage) GetNonce() []byte {
|
|
if m != nil {
|
|
return m.Nonce
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DecryptMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DecryptMessage) GetHmac() []byte {
|
|
if m != nil {
|
|
return m.Hmac
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Response: Decrypted message
|
|
// @prev DecryptedMessage
|
|
type DecryptedMessage struct {
|
|
Message []byte `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
|
|
Address *string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DecryptedMessage) Reset() { *m = DecryptedMessage{} }
|
|
func (m *DecryptedMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*DecryptedMessage) ProtoMessage() {}
|
|
func (*DecryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{40} }
|
|
|
|
func (m *DecryptedMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DecryptedMessage) GetAddress() string {
|
|
if m != nil && m.Address != nil {
|
|
return *m.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to encrypt or decrypt value of given key
|
|
// @next CipheredKeyValue
|
|
// @next Failure
|
|
type CipherKeyValue struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
Key *string `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"`
|
|
Value []byte `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
|
|
Encrypt *bool `protobuf:"varint,4,opt,name=encrypt" json:"encrypt,omitempty"`
|
|
AskOnEncrypt *bool `protobuf:"varint,5,opt,name=ask_on_encrypt,json=askOnEncrypt" json:"ask_on_encrypt,omitempty"`
|
|
AskOnDecrypt *bool `protobuf:"varint,6,opt,name=ask_on_decrypt,json=askOnDecrypt" json:"ask_on_decrypt,omitempty"`
|
|
Iv []byte `protobuf:"bytes,7,opt,name=iv" json:"iv,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *CipherKeyValue) Reset() { *m = CipherKeyValue{} }
|
|
func (m *CipherKeyValue) String() string { return proto.CompactTextString(m) }
|
|
func (*CipherKeyValue) ProtoMessage() {}
|
|
func (*CipherKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{41} }
|
|
|
|
func (m *CipherKeyValue) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *CipherKeyValue) GetKey() string {
|
|
if m != nil && m.Key != nil {
|
|
return *m.Key
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *CipherKeyValue) GetValue() []byte {
|
|
if m != nil {
|
|
return m.Value
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *CipherKeyValue) GetEncrypt() bool {
|
|
if m != nil && m.Encrypt != nil {
|
|
return *m.Encrypt
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *CipherKeyValue) GetAskOnEncrypt() bool {
|
|
if m != nil && m.AskOnEncrypt != nil {
|
|
return *m.AskOnEncrypt
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *CipherKeyValue) GetAskOnDecrypt() bool {
|
|
if m != nil && m.AskOnDecrypt != nil {
|
|
return *m.AskOnDecrypt
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *CipherKeyValue) GetIv() []byte {
|
|
if m != nil {
|
|
return m.Iv
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Response: Return ciphered/deciphered value
|
|
// @prev CipherKeyValue
|
|
type CipheredKeyValue struct {
|
|
Value []byte `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *CipheredKeyValue) Reset() { *m = CipheredKeyValue{} }
|
|
func (m *CipheredKeyValue) String() string { return proto.CompactTextString(m) }
|
|
func (*CipheredKeyValue) ProtoMessage() {}
|
|
func (*CipheredKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{42} }
|
|
|
|
func (m *CipheredKeyValue) GetValue() []byte {
|
|
if m != nil {
|
|
return m.Value
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Estimated size of the transaction
|
|
// This behaves exactly like SignTx, which means that it can ask using TxRequest
|
|
// This call is non-blocking (except possible PassphraseRequest to unlock the seed)
|
|
// @next TxSize
|
|
// @next Failure
|
|
type EstimateTxSize struct {
|
|
OutputsCount *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"`
|
|
InputsCount *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"`
|
|
CoinName *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EstimateTxSize) Reset() { *m = EstimateTxSize{} }
|
|
func (m *EstimateTxSize) String() string { return proto.CompactTextString(m) }
|
|
func (*EstimateTxSize) ProtoMessage() {}
|
|
func (*EstimateTxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{43} }
|
|
|
|
const Default_EstimateTxSize_CoinName string = "Bitcoin"
|
|
|
|
func (m *EstimateTxSize) GetOutputsCount() uint32 {
|
|
if m != nil && m.OutputsCount != nil {
|
|
return *m.OutputsCount
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *EstimateTxSize) GetInputsCount() uint32 {
|
|
if m != nil && m.InputsCount != nil {
|
|
return *m.InputsCount
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *EstimateTxSize) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_EstimateTxSize_CoinName
|
|
}
|
|
|
|
// *
|
|
// Response: Estimated size of the transaction
|
|
// @prev EstimateTxSize
|
|
type TxSize struct {
|
|
TxSize *uint32 `protobuf:"varint,1,opt,name=tx_size,json=txSize" json:"tx_size,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *TxSize) Reset() { *m = TxSize{} }
|
|
func (m *TxSize) String() string { return proto.CompactTextString(m) }
|
|
func (*TxSize) ProtoMessage() {}
|
|
func (*TxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{44} }
|
|
|
|
func (m *TxSize) GetTxSize() uint32 {
|
|
if m != nil && m.TxSize != nil {
|
|
return *m.TxSize
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to sign transaction
|
|
// @next PassphraseRequest
|
|
// @next PinMatrixRequest
|
|
// @next TxRequest
|
|
// @next Failure
|
|
type SignTx struct {
|
|
OutputsCount *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"`
|
|
InputsCount *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"`
|
|
CoinName *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
Version *uint32 `protobuf:"varint,4,opt,name=version,def=1" json:"version,omitempty"`
|
|
LockTime *uint32 `protobuf:"varint,5,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *SignTx) Reset() { *m = SignTx{} }
|
|
func (m *SignTx) String() string { return proto.CompactTextString(m) }
|
|
func (*SignTx) ProtoMessage() {}
|
|
func (*SignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{45} }
|
|
|
|
const Default_SignTx_CoinName string = "Bitcoin"
|
|
const Default_SignTx_Version uint32 = 1
|
|
const Default_SignTx_LockTime uint32 = 0
|
|
|
|
func (m *SignTx) GetOutputsCount() uint32 {
|
|
if m != nil && m.OutputsCount != nil {
|
|
return *m.OutputsCount
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *SignTx) GetInputsCount() uint32 {
|
|
if m != nil && m.InputsCount != nil {
|
|
return *m.InputsCount
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *SignTx) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_SignTx_CoinName
|
|
}
|
|
|
|
func (m *SignTx) GetVersion() uint32 {
|
|
if m != nil && m.Version != nil {
|
|
return *m.Version
|
|
}
|
|
return Default_SignTx_Version
|
|
}
|
|
|
|
func (m *SignTx) GetLockTime() uint32 {
|
|
if m != nil && m.LockTime != nil {
|
|
return *m.LockTime
|
|
}
|
|
return Default_SignTx_LockTime
|
|
}
|
|
|
|
// *
|
|
// Request: Simplified transaction signing
|
|
// This method doesn't support streaming, so there are hardware limits in number of inputs and outputs.
|
|
// In case of success, the result is returned using TxRequest message.
|
|
// @next PassphraseRequest
|
|
// @next PinMatrixRequest
|
|
// @next TxRequest
|
|
// @next Failure
|
|
type SimpleSignTx struct {
|
|
Inputs []*TxInputType `protobuf:"bytes,1,rep,name=inputs" json:"inputs,omitempty"`
|
|
Outputs []*TxOutputType `protobuf:"bytes,2,rep,name=outputs" json:"outputs,omitempty"`
|
|
Transactions []*TransactionType `protobuf:"bytes,3,rep,name=transactions" json:"transactions,omitempty"`
|
|
CoinName *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
|
|
Version *uint32 `protobuf:"varint,5,opt,name=version,def=1" json:"version,omitempty"`
|
|
LockTime *uint32 `protobuf:"varint,6,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *SimpleSignTx) Reset() { *m = SimpleSignTx{} }
|
|
func (m *SimpleSignTx) String() string { return proto.CompactTextString(m) }
|
|
func (*SimpleSignTx) ProtoMessage() {}
|
|
func (*SimpleSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{46} }
|
|
|
|
const Default_SimpleSignTx_CoinName string = "Bitcoin"
|
|
const Default_SimpleSignTx_Version uint32 = 1
|
|
const Default_SimpleSignTx_LockTime uint32 = 0
|
|
|
|
func (m *SimpleSignTx) GetInputs() []*TxInputType {
|
|
if m != nil {
|
|
return m.Inputs
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SimpleSignTx) GetOutputs() []*TxOutputType {
|
|
if m != nil {
|
|
return m.Outputs
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SimpleSignTx) GetTransactions() []*TransactionType {
|
|
if m != nil {
|
|
return m.Transactions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SimpleSignTx) GetCoinName() string {
|
|
if m != nil && m.CoinName != nil {
|
|
return *m.CoinName
|
|
}
|
|
return Default_SimpleSignTx_CoinName
|
|
}
|
|
|
|
func (m *SimpleSignTx) GetVersion() uint32 {
|
|
if m != nil && m.Version != nil {
|
|
return *m.Version
|
|
}
|
|
return Default_SimpleSignTx_Version
|
|
}
|
|
|
|
func (m *SimpleSignTx) GetLockTime() uint32 {
|
|
if m != nil && m.LockTime != nil {
|
|
return *m.LockTime
|
|
}
|
|
return Default_SimpleSignTx_LockTime
|
|
}
|
|
|
|
// *
|
|
// Response: Device asks for information for signing transaction or returns the last result
|
|
// If request_index is set, device awaits TxAck message (with fields filled in according to request_type)
|
|
// If signature_index is set, 'signature' contains signed input of signature_index's input
|
|
// @prev SignTx
|
|
// @prev SimpleSignTx
|
|
// @prev TxAck
|
|
type TxRequest struct {
|
|
RequestType *RequestType `protobuf:"varint,1,opt,name=request_type,json=requestType,enum=RequestType" json:"request_type,omitempty"`
|
|
Details *TxRequestDetailsType `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"`
|
|
Serialized *TxRequestSerializedType `protobuf:"bytes,3,opt,name=serialized" json:"serialized,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *TxRequest) Reset() { *m = TxRequest{} }
|
|
func (m *TxRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*TxRequest) ProtoMessage() {}
|
|
func (*TxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{47} }
|
|
|
|
func (m *TxRequest) GetRequestType() RequestType {
|
|
if m != nil && m.RequestType != nil {
|
|
return *m.RequestType
|
|
}
|
|
return RequestType_TXINPUT
|
|
}
|
|
|
|
func (m *TxRequest) GetDetails() *TxRequestDetailsType {
|
|
if m != nil {
|
|
return m.Details
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *TxRequest) GetSerialized() *TxRequestSerializedType {
|
|
if m != nil {
|
|
return m.Serialized
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Reported transaction data
|
|
// @prev TxRequest
|
|
// @next TxRequest
|
|
type TxAck struct {
|
|
Tx *TransactionType `protobuf:"bytes,1,opt,name=tx" json:"tx,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *TxAck) Reset() { *m = TxAck{} }
|
|
func (m *TxAck) String() string { return proto.CompactTextString(m) }
|
|
func (*TxAck) ProtoMessage() {}
|
|
func (*TxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{48} }
|
|
|
|
func (m *TxAck) GetTx() *TransactionType {
|
|
if m != nil {
|
|
return m.Tx
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to sign transaction
|
|
// All fields are optional from the protocol's point of view. Each field defaults to value `0` if missing.
|
|
// Note: the first at most 1024 bytes of data MUST be transmitted as part of this message.
|
|
// @next PassphraseRequest
|
|
// @next PinMatrixRequest
|
|
// @next EthereumTxRequest
|
|
// @next Failure
|
|
type EthereumSignTx struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
Nonce []byte `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"`
|
|
GasPrice []byte `protobuf:"bytes,3,opt,name=gas_price,json=gasPrice" json:"gas_price,omitempty"`
|
|
GasLimit []byte `protobuf:"bytes,4,opt,name=gas_limit,json=gasLimit" json:"gas_limit,omitempty"`
|
|
To []byte `protobuf:"bytes,5,opt,name=to" json:"to,omitempty"`
|
|
Value []byte `protobuf:"bytes,6,opt,name=value" json:"value,omitempty"`
|
|
DataInitialChunk []byte `protobuf:"bytes,7,opt,name=data_initial_chunk,json=dataInitialChunk" json:"data_initial_chunk,omitempty"`
|
|
DataLength *uint32 `protobuf:"varint,8,opt,name=data_length,json=dataLength" json:"data_length,omitempty"`
|
|
ChainId *uint32 `protobuf:"varint,9,opt,name=chain_id,json=chainId" json:"chain_id,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumSignTx) Reset() { *m = EthereumSignTx{} }
|
|
func (m *EthereumSignTx) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumSignTx) ProtoMessage() {}
|
|
func (*EthereumSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{49} }
|
|
|
|
func (m *EthereumSignTx) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetNonce() []byte {
|
|
if m != nil {
|
|
return m.Nonce
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetGasPrice() []byte {
|
|
if m != nil {
|
|
return m.GasPrice
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetGasLimit() []byte {
|
|
if m != nil {
|
|
return m.GasLimit
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetTo() []byte {
|
|
if m != nil {
|
|
return m.To
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetValue() []byte {
|
|
if m != nil {
|
|
return m.Value
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetDataInitialChunk() []byte {
|
|
if m != nil {
|
|
return m.DataInitialChunk
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetDataLength() uint32 {
|
|
if m != nil && m.DataLength != nil {
|
|
return *m.DataLength
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *EthereumSignTx) GetChainId() uint32 {
|
|
if m != nil && m.ChainId != nil {
|
|
return *m.ChainId
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Response: Device asks for more data from transaction payload, or returns the signature.
|
|
// If data_length is set, device awaits that many more bytes of payload.
|
|
// Otherwise, the signature_* fields contain the computed transaction signature. All three fields will be present.
|
|
// @prev EthereumSignTx
|
|
// @next EthereumTxAck
|
|
type EthereumTxRequest struct {
|
|
DataLength *uint32 `protobuf:"varint,1,opt,name=data_length,json=dataLength" json:"data_length,omitempty"`
|
|
SignatureV *uint32 `protobuf:"varint,2,opt,name=signature_v,json=signatureV" json:"signature_v,omitempty"`
|
|
SignatureR []byte `protobuf:"bytes,3,opt,name=signature_r,json=signatureR" json:"signature_r,omitempty"`
|
|
SignatureS []byte `protobuf:"bytes,4,opt,name=signature_s,json=signatureS" json:"signature_s,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumTxRequest) Reset() { *m = EthereumTxRequest{} }
|
|
func (m *EthereumTxRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumTxRequest) ProtoMessage() {}
|
|
func (*EthereumTxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{50} }
|
|
|
|
func (m *EthereumTxRequest) GetDataLength() uint32 {
|
|
if m != nil && m.DataLength != nil {
|
|
return *m.DataLength
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *EthereumTxRequest) GetSignatureV() uint32 {
|
|
if m != nil && m.SignatureV != nil {
|
|
return *m.SignatureV
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *EthereumTxRequest) GetSignatureR() []byte {
|
|
if m != nil {
|
|
return m.SignatureR
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumTxRequest) GetSignatureS() []byte {
|
|
if m != nil {
|
|
return m.SignatureS
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Transaction payload data.
|
|
// @prev EthereumTxRequest
|
|
// @next EthereumTxRequest
|
|
type EthereumTxAck struct {
|
|
DataChunk []byte `protobuf:"bytes,1,opt,name=data_chunk,json=dataChunk" json:"data_chunk,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumTxAck) Reset() { *m = EthereumTxAck{} }
|
|
func (m *EthereumTxAck) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumTxAck) ProtoMessage() {}
|
|
func (*EthereumTxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{51} }
|
|
|
|
func (m *EthereumTxAck) GetDataChunk() []byte {
|
|
if m != nil {
|
|
return m.DataChunk
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to sign message
|
|
// @next EthereumMessageSignature
|
|
// @next Failure
|
|
type EthereumSignMessage struct {
|
|
AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
|
|
Message []byte `protobuf:"bytes,2,req,name=message" json:"message,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumSignMessage) Reset() { *m = EthereumSignMessage{} }
|
|
func (m *EthereumSignMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumSignMessage) ProtoMessage() {}
|
|
func (*EthereumSignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{52} }
|
|
|
|
func (m *EthereumSignMessage) GetAddressN() []uint32 {
|
|
if m != nil {
|
|
return m.AddressN
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumSignMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to verify message
|
|
// @next Success
|
|
// @next Failure
|
|
type EthereumVerifyMessage struct {
|
|
Address []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
|
|
Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
|
|
Message []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumVerifyMessage) Reset() { *m = EthereumVerifyMessage{} }
|
|
func (m *EthereumVerifyMessage) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumVerifyMessage) ProtoMessage() {}
|
|
func (*EthereumVerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{53} }
|
|
|
|
func (m *EthereumVerifyMessage) GetAddress() []byte {
|
|
if m != nil {
|
|
return m.Address
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumVerifyMessage) GetSignature() []byte {
|
|
if m != nil {
|
|
return m.Signature
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumVerifyMessage) GetMessage() []byte {
|
|
if m != nil {
|
|
return m.Message
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Response: Signed message
|
|
// @prev EthereumSignMessage
|
|
type EthereumMessageSignature struct {
|
|
Address []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
|
|
Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *EthereumMessageSignature) Reset() { *m = EthereumMessageSignature{} }
|
|
func (m *EthereumMessageSignature) String() string { return proto.CompactTextString(m) }
|
|
func (*EthereumMessageSignature) ProtoMessage() {}
|
|
func (*EthereumMessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{54} }
|
|
|
|
func (m *EthereumMessageSignature) GetAddress() []byte {
|
|
if m != nil {
|
|
return m.Address
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *EthereumMessageSignature) GetSignature() []byte {
|
|
if m != nil {
|
|
return m.Signature
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to sign identity
|
|
// @next SignedIdentity
|
|
// @next Failure
|
|
type SignIdentity struct {
|
|
Identity *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"`
|
|
ChallengeHidden []byte `protobuf:"bytes,2,opt,name=challenge_hidden,json=challengeHidden" json:"challenge_hidden,omitempty"`
|
|
ChallengeVisual *string `protobuf:"bytes,3,opt,name=challenge_visual,json=challengeVisual" json:"challenge_visual,omitempty"`
|
|
EcdsaCurveName *string `protobuf:"bytes,4,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *SignIdentity) Reset() { *m = SignIdentity{} }
|
|
func (m *SignIdentity) String() string { return proto.CompactTextString(m) }
|
|
func (*SignIdentity) ProtoMessage() {}
|
|
func (*SignIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{55} }
|
|
|
|
func (m *SignIdentity) GetIdentity() *IdentityType {
|
|
if m != nil {
|
|
return m.Identity
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SignIdentity) GetChallengeHidden() []byte {
|
|
if m != nil {
|
|
return m.ChallengeHidden
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SignIdentity) GetChallengeVisual() string {
|
|
if m != nil && m.ChallengeVisual != nil {
|
|
return *m.ChallengeVisual
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *SignIdentity) GetEcdsaCurveName() string {
|
|
if m != nil && m.EcdsaCurveName != nil {
|
|
return *m.EcdsaCurveName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Response: Device provides signed identity
|
|
// @prev SignIdentity
|
|
type SignedIdentity struct {
|
|
Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
|
|
PublicKey []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey" json:"public_key,omitempty"`
|
|
Signature []byte `protobuf:"bytes,3,opt,name=signature" json:"signature,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *SignedIdentity) Reset() { *m = SignedIdentity{} }
|
|
func (m *SignedIdentity) String() string { return proto.CompactTextString(m) }
|
|
func (*SignedIdentity) ProtoMessage() {}
|
|
func (*SignedIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{56} }
|
|
|
|
func (m *SignedIdentity) GetAddress() string {
|
|
if m != nil && m.Address != nil {
|
|
return *m.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *SignedIdentity) GetPublicKey() []byte {
|
|
if m != nil {
|
|
return m.PublicKey
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *SignedIdentity) GetSignature() []byte {
|
|
if m != nil {
|
|
return m.Signature
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to generate ECDH session key
|
|
// @next ECDHSessionKey
|
|
// @next Failure
|
|
type GetECDHSessionKey struct {
|
|
Identity *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"`
|
|
PeerPublicKey []byte `protobuf:"bytes,2,opt,name=peer_public_key,json=peerPublicKey" json:"peer_public_key,omitempty"`
|
|
EcdsaCurveName *string `protobuf:"bytes,3,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *GetECDHSessionKey) Reset() { *m = GetECDHSessionKey{} }
|
|
func (m *GetECDHSessionKey) String() string { return proto.CompactTextString(m) }
|
|
func (*GetECDHSessionKey) ProtoMessage() {}
|
|
func (*GetECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{57} }
|
|
|
|
func (m *GetECDHSessionKey) GetIdentity() *IdentityType {
|
|
if m != nil {
|
|
return m.Identity
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *GetECDHSessionKey) GetPeerPublicKey() []byte {
|
|
if m != nil {
|
|
return m.PeerPublicKey
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *GetECDHSessionKey) GetEcdsaCurveName() string {
|
|
if m != nil && m.EcdsaCurveName != nil {
|
|
return *m.EcdsaCurveName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Response: Device provides ECDH session key
|
|
// @prev GetECDHSessionKey
|
|
type ECDHSessionKey struct {
|
|
SessionKey []byte `protobuf:"bytes,1,opt,name=session_key,json=sessionKey" json:"session_key,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *ECDHSessionKey) Reset() { *m = ECDHSessionKey{} }
|
|
func (m *ECDHSessionKey) String() string { return proto.CompactTextString(m) }
|
|
func (*ECDHSessionKey) ProtoMessage() {}
|
|
func (*ECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{58} }
|
|
|
|
func (m *ECDHSessionKey) GetSessionKey() []byte {
|
|
if m != nil {
|
|
return m.SessionKey
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Set U2F counter
|
|
// @next Success
|
|
type SetU2FCounter struct {
|
|
U2FCounter *uint32 `protobuf:"varint,1,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *SetU2FCounter) Reset() { *m = SetU2FCounter{} }
|
|
func (m *SetU2FCounter) String() string { return proto.CompactTextString(m) }
|
|
func (*SetU2FCounter) ProtoMessage() {}
|
|
func (*SetU2FCounter) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{59} }
|
|
|
|
func (m *SetU2FCounter) GetU2FCounter() uint32 {
|
|
if m != nil && m.U2FCounter != nil {
|
|
return *m.U2FCounter
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to erase its firmware (so it can be replaced via FirmwareUpload)
|
|
// @next Success
|
|
// @next FirmwareRequest
|
|
// @next Failure
|
|
type FirmwareErase struct {
|
|
Length *uint32 `protobuf:"varint,1,opt,name=length" json:"length,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *FirmwareErase) Reset() { *m = FirmwareErase{} }
|
|
func (m *FirmwareErase) String() string { return proto.CompactTextString(m) }
|
|
func (*FirmwareErase) ProtoMessage() {}
|
|
func (*FirmwareErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{60} }
|
|
|
|
func (m *FirmwareErase) GetLength() uint32 {
|
|
if m != nil && m.Length != nil {
|
|
return *m.Length
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Response: Ask for firmware chunk
|
|
// @next FirmwareUpload
|
|
type FirmwareRequest struct {
|
|
Offset *uint32 `protobuf:"varint,1,opt,name=offset" json:"offset,omitempty"`
|
|
Length *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *FirmwareRequest) Reset() { *m = FirmwareRequest{} }
|
|
func (m *FirmwareRequest) String() string { return proto.CompactTextString(m) }
|
|
func (*FirmwareRequest) ProtoMessage() {}
|
|
func (*FirmwareRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{61} }
|
|
|
|
func (m *FirmwareRequest) GetOffset() uint32 {
|
|
if m != nil && m.Offset != nil {
|
|
return *m.Offset
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *FirmwareRequest) GetLength() uint32 {
|
|
if m != nil && m.Length != nil {
|
|
return *m.Length
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Request: Send firmware in binary form to the device
|
|
// @next Success
|
|
// @next Failure
|
|
type FirmwareUpload struct {
|
|
Payload []byte `protobuf:"bytes,1,req,name=payload" json:"payload,omitempty"`
|
|
Hash []byte `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *FirmwareUpload) Reset() { *m = FirmwareUpload{} }
|
|
func (m *FirmwareUpload) String() string { return proto.CompactTextString(m) }
|
|
func (*FirmwareUpload) ProtoMessage() {}
|
|
func (*FirmwareUpload) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{62} }
|
|
|
|
func (m *FirmwareUpload) GetPayload() []byte {
|
|
if m != nil {
|
|
return m.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *FirmwareUpload) GetHash() []byte {
|
|
if m != nil {
|
|
return m.Hash
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Perform a device self-test
|
|
// @next Success
|
|
// @next Failure
|
|
type SelfTest struct {
|
|
Payload []byte `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *SelfTest) Reset() { *m = SelfTest{} }
|
|
func (m *SelfTest) String() string { return proto.CompactTextString(m) }
|
|
func (*SelfTest) ProtoMessage() {}
|
|
func (*SelfTest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{63} }
|
|
|
|
func (m *SelfTest) GetPayload() []byte {
|
|
if m != nil {
|
|
return m.Payload
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: "Press" the button on the device
|
|
// @next Success
|
|
type DebugLinkDecision struct {
|
|
YesNo *bool `protobuf:"varint,1,req,name=yes_no,json=yesNo" json:"yes_no,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkDecision) Reset() { *m = DebugLinkDecision{} }
|
|
func (m *DebugLinkDecision) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkDecision) ProtoMessage() {}
|
|
func (*DebugLinkDecision) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{64} }
|
|
|
|
func (m *DebugLinkDecision) GetYesNo() bool {
|
|
if m != nil && m.YesNo != nil {
|
|
return *m.YesNo
|
|
}
|
|
return false
|
|
}
|
|
|
|
// *
|
|
// Request: Computer asks for device state
|
|
// @next DebugLinkState
|
|
type DebugLinkGetState struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkGetState) Reset() { *m = DebugLinkGetState{} }
|
|
func (m *DebugLinkGetState) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkGetState) ProtoMessage() {}
|
|
func (*DebugLinkGetState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{65} }
|
|
|
|
// *
|
|
// Response: Device current state
|
|
// @prev DebugLinkGetState
|
|
type DebugLinkState struct {
|
|
Layout []byte `protobuf:"bytes,1,opt,name=layout" json:"layout,omitempty"`
|
|
Pin *string `protobuf:"bytes,2,opt,name=pin" json:"pin,omitempty"`
|
|
Matrix *string `protobuf:"bytes,3,opt,name=matrix" json:"matrix,omitempty"`
|
|
Mnemonic *string `protobuf:"bytes,4,opt,name=mnemonic" json:"mnemonic,omitempty"`
|
|
Node *HDNodeType `protobuf:"bytes,5,opt,name=node" json:"node,omitempty"`
|
|
PassphraseProtection *bool `protobuf:"varint,6,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
|
|
ResetWord *string `protobuf:"bytes,7,opt,name=reset_word,json=resetWord" json:"reset_word,omitempty"`
|
|
ResetEntropy []byte `protobuf:"bytes,8,opt,name=reset_entropy,json=resetEntropy" json:"reset_entropy,omitempty"`
|
|
RecoveryFakeWord *string `protobuf:"bytes,9,opt,name=recovery_fake_word,json=recoveryFakeWord" json:"recovery_fake_word,omitempty"`
|
|
RecoveryWordPos *uint32 `protobuf:"varint,10,opt,name=recovery_word_pos,json=recoveryWordPos" json:"recovery_word_pos,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkState) Reset() { *m = DebugLinkState{} }
|
|
func (m *DebugLinkState) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkState) ProtoMessage() {}
|
|
func (*DebugLinkState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{66} }
|
|
|
|
func (m *DebugLinkState) GetLayout() []byte {
|
|
if m != nil {
|
|
return m.Layout
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DebugLinkState) GetPin() string {
|
|
if m != nil && m.Pin != nil {
|
|
return *m.Pin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *DebugLinkState) GetMatrix() string {
|
|
if m != nil && m.Matrix != nil {
|
|
return *m.Matrix
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *DebugLinkState) GetMnemonic() string {
|
|
if m != nil && m.Mnemonic != nil {
|
|
return *m.Mnemonic
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *DebugLinkState) GetNode() *HDNodeType {
|
|
if m != nil {
|
|
return m.Node
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DebugLinkState) GetPassphraseProtection() bool {
|
|
if m != nil && m.PassphraseProtection != nil {
|
|
return *m.PassphraseProtection
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (m *DebugLinkState) GetResetWord() string {
|
|
if m != nil && m.ResetWord != nil {
|
|
return *m.ResetWord
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *DebugLinkState) GetResetEntropy() []byte {
|
|
if m != nil {
|
|
return m.ResetEntropy
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DebugLinkState) GetRecoveryFakeWord() string {
|
|
if m != nil && m.RecoveryFakeWord != nil {
|
|
return *m.RecoveryFakeWord
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *DebugLinkState) GetRecoveryWordPos() uint32 {
|
|
if m != nil && m.RecoveryWordPos != nil {
|
|
return *m.RecoveryWordPos
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Request: Ask device to restart
|
|
type DebugLinkStop struct {
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkStop) Reset() { *m = DebugLinkStop{} }
|
|
func (m *DebugLinkStop) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkStop) ProtoMessage() {}
|
|
func (*DebugLinkStop) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{67} }
|
|
|
|
// *
|
|
// Response: Device wants host to log event
|
|
type DebugLinkLog struct {
|
|
Level *uint32 `protobuf:"varint,1,opt,name=level" json:"level,omitempty"`
|
|
Bucket *string `protobuf:"bytes,2,opt,name=bucket" json:"bucket,omitempty"`
|
|
Text *string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkLog) Reset() { *m = DebugLinkLog{} }
|
|
func (m *DebugLinkLog) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkLog) ProtoMessage() {}
|
|
func (*DebugLinkLog) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{68} }
|
|
|
|
func (m *DebugLinkLog) GetLevel() uint32 {
|
|
if m != nil && m.Level != nil {
|
|
return *m.Level
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *DebugLinkLog) GetBucket() string {
|
|
if m != nil && m.Bucket != nil {
|
|
return *m.Bucket
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (m *DebugLinkLog) GetText() string {
|
|
if m != nil && m.Text != nil {
|
|
return *m.Text
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// *
|
|
// Request: Read memory from device
|
|
// @next DebugLinkMemory
|
|
type DebugLinkMemoryRead struct {
|
|
Address *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"`
|
|
Length *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkMemoryRead) Reset() { *m = DebugLinkMemoryRead{} }
|
|
func (m *DebugLinkMemoryRead) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkMemoryRead) ProtoMessage() {}
|
|
func (*DebugLinkMemoryRead) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{69} }
|
|
|
|
func (m *DebugLinkMemoryRead) GetAddress() uint32 {
|
|
if m != nil && m.Address != nil {
|
|
return *m.Address
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *DebugLinkMemoryRead) GetLength() uint32 {
|
|
if m != nil && m.Length != nil {
|
|
return *m.Length
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// *
|
|
// Response: Device sends memory back
|
|
// @prev DebugLinkMemoryRead
|
|
type DebugLinkMemory struct {
|
|
Memory []byte `protobuf:"bytes,1,opt,name=memory" json:"memory,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkMemory) Reset() { *m = DebugLinkMemory{} }
|
|
func (m *DebugLinkMemory) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkMemory) ProtoMessage() {}
|
|
func (*DebugLinkMemory) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{70} }
|
|
|
|
func (m *DebugLinkMemory) GetMemory() []byte {
|
|
if m != nil {
|
|
return m.Memory
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// *
|
|
// Request: Write memory to device.
|
|
// WARNING: Writing to the wrong location can irreparably break the device.
|
|
type DebugLinkMemoryWrite struct {
|
|
Address *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"`
|
|
Memory []byte `protobuf:"bytes,2,opt,name=memory" json:"memory,omitempty"`
|
|
Flash *bool `protobuf:"varint,3,opt,name=flash" json:"flash,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkMemoryWrite) Reset() { *m = DebugLinkMemoryWrite{} }
|
|
func (m *DebugLinkMemoryWrite) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkMemoryWrite) ProtoMessage() {}
|
|
func (*DebugLinkMemoryWrite) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{71} }
|
|
|
|
func (m *DebugLinkMemoryWrite) GetAddress() uint32 {
|
|
if m != nil && m.Address != nil {
|
|
return *m.Address
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (m *DebugLinkMemoryWrite) GetMemory() []byte {
|
|
if m != nil {
|
|
return m.Memory
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DebugLinkMemoryWrite) GetFlash() bool {
|
|
if m != nil && m.Flash != nil {
|
|
return *m.Flash
|
|
}
|
|
return false
|
|
}
|
|
|
|
// *
|
|
// Request: Erase block of flash on device
|
|
// WARNING: Writing to the wrong location can irreparably break the device.
|
|
type DebugLinkFlashErase struct {
|
|
Sector *uint32 `protobuf:"varint,1,opt,name=sector" json:"sector,omitempty"`
|
|
XXX_unrecognized []byte `json:"-"`
|
|
}
|
|
|
|
func (m *DebugLinkFlashErase) Reset() { *m = DebugLinkFlashErase{} }
|
|
func (m *DebugLinkFlashErase) String() string { return proto.CompactTextString(m) }
|
|
func (*DebugLinkFlashErase) ProtoMessage() {}
|
|
func (*DebugLinkFlashErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{72} }
|
|
|
|
func (m *DebugLinkFlashErase) GetSector() uint32 {
|
|
if m != nil && m.Sector != nil {
|
|
return *m.Sector
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func init() {
|
|
proto.RegisterType((*Initialize)(nil), "Initialize")
|
|
proto.RegisterType((*GetFeatures)(nil), "GetFeatures")
|
|
proto.RegisterType((*Features)(nil), "Features")
|
|
proto.RegisterType((*ClearSession)(nil), "ClearSession")
|
|
proto.RegisterType((*ApplySettings)(nil), "ApplySettings")
|
|
proto.RegisterType((*ApplyFlags)(nil), "ApplyFlags")
|
|
proto.RegisterType((*ChangePin)(nil), "ChangePin")
|
|
proto.RegisterType((*Ping)(nil), "Ping")
|
|
proto.RegisterType((*Success)(nil), "Success")
|
|
proto.RegisterType((*Failure)(nil), "Failure")
|
|
proto.RegisterType((*ButtonRequest)(nil), "ButtonRequest")
|
|
proto.RegisterType((*ButtonAck)(nil), "ButtonAck")
|
|
proto.RegisterType((*PinMatrixRequest)(nil), "PinMatrixRequest")
|
|
proto.RegisterType((*PinMatrixAck)(nil), "PinMatrixAck")
|
|
proto.RegisterType((*Cancel)(nil), "Cancel")
|
|
proto.RegisterType((*PassphraseRequest)(nil), "PassphraseRequest")
|
|
proto.RegisterType((*PassphraseAck)(nil), "PassphraseAck")
|
|
proto.RegisterType((*GetEntropy)(nil), "GetEntropy")
|
|
proto.RegisterType((*Entropy)(nil), "Entropy")
|
|
proto.RegisterType((*GetPublicKey)(nil), "GetPublicKey")
|
|
proto.RegisterType((*PublicKey)(nil), "PublicKey")
|
|
proto.RegisterType((*GetAddress)(nil), "GetAddress")
|
|
proto.RegisterType((*EthereumGetAddress)(nil), "EthereumGetAddress")
|
|
proto.RegisterType((*Address)(nil), "Address")
|
|
proto.RegisterType((*EthereumAddress)(nil), "EthereumAddress")
|
|
proto.RegisterType((*WipeDevice)(nil), "WipeDevice")
|
|
proto.RegisterType((*LoadDevice)(nil), "LoadDevice")
|
|
proto.RegisterType((*ResetDevice)(nil), "ResetDevice")
|
|
proto.RegisterType((*BackupDevice)(nil), "BackupDevice")
|
|
proto.RegisterType((*EntropyRequest)(nil), "EntropyRequest")
|
|
proto.RegisterType((*EntropyAck)(nil), "EntropyAck")
|
|
proto.RegisterType((*RecoveryDevice)(nil), "RecoveryDevice")
|
|
proto.RegisterType((*WordRequest)(nil), "WordRequest")
|
|
proto.RegisterType((*WordAck)(nil), "WordAck")
|
|
proto.RegisterType((*SignMessage)(nil), "SignMessage")
|
|
proto.RegisterType((*VerifyMessage)(nil), "VerifyMessage")
|
|
proto.RegisterType((*MessageSignature)(nil), "MessageSignature")
|
|
proto.RegisterType((*EncryptMessage)(nil), "EncryptMessage")
|
|
proto.RegisterType((*EncryptedMessage)(nil), "EncryptedMessage")
|
|
proto.RegisterType((*DecryptMessage)(nil), "DecryptMessage")
|
|
proto.RegisterType((*DecryptedMessage)(nil), "DecryptedMessage")
|
|
proto.RegisterType((*CipherKeyValue)(nil), "CipherKeyValue")
|
|
proto.RegisterType((*CipheredKeyValue)(nil), "CipheredKeyValue")
|
|
proto.RegisterType((*EstimateTxSize)(nil), "EstimateTxSize")
|
|
proto.RegisterType((*TxSize)(nil), "TxSize")
|
|
proto.RegisterType((*SignTx)(nil), "SignTx")
|
|
proto.RegisterType((*SimpleSignTx)(nil), "SimpleSignTx")
|
|
proto.RegisterType((*TxRequest)(nil), "TxRequest")
|
|
proto.RegisterType((*TxAck)(nil), "TxAck")
|
|
proto.RegisterType((*EthereumSignTx)(nil), "EthereumSignTx")
|
|
proto.RegisterType((*EthereumTxRequest)(nil), "EthereumTxRequest")
|
|
proto.RegisterType((*EthereumTxAck)(nil), "EthereumTxAck")
|
|
proto.RegisterType((*EthereumSignMessage)(nil), "EthereumSignMessage")
|
|
proto.RegisterType((*EthereumVerifyMessage)(nil), "EthereumVerifyMessage")
|
|
proto.RegisterType((*EthereumMessageSignature)(nil), "EthereumMessageSignature")
|
|
proto.RegisterType((*SignIdentity)(nil), "SignIdentity")
|
|
proto.RegisterType((*SignedIdentity)(nil), "SignedIdentity")
|
|
proto.RegisterType((*GetECDHSessionKey)(nil), "GetECDHSessionKey")
|
|
proto.RegisterType((*ECDHSessionKey)(nil), "ECDHSessionKey")
|
|
proto.RegisterType((*SetU2FCounter)(nil), "SetU2FCounter")
|
|
proto.RegisterType((*FirmwareErase)(nil), "FirmwareErase")
|
|
proto.RegisterType((*FirmwareRequest)(nil), "FirmwareRequest")
|
|
proto.RegisterType((*FirmwareUpload)(nil), "FirmwareUpload")
|
|
proto.RegisterType((*SelfTest)(nil), "SelfTest")
|
|
proto.RegisterType((*DebugLinkDecision)(nil), "DebugLinkDecision")
|
|
proto.RegisterType((*DebugLinkGetState)(nil), "DebugLinkGetState")
|
|
proto.RegisterType((*DebugLinkState)(nil), "DebugLinkState")
|
|
proto.RegisterType((*DebugLinkStop)(nil), "DebugLinkStop")
|
|
proto.RegisterType((*DebugLinkLog)(nil), "DebugLinkLog")
|
|
proto.RegisterType((*DebugLinkMemoryRead)(nil), "DebugLinkMemoryRead")
|
|
proto.RegisterType((*DebugLinkMemory)(nil), "DebugLinkMemory")
|
|
proto.RegisterType((*DebugLinkMemoryWrite)(nil), "DebugLinkMemoryWrite")
|
|
proto.RegisterType((*DebugLinkFlashErase)(nil), "DebugLinkFlashErase")
|
|
proto.RegisterEnum("MessageType", MessageType_name, MessageType_value)
|
|
}
|
|
|
|
func init() { proto.RegisterFile("messages.proto", fileDescriptor1) }
|
|
|
|
var fileDescriptor1 = []byte{
|
|
// 3424 bytes of a gzipped FileDescriptorProto
|
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xcb, 0x6f, 0xdc, 0x46,
|
|
0x9a, 0x5f, 0x76, 0xb7, 0xfa, 0xf1, 0x35, 0xbb, 0x55, 0xa2, 0x2d, 0xbb, 0x2d, 0x5b, 0xb6, 0x4c,
|
|
0xc9, 0xb6, 0x64, 0x27, 0xed, 0x44, 0x79, 0x6c, 0xd6, 0xbb, 0x79, 0xc8, 0x7a, 0xd8, 0xde, 0xd8,
|
|
0x8e, 0xc0, 0x56, 0x9c, 0xdb, 0x12, 0x14, 0x59, 0xea, 0xae, 0x55, 0x37, 0xc9, 0xf0, 0xa1, 0xa8,
|
|
0x7d, 0xd8, 0xeb, 0xee, 0x65, 0x81, 0xec, 0x69, 0x73, 0x1a, 0xe4, 0x36, 0x19, 0x04, 0x18, 0x0c,
|
|
0x30, 0x18, 0x60, 0x72, 0x9a, 0x3f, 0x60, 0xfe, 0x8b, 0x39, 0xce, 0x1f, 0x30, 0xe7, 0x41, 0x3d,
|
|
0x48, 0x16, 0x29, 0xb6, 0x6c, 0x27, 0xc0, 0x5c, 0x04, 0xd6, 0x57, 0xbf, 0xfe, 0xea, 0x7b, 0xd5,
|
|
0x57, 0x5f, 0x7d, 0x25, 0xe8, 0x4e, 0x70, 0x18, 0x5a, 0x43, 0x1c, 0xf6, 0xfd, 0xc0, 0x8b, 0xbc,
|
|
0xa5, 0x76, 0x34, 0xf5, 0x93, 0x81, 0xae, 0x02, 0x3c, 0x71, 0x49, 0x44, 0xac, 0x31, 0x79, 0x89,
|
|
0xf5, 0x0e, 0xb4, 0x1f, 0xe1, 0x68, 0x0f, 0x5b, 0x51, 0x1c, 0xe0, 0x50, 0xff, 0x69, 0x0e, 0x9a,
|
|
0xc9, 0x40, 0xbb, 0x04, 0xf5, 0x13, 0xec, 0x3a, 0x5e, 0xd0, 0x53, 0x56, 0x94, 0xf5, 0x96, 0x21,
|
|
0x46, 0xda, 0x2a, 0x74, 0x26, 0xd6, 0x7f, 0x7a, 0x81, 0x79, 0x82, 0x83, 0x90, 0x78, 0x6e, 0xaf,
|
|
0xb2, 0xa2, 0xac, 0x77, 0x0c, 0x95, 0x11, 0x5f, 0x70, 0x1a, 0x03, 0x11, 0x57, 0x02, 0x55, 0x05,
|
|
0x88, 0x12, 0x25, 0x90, 0x6f, 0x45, 0xf6, 0x28, 0x05, 0xd5, 0x38, 0x88, 0x11, 0x13, 0xd0, 0x1d,
|
|
0x98, 0x3f, 0xf4, 0xbc, 0x68, 0xec, 0x59, 0x0e, 0x0e, 0xcc, 0x89, 0xe7, 0xe0, 0xde, 0xdc, 0x8a,
|
|
0xb2, 0xde, 0x34, 0xba, 0x19, 0xf9, 0x99, 0xe7, 0x60, 0xed, 0x2a, 0xb4, 0x1c, 0x7c, 0x42, 0x6c,
|
|
0x6c, 0x12, 0xa7, 0x57, 0x67, 0x22, 0x37, 0x39, 0xe1, 0x89, 0xa3, 0xdd, 0x82, 0xae, 0x4f, 0x5c,
|
|
0x93, 0xda, 0x00, 0xdb, 0x11, 0x5d, 0xab, 0xc1, 0x98, 0x74, 0x7c, 0xe2, 0xee, 0xa7, 0x44, 0xed,
|
|
0x3d, 0x58, 0xf4, 0xad, 0x30, 0xf4, 0x47, 0x81, 0x15, 0x62, 0x19, 0xdd, 0x64, 0xe8, 0x8b, 0xd9,
|
|
0xa4, 0xf4, 0xa3, 0x25, 0x68, 0x8e, 0x2d, 0x77, 0x18, 0x5b, 0x43, 0xdc, 0x6b, 0xf1, 0x75, 0x93,
|
|
0xb1, 0x76, 0x11, 0xe6, 0xc6, 0xd6, 0x21, 0x1e, 0xf7, 0x80, 0x4d, 0xf0, 0x81, 0x76, 0x03, 0xe6,
|
|
0x6c, 0x8f, 0xb8, 0x61, 0xaf, 0xbd, 0x52, 0x5d, 0x6f, 0x6f, 0xb6, 0xfa, 0xdb, 0x1e, 0x71, 0x0f,
|
|
0xa6, 0x3e, 0x36, 0x38, 0x5d, 0x5b, 0x81, 0x36, 0x49, 0xbd, 0xe4, 0xf4, 0x54, 0xb6, 0xba, 0x4c,
|
|
0xa2, 0x8b, 0x06, 0xf8, 0x84, 0x30, 0xb3, 0x75, 0x56, 0x94, 0x75, 0xd5, 0x48, 0xc7, 0x05, 0x93,
|
|
0x8d, 0xac, 0x70, 0xd4, 0xeb, 0x32, 0x88, 0x64, 0xb2, 0xc7, 0x56, 0x38, 0xa2, 0x4c, 0xc8, 0xc4,
|
|
0xf7, 0x82, 0x08, 0x3b, 0xbd, 0x79, 0xb6, 0x46, 0x3a, 0xd6, 0x96, 0x01, 0xa8, 0xc5, 0x6c, 0xcb,
|
|
0x1e, 0x61, 0xa7, 0x87, 0xd8, 0x6c, 0xcb, 0x27, 0xee, 0x36, 0x23, 0x68, 0xf7, 0x60, 0x41, 0xb2,
|
|
0x94, 0x40, 0x2d, 0x30, 0x14, 0xca, 0x26, 0x04, 0x78, 0x03, 0xd0, 0x11, 0x09, 0x26, 0xdf, 0x58,
|
|
0x01, 0x35, 0x2a, 0x0e, 0xb1, 0x1b, 0xf5, 0x34, 0x86, 0x9d, 0x4f, 0xe8, 0xfb, 0x9c, 0xac, 0xdd,
|
|
0x04, 0xd5, 0xc5, 0xd8, 0x09, 0xcd, 0x43, 0xcb, 0x3e, 0x8e, 0xfd, 0xde, 0x05, 0xae, 0x3a, 0xa3,
|
|
0x3d, 0x64, 0x24, 0x6a, 0xd3, 0xa3, 0xb1, 0x35, 0x0c, 0x7b, 0x17, 0x59, 0xb8, 0xf0, 0x81, 0xde,
|
|
0x05, 0x75, 0x7b, 0x8c, 0xad, 0x60, 0x80, 0x43, 0x6a, 0x04, 0xfd, 0x7f, 0x14, 0xe8, 0x6c, 0xf9,
|
|
0xfe, 0x78, 0x3a, 0xc0, 0x51, 0x44, 0xdc, 0x61, 0x98, 0xf3, 0x93, 0x32, 0xcb, 0x4f, 0x15, 0xd9,
|
|
0x4f, 0xb7, 0xa0, 0x1b, 0xd3, 0x38, 0x48, 0xf5, 0x61, 0x61, 0xdc, 0x34, 0x3a, 0x71, 0x88, 0xf7,
|
|
0x53, 0xa2, 0x76, 0x1d, 0x60, 0xe4, 0x4d, 0x70, 0x68, 0x07, 0x18, 0xf3, 0x20, 0x56, 0x0d, 0x89,
|
|
0xa2, 0xeb, 0x00, 0x4c, 0x92, 0x3d, 0x2a, 0x68, 0x26, 0xbe, 0x22, 0x8b, 0xbf, 0x0a, 0xad, 0xed,
|
|
0x91, 0xe5, 0x0e, 0xf1, 0x3e, 0x71, 0xe9, 0xd6, 0x0b, 0xf0, 0xc4, 0x3b, 0xe1, 0x72, 0x36, 0x0d,
|
|
0x31, 0xd2, 0x7f, 0xa3, 0x40, 0x6d, 0x9f, 0xb8, 0x43, 0xad, 0x07, 0x0d, 0xb1, 0xc9, 0x85, 0x26,
|
|
0xc9, 0x90, 0xfa, 0xe5, 0x30, 0x8e, 0x22, 0x2f, 0x17, 0xeb, 0x15, 0xee, 0x17, 0x3e, 0x21, 0x45,
|
|
0xee, 0xd9, 0x5d, 0x51, 0x7d, 0xa3, 0x5d, 0x51, 0x9b, 0xbd, 0x2b, 0xf4, 0x55, 0x68, 0x0c, 0x62,
|
|
0xdb, 0xc6, 0x61, 0x38, 0x5b, 0x5a, 0x7d, 0x17, 0x1a, 0x7b, 0x16, 0x19, 0xc7, 0x01, 0xd6, 0x56,
|
|
0xa0, 0x66, 0xd3, 0xcd, 0x4d, 0x11, 0xdd, 0x4d, 0xb5, 0x2f, 0xe8, 0x6c, 0x57, 0xb0, 0x19, 0x99,
|
|
0x4d, 0x25, 0xcf, 0xe6, 0x73, 0xe8, 0x3c, 0x64, 0xba, 0x19, 0xf8, 0xeb, 0x18, 0x87, 0x91, 0x76,
|
|
0x3b, 0xc7, 0x4c, 0xeb, 0xe7, 0x66, 0x25, 0x96, 0x1a, 0xd4, 0x1c, 0x2b, 0xb2, 0x04, 0x3f, 0xf6,
|
|
0xad, 0xb7, 0xa1, 0xc5, 0xe1, 0x5b, 0xf6, 0xb1, 0xfe, 0x31, 0xa0, 0x7d, 0xe2, 0x3e, 0xb3, 0xa2,
|
|
0x80, 0x9c, 0x26, 0xcc, 0x37, 0xa0, 0x46, 0x33, 0xaa, 0x60, 0xbe, 0xd8, 0x2f, 0x02, 0x38, 0x7f,
|
|
0x0a, 0xd1, 0x57, 0x40, 0x4d, 0x67, 0xb7, 0xec, 0x63, 0x0d, 0x41, 0xd5, 0x27, 0x6e, 0x4f, 0x59,
|
|
0xa9, 0xac, 0xb7, 0x0c, 0xfa, 0xa9, 0x37, 0xa1, 0xbe, 0x6d, 0xb9, 0x36, 0x1e, 0xeb, 0x17, 0x60,
|
|
0x21, 0x8b, 0x29, 0xc1, 0x4a, 0xbf, 0x0f, 0x9d, 0x8c, 0x48, 0x39, 0x5c, 0x07, 0x90, 0xc2, 0x91,
|
|
0x33, 0x92, 0x28, 0xfa, 0x0a, 0xc0, 0x23, 0x1c, 0xed, 0xba, 0x51, 0xe0, 0xf9, 0x53, 0xaa, 0x5f,
|
|
0x48, 0x5e, 0x72, 0x5c, 0xc7, 0x60, 0xdf, 0xd4, 0x31, 0xc9, 0x74, 0x0f, 0x1a, 0x98, 0x7f, 0x32,
|
|
0x84, 0x6a, 0x24, 0x43, 0xfd, 0x57, 0x0a, 0xa8, 0x8f, 0x70, 0xb4, 0x1f, 0x1f, 0x8e, 0x89, 0xfd,
|
|
0x39, 0x9e, 0xd2, 0xec, 0x6a, 0x39, 0x4e, 0x80, 0xc3, 0xd0, 0xa4, 0xf2, 0x57, 0xd7, 0x3b, 0x46,
|
|
0x53, 0x10, 0x9e, 0x6b, 0xeb, 0x80, 0xb0, 0xed, 0x84, 0x96, 0x69, 0xc7, 0xc1, 0x09, 0x36, 0x5d,
|
|
0x6b, 0x92, 0xb8, 0xa8, 0xcb, 0xe8, 0xdb, 0x94, 0xfc, 0xdc, 0x9a, 0x60, 0xba, 0xbd, 0xc3, 0x91,
|
|
0xf7, 0x8d, 0xe9, 0x90, 0xd0, 0x1f, 0x5b, 0x53, 0x11, 0x6f, 0x6d, 0x4a, 0xdb, 0xe1, 0x24, 0x6d,
|
|
0x0d, 0x5a, 0x34, 0x09, 0x72, 0x2e, 0x34, 0xc2, 0x5a, 0x0f, 0x1a, 0x0f, 0x49, 0x44, 0x69, 0x46,
|
|
0x93, 0xfe, 0xa5, 0x8c, 0xf4, 0xcf, 0xa0, 0x95, 0x09, 0x77, 0x03, 0x6a, 0x2e, 0x77, 0x77, 0x65,
|
|
0xbd, 0xbd, 0xd9, 0xee, 0x3f, 0xde, 0x79, 0xee, 0x39, 0x22, 0x74, 0x5c, 0xe1, 0xe7, 0x53, 0x3f,
|
|
0x3e, 0x4c, 0xfc, 0x4c, 0xbf, 0xf5, 0xbf, 0x2a, 0xcc, 0x54, 0x5b, 0x5c, 0x89, 0xf3, 0x15, 0xcc,
|
|
0xc9, 0x54, 0x99, 0x21, 0xd3, 0xeb, 0x28, 0xf7, 0x01, 0x34, 0x27, 0xf1, 0x38, 0x22, 0x21, 0x19,
|
|
0x32, 0xdd, 0xda, 0x9b, 0x57, 0xfa, 0xcf, 0x04, 0xc1, 0xc0, 0x0e, 0xc6, 0x93, 0x81, 0x1d, 0x10,
|
|
0x9f, 0xc7, 0x50, 0x0a, 0xd5, 0x3e, 0x85, 0x76, 0xc8, 0xe8, 0x26, 0x8b, 0xbc, 0x39, 0x16, 0x79,
|
|
0xa8, 0xff, 0xc4, 0xf5, 0xe3, 0x28, 0xfb, 0xc1, 0x03, 0x75, 0xb0, 0xbf, 0xfb, 0x7c, 0x67, 0x6b,
|
|
0x67, 0xc7, 0xd8, 0x1d, 0x0c, 0x0c, 0x08, 0xd3, 0x19, 0xfd, 0x00, 0xb4, 0xdd, 0x68, 0x84, 0x03,
|
|
0x1c, 0x4f, 0x5e, 0x57, 0xe7, 0xa2, 0x36, 0x95, 0x33, 0xda, 0xd0, 0x50, 0x4a, 0x58, 0xf5, 0xa0,
|
|
0x21, 0x7e, 0x29, 0x82, 0x32, 0x19, 0xea, 0xf7, 0x60, 0x3e, 0x59, 0x7a, 0x06, 0x58, 0xcd, 0xc0,
|
|
0x2a, 0xc0, 0x57, 0xc4, 0xc7, 0x3b, 0xec, 0xdc, 0xd6, 0xff, 0xaf, 0x02, 0xf0, 0xd4, 0xb3, 0x1c,
|
|
0x3e, 0xa4, 0x09, 0x7c, 0xe2, 0xe2, 0x89, 0xe7, 0x12, 0x3b, 0x49, 0xe0, 0xc9, 0x38, 0x0d, 0x81,
|
|
0x0a, 0x33, 0x6a, 0x49, 0x08, 0x88, 0xad, 0x57, 0x65, 0xbf, 0xa3, 0x9f, 0x3f, 0x2b, 0xad, 0x69,
|
|
0xab, 0xd2, 0x21, 0x32, 0xc7, 0x03, 0x01, 0xbb, 0xc3, 0x31, 0x09, 0x47, 0x65, 0xa7, 0x49, 0x5d,
|
|
0x3e, 0x4d, 0x56, 0xa1, 0x13, 0x1e, 0x13, 0xdf, 0xb4, 0x47, 0xd8, 0x3e, 0x0e, 0xe3, 0x89, 0x28,
|
|
0x41, 0x54, 0x4a, 0xdc, 0x16, 0x34, 0xed, 0x06, 0xb4, 0xe3, 0xcd, 0x23, 0xd3, 0xf6, 0x62, 0x37,
|
|
0xc2, 0x01, 0xab, 0x3b, 0x3a, 0x06, 0xc4, 0x9b, 0x47, 0xdb, 0x9c, 0xa2, 0xff, 0xb6, 0x02, 0x6d,
|
|
0x03, 0x87, 0x38, 0x12, 0x46, 0xb9, 0x05, 0x5d, 0xe1, 0x21, 0x33, 0xb0, 0x5c, 0xc7, 0x9b, 0x88,
|
|
0x33, 0xa3, 0x23, 0xa8, 0x06, 0x23, 0x6a, 0x37, 0xa0, 0x19, 0x46, 0x01, 0x76, 0x87, 0xd1, 0x88,
|
|
0x17, 0x6c, 0x0f, 0xaa, 0x9b, 0x1f, 0x7c, 0x68, 0xa4, 0xc4, 0xd9, 0xd6, 0xa8, 0x9e, 0x63, 0x8d,
|
|
0xb3, 0x07, 0x48, 0xad, 0xec, 0x00, 0xf9, 0x05, 0x46, 0x2b, 0xd8, 0xa3, 0x51, 0xb4, 0x07, 0x05,
|
|
0x30, 0xab, 0x8a, 0x7a, 0x81, 0x17, 0x6a, 0x40, 0x49, 0xbc, 0x5c, 0xa0, 0x85, 0x01, 0xff, 0x12,
|
|
0x41, 0x85, 0xa0, 0x2b, 0xf2, 0x5f, 0x92, 0x64, 0x6f, 0x03, 0x08, 0x0a, 0xcd, 0xb0, 0xb9, 0xa4,
|
|
0xa8, 0xc8, 0x49, 0xf1, 0x4f, 0x15, 0xe8, 0x1a, 0xd8, 0xf6, 0x4e, 0x70, 0x30, 0x15, 0xd6, 0x5f,
|
|
0x06, 0xf8, 0xc6, 0x0b, 0x1c, 0x2e, 0x9f, 0x38, 0xd1, 0x5b, 0x94, 0xc2, 0xc4, 0x9b, 0x6d, 0xd4,
|
|
0xca, 0x1b, 0x19, 0xb5, 0xfa, 0x2a, 0xa3, 0xd6, 0x5e, 0x69, 0xd4, 0x39, 0xd9, 0xa8, 0x1b, 0x80,
|
|
0xb0, 0x7b, 0xe4, 0x05, 0x36, 0x36, 0xa9, 0xac, 0x63, 0x12, 0x46, 0xcc, 0xea, 0x4d, 0x63, 0x5e,
|
|
0xd0, 0xbf, 0x12, 0x64, 0x9a, 0x39, 0x59, 0xca, 0xe1, 0x81, 0xc8, 0xbe, 0x8b, 0x3e, 0x69, 0x9d,
|
|
0xf1, 0xc9, 0x65, 0x68, 0x38, 0xc1, 0xd4, 0x0c, 0x62, 0x97, 0xd5, 0xbd, 0x4d, 0xa3, 0xee, 0x04,
|
|
0x53, 0x23, 0x76, 0xf5, 0xf7, 0xa0, 0x4d, 0x39, 0x27, 0x27, 0xe9, 0x5a, 0xee, 0x24, 0x45, 0x7d,
|
|
0x69, 0x4e, 0x3a, 0x44, 0x97, 0xa1, 0x41, 0x27, 0xa8, 0x6f, 0x34, 0xa8, 0x51, 0x81, 0x45, 0x8a,
|
|
0x61, 0xdf, 0xfa, 0x8f, 0x0a, 0xb4, 0x07, 0x64, 0xe8, 0x3e, 0x13, 0x15, 0xd0, 0xb9, 0x49, 0x2d,
|
|
0x57, 0x43, 0xb0, 0xcc, 0x93, 0x14, 0x4e, 0xb9, 0x14, 0x5f, 0x9d, 0x95, 0xe2, 0x0b, 0x89, 0xb8,
|
|
0xf6, 0xc6, 0x89, 0xf8, 0xbf, 0x15, 0xe8, 0xbc, 0xc0, 0x01, 0x39, 0x9a, 0x26, 0xf2, 0xe6, 0x92,
|
|
0xa1, 0x22, 0x65, 0x4e, 0xed, 0x1a, 0xb4, 0x42, 0x32, 0x74, 0xd9, 0x7d, 0x8c, 0x45, 0x8c, 0x6a,
|
|
0x64, 0x04, 0x59, 0x95, 0x2a, 0x8f, 0xd3, 0x52, 0x55, 0x66, 0x9e, 0xa0, 0xff, 0x0e, 0x48, 0x88,
|
|
0x30, 0x90, 0x79, 0xfe, 0x1c, 0x59, 0xf4, 0x1f, 0x14, 0xba, 0xa9, 0xec, 0x60, 0xea, 0x47, 0x89,
|
|
0x5a, 0x97, 0xa0, 0xee, 0xc7, 0x87, 0xc7, 0x38, 0xd9, 0x45, 0x62, 0x54, 0xac, 0xe2, 0x24, 0xb1,
|
|
0x6f, 0x82, 0x9a, 0x64, 0x32, 0xcf, 0x1d, 0xa7, 0xc7, 0xa7, 0xa0, 0x7d, 0xe1, 0x8e, 0x0b, 0x55,
|
|
0x48, 0xed, 0xbc, 0x43, 0x7a, 0x6e, 0x96, 0xda, 0x2f, 0x00, 0x09, 0x49, 0xb1, 0x93, 0xc8, 0x7a,
|
|
0x11, 0xe6, 0x5c, 0xcf, 0xb5, 0xb1, 0x10, 0x95, 0x0f, 0xce, 0x91, 0x54, 0x83, 0xda, 0x68, 0x62,
|
|
0xd9, 0xc2, 0xee, 0xec, 0x5b, 0xff, 0x1a, 0xba, 0x3b, 0x38, 0x67, 0x81, 0x73, 0x03, 0x31, 0x5d,
|
|
0xb2, 0x32, 0x63, 0xc9, 0x6a, 0xf9, 0x92, 0x35, 0x69, 0xc9, 0x3d, 0x40, 0x62, 0xc9, 0x4c, 0x95,
|
|
0x42, 0xad, 0x2d, 0x71, 0x90, 0x7c, 0x5b, 0xc9, 0xf9, 0x56, 0xff, 0xb3, 0x02, 0xdd, 0x6d, 0xe2,
|
|
0x8f, 0x70, 0xf0, 0x39, 0x9e, 0xbe, 0xb0, 0xc6, 0xf1, 0x2b, 0x64, 0x47, 0x50, 0xa5, 0x7e, 0xe5,
|
|
0x5c, 0xe8, 0x27, 0xd5, 0xe6, 0x84, 0xfe, 0x4e, 0x48, 0xcd, 0x07, 0x3c, 0x93, 0x32, 0xf9, 0xc4,
|
|
0xb1, 0x90, 0x0c, 0xb5, 0x35, 0xe8, 0x5a, 0xe1, 0xb1, 0xe9, 0xb9, 0x66, 0x02, 0xe0, 0x77, 0x7a,
|
|
0xd5, 0x0a, 0x8f, 0xbf, 0x70, 0x77, 0xcf, 0xa0, 0x1c, 0xae, 0xa6, 0x48, 0x52, 0x1c, 0x25, 0x54,
|
|
0xd7, 0xba, 0x50, 0x21, 0x27, 0xec, 0x60, 0x50, 0x8d, 0x0a, 0x39, 0xd1, 0xd7, 0x01, 0x71, 0x65,
|
|
0xb0, 0x93, 0xaa, 0x93, 0xca, 0xa7, 0x48, 0xf2, 0xe9, 0xff, 0x05, 0xdd, 0xdd, 0x30, 0x22, 0x13,
|
|
0x2b, 0xc2, 0x07, 0xa7, 0x03, 0xf2, 0x12, 0xd3, 0x23, 0xda, 0x8b, 0x23, 0x3f, 0x8e, 0xc2, 0x34,
|
|
0xa3, 0xd3, 0xc2, 0x59, 0x15, 0x44, 0x9e, 0xd4, 0x6f, 0x82, 0x4a, 0x5c, 0x09, 0x53, 0x61, 0x98,
|
|
0x36, 0xa7, 0x71, 0xc8, 0x6b, 0x25, 0x13, 0xfd, 0x26, 0xd4, 0xc5, 0xba, 0x97, 0xa1, 0x11, 0x9d,
|
|
0x9a, 0xa2, 0x54, 0xa7, 0xd9, 0xb4, 0x1e, 0xb1, 0x09, 0xfd, 0xf7, 0x0a, 0xd4, 0xe9, 0xf6, 0x3c,
|
|
0x38, 0xfd, 0xc7, 0xca, 0xa6, 0x5d, 0x85, 0x46, 0xae, 0x2b, 0xf3, 0x40, 0x79, 0xd7, 0x48, 0x28,
|
|
0xda, 0x75, 0x68, 0x8d, 0x3d, 0xfb, 0xd8, 0x8c, 0x88, 0xd8, 0x69, 0x9d, 0x07, 0xca, 0x3b, 0x46,
|
|
0x93, 0xd2, 0x0e, 0xc8, 0x04, 0xeb, 0x7f, 0x53, 0x40, 0x1d, 0x90, 0x89, 0x3f, 0xc6, 0x42, 0xf6,
|
|
0x35, 0xa8, 0x73, 0x11, 0x58, 0x2c, 0xb5, 0x37, 0xd5, 0xfe, 0xc1, 0x29, 0xcb, 0x99, 0x2c, 0xcd,
|
|
0x8b, 0x39, 0xed, 0x0e, 0x34, 0x84, 0x32, 0xbd, 0x0a, 0x83, 0x75, 0xfa, 0x07, 0xa7, 0x5f, 0x30,
|
|
0x0a, 0xc3, 0x25, 0xb3, 0xda, 0xfb, 0xa0, 0x46, 0x81, 0xe5, 0x86, 0x16, 0x3b, 0x09, 0xc3, 0x5e,
|
|
0x95, 0xa1, 0x51, 0xff, 0x20, 0x23, 0xb2, 0x1f, 0xe4, 0x50, 0xaf, 0x97, 0x16, 0x65, 0xc5, 0xe7,
|
|
0xce, 0x57, 0xbc, 0x7e, 0x56, 0xf1, 0x5f, 0x2b, 0xd0, 0x3a, 0x48, 0x2f, 0x8a, 0xf7, 0x41, 0x0d,
|
|
0xf8, 0xa7, 0x29, 0x1d, 0x73, 0x6a, 0x5f, 0x3e, 0xe2, 0xda, 0x41, 0x36, 0xd0, 0xee, 0x43, 0xc3,
|
|
0xc1, 0x91, 0x45, 0xc6, 0xa1, 0xa8, 0x63, 0x17, 0xfb, 0x29, 0xb7, 0x1d, 0x3e, 0xc1, 0x0d, 0x21,
|
|
0x50, 0xda, 0x47, 0x00, 0x21, 0x0e, 0x92, 0x36, 0x51, 0x95, 0xfd, 0xa6, 0x97, 0xfd, 0x66, 0x90,
|
|
0xce, 0xb1, 0x9f, 0x49, 0x58, 0x7d, 0x03, 0xe6, 0x0e, 0xd8, 0x95, 0x74, 0x05, 0x2a, 0xd1, 0x29,
|
|
0x13, 0xad, 0xcc, 0x82, 0x95, 0xe8, 0x54, 0xff, 0xdf, 0x0a, 0x74, 0x93, 0x0a, 0x5e, 0xf8, 0xf3,
|
|
0x67, 0xa4, 0xb6, 0xab, 0xd0, 0x1a, 0x5a, 0xa1, 0xe9, 0x07, 0xc4, 0x4e, 0xd2, 0x44, 0x73, 0x68,
|
|
0x85, 0xfb, 0x74, 0x9c, 0x4c, 0x8e, 0xc9, 0x84, 0x44, 0x22, 0xc5, 0xd1, 0xc9, 0xa7, 0x74, 0x4c,
|
|
0x37, 0x78, 0xe4, 0x31, 0x67, 0xa8, 0x46, 0x25, 0xf2, 0xb2, 0xcd, 0x5c, 0x97, 0x93, 0xcd, 0x5b,
|
|
0xa0, 0xd1, 0xeb, 0xbb, 0x29, 0x9a, 0x64, 0xa6, 0x3d, 0x8a, 0xdd, 0x63, 0x91, 0x16, 0x10, 0x9d,
|
|
0x11, 0x6d, 0xcf, 0x6d, 0x4a, 0xa7, 0x25, 0x0c, 0x43, 0x8f, 0x79, 0x45, 0x2c, 0xca, 0x6c, 0x4a,
|
|
0x7a, 0xca, 0xcb, 0xe1, 0x2b, 0xd0, 0xb4, 0x47, 0x16, 0x71, 0x4d, 0xe2, 0x88, 0x02, 0xa7, 0xc1,
|
|
0xc6, 0x4f, 0x1c, 0xfd, 0xff, 0x15, 0x58, 0x48, 0xec, 0x91, 0x39, 0xbb, 0xc0, 0x51, 0x39, 0xc3,
|
|
0x91, 0x16, 0xaa, 0xc9, 0x81, 0x69, 0x9e, 0x88, 0xae, 0x29, 0xa4, 0xa4, 0x17, 0x79, 0x40, 0x20,
|
|
0x6c, 0x94, 0x01, 0x8c, 0x3c, 0x20, 0x4c, 0x1a, 0x4d, 0x29, 0x69, 0xa0, 0xf7, 0xa1, 0x93, 0x09,
|
|
0x46, 0x9d, 0xbb, 0x0c, 0x4c, 0x02, 0x61, 0x0c, 0x9e, 0xfc, 0x5a, 0x94, 0xc2, 0xac, 0xa0, 0x3f,
|
|
0x85, 0x0b, 0xb2, 0x63, 0x7f, 0x59, 0x05, 0xa5, 0x13, 0x58, 0x4c, 0xb8, 0x9d, 0x5b, 0xe1, 0xa8,
|
|
0xbf, 0xb8, 0xc2, 0xd1, 0x0d, 0xe8, 0x25, 0x4b, 0xbd, 0xaa, 0x86, 0x79, 0xdd, 0xd5, 0xf4, 0x9f,
|
|
0x58, 0xd2, 0x1a, 0xba, 0x4f, 0x1c, 0xec, 0x46, 0x24, 0x9a, 0x6a, 0x1b, 0xd0, 0x24, 0xe2, 0x5b,
|
|
0xec, 0x8f, 0x4e, 0x3f, 0x99, 0xe4, 0xf7, 0x73, 0x92, 0x41, 0x91, 0x3d, 0xb2, 0xc6, 0xd4, 0xf7,
|
|
0xd8, 0x1c, 0x11, 0xc7, 0xc1, 0xae, 0x58, 0x60, 0x3e, 0xa5, 0x3f, 0x66, 0xe4, 0x3c, 0xf4, 0x84,
|
|
0x84, 0xb1, 0x35, 0x16, 0x97, 0xd2, 0x0c, 0xfa, 0x82, 0x91, 0x4b, 0xdb, 0x2a, 0xb5, 0xb2, 0xb6,
|
|
0x8a, 0x3e, 0x84, 0x2e, 0x15, 0x1d, 0x3b, 0xa9, 0xf0, 0xb3, 0x2b, 0xb9, 0x65, 0x00, 0x9f, 0x75,
|
|
0x4e, 0xcc, 0xe4, 0x10, 0x57, 0x8d, 0x96, 0x9f, 0xf6, 0x52, 0x72, 0x46, 0xaa, 0x16, 0x8d, 0xf4,
|
|
0xad, 0x02, 0x0b, 0x8f, 0x70, 0xb4, 0xbb, 0xbd, 0xf3, 0x58, 0x34, 0x5a, 0xe9, 0x6f, 0xde, 0xc0,
|
|
0x52, 0xb7, 0x61, 0xde, 0xc7, 0x38, 0x30, 0xcf, 0x88, 0xd0, 0xa1, 0xe4, 0xac, 0xa5, 0x53, 0xa6,
|
|
0x7b, 0xb5, 0x54, 0xf7, 0x77, 0xa1, 0x5b, 0x10, 0x87, 0xee, 0x13, 0x3e, 0x32, 0xb3, 0xfa, 0x13,
|
|
0xc2, 0x14, 0xa0, 0xbf, 0x03, 0x9d, 0x01, 0x8e, 0xbe, 0xdc, 0xdc, 0x93, 0x2e, 0x91, 0xf2, 0x8d,
|
|
0x46, 0x39, 0x73, 0xeb, 0xbe, 0x03, 0x9d, 0x3d, 0xd1, 0xa9, 0xde, 0x65, 0x3d, 0xdf, 0x4b, 0x50,
|
|
0xcf, 0xed, 0x74, 0x31, 0xd2, 0xb7, 0x60, 0x3e, 0x01, 0x26, 0x99, 0xe1, 0x12, 0xd4, 0xbd, 0xa3,
|
|
0xa3, 0x10, 0x27, 0xf7, 0x43, 0x31, 0x92, 0x58, 0x54, 0x72, 0x2c, 0x3e, 0x81, 0x6e, 0xc2, 0xe2,
|
|
0x4b, 0x7f, 0xec, 0x59, 0x0e, 0x75, 0xa6, 0x6f, 0x4d, 0xe9, 0x67, 0xd2, 0x2f, 0x11, 0x43, 0x56,
|
|
0x16, 0x5a, 0xe1, 0x48, 0xd8, 0x90, 0x7d, 0xeb, 0x6b, 0xd0, 0x1c, 0xe0, 0xf1, 0xd1, 0x01, 0x5d,
|
|
0x3b, 0xf7, 0x4b, 0x45, 0xfa, 0xa5, 0x7e, 0x17, 0x16, 0x76, 0xf0, 0x61, 0x3c, 0x7c, 0x4a, 0xdc,
|
|
0xe3, 0x1d, 0x6c, 0xf3, 0x97, 0x83, 0x45, 0xa8, 0x4f, 0x71, 0x68, 0xba, 0x1e, 0x5b, 0xa7, 0x69,
|
|
0xcc, 0x4d, 0x71, 0xf8, 0xdc, 0xd3, 0x2f, 0x48, 0xd8, 0x47, 0x38, 0x1a, 0x44, 0x56, 0x84, 0xf5,
|
|
0xbf, 0x54, 0x68, 0xc5, 0x2b, 0xa8, 0x8c, 0xc4, 0x34, 0xb2, 0xa6, 0x5e, 0x1c, 0x25, 0x35, 0x3f,
|
|
0x1f, 0x25, 0xbd, 0x97, 0x4a, 0xd6, 0x7b, 0xb9, 0x04, 0xf5, 0x09, 0xeb, 0x8a, 0x0a, 0xa7, 0x8a,
|
|
0x51, 0xae, 0xc5, 0x53, 0x9b, 0xd1, 0xe2, 0x99, 0x9b, 0xd5, 0xe2, 0x99, 0x79, 0xdb, 0xae, 0x9f,
|
|
0x73, 0xdb, 0x5e, 0x06, 0x08, 0x70, 0x88, 0x23, 0x76, 0x13, 0x66, 0xe7, 0x45, 0xcb, 0x68, 0x31,
|
|
0x0a, 0xbd, 0x74, 0xd2, 0xaa, 0x8b, 0x4f, 0x27, 0x3d, 0x81, 0x26, 0xd3, 0x4c, 0x65, 0xc4, 0xa4,
|
|
0x8f, 0xfa, 0x16, 0x68, 0x81, 0xe8, 0x0b, 0x98, 0x47, 0xd6, 0x31, 0xbf, 0x55, 0x8b, 0xb7, 0x20,
|
|
0x94, 0xcc, 0xec, 0x59, 0xc7, 0xec, 0x5a, 0xad, 0xdd, 0x85, 0x85, 0x14, 0xcd, 0x9a, 0x07, 0xbe,
|
|
0x17, 0xb2, 0x7b, 0x72, 0xc7, 0x98, 0x4f, 0x26, 0x28, 0x70, 0xdf, 0x0b, 0xf5, 0x79, 0xe8, 0x48,
|
|
0x36, 0xf6, 0x7c, 0x7d, 0x1f, 0xd4, 0x94, 0xf0, 0xd4, 0x1b, 0xb2, 0x0b, 0x3e, 0x3e, 0xc1, 0xe3,
|
|
0xe4, 0x35, 0x81, 0x0d, 0xa8, 0x79, 0x0f, 0x63, 0xfb, 0x18, 0x47, 0xc2, 0xe6, 0x62, 0xc4, 0x6e,
|
|
0xf3, 0xf8, 0x34, 0x12, 0x46, 0x67, 0xdf, 0xfa, 0x23, 0xb8, 0x90, 0x72, 0x7c, 0x86, 0x27, 0x5e,
|
|
0x30, 0x35, 0x30, 0x8f, 0x39, 0x39, 0x81, 0x74, 0xb2, 0x04, 0x32, 0x2b, 0x6e, 0x37, 0x60, 0xbe,
|
|
0xc0, 0x88, 0xb9, 0x99, 0x7d, 0x25, 0x01, 0xc1, 0x47, 0xfa, 0x7f, 0xc0, 0xc5, 0x02, 0xf4, 0xab,
|
|
0x80, 0x44, 0xf8, 0xfc, 0x45, 0x05, 0xa7, 0x8a, 0xcc, 0x49, 0xbc, 0xa6, 0x84, 0x23, 0x71, 0x5b,
|
|
0xe4, 0x03, 0xfd, 0x6d, 0x49, 0xa7, 0x3d, 0x4a, 0x49, 0x37, 0x6d, 0x88, 0xed, 0xc8, 0x4b, 0x76,
|
|
0xb8, 0x18, 0xdd, 0xfd, 0x71, 0x11, 0xda, 0xe2, 0x1c, 0x61, 0x75, 0xd8, 0x0a, 0x5c, 0x92, 0x86,
|
|
0x66, 0xf6, 0x60, 0x8a, 0xfe, 0x69, 0xa9, 0xf6, 0xed, 0x1f, 0x7a, 0x8a, 0xb6, 0x94, 0x5e, 0x9e,
|
|
0x19, 0x62, 0x9f, 0xb8, 0x43, 0xa4, 0x88, 0xb9, 0x65, 0xb8, 0x20, 0xcf, 0x89, 0x57, 0x10, 0x54,
|
|
0x59, 0xaa, 0x7d, 0x57, 0x32, 0x2d, 0xde, 0x39, 0x50, 0x55, 0x4c, 0xdf, 0x80, 0x45, 0x79, 0x3a,
|
|
0x7d, 0x14, 0x42, 0x35, 0xc1, 0xbe, 0x20, 0x5c, 0xd6, 0x2e, 0x45, 0x73, 0x02, 0x71, 0x07, 0xae,
|
|
0xe4, 0x56, 0x90, 0x13, 0x17, 0xaa, 0x2f, 0x35, 0x29, 0xe8, 0x8f, 0x14, 0xb8, 0x0e, 0x4b, 0x65,
|
|
0x40, 0x9e, 0x75, 0x50, 0x43, 0x42, 0x6e, 0xc0, 0xd5, 0x32, 0xa4, 0x48, 0x71, 0xa8, 0xb9, 0xd4,
|
|
0xfc, 0x2e, 0x81, 0x16, 0xe4, 0xcb, 0x5e, 0x23, 0x50, 0xab, 0xdc, 0x40, 0xc9, 0x34, 0x08, 0x0b,
|
|
0xe8, 0xd0, 0x2b, 0x30, 0x48, 0x8f, 0x05, 0xd4, 0x16, 0x2c, 0x0a, 0x56, 0xca, 0x00, 0xaa, 0x60,
|
|
0x52, 0x90, 0x22, 0xeb, 0x22, 0xa3, 0x8e, 0x60, 0x71, 0x13, 0x2e, 0xcb, 0x08, 0xa9, 0xa7, 0x8a,
|
|
0xba, 0x02, 0x72, 0x0d, 0xb4, 0x9c, 0x27, 0x59, 0xf1, 0x8b, 0xe6, 0xc5, 0xec, 0x5a, 0x5e, 0x4e,
|
|
0xf9, 0xc2, 0x83, 0xd0, 0x52, 0x9d, 0x62, 0x9a, 0x8a, 0x76, 0x1d, 0x2e, 0xe6, 0x2c, 0x27, 0x9e,
|
|
0xd7, 0xd1, 0x82, 0x10, 0xf4, 0x36, 0x5c, 0x2b, 0x44, 0x52, 0xee, 0x31, 0x09, 0x69, 0x29, 0xae,
|
|
0x57, 0x8a, 0xdb, 0xb2, 0x8f, 0xd1, 0x05, 0xee, 0xa9, 0xdf, 0x95, 0xc8, 0xcc, 0x1f, 0x97, 0xd0,
|
|
0xc5, 0x72, 0xbb, 0xa5, 0xe5, 0x2b, 0x5a, 0x14, 0xcb, 0x5c, 0x85, 0x85, 0x3c, 0x80, 0xf2, 0xbf,
|
|
0x94, 0x6a, 0x9c, 0x8b, 0x97, 0x7c, 0xcf, 0x00, 0x5d, 0x16, 0xa8, 0x82, 0xff, 0xe4, 0x57, 0x59,
|
|
0xd4, 0x13, 0x98, 0xd5, 0x7c, 0x88, 0xe6, 0x1e, 0x6a, 0xd1, 0x95, 0x72, 0x50, 0xee, 0x11, 0x0f,
|
|
0x2d, 0x09, 0x81, 0x57, 0xf3, 0x1a, 0xa5, 0x4f, 0x77, 0xe8, 0xaa, 0x64, 0x94, 0x42, 0x34, 0x64,
|
|
0xaf, 0xb1, 0xe8, 0x5a, 0xf9, 0xae, 0xca, 0x1e, 0x49, 0xd0, 0x72, 0x79, 0xd4, 0x26, 0xd3, 0xd7,
|
|
0xd3, 0xa8, 0xcd, 0xf9, 0x39, 0x39, 0x81, 0xd1, 0x8a, 0xb4, 0x8b, 0x0a, 0x96, 0x91, 0xdb, 0xd2,
|
|
0x48, 0x2f, 0xb7, 0x71, 0xbe, 0x55, 0x8d, 0x56, 0xcb, 0xc3, 0x3b, 0x6b, 0x5f, 0xa3, 0xb5, 0xf2,
|
|
0xf0, 0x96, 0xea, 0x7b, 0x74, 0xbb, 0xdc, 0xbe, 0xb9, 0xa2, 0x1d, 0xdd, 0x11, 0xa0, 0x42, 0x7c,
|
|
0x16, 0xcb, 0x6d, 0xb4, 0x2e, 0x24, 0xba, 0x03, 0xcb, 0xb9, 0xf8, 0x2c, 0x3e, 0x65, 0xa2, 0x8d,
|
|
0x14, 0x78, 0xa5, 0x1c, 0x48, 0xa5, 0xbf, 0x2b, 0x39, 0xed, 0x76, 0xc1, 0x12, 0xb9, 0x56, 0x0d,
|
|
0xba, 0x27, 0xed, 0x30, 0x2d, 0x1f, 0xb2, 0x6c, 0xfe, 0xad, 0xa5, 0xfa, 0x77, 0x7c, 0xbe, 0x60,
|
|
0xd1, 0x7c, 0x07, 0x1f, 0xbd, 0x5d, 0x6e, 0x2f, 0xa9, 0x15, 0x8d, 0xfa, 0xe5, 0x99, 0x5b, 0x34,
|
|
0xa5, 0xd1, 0xfd, 0x72, 0x4b, 0x15, 0x9b, 0x50, 0xe8, 0x9d, 0x74, 0x27, 0x17, 0x3c, 0x2c, 0x77,
|
|
0x0d, 0xd1, 0xbb, 0xa9, 0x5e, 0xeb, 0x79, 0x7e, 0xc5, 0xae, 0x25, 0xda, 0x4c, 0x35, 0x2c, 0x70,
|
|
0xcc, 0xf7, 0x21, 0xd1, 0x7b, 0xb3, 0x38, 0x16, 0x9b, 0x87, 0xe8, 0xfd, 0x94, 0xa3, 0x5e, 0xcc,
|
|
0x6d, 0xd9, 0xbd, 0x08, 0x7d, 0x50, 0x1e, 0xa9, 0xf9, 0x0b, 0x08, 0xfa, 0x50, 0x68, 0x5b, 0xb0,
|
|
0xab, 0xf4, 0xef, 0x46, 0xe8, 0x9f, 0x05, 0xa3, 0x75, 0xb8, 0x9e, 0x53, 0xf4, 0xcc, 0x43, 0x25,
|
|
0xfa, 0x48, 0x20, 0x6f, 0xe5, 0x8f, 0xa1, 0xc2, 0xbb, 0x22, 0xfa, 0x17, 0xb1, 0x66, 0x71, 0x0f,
|
|
0xe5, 0x9a, 0x17, 0xe8, 0x41, 0x7a, 0x4c, 0x2e, 0x97, 0xa1, 0xb2, 0x9c, 0xf8, 0xaf, 0x69, 0x8a,
|
|
0xb9, 0x52, 0x0e, 0xa4, 0xde, 0xff, 0xb7, 0x72, 0x6e, 0x67, 0x2e, 0x49, 0xe8, 0xe3, 0x19, 0x1b,
|
|
0x3c, 0x8f, 0xfa, 0xa4, 0x7c, 0xcd, 0xdc, 0x75, 0x05, 0x7d, 0x2a, 0x58, 0x6d, 0xc0, 0x8d, 0x59,
|
|
0x7a, 0x26, 0x2e, 0xfd, 0x4c, 0x40, 0xef, 0xc1, 0xcd, 0x32, 0x68, 0x7e, 0xcf, 0x6f, 0x09, 0x70,
|
|
0x1f, 0xd6, 0xca, 0xc0, 0x67, 0xf6, 0xfe, 0x43, 0x21, 0xec, 0xbd, 0xbc, 0xee, 0x67, 0xee, 0x15,
|
|
0xc8, 0x59, 0x6a, 0x7e, 0x9f, 0x6c, 0xeb, 0x3b, 0x33, 0xc0, 0xc9, 0xc5, 0x02, 0xe1, 0xa5, 0xda,
|
|
0xf7, 0x25, 0x86, 0xca, 0xdf, 0x35, 0xd0, 0xd1, 0x52, 0xed, 0x87, 0x12, 0x43, 0xe5, 0xaa, 0x65,
|
|
0x34, 0x14, 0xac, 0x0a, 0xe1, 0x2c, 0x57, 0xd0, 0x68, 0x24, 0x18, 0x15, 0x8c, 0x59, 0x52, 0x13,
|
|
0x23, 0x57, 0xb0, 0x2b, 0x84, 0x61, 0x01, 0x8a, 0x3c, 0xc1, 0xf1, 0x2e, 0xac, 0x9c, 0x03, 0x63,
|
|
0x15, 0x2f, 0xf2, 0x05, 0xcb, 0x59, 0xab, 0x67, 0xd5, 0x2b, 0xfa, 0x9a, 0x43, 0x1f, 0xbe, 0x0f,
|
|
0xab, 0xb6, 0x37, 0xe9, 0x87, 0x56, 0xe4, 0x85, 0x23, 0x32, 0xb6, 0x0e, 0xc3, 0x7e, 0x14, 0xe0,
|
|
0x97, 0x5e, 0xd0, 0x1f, 0x93, 0x43, 0xfe, 0x6f, 0x7e, 0x87, 0xf1, 0xd1, 0xc3, 0xce, 0x01, 0x23,
|
|
0x0a, 0xae, 0x7f, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x2a, 0xe4, 0xc0, 0x85, 0x16, 0x28, 0x00, 0x00,
|
|
}
|