embed: use correct string constructors

Reflects micropython commit 4601759bf59e16b860a3f082e9aa4ea78356bf92
pull/25/head
Jan Pochyla 6 years ago committed by Pavol Rusnak
parent 62cc3cb283
commit edcc96ee09

@ -191,7 +191,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_trezorcrypto_HDNode_derive_path_obj, mod_tr
STATIC mp_obj_t serialize_public_private(mp_obj_t self, bool use_public, uint32_t version) { STATIC mp_obj_t serialize_public_private(mp_obj_t self, bool use_public, uint32_t version) {
mp_obj_HDNode_t *o = MP_OBJ_TO_PTR(self); mp_obj_HDNode_t *o = MP_OBJ_TO_PTR(self);
char xpub[XPUB_MAXLEN]; char xpub[XPUB_MAXLEN] = {0};
int written; int written;
if (use_public) { if (use_public) {
hdnode_fill_public_key(&o->hdnode); hdnode_fill_public_key(&o->hdnode);
@ -202,7 +202,7 @@ STATIC mp_obj_t serialize_public_private(mp_obj_t self, bool use_public, uint32_
if (written <= 0) { if (written <= 0) {
mp_raise_ValueError("Failed to serialize"); mp_raise_ValueError("Failed to serialize");
} }
return mp_obj_new_str(xpub, written - 1, false); // written includes 0 at the end return mp_obj_new_str_copy(&mp_type_str, (const uint8_t *)xpub, written - 1); // written includes 0 at the end
} }
/// def serialize_public(self, version: int) -> str: /// def serialize_public(self, version: int) -> str:
@ -309,9 +309,9 @@ STATIC mp_obj_t mod_trezorcrypto_HDNode_address(mp_obj_t self, mp_obj_t version)
uint32_t v = trezor_obj_get_uint(version); uint32_t v = trezor_obj_get_uint(version);
char address[ADDRESS_MAXLEN]; char address[ADDRESS_MAXLEN] = {0};
hdnode_get_address(&o->hdnode, v, address, ADDRESS_MAXLEN); hdnode_get_address(&o->hdnode, v, address, ADDRESS_MAXLEN);
return mp_obj_new_str(address, strlen(address), false); return mp_obj_new_str_copy(&mp_type_str, (const uint8_t *)address, strlen(address));
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_trezorcrypto_HDNode_address_obj, mod_trezorcrypto_HDNode_address); STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_trezorcrypto_HDNode_address_obj, mod_trezorcrypto_HDNode_address);
@ -324,11 +324,11 @@ STATIC mp_obj_t mod_trezorcrypto_HDNode_nem_address(mp_obj_t self, mp_obj_t netw
uint8_t n = trezor_obj_get_uint8(network); uint8_t n = trezor_obj_get_uint8(network);
char address[NEM_ADDRESS_SIZE + 1]; // + 1 for the 0 byte char address[NEM_ADDRESS_SIZE + 1] = {0}; // + 1 for the 0 byte
if (!hdnode_get_nem_address(&o->hdnode, n, address)) { if (!hdnode_get_nem_address(&o->hdnode, n, address)) {
mp_raise_ValueError("Failed to compute a NEM address"); mp_raise_ValueError("Failed to compute a NEM address");
} }
return mp_obj_new_str_of_type(&mp_type_str, (const uint8_t *)address, strlen(address)); return mp_obj_new_str_copy(&mp_type_str, (const uint8_t *)address, strlen(address));
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_trezorcrypto_HDNode_nem_address_obj, mod_trezorcrypto_HDNode_nem_address); STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_trezorcrypto_HDNode_nem_address_obj, mod_trezorcrypto_HDNode_nem_address);

@ -34,7 +34,7 @@ STATIC mp_obj_t mod_trezorcrypto_bip39_find_word(mp_obj_t prefix)
} }
for (const char * const *w = mnemonic_wordlist(); *w != 0; w++) { for (const char * const *w = mnemonic_wordlist(); *w != 0; w++) {
if (strncmp(*w, pfx.buf, pfx.len) == 0) { if (strncmp(*w, pfx.buf, pfx.len) == 0) {
return mp_obj_new_str(*w, strlen(*w), false); return mp_obj_new_str(*w, strlen(*w));
} }
} }
return mp_const_none; return mp_const_none;
@ -78,7 +78,7 @@ STATIC mp_obj_t mod_trezorcrypto_bip39_generate(mp_obj_t strength) {
mp_raise_ValueError("Invalid bit strength (only 128, 160, 192, 224 and 256 values are allowed)"); mp_raise_ValueError("Invalid bit strength (only 128, 160, 192, 224 and 256 values are allowed)");
} }
const char *mnemo = mnemonic_generate(bits); const char *mnemo = mnemonic_generate(bits);
return mp_obj_new_str(mnemo, strlen(mnemo), false); return mp_obj_new_str_copy(&mp_type_str, (const uint8_t *)mnemo, strlen(mnemo));
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_trezorcrypto_bip39_generate_obj, mod_trezorcrypto_bip39_generate); STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_trezorcrypto_bip39_generate_obj, mod_trezorcrypto_bip39_generate);
@ -93,7 +93,7 @@ STATIC mp_obj_t mod_trezorcrypto_bip39_from_data(mp_obj_t data) {
mp_raise_ValueError("Invalid data length (only 16, 20, 24, 28 and 32 bytes are allowed)"); mp_raise_ValueError("Invalid data length (only 16, 20, 24, 28 and 32 bytes are allowed)");
} }
const char *mnemo = mnemonic_from_data(bin.buf, bin.len); const char *mnemo = mnemonic_from_data(bin.buf, bin.len);
return mp_obj_new_str(mnemo, strlen(mnemo), false); return mp_obj_new_str_copy(&mp_type_str, (const uint8_t *)mnemo, strlen(mnemo));
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_trezorcrypto_bip39_from_data_obj, mod_trezorcrypto_bip39_from_data); STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_trezorcrypto_bip39_from_data_obj, mod_trezorcrypto_bip39_from_data);

@ -125,7 +125,7 @@ STATIC mp_obj_t mod_trezorutils_symbol(mp_obj_t name) {
if (0 == strncmp(str.buf, "GITREV", str.len)) { if (0 == strncmp(str.buf, "GITREV", str.len)) {
#define XSTR(s) STR(s) #define XSTR(s) STR(s)
#define STR(s) #s #define STR(s) #s
return mp_obj_new_str(XSTR(GITREV), strlen(XSTR(GITREV)), false); return mp_obj_new_str(XSTR(GITREV), strlen(XSTR(GITREV)));
} }
if (0 == strncmp(str.buf, "VERSION_MAJOR", str.len)) { if (0 == strncmp(str.buf, "VERSION_MAJOR", str.len)) {
return mp_obj_new_int(VERSION_MAJOR); return mp_obj_new_int(VERSION_MAJOR);
@ -151,7 +151,7 @@ STATIC mp_obj_t mod_trezorutils_model(void) {
#elif defined TREZOR_MODEL_EMU #elif defined TREZOR_MODEL_EMU
model = "EMU"; model = "EMU";
#endif #endif
return model ? mp_obj_new_str(model, strlen(model), false) : mp_const_none; return model ? mp_obj_new_str(model, strlen(model)) : mp_const_none;
} }
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_model_obj, mod_trezorutils_model); STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_model_obj, mod_trezorutils_model);

@ -537,7 +537,7 @@ MP_NOINLINE int main_(int argc, char **argv) {
return usage(argv); return usage(argv);
} }
mp_obj_t import_args[4]; mp_obj_t import_args[4];
import_args[0] = mp_obj_new_str(argv[a + 1], strlen(argv[a + 1]), false); import_args[0] = mp_obj_new_str(argv[a + 1], strlen(argv[a + 1]));
import_args[1] = import_args[2] = mp_const_none; import_args[1] = import_args[2] = mp_const_none;
// Ask __import__ to handle imported module specially - set its __name__ // Ask __import__ to handle imported module specially - set its __name__
// to __main__, and also return this leaf module, not top-level package // to __main__, and also return this leaf module, not top-level package

Loading…
Cancel
Save