diff --git a/client/src/ledger_app_clients/ethereum/command_builder.py b/client/src/ledger_app_clients/ethereum/command_builder.py index 5b64415..6ceb730 100644 --- a/client/src/ledger_app_clients/ethereum/command_builder.py +++ b/client/src/ledger_app_clients/ethereum/command_builder.py @@ -62,17 +62,11 @@ class CommandBuilder: header.append(len(cdata)) return header + cdata - def _string_to_bytes(self, string: str) -> bytes: - data = bytearray() - for char in string: - data.append(ord(char)) - return data - def eip712_send_struct_def_struct_name(self, name: str) -> bytes: return self._serialize(InsType.EIP712_SEND_STRUCT_DEF, P1Type.COMPLETE_SEND, P2Type.STRUCT_NAME, - self._string_to_bytes(name)) + name.encode()) def eip712_send_struct_def_struct_field(self, field_type: EIP712FieldType, @@ -88,7 +82,7 @@ class CommandBuilder: data.append(typedesc) if field_type == EIP712FieldType.CUSTOM: data.append(len(type_name)) - data += self._string_to_bytes(type_name) + data += type_name.encode() if type_size is not None: data.append(type_size) if len(array_levels) > 0: @@ -98,7 +92,7 @@ class CommandBuilder: if level is not None: data.append(level) data.append(len(key_name)) - data += self._string_to_bytes(key_name) + data += key_name.encode() return self._serialize(InsType.EIP712_SEND_STRUCT_DEF, P1Type.COMPLETE_SEND, P2Type.STRUCT_FIELD, @@ -108,7 +102,7 @@ class CommandBuilder: return self._serialize(InsType.EIP712_SEND_STRUCT_IMPL, P1Type.COMPLETE_SEND, P2Type.STRUCT_NAME, - self._string_to_bytes(name)) + name.encode()) def eip712_send_struct_impl_array(self, size: int) -> bytes: data = bytearray() @@ -162,7 +156,7 @@ class CommandBuilder: def _eip712_filtering_send_name(self, name: str, sig: bytes) -> bytes: data = bytearray() data.append(len(name)) - data += self._string_to_bytes(name) + data += name.encode() data.append(len(sig)) data += sig return data @@ -170,7 +164,7 @@ class CommandBuilder: def eip712_filtering_message_info(self, name: str, filters_count: int, sig: bytes) -> bytes: data = bytearray() data.append(len(name)) - data += self._string_to_bytes(name) + data += name.encode() data.append(filters_count) data.append(len(sig)) data += sig @@ -188,7 +182,7 @@ class CommandBuilder: def set_external_plugin(self, plugin_name: str, contract_address: bytes, selector: bytes, sig: bytes) -> bytes: data = bytearray() data.append(len(plugin_name)) - data += self._string_to_bytes(plugin_name) + data += plugin_name.encode() data += contract_address data += selector data += sig diff --git a/client/src/ledger_app_clients/ethereum/eip712/InputData.py b/client/src/ledger_app_clients/ethereum/eip712/InputData.py index ee31b0a..ad4beff 100644 --- a/client/src/ledger_app_clients/ethereum/eip712/InputData.py +++ b/client/src/ledger_app_clients/ethereum/eip712/InputData.py @@ -165,10 +165,7 @@ def encode_bool(value: str, typesize: int) -> bytes: def encode_string(value: str, typesize: int) -> bytes: - data = bytearray() - for char in value: - data.append(ord(char)) - return data + return value.encode() def encode_bytes_fix(value: str, typesize: int) -> bytes: @@ -264,8 +261,7 @@ def send_filtering_message_info(display_name: str, filters_count: int): to_sign += sig_ctx["caddr"] to_sign += sig_ctx["schema_hash"] to_sign.append(filters_count) - for char in display_name: - to_sign.append(ord(char)) + to_sign += display_name.encode() sig = keychain.sign_data(keychain.Key.CAL, to_sign) with app_client.eip712_filtering_message_info(display_name, filters_count, sig): @@ -284,10 +280,8 @@ def send_filtering_show_field(display_name): to_sign += sig_ctx["chainid"] to_sign += sig_ctx["caddr"] to_sign += sig_ctx["schema_hash"] - for char in path_str: - to_sign.append(ord(char)) - for char in display_name: - to_sign.append(ord(char)) + to_sign += path_str.encode() + to_sign += display_name.encode() sig = keychain.sign_data(keychain.Key.CAL, to_sign) with app_client.eip712_filtering_show_field(display_name, sig): pass