@@ -155,26 +155,37 @@ s32 SHA_InitializeContext(sha_context* context)
155155 iosFree (__sha_hid , params );
156156 return ret ;
157157}
158- s32 SHA_Calculate (sha_context * context , const void * data , const u32 data_size , void * message_digest )
158+
159+ s32 SHA_Input (sha_context * context , const void * data , const u32 data_size )
159160{
160- if (context == NULL || message_digest == NULL || data_size == 0 || data == NULL )
161+ if (context == NULL || data == NULL || data_size == 0 )
161162 return -1 ;
162163
163- if (((u32 )context & 0x1F ) != 0 || (( u32 ) message_digest & 0x1F ) != 0 )
164+ if (((u32 )context ) & 0x1F )
164165 return -4 ;
165166
166- return SHA_ExecuteCommand (FinalizeHash , context , data , data_size , message_digest );
167+ return SHA_ExecuteCommand (AddData , context , data , data_size , NULL );
167168}
168169
169- s32 SHA_Input (sha_context * context , const void * data , const u32 data_size )
170+ s32 SHA_Finalize (sha_context * context , const void * data , const u32 data_size , void * message_digest )
170171{
171- if (context == NULL || data == NULL || data_size == 0 )
172+ if (context == NULL || message_digest == NULL || data_size == 0 || data == NULL )
172173 return -1 ;
173174
174- if (((u32 )context ) & 0x1F )
175+ if (((u32 )context & 0x1F ) != 0 || (( u32 ) message_digest & 0x1F ) != 0 )
175176 return -4 ;
176177
177- return SHA_ExecuteCommand (AddData , context , data , data_size , NULL );
178+ return SHA_ExecuteCommand (FinalizeHash , context , data , data_size , message_digest );
179+ }
180+
181+ s32 SHA_Calculate (const void * data , const u32 data_size , void * message_digest )
182+ {
183+ sha_context context ATTRIBUTE_ALIGN (32 );
184+ s32 ret = SHA_InitializeContext (& context );
185+ if (ret < 0 )
186+ return ret ;
187+
188+ return SHA_Finalize (& context , data , data_size , message_digest );
178189}
179190
180191#endif
0 commit comments