Skip to content

Commit bd78ab3

Browse files
authored
Merge pull request #2895 from xobs/aesio-use-bufinfo
aesio: use bufinfo rather than mp_str_bytes
2 parents 0f55f58 + f9ed3ac commit bd78ab3

File tree

1 file changed

+11
-12
lines changed
  • shared-bindings/aesio

1 file changed

+11
-12
lines changed

shared-bindings/aesio/aes.c

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,10 @@ STATIC mp_obj_t aesio_aes_make_new(const mp_obj_type_t *type, size_t n_args,
103103
STATIC mp_obj_t aesio_aes_rekey(size_t n_args, const mp_obj_t *pos_args) {
104104
aesio_aes_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
105105

106-
size_t key_length = 0;
107-
const uint8_t *key =
108-
(const uint8_t *)mp_obj_str_get_data(pos_args[1], &key_length);
106+
mp_buffer_info_t bufinfo;
107+
mp_get_buffer_raise(pos_args[1], &bufinfo, MP_BUFFER_READ);
108+
const uint8_t *key = bufinfo.buf;
109+
size_t key_length = bufinfo.len;
109110
if (key == NULL) {
110111
mp_raise_ValueError(translate("No key was specified"));
111112
}
@@ -115,8 +116,9 @@ STATIC mp_obj_t aesio_aes_rekey(size_t n_args, const mp_obj_t *pos_args) {
115116

116117
const uint8_t *iv = NULL;
117118
if (n_args > 2) {
118-
size_t iv_length = 0;
119-
iv = (const uint8_t *)mp_obj_str_get_data(pos_args[2], &iv_length);
119+
mp_get_buffer_raise(pos_args[2], &bufinfo, MP_BUFFER_READ);
120+
size_t iv_length = bufinfo.len;
121+
iv = (const uint8_t *)bufinfo.buf;
120122
if (iv_length != AES_BLOCKLEN) {
121123
mp_raise_TypeError_varg(translate("IV must be %d bytes long"),
122124
AES_BLOCKLEN);
@@ -171,7 +173,7 @@ STATIC mp_obj_t aesio_aes_encrypt_into(mp_obj_t aesio_obj, mp_obj_t src,
171173

172174
mp_buffer_info_t srcbufinfo, destbufinfo;
173175
mp_get_buffer_raise(src, &srcbufinfo, MP_BUFFER_READ);
174-
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_READ);
176+
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_WRITE);
175177
validate_length(aes, srcbufinfo.len, destbufinfo.len);
176178

177179
memcpy(destbufinfo.buf, srcbufinfo.buf, srcbufinfo.len);
@@ -201,7 +203,7 @@ STATIC mp_obj_t aesio_aes_decrypt_into(mp_obj_t aesio_obj, mp_obj_t src,
201203

202204
mp_buffer_info_t srcbufinfo, destbufinfo;
203205
mp_get_buffer_raise(src, &srcbufinfo, MP_BUFFER_READ);
204-
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_READ);
206+
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_WRITE);
205207
validate_length(aes, srcbufinfo.len, destbufinfo.len);
206208

207209
memcpy(destbufinfo.buf, srcbufinfo.buf, srcbufinfo.len);
@@ -246,11 +248,8 @@ MP_DEFINE_CONST_FUN_OBJ_2(aesio_aes_set_mode_obj, aesio_aes_set_mode);
246248

247249
const mp_obj_property_t aesio_aes_mode_obj = {
248250
.base.type = &mp_type_property,
249-
.proxy = {
250-
(mp_obj_t)&aesio_aes_get_mode_obj,
251-
(mp_obj_t)&aesio_aes_set_mode_obj,
252-
(mp_obj_t)&mp_const_none_obj
253-
},
251+
.proxy = {(mp_obj_t)&aesio_aes_get_mode_obj,
252+
(mp_obj_t)&aesio_aes_set_mode_obj, (mp_obj_t)&mp_const_none_obj},
254253
};
255254

256255
STATIC const mp_rom_map_elem_t aesio_locals_dict_table[] = {

0 commit comments

Comments
 (0)