@@ -147,26 +147,37 @@ s32 SHA_InitializeContext(sha_context* context)
147147 iosFree (__sha_hid , params );
148148 return ret ;
149149}
150- s32 SHA_Calculate (sha_context * context , const void * data , const u32 data_size , void * message_digest )
150+
151+ s32 SHA_Input (sha_context * context , const void * data , const u32 data_size )
151152{
152- if (context == NULL || message_digest == NULL || data_size == 0 || data == NULL )
153+ if (context == NULL || data == NULL || data_size == 0 )
153154 return -1 ;
154155
155- if (((u32 )context & 0x1F ) != 0 || (( u32 ) message_digest & 0x1F ) != 0 )
156+ if (((u32 )context ) & 0x1F )
156157 return -4 ;
157158
158- return SHA_ExecuteCommand (FinalizeHash , context , data , data_size , message_digest );
159+ return SHA_ExecuteCommand (AddData , context , data , data_size , NULL );
159160}
160161
161- s32 SHA_Input (sha_context * context , const void * data , const u32 data_size )
162+ s32 SHA_Finalize (sha_context * context , const void * data , const u32 data_size , void * message_digest )
162163{
163- if (context == NULL || data == NULL || data_size == 0 )
164+ if (context == NULL || message_digest == NULL || data_size == 0 || data == NULL )
164165 return -1 ;
165166
166- if (((u32 )context ) & 0x1F )
167+ if (((u32 )context & 0x1F ) != 0 || (( u32 ) message_digest & 0x1F ) != 0 )
167168 return -4 ;
168169
169- return SHA_ExecuteCommand (AddData , context , data , data_size , NULL );
170+ return SHA_ExecuteCommand (FinalizeHash , context , data , data_size , message_digest );
171+ }
172+
173+ s32 SHA_Calculate (const void * data , const u32 data_size , void * message_digest )
174+ {
175+ sha_context context ATTRIBUTE_ALIGN (32 );
176+ s32 ret = SHA_InitializeContext (& context );
177+ if (ret < 0 )
178+ return ret ;
179+
180+ return SHA_Finalize (& context , data , data_size , message_digest );
170181}
171182
172183#endif
0 commit comments