mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-25 00:48:19 +00:00
all: remove extraneous whitespace
This commit is contained in:
parent
daf0d77923
commit
f7053d96fe
@ -128,11 +128,11 @@ Each coin on each device can be in one of four support states:
|
|||||||
dictionary. If it's a Trezor device, it contains the firmware version from which
|
dictionary. If it's a Trezor device, it contains the firmware version from which
|
||||||
it is supported. For connect and webwallet, the value is simply `true`.
|
it is supported. For connect and webwallet, the value is simply `true`.
|
||||||
* **unsupported** explicitly: coin's key is listed in the device's `unsupported`
|
* **unsupported** explicitly: coin's key is listed in the device's `unsupported`
|
||||||
dictionary. The value is a string with reason for not supporting.
|
dictionary. The value is a string with reason for not supporting.
|
||||||
For connect and webwallet, if the key is not listed at all, it is also considered unsupported.
|
For connect and webwallet, if the key is not listed at all, it is also considered unsupported.
|
||||||
ERC20 tokens detected as duplicates are also considered unsupported.
|
ERC20 tokens detected as duplicates are also considered unsupported.
|
||||||
* **soon**: coin's key is listed in the device's `supported` dictionary, with
|
* **soon**: coin's key is listed in the device's `supported` dictionary, with
|
||||||
the value `"soon"`.
|
the value `"soon"`.
|
||||||
ERC20 tokens that are not listed at all are also considered `soon`, unless detected
|
ERC20 tokens that are not listed at all are also considered `soon`, unless detected
|
||||||
as duplicates.
|
as duplicates.
|
||||||
* **unknown**: coin's key is not listed at all.
|
* **unknown**: coin's key is not listed at all.
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
"uri_prefix": "komodo",
|
"uri_prefix": "komodo",
|
||||||
"min_address_length": 27,
|
"min_address_length": 27,
|
||||||
"max_address_length": 34,
|
"max_address_length": 34,
|
||||||
"bitcore": [
|
"bitcore": [
|
||||||
"https://api.kmd.dev"
|
"https://api.kmd.dev"
|
||||||
],
|
],
|
||||||
"blockbook": [],
|
"blockbook": [],
|
||||||
|
@ -1,41 +1,41 @@
|
|||||||
{
|
{
|
||||||
"coin_name": "PIVX",
|
"coin_name": "PIVX",
|
||||||
"coin_shortcut": "PIVX",
|
"coin_shortcut": "PIVX",
|
||||||
"coin_label": "PIVX",
|
"coin_label": "PIVX",
|
||||||
"website": "https://pivx.org",
|
"website": "https://pivx.org",
|
||||||
"github": "https://github.com/PIVX-Project/PIVX",
|
"github": "https://github.com/PIVX-Project/PIVX",
|
||||||
"maintainer": "Random Zebra <random.zebra@protonmail.com>",
|
"maintainer": "Random Zebra <random.zebra@protonmail.com>",
|
||||||
"curve_name": "secp256k1",
|
"curve_name": "secp256k1",
|
||||||
"address_type": 30,
|
"address_type": 30,
|
||||||
"address_type_p2sh": 13,
|
"address_type_p2sh": 13,
|
||||||
"maxfee_kb": 100000,
|
"maxfee_kb": 100000,
|
||||||
"minfee_kb": 100,
|
"minfee_kb": 100,
|
||||||
"signed_message_header": "DarkNet Signed Message:\n",
|
"signed_message_header": "DarkNet Signed Message:\n",
|
||||||
"hash_genesis_block": "0000041e482b9b9691d98eefb48473405c0b8ec31b76df3797c74a78680ef818",
|
"hash_genesis_block": "0000041e482b9b9691d98eefb48473405c0b8ec31b76df3797c74a78680ef818",
|
||||||
"xprv_magic": 35729707,
|
"xprv_magic": 35729707,
|
||||||
"xpub_magic": 36513075,
|
"xpub_magic": 36513075,
|
||||||
"xpub_magic_segwit_p2sh": null,
|
"xpub_magic_segwit_p2sh": null,
|
||||||
"xpub_magic_segwit_native": null,
|
"xpub_magic_segwit_native": null,
|
||||||
"bech32_prefix": null,
|
"bech32_prefix": null,
|
||||||
"cashaddr_prefix": null,
|
"cashaddr_prefix": null,
|
||||||
"slip44": 119,
|
"slip44": 119,
|
||||||
"segwit": false,
|
"segwit": false,
|
||||||
"decred": false,
|
"decred": false,
|
||||||
"fork_id": null,
|
"fork_id": null,
|
||||||
"force_bip143": false,
|
"force_bip143": false,
|
||||||
"bip115": false,
|
"bip115": false,
|
||||||
"default_fee_b": {
|
"default_fee_b": {
|
||||||
"Normal": 10
|
"Normal": 10
|
||||||
},
|
},
|
||||||
"dust_limit": 546,
|
"dust_limit": 546,
|
||||||
"blocktime_seconds": 60,
|
"blocktime_seconds": 60,
|
||||||
"uri_prefix": "pivx",
|
"uri_prefix": "pivx",
|
||||||
"min_address_length": 27,
|
"min_address_length": 27,
|
||||||
"max_address_length": 34,
|
"max_address_length": 34,
|
||||||
"bitcore": [],
|
"bitcore": [],
|
||||||
"blockbook": [
|
"blockbook": [
|
||||||
"https://blockbook.pivx.link"
|
"https://blockbook.pivx.link"
|
||||||
],
|
],
|
||||||
"cooldown": 100,
|
"cooldown": 100,
|
||||||
"consensus_branch_id": null
|
"consensus_branch_id": null
|
||||||
}
|
}
|
||||||
|
@ -1,41 +1,41 @@
|
|||||||
{
|
{
|
||||||
"coin_name": "PIVX Testnet",
|
"coin_name": "PIVX Testnet",
|
||||||
"coin_shortcut": "tPIVX",
|
"coin_shortcut": "tPIVX",
|
||||||
"coin_label": "PIVX Testnet",
|
"coin_label": "PIVX Testnet",
|
||||||
"website": "https://pivx.org",
|
"website": "https://pivx.org",
|
||||||
"github": "https://github.com/PIVX-Project/PIVX",
|
"github": "https://github.com/PIVX-Project/PIVX",
|
||||||
"maintainer": "Random Zebra <random.zebra@protonmail.com>",
|
"maintainer": "Random Zebra <random.zebra@protonmail.com>",
|
||||||
"curve_name": "secp256k1",
|
"curve_name": "secp256k1",
|
||||||
"address_type": 139,
|
"address_type": 139,
|
||||||
"address_type_p2sh": 19,
|
"address_type_p2sh": 19,
|
||||||
"maxfee_kb": 100000,
|
"maxfee_kb": 100000,
|
||||||
"minfee_kb": 100,
|
"minfee_kb": 100,
|
||||||
"signed_message_header": "DarkNet Signed Message:\n",
|
"signed_message_header": "DarkNet Signed Message:\n",
|
||||||
"hash_genesis_block": "0000041e482b9b9691d98eefb48473405c0b8ec31b76df3797c74a78680ef818",
|
"hash_genesis_block": "0000041e482b9b9691d98eefb48473405c0b8ec31b76df3797c74a78680ef818",
|
||||||
"xprv_magic": 981489719,
|
"xprv_magic": 981489719,
|
||||||
"xpub_magic": 981492128,
|
"xpub_magic": 981492128,
|
||||||
"xpub_magic_segwit_p2sh": null,
|
"xpub_magic_segwit_p2sh": null,
|
||||||
"xpub_magic_segwit_native": null,
|
"xpub_magic_segwit_native": null,
|
||||||
"bech32_prefix": null,
|
"bech32_prefix": null,
|
||||||
"cashaddr_prefix": null,
|
"cashaddr_prefix": null,
|
||||||
"slip44": 1,
|
"slip44": 1,
|
||||||
"segwit": false,
|
"segwit": false,
|
||||||
"decred": false,
|
"decred": false,
|
||||||
"fork_id": null,
|
"fork_id": null,
|
||||||
"force_bip143": false,
|
"force_bip143": false,
|
||||||
"bip115": false,
|
"bip115": false,
|
||||||
"default_fee_b": {
|
"default_fee_b": {
|
||||||
"Normal": 10
|
"Normal": 10
|
||||||
},
|
},
|
||||||
"dust_limit": 54600,
|
"dust_limit": 54600,
|
||||||
"blocktime_seconds": 60,
|
"blocktime_seconds": 60,
|
||||||
"uri_prefix": "pivx",
|
"uri_prefix": "pivx",
|
||||||
"min_address_length": 27,
|
"min_address_length": 27,
|
||||||
"max_address_length": 34,
|
"max_address_length": 34,
|
||||||
"bitcore": [],
|
"bitcore": [],
|
||||||
"blockbook": [
|
"blockbook": [
|
||||||
"https://blockbook-testnet.pivx.link"
|
"https://blockbook-testnet.pivx.link"
|
||||||
],
|
],
|
||||||
"cooldown": 100,
|
"cooldown": 100,
|
||||||
"consensus_branch_id": null
|
"consensus_branch_id": null
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ message BinancePublicKey {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Request: Starts the Binance transaction protocol flow.
|
* Request: Starts the Binance transaction protocol flow.
|
||||||
* A transaction consists of these common fields and a series of Binance<Any>Msg messages.
|
* A transaction consists of these common fields and a series of Binance<Any>Msg messages.
|
||||||
* These parts form a JSON structure (a string) in Trezor's memory, which is signed to produce a BinanceSignedTx.
|
* These parts form a JSON structure (a string) in Trezor's memory, which is signed to produce a BinanceSignedTx.
|
||||||
* @start
|
* @start
|
||||||
* @next BinanceTxRequest
|
* @next BinanceTxRequest
|
||||||
|
@ -194,7 +194,7 @@ message MoneroTransactionInputsPermutationAck {
|
|||||||
* @next MoneroTransactionInputViniAck
|
* @next MoneroTransactionInputViniAck
|
||||||
*/
|
*/
|
||||||
message MoneroTransactionInputViniRequest {
|
message MoneroTransactionInputViniRequest {
|
||||||
optional MoneroTransactionSourceEntry src_entr = 1;
|
optional MoneroTransactionSourceEntry src_entr = 1;
|
||||||
optional bytes vini = 2; // xmrtypes.TxinToKey
|
optional bytes vini = 2; // xmrtypes.TxinToKey
|
||||||
optional bytes vini_hmac = 3;
|
optional bytes vini_hmac = 3;
|
||||||
optional bytes pseudo_out = 4;
|
optional bytes pseudo_out = 4;
|
||||||
|
@ -40,7 +40,7 @@ message RippleSignTx {
|
|||||||
* Payment transaction type
|
* Payment transaction type
|
||||||
* - simple A sends money to B
|
* - simple A sends money to B
|
||||||
* - only a subset of fields is supported
|
* - only a subset of fields is supported
|
||||||
* - see https://developers.ripple.com/payment.html
|
* - see https://developers.ripple.com/payment.html
|
||||||
*/
|
*/
|
||||||
message RipplePayment {
|
message RipplePayment {
|
||||||
optional uint64 amount = 1; // only XRP is supported at the moment so this an integer
|
optional uint64 amount = 1; // only XRP is supported at the moment so this an integer
|
||||||
|
@ -1,109 +1,109 @@
|
|||||||
Part Value Device Package Description
|
Part Value Device Package Description
|
||||||
C1 1n/50V C_0402 0402
|
C1 1n/50V C_0402 0402
|
||||||
C2 22p C_0402 0402
|
C2 22p C_0402 0402
|
||||||
C3 22p C_0402 0402
|
C3 22p C_0402 0402
|
||||||
C4 1u C_0603$REFLOW 0603_REFLOW
|
C4 1u C_0603$REFLOW 0603_REFLOW
|
||||||
C5 1u C_0603 0603
|
C5 1u C_0603 0603
|
||||||
C6 10n C_0402 0402
|
C6 10n C_0402 0402
|
||||||
C7 100n C_0402 0402
|
C7 100n C_0402 0402
|
||||||
C8 10n C_0402 0402
|
C8 10n C_0402 0402
|
||||||
C9 100n C_0402 0402
|
C9 100n C_0402 0402
|
||||||
C10 100n C_0402 0402
|
C10 100n C_0402 0402
|
||||||
C11 1n C_0402 0402
|
C11 1n C_0402 0402
|
||||||
C12 2u2 C_0805$REFLOW 0805_REFLOW
|
C12 2u2 C_0805$REFLOW 0805_REFLOW
|
||||||
C13 2u2 C_0805$REFLOW 0805_REFLOW
|
C13 2u2 C_0805$REFLOW 0805_REFLOW
|
||||||
C14 4u7/16V C_0805$REFLOW 0805_REFLOW
|
C14 4u7/16V C_0805$REFLOW 0805_REFLOW
|
||||||
C15 4u7/16V C_0805$REFLOW 0805_REFLOW
|
C15 4u7/16V C_0805$REFLOW 0805_REFLOW
|
||||||
C16 100n C_0402 0402
|
C16 100n C_0402 0402
|
||||||
C18 100n C_0402 0402
|
C18 100n C_0402 0402
|
||||||
C19 1u C_0603 0603
|
C19 1u C_0603 0603
|
||||||
C20 100n C_0402 0402
|
C20 100n C_0402 0402
|
||||||
C21 100n C_0402 0402
|
C21 100n C_0402 0402
|
||||||
C22 1u C_0603 0603
|
C22 1u C_0603 0603
|
||||||
C23 10n C_0402 0402
|
C23 10n C_0402 0402
|
||||||
C24 100n C_0402 0402
|
C24 100n C_0402 0402
|
||||||
C25 1n/50V C_0402 0402
|
C25 1n/50V C_0402 0402
|
||||||
C26 10n C_0402 0402
|
C26 10n C_0402 0402
|
||||||
C27 100n C_0402 0402
|
C27 100n C_0402 0402
|
||||||
C28 100n C_0402 0402
|
C28 100n C_0402 0402
|
||||||
C29 100n C_0402 0402
|
C29 100n C_0402 0402
|
||||||
C30 10n C_0402 0402
|
C30 10n C_0402 0402
|
||||||
C31 100n C_0402 0402
|
C31 100n C_0402 0402
|
||||||
C32 10n C_0402 0402
|
C32 10n C_0402 0402
|
||||||
C33 1n C_0402 0402
|
C33 1n C_0402 0402
|
||||||
C34 2u2 C_0805$REFLOW 0805_REFLOW
|
C34 2u2 C_0805$REFLOW 0805_REFLOW
|
||||||
C36 47p C_0402 0402
|
C36 47p C_0402 0402
|
||||||
C37 47p C_0402 0402
|
C37 47p C_0402 0402
|
||||||
C38 47p C_0402 0402
|
C38 47p C_0402 0402
|
||||||
C39 47p C_0402 0402
|
C39 47p C_0402 0402
|
||||||
C40 47p C_0402 0402
|
C40 47p C_0402 0402
|
||||||
C41 100n C_0402 0402
|
C41 100n C_0402 0402
|
||||||
C42 1n C_0402 0402
|
C42 1n C_0402 0402
|
||||||
C43 47p C_0402 0402
|
C43 47p C_0402 0402
|
||||||
C44 100n C_0402 0402
|
C44 100n C_0402 0402
|
||||||
C45 2u2 C_0805$REFLOW 0805_REFLOW
|
C45 2u2 C_0805$REFLOW 0805_REFLOW
|
||||||
C46 1n C_0402 0402
|
C46 1n C_0402 0402
|
||||||
C47 1n C_0402 0402
|
C47 1n C_0402 0402
|
||||||
C48 10n C_0402 0402
|
C48 10n C_0402 0402
|
||||||
C49 10n C_0402 0402
|
C49 10n C_0402 0402
|
||||||
C50 10n C_0402 0402
|
C50 10n C_0402 0402
|
||||||
D1 PMEG3005 DS_SOD323F SOD323F
|
D1 PMEG3005 DS_SOD323F SOD323F
|
||||||
D2 PESD5V0F1BLD D_TRANSIL_BI_SOD882D SOD882D
|
D2 PESD5V0F1BLD D_TRANSIL_BI_SOD882D SOD882D
|
||||||
D3 PRTR5V0U2X PRTR5V0_SOT143B$REFLOW SOT143B_REFLOW
|
D3 PRTR5V0U2X PRTR5V0_SOT143B$REFLOW SOT143B_REFLOW
|
||||||
D4 PESD5V0F1BLD D_TRANSIL_BI_SOD882D SOD882D
|
D4 PESD5V0F1BLD D_TRANSIL_BI_SOD882D SOD882D
|
||||||
D6 PMEG4005 DS_SOD323F SOD323F
|
D6 PMEG4005 DS_SOD323F SOD323F
|
||||||
IC2 STM32F427VIT6 STM32F427_LQFP100 LQFP100_NO_CENTER_NO_TDOCU
|
IC2 STM32F427VIT6 STM32F427_LQFP100 LQFP100_NO_CENTER_NO_TDOCU
|
||||||
IC5 TPS61043 TP6104X_WSON-8_3X3MM WSON-8_3X3MM
|
IC5 TPS61043 TP6104X_WSON-8_3X3MM WSON-8_3X3MM
|
||||||
IC6 XC6210B332PR XC6210B_SOT89-5 SOT89-5
|
IC6 XC6210B332PR XC6210B_SOT89-5 SOT89-5
|
||||||
K1 DX07B024XJ1R1300 USB-C_JAE_DX07B024XJ1 USB_C_JAE_DX07B024XJ1
|
K1 DX07B024XJ1R1300 USB-C_JAE_DX07B024XJ1 USB_C_JAE_DX07B024XJ1
|
||||||
K3 ATTEND_112J-TDAR-R01 KON_µSD_CARD_ATTEND_112J_TXAR_R01_SMALL ATTEND_112J-TXAR-R01_SMALL
|
K3 ATTEND_112J-TDAR-R01 KON_µSD_CARD_ATTEND_112J_TXAR_R01_SMALL ATTEND_112J-TXAR-R01_SMALL
|
||||||
K4 DF37NB-24DS-0.4V DISPLEJ_154A2411CTP01 DF37NB-24DS-0.4V
|
K4 DF37NB-24DS-0.4V DISPLEJ_154A2411CTP01 DF37NB-24DS-0.4V
|
||||||
K5 SWD SWD SWD
|
K5 SWD SWD SWD
|
||||||
K6 DF37NB-10DS-0.4V DISPLEJ_154A2411CTP01_TOUCH DF37NB-10DS-0.4V
|
K6 DF37NB-10DS-0.4V DISPLEJ_154A2411CTP01_TOUCH DF37NB-10DS-0.4V
|
||||||
L1 4u7 VLS252008ET-4R7M L_2.5X2.0 L_2.5X2.0
|
L1 4u7 VLS252008ET-4R7M L_2.5X2.0 L_2.5X2.0
|
||||||
L2 BLM18AG102SN1D L_0603$REFLOW 0603_REFLOW
|
L2 BLM18AG102SN1D L_0603$REFLOW 0603_REFLOW
|
||||||
L3 BLM18AG102SN1D L_0603$REFLOW 0603_REFLOW
|
L3 BLM18AG102SN1D L_0603$REFLOW 0603_REFLOW
|
||||||
L4 BLM18AG102SN1D L_0603$REFLOW 0603_REFLOW
|
L4 BLM18AG102SN1D L_0603$REFLOW 0603_REFLOW
|
||||||
LCD1 LCD_DISPLEJ LCD
|
LCD1 LCD_DISPLEJ LCD
|
||||||
MB1 MB_1.27 MB1.27
|
MB1 MB_1.27 MB1.27
|
||||||
MB2 MB_1.27 MB1.27
|
MB2 MB_1.27 MB1.27
|
||||||
MB3 MB_1.50 MB1.5
|
MB3 MB_1.50 MB1.5
|
||||||
MB4 MB_1.27 MB1.27
|
MB4 MB_1.27 MB1.27
|
||||||
MB5 MB_1.50 MB1.5
|
MB5 MB_1.50 MB1.5
|
||||||
MB6 MB_1.27 MB1.27
|
MB6 MB_1.27 MB1.27
|
||||||
MB7 MB_1.27 MB1.27
|
MB7 MB_1.27 MB1.27
|
||||||
MB8 MB_1.27 MB1.27
|
MB8 MB_1.27 MB1.27
|
||||||
MB9 MB_1.27 MB1.27
|
MB9 MB_1.27 MB1.27
|
||||||
MB10 MB_1.50 MB1.5
|
MB10 MB_1.50 MB1.5
|
||||||
MB11 MB_1.50 MB1.5
|
MB11 MB_1.50 MB1.5
|
||||||
MB12 MB_1.27 MB1.27
|
MB12 MB_1.27 MB1.27
|
||||||
MB13 MB_1.27 MB1.27
|
MB13 MB_1.27 MB1.27
|
||||||
MB14 MB_1.27 MB1.27
|
MB14 MB_1.27 MB1.27
|
||||||
MB15 MB_1.00 MB_1.00
|
MB15 MB_1.00 MB_1.00
|
||||||
MB16 MB_1.00 MB_1.00
|
MB16 MB_1.00 MB_1.00
|
||||||
MB17 MB_1.00 MB_1.00
|
MB17 MB_1.00 MB_1.00
|
||||||
MB18 MB_1.27 MB1.27
|
MB18 MB_1.27 MB1.27
|
||||||
MB19 MB_1.00 MB_1.00
|
MB19 MB_1.00 MB_1.00
|
||||||
R1 22R R_0402 0402
|
R1 22R R_0402 0402
|
||||||
R4 5k1 R_0402 0402
|
R4 5k1 R_0402 0402
|
||||||
R5 5k1 R_0402 0402
|
R5 5k1 R_0402 0402
|
||||||
R6 1M R_0402 0402
|
R6 1M R_0402 0402
|
||||||
R7 1M R_0402 0402
|
R7 1M R_0402 0402
|
||||||
R8 MF-FSMF020X-2 POLYSWITCH_0603 0603
|
R8 MF-FSMF020X-2 POLYSWITCH_0603 0603
|
||||||
R9 100k R_0402 0402
|
R9 100k R_0402 0402
|
||||||
R10 3k3 R_0402 0402
|
R10 3k3 R_0402 0402
|
||||||
R11 N.C. R_0402 0402
|
R11 N.C. R_0402 0402
|
||||||
R12 10k R_0402 0402
|
R12 10k R_0402 0402
|
||||||
R13 100R R_0402 0402
|
R13 100R R_0402 0402
|
||||||
R14 27R R_0402 0402
|
R14 27R R_0402 0402
|
||||||
R15 1k5 R_0402 0402
|
R15 1k5 R_0402 0402
|
||||||
R16 1k5 R_0402 0402
|
R16 1k5 R_0402 0402
|
||||||
R18 68R R_0402 0402
|
R18 68R R_0402 0402
|
||||||
R19 68R R_0402 0402
|
R19 68R R_0402 0402
|
||||||
R20 68R R_0402 0402
|
R20 68R R_0402 0402
|
||||||
R21 68R R_0402 0402
|
R21 68R R_0402 0402
|
||||||
R22 68R R_0402 0402
|
R22 68R R_0402 0402
|
||||||
R23 68R R_0402 0402
|
R23 68R R_0402 0402
|
||||||
R25 0R R_0402 0402
|
R25 0R R_0402 0402
|
||||||
R26 N.C. R_0402 0402
|
R26 N.C. R_0402 0402
|
||||||
X1 CTS406 8MHz X_4V_6,0X3,5 X6,0X3,5
|
X1 CTS406 8MHz X_4V_6,0X3,5 X6,0X3,5
|
||||||
|
@ -234,7 +234,7 @@ USBD_StatusTypeDef USBD_StdEPReq (USBD_HandleTypeDef *pdev , USBD_SetupReqTyped
|
|||||||
{
|
{
|
||||||
USBD_LL_StallEP(pdev , ep_addr);
|
USBD_LL_StallEP(pdev , ep_addr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case USBD_STATE_CONFIGURED:
|
case USBD_STATE_CONFIGURED:
|
||||||
if (req->wValue == USB_FEATURE_EP_HALT)
|
if (req->wValue == USB_FEATURE_EP_HALT)
|
||||||
@ -265,7 +265,7 @@ USBD_StatusTypeDef USBD_StdEPReq (USBD_HandleTypeDef *pdev , USBD_SetupReqTyped
|
|||||||
{
|
{
|
||||||
USBD_LL_StallEP(pdev , ep_addr);
|
USBD_LL_StallEP(pdev , ep_addr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case USBD_STATE_CONFIGURED:
|
case USBD_STATE_CONFIGURED:
|
||||||
if (req->wValue == USB_FEATURE_EP_HALT)
|
if (req->wValue == USB_FEATURE_EP_HALT)
|
||||||
@ -293,7 +293,7 @@ USBD_StatusTypeDef USBD_StdEPReq (USBD_HandleTypeDef *pdev , USBD_SetupReqTyped
|
|||||||
{
|
{
|
||||||
USBD_LL_StallEP(pdev , ep_addr);
|
USBD_LL_StallEP(pdev , ep_addr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case USBD_STATE_CONFIGURED:
|
case USBD_STATE_CONFIGURED:
|
||||||
pep = ((ep_addr & 0x80) == 0x80) ? &pdev->ep_in[ep_addr & 0x7F]:\
|
pep = ((ep_addr & 0x80) == 0x80) ? &pdev->ep_in[ep_addr & 0x7F]:\
|
||||||
@ -511,7 +511,7 @@ static void USBD_SetConfig(USBD_HandleTypeDef *pdev ,
|
|||||||
{
|
{
|
||||||
case USBD_STATE_ADDRESSED:
|
case USBD_STATE_ADDRESSED:
|
||||||
if (cfgidx)
|
if (cfgidx)
|
||||||
{
|
{
|
||||||
pdev->dev_config = cfgidx;
|
pdev->dev_config = cfgidx;
|
||||||
pdev->dev_state = USBD_STATE_CONFIGURED;
|
pdev->dev_state = USBD_STATE_CONFIGURED;
|
||||||
if(USBD_SetClassConfig(pdev , cfgidx) == USBD_FAIL)
|
if(USBD_SetClassConfig(pdev , cfgidx) == USBD_FAIL)
|
||||||
@ -556,7 +556,7 @@ static void USBD_SetConfig(USBD_HandleTypeDef *pdev ,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
USBD_CtlError(pdev , req);
|
USBD_CtlError(pdev , req);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
declare -a results
|
declare -a results
|
||||||
declare -i PYOPT=1 passed=0 failed=0 exit_code=0
|
declare -i PYOPT=1 passed=0 failed=0 exit_code=0
|
||||||
declare COLOR_GREEN='\e[32m' COLOR_RED='\e[91m' COLOR_RESET='\e[39m'
|
declare COLOR_GREEN='\e[32m' COLOR_RED='\e[91m' COLOR_RESET='\e[39m'
|
||||||
declare MICROPYTHON=../build/unix/micropython
|
declare MICROPYTHON=../build/unix/micropython
|
||||||
|
|
||||||
print_summary() {
|
print_summary() {
|
||||||
echo
|
echo
|
||||||
|
@ -26,7 +26,7 @@ DOCKER_ID=""
|
|||||||
terminate_test() {
|
terminate_test() {
|
||||||
if [[ $# > 0 ]]; then error=$1; fi
|
if [[ $# > 0 ]]; then error=$1; fi
|
||||||
if [ -n "$upy_pid" ]; then kill $upy_pid 2> /dev/null; fi
|
if [ -n "$upy_pid" ]; then kill $upy_pid 2> /dev/null; fi
|
||||||
if [ -n "$DOCKER_ID" ]; then docker kill $DOCKER_ID 2>/dev/null >/dev/null; fi
|
if [ -n "$DOCKER_ID" ]; then docker kill $DOCKER_ID 2>/dev/null >/dev/null; fi
|
||||||
exit $error
|
exit $error
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ error=1
|
|||||||
: "${TREZOR_MONERO_TESTS_PATH:=$CORE_DIR/tests/trezor_monero_tests}"
|
: "${TREZOR_MONERO_TESTS_PATH:=$CORE_DIR/tests/trezor_monero_tests}"
|
||||||
: "${TREZOR_MONERO_TESTS_LOG:=$CORE_DIR/tests/trezor_monero_tests.log}"
|
: "${TREZOR_MONERO_TESTS_LOG:=$CORE_DIR/tests/trezor_monero_tests.log}"
|
||||||
|
|
||||||
if [[ ! -f "$TREZOR_MONERO_TESTS_PATH" || "`shasum -a256 "$TREZOR_MONERO_TESTS_PATH" | cut -d' ' -f1`" != $TREZOR_MONERO_TESTS_SHA256SUM ]]; then
|
if [[ ! -f "$TREZOR_MONERO_TESTS_PATH" || "`shasum -a256 "$TREZOR_MONERO_TESTS_PATH" | cut -d' ' -f1`" != $TREZOR_MONERO_TESTS_SHA256SUM ]]; then
|
||||||
echo "Downloading Trezor monero tests binary to `pwd`${TREZOR_MONERO_TESTS_PATH:1}"
|
echo "Downloading Trezor monero tests binary to `pwd`${TREZOR_MONERO_TESTS_PATH:1}"
|
||||||
curl -# -L -o "$TREZOR_MONERO_TESTS_PATH" "$TREZOR_MONERO_TESTS_URL" \
|
curl -# -L -o "$TREZOR_MONERO_TESTS_PATH" "$TREZOR_MONERO_TESTS_URL" \
|
||||||
&& chmod +x "$TREZOR_MONERO_TESTS_PATH" \
|
&& chmod +x "$TREZOR_MONERO_TESTS_PATH" \
|
||||||
@ -72,15 +72,15 @@ if [[ "$OSTYPE" == "linux-gnu" && "$FORCE_DOCKER_USE" != 1 ]]; then
|
|||||||
error=$?
|
error=$?
|
||||||
|
|
||||||
elif [[ "$OSTYPE" == "darwin"* || "$FORCE_DOCKER_USE" == 1 ]]; then
|
elif [[ "$OSTYPE" == "darwin"* || "$FORCE_DOCKER_USE" == 1 ]]; then
|
||||||
DOCKER_ID=$(docker run -idt --mount type=bind,src="$CORE_DIR",dst="$CORE_DIR" -w "$CORE_DIR" --network=host ubuntu:18.04)
|
DOCKER_ID=$(docker run -idt --mount type=bind,src="$CORE_DIR",dst="$CORE_DIR" -w "$CORE_DIR" --network=host ubuntu:18.04)
|
||||||
docker exec $DOCKER_ID apt-get update -qq 2>/dev/null >/dev/null
|
docker exec $DOCKER_ID apt-get update -qq 2>/dev/null >/dev/null
|
||||||
docker exec $DOCKER_ID apt-get install --no-install-recommends --no-upgrade -qq net-tools socat 2>/dev/null >/dev/null
|
docker exec $DOCKER_ID apt-get install --no-install-recommends --no-upgrade -qq net-tools socat 2>/dev/null >/dev/null
|
||||||
docker exec -d $DOCKER_ID socat UDP-LISTEN:21324,reuseaddr,reuseport,fork UDP4-SENDTO:host.docker.internal:21324
|
docker exec -d $DOCKER_ID socat UDP-LISTEN:21324,reuseaddr,reuseport,fork UDP4-SENDTO:host.docker.internal:21324
|
||||||
docker exec -d $DOCKER_ID socat UDP-LISTEN:21325,reuseaddr,reuseport,fork UDP4-SENDTO:host.docker.internal:21325
|
docker exec -d $DOCKER_ID socat UDP-LISTEN:21325,reuseaddr,reuseport,fork UDP4-SENDTO:host.docker.internal:21325
|
||||||
docker exec $DOCKER_ID "$TREZOR_MONERO_TESTS_PATH" 2>&1 > "$TREZOR_MONERO_TESTS_LOG"
|
docker exec $DOCKER_ID "$TREZOR_MONERO_TESTS_PATH" 2>&1 > "$TREZOR_MONERO_TESTS_LOG"
|
||||||
error=$?
|
error=$?
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "Unsupported OS: $OSTYPE"
|
echo "Unsupported OS: $OSTYPE"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -19,7 +19,7 @@ from trezor.messages.EosActionVoteProducer import EosActionVoteProducer
|
|||||||
|
|
||||||
class TestEosActions(unittest.TestCase):
|
class TestEosActions(unittest.TestCase):
|
||||||
def test_check_action(self):
|
def test_check_action(self):
|
||||||
# return True
|
# return True
|
||||||
self.assertEqual(check_action(EosTxActionAck(buy_ram=EosActionBuyRam()), 'buyram', 'eosio'), True)
|
self.assertEqual(check_action(EosTxActionAck(buy_ram=EosActionBuyRam()), 'buyram', 'eosio'), True)
|
||||||
self.assertEqual(check_action(EosTxActionAck(buy_ram_bytes=EosActionBuyRamBytes()), 'buyrambytes', 'eosio'), True)
|
self.assertEqual(check_action(EosTxActionAck(buy_ram_bytes=EosActionBuyRamBytes()), 'buyrambytes', 'eosio'), True)
|
||||||
self.assertEqual(check_action(EosTxActionAck(sell_ram=EosActionSellRam()), 'sellram', 'eosio'), True)
|
self.assertEqual(check_action(EosTxActionAck(sell_ram=EosActionSellRam()), 'sellram', 'eosio'), True)
|
||||||
@ -36,8 +36,7 @@ class TestEosActions(unittest.TestCase):
|
|||||||
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'unknown', 'not_eosio'), True)
|
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'unknown', 'not_eosio'), True)
|
||||||
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'buyram', 'buygoods'), True)
|
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'buyram', 'buygoods'), True)
|
||||||
|
|
||||||
|
# returns False
|
||||||
# returns False
|
|
||||||
self.assertEqual(check_action(EosTxActionAck(buy_ram=EosActionBuyRam()), 'buyram', 'not_eosio'), False)
|
self.assertEqual(check_action(EosTxActionAck(buy_ram=EosActionBuyRam()), 'buyram', 'not_eosio'), False)
|
||||||
self.assertEqual(check_action(EosTxActionAck(), 'buyram', 'eosio'), False)
|
self.assertEqual(check_action(EosTxActionAck(), 'buyram', 'eosio'), False)
|
||||||
self.assertEqual(check_action(EosTxActionAck(buy_ram_bytes=EosActionBuyRamBytes()), 'buyrambytes', 'not_eosio'), False)
|
self.assertEqual(check_action(EosTxActionAck(buy_ram_bytes=EosActionBuyRamBytes()), 'buyrambytes', 'not_eosio'), False)
|
||||||
@ -58,7 +57,7 @@ class TestEosActions(unittest.TestCase):
|
|||||||
self.assertEqual(check_action(EosTxActionAck(buy_ram=EosActionBuyRam()), 'test', 'eosio'), False)
|
self.assertEqual(check_action(EosTxActionAck(buy_ram=EosActionBuyRam()), 'test', 'eosio'), False)
|
||||||
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'buyram', 'eosio'), False)
|
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'buyram', 'eosio'), False)
|
||||||
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'transfer', 'loveme'), False)
|
self.assertEqual(check_action(EosTxActionAck(unknown=[]), 'transfer', 'loveme'), False)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
@ -15,7 +15,7 @@ class TestEosConversions(unittest.TestCase):
|
|||||||
]
|
]
|
||||||
names_out = [
|
names_out = [
|
||||||
'miniminimini',
|
'miniminimini',
|
||||||
'12345abcdefg',
|
'12345abcdefg',
|
||||||
'123451234512',
|
'123451234512',
|
||||||
'hijklmnopqrs',
|
'hijklmnopqrs',
|
||||||
'tuvwxyz12345',
|
'tuvwxyz12345',
|
||||||
|
@ -52,13 +52,13 @@ static const uint32_t u256[16] =
|
|||||||
|
|
||||||
static const uint8_t padding[129] =
|
static const uint8_t padding[129] =
|
||||||
{
|
{
|
||||||
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
// Copyright (c) 2014-2017, The Monero Project
|
// Copyright (c) 2014-2017, The Monero Project
|
||||||
//
|
//
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// Redistribution and use in source and binary forms, with or without modification, are
|
// Redistribution and use in source and binary forms, with or without modification, are
|
||||||
// permitted provided that the following conditions are met:
|
// permitted provided that the following conditions are met:
|
||||||
//
|
//
|
||||||
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||||
// conditions and the following disclaimer.
|
// conditions and the following disclaimer.
|
||||||
//
|
//
|
||||||
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||||
// of conditions and the following disclaimer in the documentation and/or other
|
// of conditions and the following disclaimer in the documentation and/or other
|
||||||
// materials provided with the distribution.
|
// materials provided with the distribution.
|
||||||
//
|
//
|
||||||
// 3. Neither the name of the copyright holder nor the names of its contributors may be
|
// 3. Neither the name of the copyright holder nor the names of its contributors may be
|
||||||
// used to endorse or promote products derived from this software without specific
|
// used to endorse or promote products derived from this software without specific
|
||||||
// prior written permission.
|
// prior written permission.
|
||||||
//
|
//
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||||
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||||
@ -25,7 +25,7 @@
|
|||||||
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
||||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
//
|
//
|
||||||
// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
|
// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
|
||||||
|
|
||||||
#ifndef __BLAKE256_H__
|
#ifndef __BLAKE256_H__
|
||||||
|
@ -791,7 +791,7 @@ void sha256_Transform(const sha2_word32* state_in, const sha2_word32* data, sha2
|
|||||||
/* Part of the message block expansion: */
|
/* Part of the message block expansion: */
|
||||||
s0 = W256[(j+1)&0x0f];
|
s0 = W256[(j+1)&0x0f];
|
||||||
s0 = sigma0_256(s0);
|
s0 = sigma0_256(s0);
|
||||||
s1 = W256[(j+14)&0x0f];
|
s1 = W256[(j+14)&0x0f];
|
||||||
s1 = sigma1_256(s1);
|
s1 = sigma1_256(s1);
|
||||||
|
|
||||||
/* Apply the SHA-256 compression function to update a..h */
|
/* Apply the SHA-256 compression function to update a..h */
|
||||||
@ -892,7 +892,7 @@ void sha256_Final(SHA256_CTX* context, sha2_byte digest[]) {
|
|||||||
usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
|
usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
|
||||||
/* Begin padding with a 1 bit: */
|
/* Begin padding with a 1 bit: */
|
||||||
((uint8_t*)context->buffer)[usedspace++] = 0x80;
|
((uint8_t*)context->buffer)[usedspace++] = 0x80;
|
||||||
|
|
||||||
if (usedspace > SHA256_SHORT_BLOCK_LENGTH) {
|
if (usedspace > SHA256_SHORT_BLOCK_LENGTH) {
|
||||||
memzero(((uint8_t*)context->buffer) + usedspace, SHA256_BLOCK_LENGTH - usedspace);
|
memzero(((uint8_t*)context->buffer) + usedspace, SHA256_BLOCK_LENGTH - usedspace);
|
||||||
|
|
||||||
@ -904,7 +904,7 @@ void sha256_Final(SHA256_CTX* context, sha2_byte digest[]) {
|
|||||||
#endif
|
#endif
|
||||||
/* Do second-to-last transform: */
|
/* Do second-to-last transform: */
|
||||||
sha256_Transform(context->state, context->buffer, context->state);
|
sha256_Transform(context->state, context->buffer, context->state);
|
||||||
|
|
||||||
/* And prepare the last transform: */
|
/* And prepare the last transform: */
|
||||||
usedspace = 0;
|
usedspace = 0;
|
||||||
}
|
}
|
||||||
@ -1195,7 +1195,7 @@ static void sha512_Last(SHA512_CTX* context) {
|
|||||||
usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
|
usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH;
|
||||||
/* Begin padding with a 1 bit: */
|
/* Begin padding with a 1 bit: */
|
||||||
((uint8_t*)context->buffer)[usedspace++] = 0x80;
|
((uint8_t*)context->buffer)[usedspace++] = 0x80;
|
||||||
|
|
||||||
if (usedspace > SHA512_SHORT_BLOCK_LENGTH) {
|
if (usedspace > SHA512_SHORT_BLOCK_LENGTH) {
|
||||||
memzero(((uint8_t*)context->buffer) + usedspace, SHA512_BLOCK_LENGTH - usedspace);
|
memzero(((uint8_t*)context->buffer) + usedspace, SHA512_BLOCK_LENGTH - usedspace);
|
||||||
|
|
||||||
|
@ -35,9 +35,9 @@ while (<>) {
|
|||||||
die if $c > 6;
|
die if $c > 6;
|
||||||
push @words, @nw;
|
push @words, @nw;
|
||||||
if ($n ne $l) {
|
if ($n ne $l) {
|
||||||
$len = @arr2;
|
$len = @arr2;
|
||||||
die if $len - $arr1[-1] > 9;
|
die if $len - $arr1[-1] > 9;
|
||||||
push @arr1, $len;
|
push @arr1, $len;
|
||||||
}
|
}
|
||||||
push @arr2, $x;
|
push @arr2, $x;
|
||||||
$x += $c;
|
$x += $c;
|
||||||
@ -55,25 +55,25 @@ sub computerange($$$) {
|
|||||||
$next = $i2 == @words ? "_" : $words[$i2];
|
$next = $i2 == @words ? "_" : $words[$i2];
|
||||||
my $j;
|
my $j;
|
||||||
for ($j = 0; $j < 5; $j++) {
|
for ($j = 0; $j < 5; $j++) {
|
||||||
last if substr($first, 0, $j+1) ne substr($last, 0, $j+1);
|
last if substr($first, 0, $j+1) ne substr($last, 0, $j+1);
|
||||||
last if substr($prev, 0, $j) ne substr($first, 0, $j)
|
last if substr($prev, 0, $j) ne substr($first, 0, $j)
|
||||||
&& substr($next, 0, $j) ne substr($last, 0, $j);
|
&& substr($next, 0, $j) ne substr($last, 0, $j);
|
||||||
}
|
}
|
||||||
$prefix = substr($first, 0, $j);
|
$prefix = substr($first, 0, $j);
|
||||||
$range = "";
|
$range = "";
|
||||||
$rng = 0;
|
$rng = 0;
|
||||||
if (substr($prev, 0, $j) eq substr($first, 0, $j)
|
if (substr($prev, 0, $j) eq substr($first, 0, $j)
|
||||||
|| substr($last, 0, $j) eq substr($next, 0, $j)) {
|
|| substr($last, 0, $j) eq substr($next, 0, $j)) {
|
||||||
$range = "[".substr($first, $j, 1) . "-". substr($last, $j, 1)."]";
|
$range = "[".substr($first, $j, 1) . "-". substr($last, $j, 1)."]";
|
||||||
$rng++;
|
$rng++;
|
||||||
if ($j <= 1) {
|
if ($j <= 1) {
|
||||||
$range = substr($first,0, $j+1)."-".substr($last,0,$j+1);
|
$range = substr($first,0, $j+1)."-".substr($last,0,$j+1);
|
||||||
$prefix= "";
|
$prefix= "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (substr($prev, 0, $j+1) eq substr($first, 0, $j+1)
|
if (substr($prev, 0, $j+1) eq substr($first, 0, $j+1)
|
||||||
|| substr($last, 0, $j+1) eq substr($next, 0, $j+1)) {
|
|| substr($last, 0, $j+1) eq substr($next, 0, $j+1)) {
|
||||||
$j = 0; $rng = 2;
|
$j = 0; $rng = 2;
|
||||||
}
|
}
|
||||||
#printf STDERR " # %1d: %9s - %9s = \U$prefix$range\E\n", $entries, $first, $last;
|
#printf STDERR " # %1d: %9s - %9s = \U$prefix$range\E\n", $entries, $first, $last;
|
||||||
return $j + $rng;
|
return $j + $rng;
|
||||||
@ -96,7 +96,7 @@ for ($i = 0; $i< @arr1; $i++) {
|
|||||||
$prefixlen = 0 if ($i == @arr1 - 1);
|
$prefixlen = 0 if ($i == @arr1 - 1);
|
||||||
printf(" %5d,", $arr1[$i] + 4096 * $prefixlen);
|
printf(" %5d,", $arr1[$i] + 4096 * $prefixlen);
|
||||||
}
|
}
|
||||||
print "\n};\n\n";
|
print "\n};\n\n";
|
||||||
|
|
||||||
$len = @arr2;
|
$len = @arr2;
|
||||||
print "static const uint16_t word_table2[$len] =\n";
|
print "static const uint16_t word_table2[$len] =\n";
|
||||||
|
@ -169,7 +169,7 @@ _At the moment, the project does **not** adhere to [Semantic Versioning](http://
|
|||||||
- protobuf messages are now logged through Python's `logging` facility instead of custom printing through `VerboseWireMixin`
|
- protobuf messages are now logged through Python's `logging` facility instead of custom printing through `VerboseWireMixin`
|
||||||
- `client.format_protobuf` is moved to `protobuf.format_message`
|
- `client.format_protobuf` is moved to `protobuf.format_message`
|
||||||
- `tools.Hash` is renamed to `tools.btc_hash`
|
- `tools.Hash` is renamed to `tools.btc_hash`
|
||||||
- `coins` module `coins_txapi` is renamed to `tx_api`.
|
- `coins` module `coins_txapi` is renamed to `tx_api`.
|
||||||
`coins_slip44` is renamed to `slip44`.
|
`coins_slip44` is renamed to `slip44`.
|
||||||
- build: stricter flake8 checks
|
- build: stricter flake8 checks
|
||||||
- build: split requirements to separate files
|
- build: split requirements to separate files
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Documentation for trezorctl commandline client
|
Documentation for trezorctl commandline client
|
||||||
==============================================
|
==============================================
|
||||||
|
|
||||||
* `EXAMPLES.rst <EXAMPLES.rst>`_ - Examples demonstrating how to use trezorctl
|
* `EXAMPLES.rst <EXAMPLES.rst>`_ - Examples demonstrating how to use trezorctl
|
||||||
* `OPTIONS.rst <OPTIONS.rst>`_ - Commandline options for trezorctl
|
* `OPTIONS.rst <OPTIONS.rst>`_ - Commandline options for trezorctl
|
||||||
|
@ -57,7 +57,7 @@ Furthermore, if any entry is overwritten, the old entry is erased, i.e., overwri
|
|||||||
|
|
||||||
`PBKDF2(PRF = HMAC-SHA256, Password = pin, Salt = salt, iterations = 10000, dkLen = 352 bits)`
|
`PBKDF2(PRF = HMAC-SHA256, Password = pin, Salt = salt, iterations = 10000, dkLen = 352 bits)`
|
||||||
|
|
||||||
The first 256 bits of the output will be used as the key encryption key (KEK) and the remaining 96 bits will be used as the key encryption initialization vector (KEIV).
|
The first 256 bits of the output will be used as the key encryption key (KEK) and the remaining 96 bits will be used as the key encryption initialization vector (KEIV).
|
||||||
|
|
||||||
*Note: Since two blocks of output need to be produced in PBKDF2 the total number of iterations is 20000.*
|
*Note: Since two blocks of output need to be produced in PBKDF2 the total number of iterations is 20000.*
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user