void ide_save_file() { int err; uint8_t* data; if(!p_data_temp) { ide_file_save_status = 100;//should not happen return ; } err = check_sha256(p_data_temp, p_data_temp+32, ide_file_length-32); if(err == -1)// no memory { ide_file_save_status = 2; } else if( err == -2) // parity error { ide_file_save_status = 6; } else// parity right { uint8_t* file_name = p_data_temp+32; int tmp = strlen(file_name)+1; tmp = tmp + 4-((tmp%4)?(tmp%4):4); data = file_name + tmp; uint32_t file_len = ide_file_length - 32 - tmp; mp_obj_t file = vfs_internal_open((const char*)file_name, "wb", &err); if( file==NULL || err!=0) { ide_file_save_status = 3; } else { mp_uint_t ret = vfs_internal_write(file, (void*)data, file_len, &err); if(err!=0 || ret != file_len) ide_file_save_status = 4; else ide_file_save_status = 0; vfs_internal_close(file, &err); } } free(p_data_temp); p_data_temp = NULL; }
int main(int argc, char** argv) { int ret; int i; (void)argc; (void)argv; #if defined(MICROCHIP_PIC32) init_serial() ; /* initialize PIC32MZ serial I/O */ SYSTEMConfigPerformance(80000000); DBINIT(); #endif /* align key, iv pointers */ key = (byte*)XMALLOC(32, NULL, DYNAMIC_TYPE_KEY); if (key == NULL) { printf("mcapi key alloc failed\n"); return -1; } iv = (byte*)XMALLOC(16, NULL, DYNAMIC_TYPE_KEY); if (iv == NULL) { printf("mcapi iv alloc failed\n"); return -1; } for (i = 0; i < OUR_DATA_SIZE; i++) ourData[i] = (byte)i; ret = check_md5(); if (ret != 0) { printf("mcapi check_md5 failed\n"); return -1; } ret = check_sha(); if (ret != 0) { printf("mcapi check_sha failed\n"); return -1; } ret = check_sha256(); if (ret != 0) { printf("mcapi check_sha256 failed\n"); return -1; } ret = check_sha384(); if (ret != 0) { printf("mcapi check_sha384 failed\n"); return -1; } ret = check_sha512(); if (ret != 0) { printf("mcapi check_sha512 failed\n"); return -1; } ret = check_hmac(); if (ret != 0) { printf("mcapi check_hmac failed\n"); return -1; } ret = check_compress(); if (ret != 0) { printf("mcapi check_compress failed\n"); return -1; } ret = check_rng(); if (ret != 0) { printf("mcapi check_rng failed\n"); return -1; } ret = check_des3(); if (ret != 0) { printf("mcapi check_des3 failed\n"); return -1; } ret = check_aescbc(); if (ret != 0) { printf("mcapi check_aes cbc failed\n"); return -1; } ret = check_aesctr(); if (ret != 0) { printf("mcapi check_aes ctr failed\n"); return -1; } ret = check_aesdirect(); if (ret != 0) { printf("mcapi check_aes direct failed\n"); return -1; } ret = check_rsa(); if (ret != 0) { printf("mcapi check_rsa failed\n"); return -1; } ret = check_ecc(); if (ret != 0) { printf("mcapi check_ecc failed\n"); return -1; } XFREE(iv, NULL, DYNAMIC_TYPE_KEY); XFREE(key, NULL, DYNAMIC_TYPE_KEY); return 0; }