Skip to content

Commit 38682d4

Browse files
Jongydpgeorge
authored andcommitted
extmod/moduhashlib: Reorder funcs so that they are grouped by hash type.
Makes the code much more readable by reducing the number of #ifdefs and keeping related functions close.
1 parent b045ebd commit 38682d4

1 file changed

Lines changed: 49 additions & 67 deletions

File tree

extmod/moduhashlib.c

Lines changed: 49 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,38 @@ STATIC mp_obj_t uhashlib_sha256_make_new(const mp_obj_type_t *type, size_t n_arg
6363
return MP_OBJ_FROM_PTR(o);
6464
}
6565

66+
STATIC mp_obj_t uhashlib_sha256_update(mp_obj_t self_in, mp_obj_t arg) {
67+
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
68+
mp_buffer_info_t bufinfo;
69+
mp_get_buffer_raise(arg, &bufinfo, MP_BUFFER_READ);
70+
sha256_update((CRYAL_SHA256_CTX*)self->state, bufinfo.buf, bufinfo.len);
71+
return mp_const_none;
72+
}
73+
MP_DEFINE_CONST_FUN_OBJ_2(uhashlib_sha256_update_obj, uhashlib_sha256_update);
74+
75+
STATIC mp_obj_t uhashlib_sha256_digest(mp_obj_t self_in) {
76+
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
77+
vstr_t vstr;
78+
vstr_init_len(&vstr, SHA256_BLOCK_SIZE);
79+
sha256_final((CRYAL_SHA256_CTX*)self->state, (byte*)vstr.buf);
80+
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
81+
}
82+
MP_DEFINE_CONST_FUN_OBJ_1(uhashlib_sha256_digest_obj, uhashlib_sha256_digest);
83+
84+
STATIC const mp_rom_map_elem_t uhashlib_sha256_locals_dict_table[] = {
85+
{ MP_ROM_QSTR(MP_QSTR_update), MP_ROM_PTR(&uhashlib_sha256_update_obj) },
86+
{ MP_ROM_QSTR(MP_QSTR_digest), MP_ROM_PTR(&uhashlib_sha256_digest_obj) },
87+
};
88+
89+
STATIC MP_DEFINE_CONST_DICT(uhashlib_sha256_locals_dict, uhashlib_sha256_locals_dict_table);
90+
91+
STATIC const mp_obj_type_t uhashlib_sha256_type = {
92+
{ &mp_type_type },
93+
.name = MP_QSTR_sha256,
94+
.make_new = uhashlib_sha256_make_new,
95+
.locals_dict = (void*)&uhashlib_sha256_locals_dict,
96+
};
97+
6698
#if MICROPY_PY_UHASHLIB_SHA1
6799
STATIC mp_obj_t uhashlib_sha1_update(mp_obj_t self_in, mp_obj_t arg);
68100

@@ -77,6 +109,22 @@ STATIC mp_obj_t uhashlib_sha1_make_new(const mp_obj_type_t *type, size_t n_args,
77109
}
78110
return MP_OBJ_FROM_PTR(o);
79111
}
112+
113+
STATIC mp_obj_t uhashlib_sha1_update(mp_obj_t self_in, mp_obj_t arg) {
114+
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
115+
mp_buffer_info_t bufinfo;
116+
mp_get_buffer_raise(arg, &bufinfo, MP_BUFFER_READ);
117+
SHA1_Update((SHA1_CTX*)self->state, bufinfo.buf, bufinfo.len);
118+
return mp_const_none;
119+
}
120+
121+
STATIC mp_obj_t uhashlib_sha1_digest(mp_obj_t self_in) {
122+
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
123+
vstr_t vstr;
124+
vstr_init_len(&vstr, SHA1_SIZE);
125+
SHA1_Final((byte*)vstr.buf, (SHA1_CTX*)self->state);
126+
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
127+
}
80128
#endif
81129

82130
#if MICROPY_SSL_MBEDTLS
@@ -91,66 +139,15 @@ STATIC mp_obj_t uhashlib_sha1_make_new(const mp_obj_type_t *type, size_t n_args,
91139
}
92140
return MP_OBJ_FROM_PTR(o);
93141
}
94-
#endif
95-
96-
#endif
97-
98-
STATIC mp_obj_t uhashlib_sha256_update(mp_obj_t self_in, mp_obj_t arg) {
99-
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
100-
mp_buffer_info_t bufinfo;
101-
mp_get_buffer_raise(arg, &bufinfo, MP_BUFFER_READ);
102-
sha256_update((CRYAL_SHA256_CTX*)self->state, bufinfo.buf, bufinfo.len);
103-
return mp_const_none;
104-
}
105-
MP_DEFINE_CONST_FUN_OBJ_2(uhashlib_sha256_update_obj, uhashlib_sha256_update);
106-
107-
#if MICROPY_PY_UHASHLIB_SHA1
108142

109-
#if MICROPY_SSL_AXTLS
110-
STATIC mp_obj_t uhashlib_sha1_update(mp_obj_t self_in, mp_obj_t arg) {
111-
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
112-
mp_buffer_info_t bufinfo;
113-
mp_get_buffer_raise(arg, &bufinfo, MP_BUFFER_READ);
114-
SHA1_Update((SHA1_CTX*)self->state, bufinfo.buf, bufinfo.len);
115-
return mp_const_none;
116-
}
117-
#endif
118-
119-
#if MICROPY_SSL_MBEDTLS
120143
STATIC mp_obj_t uhashlib_sha1_update(mp_obj_t self_in, mp_obj_t arg) {
121144
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
122145
mp_buffer_info_t bufinfo;
123146
mp_get_buffer_raise(arg, &bufinfo, MP_BUFFER_READ);
124147
mbedtls_sha1_update((mbedtls_sha1_context*)self->state, bufinfo.buf, bufinfo.len);
125148
return mp_const_none;
126149
}
127-
#endif
128-
129-
MP_DEFINE_CONST_FUN_OBJ_2(uhashlib_sha1_update_obj, uhashlib_sha1_update);
130-
#endif
131-
132-
STATIC mp_obj_t uhashlib_sha256_digest(mp_obj_t self_in) {
133-
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
134-
vstr_t vstr;
135-
vstr_init_len(&vstr, SHA256_BLOCK_SIZE);
136-
sha256_final((CRYAL_SHA256_CTX*)self->state, (byte*)vstr.buf);
137-
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
138-
}
139-
MP_DEFINE_CONST_FUN_OBJ_1(uhashlib_sha256_digest_obj, uhashlib_sha256_digest);
140-
141-
#if MICROPY_PY_UHASHLIB_SHA1
142-
143-
#if MICROPY_SSL_AXTLS
144-
STATIC mp_obj_t uhashlib_sha1_digest(mp_obj_t self_in) {
145-
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
146-
vstr_t vstr;
147-
vstr_init_len(&vstr, SHA1_SIZE);
148-
SHA1_Final((byte*)vstr.buf, (SHA1_CTX*)self->state);
149-
return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
150-
}
151-
#endif
152150

153-
#if MICROPY_SSL_MBEDTLS
154151
STATIC mp_obj_t uhashlib_sha1_digest(mp_obj_t self_in) {
155152
mp_obj_hash_t *self = MP_OBJ_TO_PTR(self_in);
156153
vstr_t vstr;
@@ -161,24 +158,9 @@ STATIC mp_obj_t uhashlib_sha1_digest(mp_obj_t self_in) {
161158
}
162159
#endif
163160

161+
MP_DEFINE_CONST_FUN_OBJ_2(uhashlib_sha1_update_obj, uhashlib_sha1_update);
164162
MP_DEFINE_CONST_FUN_OBJ_1(uhashlib_sha1_digest_obj, uhashlib_sha1_digest);
165-
#endif
166163

167-
STATIC const mp_rom_map_elem_t uhashlib_sha256_locals_dict_table[] = {
168-
{ MP_ROM_QSTR(MP_QSTR_update), MP_ROM_PTR(&uhashlib_sha256_update_obj) },
169-
{ MP_ROM_QSTR(MP_QSTR_digest), MP_ROM_PTR(&uhashlib_sha256_digest_obj) },
170-
};
171-
172-
STATIC MP_DEFINE_CONST_DICT(uhashlib_sha256_locals_dict, uhashlib_sha256_locals_dict_table);
173-
174-
STATIC const mp_obj_type_t uhashlib_sha256_type = {
175-
{ &mp_type_type },
176-
.name = MP_QSTR_sha256,
177-
.make_new = uhashlib_sha256_make_new,
178-
.locals_dict = (void*)&uhashlib_sha256_locals_dict,
179-
};
180-
181-
#if MICROPY_PY_UHASHLIB_SHA1
182164
STATIC const mp_rom_map_elem_t uhashlib_sha1_locals_dict_table[] = {
183165
{ MP_ROM_QSTR(MP_QSTR_update), MP_ROM_PTR(&uhashlib_sha1_update_obj) },
184166
{ MP_ROM_QSTR(MP_QSTR_digest), MP_ROM_PTR(&uhashlib_sha1_digest_obj) },

0 commit comments

Comments
 (0)