aesio: specify writable buffers for destination buffers
When calling `AES.decrypt_into()` or `AES.encrypt_into()`, the destination buffers may be any buffer kind. However, we currently aren't checking to make sure the destination buffer is actually writable. Specify `MP_BUFFER_WRITE` for the destination buffers of both of these objects so we don't inadvertently write to immutable data. Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
parent
aba36e4abf
commit
f9ed3acf6d
|
@ -173,7 +173,7 @@ STATIC mp_obj_t aesio_aes_encrypt_into(mp_obj_t aesio_obj, mp_obj_t src,
|
||||||
|
|
||||||
mp_buffer_info_t srcbufinfo, destbufinfo;
|
mp_buffer_info_t srcbufinfo, destbufinfo;
|
||||||
mp_get_buffer_raise(src, &srcbufinfo, MP_BUFFER_READ);
|
mp_get_buffer_raise(src, &srcbufinfo, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_READ);
|
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_WRITE);
|
||||||
validate_length(aes, srcbufinfo.len, destbufinfo.len);
|
validate_length(aes, srcbufinfo.len, destbufinfo.len);
|
||||||
|
|
||||||
memcpy(destbufinfo.buf, srcbufinfo.buf, srcbufinfo.len);
|
memcpy(destbufinfo.buf, srcbufinfo.buf, srcbufinfo.len);
|
||||||
|
@ -203,7 +203,7 @@ STATIC mp_obj_t aesio_aes_decrypt_into(mp_obj_t aesio_obj, mp_obj_t src,
|
||||||
|
|
||||||
mp_buffer_info_t srcbufinfo, destbufinfo;
|
mp_buffer_info_t srcbufinfo, destbufinfo;
|
||||||
mp_get_buffer_raise(src, &srcbufinfo, MP_BUFFER_READ);
|
mp_get_buffer_raise(src, &srcbufinfo, MP_BUFFER_READ);
|
||||||
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_READ);
|
mp_get_buffer_raise(dest, &destbufinfo, MP_BUFFER_WRITE);
|
||||||
validate_length(aes, srcbufinfo.len, destbufinfo.len);
|
validate_length(aes, srcbufinfo.len, destbufinfo.len);
|
||||||
|
|
||||||
memcpy(destbufinfo.buf, srcbufinfo.buf, srcbufinfo.len);
|
memcpy(destbufinfo.buf, srcbufinfo.buf, srcbufinfo.len);
|
||||||
|
|
Loading…
Reference in New Issue