@@ -716,6 +716,9 @@ impl Ed25519 {
716716 #[ cfg( ed25519_sign) ]
717717 pub fn sign_msg_ctx ( & mut self , message : & [ u8 ] , context : & [ u8 ] , signature : & mut [ u8 ] ) -> Result < usize , i32 > {
718718 let message_size = message. len ( ) as u32 ;
719+ if context. len ( ) > 255 {
720+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
721+ }
719722 let context_size = context. len ( ) as u8 ;
720723 let mut signature_size = signature. len ( ) as u32 ;
721724 let rc = unsafe {
@@ -777,6 +780,9 @@ impl Ed25519 {
777780 let mut context_size = 0u8 ;
778781 if let Some ( context) = context {
779782 context_ptr = context. as_ptr ( ) ;
783+ if context. len ( ) > 255 {
784+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
785+ }
780786 context_size = context. len ( ) as u8 ;
781787 }
782788 let mut signature_size = signature. len ( ) as u32 ;
@@ -830,6 +836,9 @@ impl Ed25519 {
830836 let mut context_size = 0u8 ;
831837 if let Some ( context) = context {
832838 context_ptr = context. as_ptr ( ) ;
839+ if context. len ( ) > 255 {
840+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
841+ }
833842 context_size = context. len ( ) as u8 ;
834843 }
835844 let mut signature_size = signature. len ( ) as u32 ;
@@ -883,6 +892,9 @@ impl Ed25519 {
883892 let mut context_size = 0u8 ;
884893 if let Some ( context) = context {
885894 context_ptr = context. as_ptr ( ) ;
895+ if context. len ( ) > 255 {
896+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
897+ }
886898 context_size = context. len ( ) as u8 ;
887899 }
888900 let mut signature_size = signature. len ( ) as u32 ;
@@ -976,6 +988,9 @@ impl Ed25519 {
976988 pub fn verify_msg_ctx ( & mut self , signature : & [ u8 ] , message : & [ u8 ] , context : & [ u8 ] ) -> Result < bool , i32 > {
977989 let signature_size = signature. len ( ) as u32 ;
978990 let message_size = message. len ( ) as u32 ;
991+ if context. len ( ) > 255 {
992+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
993+ }
979994 let context_size = context. len ( ) as u8 ;
980995 let mut res = 0i32 ;
981996 let rc = unsafe {
@@ -1040,6 +1055,9 @@ impl Ed25519 {
10401055 let mut context_size = 0u8 ;
10411056 if let Some ( context) = context {
10421057 context_ptr = context. as_ptr ( ) ;
1058+ if context. len ( ) > 255 {
1059+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
1060+ }
10431061 context_size = context. len ( ) as u8 ;
10441062 }
10451063 let mut res = 0i32 ;
@@ -1095,6 +1113,9 @@ impl Ed25519 {
10951113 let mut context_size = 0u8 ;
10961114 if let Some ( context) = context {
10971115 context_ptr = context. as_ptr ( ) ;
1116+ if context. len ( ) > 255 {
1117+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
1118+ }
10981119 context_size = context. len ( ) as u8 ;
10991120 }
11001121 let mut res = 0i32 ;
@@ -1150,6 +1171,9 @@ impl Ed25519 {
11501171 let mut context_size = 0u8 ;
11511172 if let Some ( context) = context {
11521173 context_ptr = context. as_ptr ( ) ;
1174+ if context. len ( ) > 255 {
1175+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
1176+ }
11531177 context_size = context. len ( ) as u8 ;
11541178 }
11551179 let mut res = 0i32 ;
@@ -1203,6 +1227,9 @@ impl Ed25519 {
12031227 let mut context_size = 0u8 ;
12041228 if let Some ( context) = context {
12051229 context_ptr = context. as_ptr ( ) ;
1230+ if context. len ( ) > 255 {
1231+ return Err ( sys:: wolfCrypt_ErrorCodes_BAD_FUNC_ARG) ;
1232+ }
12061233 context_size = context. len ( ) as u8 ;
12071234 }
12081235 let rc = unsafe {
0 commit comments