@@ -218,56 +218,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(
218218 mod_trezorcrypto_monero_bignum256modm___del___obj ,
219219 mod_trezorcrypto_monero_bignum256modm___del__ );
220220
221- /// class Hasher:
222- /// """
223- /// XMR hasher
224- /// """
225-
226- /// def __init__(self, x: AnyBytes | None = None):
227- /// """
228- /// Constructor
229- /// """
230-
231- /// def update(self, buffer: AnyBytes) -> None:
232- /// """
233- /// Update hasher
234- /// """
235-
236- /// def digest(self) -> bytes:
237- /// """
238- /// Computes digest
239- /// """
240-
241- /// def copy(self) -> Hasher:
242- /// """
243- /// Creates copy of the hasher, preserving the state
244- /// """
245-
246- STATIC mp_obj_t mod_trezorcrypto_monero_hasher_make_new (
247- const mp_obj_type_t * type , size_t n_args , size_t n_kw ,
248- const mp_obj_t * args ) {
249- mp_arg_check_num (n_args , n_kw , 0 , 1 , false);
250- mp_obj_hasher_t * o = m_new_obj_with_finaliser (mp_obj_hasher_t );
251- o -> base .type = type ;
252- xmr_hasher_init (& (o -> h ));
253-
254- if (n_args == 1 && MP_OBJ_IS_STR_OR_BYTES (args [0 ])) {
255- mp_buffer_info_t buff = {0 };
256- mp_get_buffer_raise (args [0 ], & buff , MP_BUFFER_READ );
257- xmr_hasher_update (& o -> h , buff .buf , buff .len );
258- }
259-
260- return MP_OBJ_FROM_PTR (o );
261- }
262-
263- STATIC mp_obj_t mod_trezorcrypto_monero_hasher___del__ (mp_obj_t self ) {
264- mp_obj_hasher_t * o = MP_OBJ_TO_PTR (self );
265- memzero (& (o -> h ), sizeof (Hasher ));
266- return mp_const_none ;
267- }
268- STATIC MP_DEFINE_CONST_FUN_OBJ_1 (mod_trezorcrypto_monero_hasher___del___obj ,
269- mod_trezorcrypto_monero_hasher___del__ );
270-
271221//
272222// Scalar defs
273223//
@@ -1129,60 +1079,6 @@ STATIC mp_obj_t mod_trezorcrypto_ct_equals(const mp_obj_t a, const mp_obj_t b) {
11291079STATIC MP_DEFINE_CONST_FUN_OBJ_2 (mod_trezorcrypto_ct_equals_obj ,
11301080 mod_trezorcrypto_ct_equals );
11311081
1132- // Hasher
1133- STATIC mp_obj_t mod_trezorcrypto_monero_hasher_update (mp_obj_t self ,
1134- const mp_obj_t arg ) {
1135- mp_obj_hasher_t * o = MP_OBJ_TO_PTR (self );
1136- mp_buffer_info_t buff = {0 };
1137- mp_get_buffer_raise (arg , & buff , MP_BUFFER_READ );
1138- if (buff .len > 0 ) {
1139- xmr_hasher_update (& o -> h , buff .buf , buff .len );
1140- }
1141- return mp_const_none ;
1142- }
1143- STATIC MP_DEFINE_CONST_FUN_OBJ_2 (mod_trezorcrypto_monero_hasher_update_obj ,
1144- mod_trezorcrypto_monero_hasher_update );
1145-
1146- STATIC mp_obj_t mod_trezorcrypto_monero_hasher_digest (size_t n_args ,
1147- const mp_obj_t * args ) {
1148- mp_obj_hasher_t * o = MP_OBJ_TO_PTR (args [0 ]);
1149-
1150- Hasher ctx = {0 };
1151- memcpy (& ctx , & (o -> h ), sizeof (Hasher ));
1152-
1153- if (n_args == 1 || args [1 ] == mp_const_none ) {
1154- vstr_t hash = {0 };
1155- vstr_init_len (& hash , SHA3_256_DIGEST_LENGTH );
1156- xmr_hasher_final (& ctx , (uint8_t * )hash .buf );
1157- memzero (& ctx , sizeof (SHA3_CTX ));
1158- return mp_obj_new_str_from_vstr (& mp_type_bytes , & hash );
1159- } else {
1160- mp_buffer_info_t bufm = {0 };
1161- mp_get_buffer_raise (args [1 ], & bufm , MP_BUFFER_WRITE );
1162- const mp_int_t offset = n_args >= 3 ? mp_obj_get_int (args [2 ]) : 0 ;
1163- if (bufm .len < SHA3_256_DIGEST_LENGTH + offset ) {
1164- mp_raise_ValueError (MP_ERROR_TEXT ("Buffer too small" ));
1165- }
1166-
1167- xmr_hasher_final (& ctx , (uint8_t * )bufm .buf + offset );
1168- memzero (& ctx , sizeof (SHA3_CTX ));
1169- return args [1 ];
1170- }
1171- }
1172- STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (
1173- mod_trezorcrypto_monero_hasher_digest_obj , 1 , 3 ,
1174- mod_trezorcrypto_monero_hasher_digest );
1175-
1176- STATIC mp_obj_t mod_trezorcrypto_monero_hasher_copy (mp_obj_t self ) {
1177- mp_obj_hasher_t * o = MP_OBJ_TO_PTR (self );
1178- mp_obj_hasher_t * cp = m_new_obj_with_finaliser (mp_obj_hasher_t );
1179- cp -> base .type = o -> base .type ;
1180- memcpy (& (cp -> h ), & (o -> h ), sizeof (Hasher ));
1181- return MP_OBJ_FROM_PTR (o );
1182- }
1183- STATIC MP_DEFINE_CONST_FUN_OBJ_1 (mod_trezorcrypto_monero_hasher_copy_obj ,
1184- mod_trezorcrypto_monero_hasher_copy );
1185-
11861082//
11871083// Type defs
11881084//
@@ -1218,29 +1114,6 @@ STATIC const mp_obj_type_t mod_trezorcrypto_monero_bignum256modm_type = {
12181114 .locals_dict = (void * )& mod_trezorcrypto_monero_bignum256modm_locals_dict ,
12191115};
12201116
1221- STATIC const mp_rom_map_elem_t
1222- mod_trezorcrypto_monero_hasher_locals_dict_table [] = {
1223- {MP_ROM_QSTR (MP_QSTR_update ),
1224- MP_ROM_PTR (& mod_trezorcrypto_monero_hasher_update_obj )},
1225- {MP_ROM_QSTR (MP_QSTR_digest ),
1226- MP_ROM_PTR (& mod_trezorcrypto_monero_hasher_digest_obj )},
1227- {MP_ROM_QSTR (MP_QSTR_copy ),
1228- MP_ROM_PTR (& mod_trezorcrypto_monero_hasher_copy_obj )},
1229- {MP_ROM_QSTR (MP_QSTR___del__ ),
1230- MP_ROM_PTR (& mod_trezorcrypto_monero_hasher___del___obj )},
1231- {MP_ROM_QSTR (MP_QSTR_block_size ), MP_ROM_INT (SHA3_256_BLOCK_LENGTH )},
1232- {MP_ROM_QSTR (MP_QSTR_digest_size ), MP_ROM_INT (SHA3_256_DIGEST_LENGTH )},
1233- };
1234- STATIC MP_DEFINE_CONST_DICT (mod_trezorcrypto_monero_hasher_locals_dict ,
1235- mod_trezorcrypto_monero_hasher_locals_dict_table );
1236-
1237- STATIC const mp_obj_type_t mod_trezorcrypto_monero_hasher_type = {
1238- {& mp_type_type },
1239- .name = MP_QSTR_hasher ,
1240- .make_new = mod_trezorcrypto_monero_hasher_make_new ,
1241- .locals_dict = (void * )& mod_trezorcrypto_monero_hasher_locals_dict ,
1242- };
1243-
12441117/// BP_GI_PLUS_PRE: bytes
12451118STATIC const mp_obj_str_t mod_trezorcrypto_monero_BP_PLUS_GI_PRE_obj = {{& mp_type_bytes }, 0 , 8192 , (const byte * )""
12461119"\x38\xc5\xd4\xdb\x53\xae\xb8\x6f\x5a\x80\xde\xf9\xbe\x49\x53\xf2"
0 commit comments