From e69ac6b20c1bdf8cc1f7e7d42833ded4e06b63a5 Mon Sep 17 00:00:00 2001 From: Willian Wang Date: Mon, 3 Apr 2023 00:50:43 -0300 Subject: [PATCH] elliptic-curve: fix FieldBytesEncoding ranges --- elliptic-curve/src/field.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/elliptic-curve/src/field.rs b/elliptic-curve/src/field.rs index 605f6c728..33dd565e4 100644 --- a/elliptic-curve/src/field.rs +++ b/elliptic-curve/src/field.rs @@ -32,7 +32,8 @@ where fn decode_field_bytes(field_bytes: &FieldBytes) -> Self { debug_assert!(field_bytes.len() <= Self::ByteSize::USIZE); let mut byte_array = ByteArray::::default(); - byte_array[..field_bytes.len()].copy_from_slice(field_bytes); + let offset = Self::ByteSize::USIZE - field_bytes.len(); + byte_array[offset..].copy_from_slice(field_bytes); Self::from_be_byte_array(byte_array) } @@ -43,8 +44,8 @@ where let mut field_bytes = FieldBytes::::default(); debug_assert!(field_bytes.len() <= Self::ByteSize::USIZE); - let len = field_bytes.len(); - field_bytes.copy_from_slice(&self.to_be_byte_array()[..len]); + let offset = Self::ByteSize::USIZE - field_bytes.len(); + field_bytes.copy_from_slice(&self.to_be_byte_array()[offset..]); field_bytes } }