@@ -210,67 +210,12 @@ static keystore_error_t _get_and_decrypt_seed(
210
210
return KEYSTORE_OK ;
211
211
}
212
212
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
-
233
213
keystore_error_t keystore_encrypt_and_store_seed (
234
214
const uint8_t * seed ,
235
215
size_t seed_length ,
236
216
const char * password )
237
217
{
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 );
274
219
}
275
220
276
221
keystore_error_t keystore_create_and_store_seed (
0 commit comments