@@ -210,67 +210,12 @@ static keystore_error_t _get_and_decrypt_seed(
210210    return  KEYSTORE_OK ;
211211}
212212
213- static  bool  _verify_seed (
214-     const  char *  password ,
215-     const  uint8_t *  expected_seed ,
216-     size_t  expected_seed_len )
217- {
218-     uint8_t  decrypted_seed [KEYSTORE_MAX_SEED_LENGTH ] =  {0 };
219-     size_t  seed_len ;
220-     UTIL_CLEANUP_32 (decrypted_seed );
221-     if  (_get_and_decrypt_seed (password , decrypted_seed , & seed_len , NULL ) !=  KEYSTORE_OK ) {
222-         return  false;
223-     }
224-     if  (expected_seed_len  !=  seed_len ) {
225-         return  false;
226-     }
227-     if  (!MEMEQ (expected_seed , decrypted_seed , seed_len )) {
228-         return  false;
229-     }
230-     return  true;
231- }
232- 
233213keystore_error_t  keystore_encrypt_and_store_seed (
234214    const  uint8_t *  seed ,
235215    size_t  seed_length ,
236216    const  char *  password )
237217{
238-     if  (memory_is_initialized ()) {
239-         return  KEYSTORE_ERR_MEMORY ;
240-     }
241-     keystore_lock ();
242-     if  (!_validate_seed_length (seed_length )) {
243-         return  KEYSTORE_ERR_SEED_SIZE ;
244-     }
245-     if  (securechip_init_new_password (password )) {
246-         return  KEYSTORE_ERR_SECURECHIP ;
247-     }
248-     uint8_t  secret [32 ] =  {0 };
249-     UTIL_CLEANUP_32 (secret );
250-     if  (securechip_stretch_password (password , secret )) {
251-         return  KEYSTORE_ERR_SECURECHIP ;
252-     }
253- 
254-     size_t  encrypted_seed_len  =  seed_length  +  64 ;
255-     uint8_t  encrypted_seed [encrypted_seed_len ];
256-     UTIL_CLEANUP_32 (encrypted_seed );
257-     if  (!cipher_aes_hmac_encrypt (seed , seed_length , encrypted_seed , & encrypted_seed_len , secret )) {
258-         return  KEYSTORE_ERR_ENCRYPT ;
259-     }
260-     if  (encrypted_seed_len  >  255 ) { // sanity check, can't happen 
261-         Abort ("keystore_encrypt_and_store_seed" );
262-     }
263-     uint8_t  encrypted_seed_len_u8  =  (uint8_t )encrypted_seed_len ;
264-     if  (!memory_set_encrypted_seed_and_hmac (encrypted_seed , encrypted_seed_len_u8 )) {
265-         return  KEYSTORE_ERR_MEMORY ;
266-     }
267-     if  (!_verify_seed (password , seed , seed_length )) {
268-         if  (!memory_reset_hww ()) {
269-             return  KEYSTORE_ERR_MEMORY ;
270-         }
271-         return  KEYSTORE_ERR_MEMORY ;
272-     }
273-     return  KEYSTORE_OK ;
218+     return  rust_keystore_encrypt_and_store_seed (rust_util_bytes (seed , seed_length ), password );
274219}
275220
276221keystore_error_t  keystore_create_and_store_seed (
0 commit comments