app/crypto-perf: remove unused file
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
This commit is contained in:
parent
9f3ea3e4b9
commit
e40de34d6f
@ -1,314 +0,0 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include <rte_malloc.h>
|
||||
#include "cperf_options.h"
|
||||
#include "cperf_test_vectors.h"
|
||||
#include "cperf_verify_parser.h"
|
||||
|
||||
int
|
||||
free_test_vector(struct cperf_test_vector *vector, struct cperf_options *opts)
|
||||
{
|
||||
if (vector == NULL || opts == NULL)
|
||||
return -1;
|
||||
|
||||
if (opts->test_file == NULL) {
|
||||
if (vector->iv.data)
|
||||
rte_free(vector->iv.data);
|
||||
if (vector->aad.data)
|
||||
rte_free(vector->aad.data);
|
||||
if (vector->digest.data)
|
||||
rte_free(vector->digest.data);
|
||||
rte_free(vector);
|
||||
|
||||
} else {
|
||||
if (vector->plaintext.data)
|
||||
rte_free(vector->plaintext.data);
|
||||
if (vector->cipher_key.data)
|
||||
rte_free(vector->cipher_key.data);
|
||||
if (vector->auth_key.data)
|
||||
rte_free(vector->auth_key.data);
|
||||
if (vector->iv.data)
|
||||
rte_free(vector->iv.data);
|
||||
if (vector->ciphertext.data)
|
||||
rte_free(vector->ciphertext.data);
|
||||
if (vector->aad.data)
|
||||
rte_free(vector->aad.data);
|
||||
if (vector->digest.data)
|
||||
rte_free(vector->digest.data);
|
||||
rte_free(vector);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* trim leading and trailing spaces */
|
||||
static char *
|
||||
trim(char *str)
|
||||
{
|
||||
char *start, *end;
|
||||
|
||||
for (start = str; *start; start++) {
|
||||
if (!isspace((unsigned char) start[0]))
|
||||
break;
|
||||
}
|
||||
|
||||
for (end = start + strlen(start); end > start + 1; end--) {
|
||||
if (!isspace((unsigned char) end[-1]))
|
||||
break;
|
||||
}
|
||||
|
||||
*end = 0;
|
||||
|
||||
/* Shift from "start" to the beginning of the string */
|
||||
if (start > str)
|
||||
memmove(str, start, (end - start) + 1);
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
/* tokenization test values separated by a comma */
|
||||
static int
|
||||
parse_values(char *tokens, uint8_t **data, uint32_t *data_length)
|
||||
{
|
||||
uint8_t n_tokens;
|
||||
uint32_t data_size = 32;
|
||||
uint8_t *values;
|
||||
char *tok, *error = NULL;
|
||||
|
||||
tok = strtok(tokens, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
return -1;
|
||||
|
||||
values = (uint8_t *) rte_zmalloc(NULL, sizeof(uint8_t) * data_size, 0);
|
||||
if (values == NULL)
|
||||
return -1;
|
||||
|
||||
n_tokens = 0;
|
||||
while (tok != NULL) {
|
||||
uint8_t *values_extended = NULL;
|
||||
|
||||
if (n_tokens >= data_size) {
|
||||
|
||||
data_size *= 2;
|
||||
|
||||
values_extended = (uint8_t *) rte_realloc(values,
|
||||
sizeof(uint8_t) * data_size, 0);
|
||||
if (values_extended == NULL) {
|
||||
rte_free(values);
|
||||
return -1;
|
||||
}
|
||||
|
||||
values = values_extended;
|
||||
}
|
||||
|
||||
values[n_tokens] = (uint8_t) strtoul(tok, &error, 0);
|
||||
if ((error == NULL) || (*error != '\0')) {
|
||||
printf("Failed with convert '%s'\n", tok);
|
||||
rte_free(values);
|
||||
return -1;
|
||||
}
|
||||
|
||||
tok = strtok(NULL, VALUE_DELIMITER);
|
||||
if (tok == NULL)
|
||||
break;
|
||||
|
||||
n_tokens++;
|
||||
}
|
||||
|
||||
uint8_t *resize_values = (uint8_t *) rte_realloc(values,
|
||||
sizeof(uint8_t) * (n_tokens + 1), 0);
|
||||
|
||||
if (resize_values == NULL) {
|
||||
rte_free(values);
|
||||
return -1;
|
||||
}
|
||||
|
||||
*data = resize_values;
|
||||
*data_length = n_tokens + 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* checks the type of key and assigns data */
|
||||
static int
|
||||
parse_entry(char *entry, struct cperf_test_vector *vector)
|
||||
{
|
||||
char *token, *key_token;
|
||||
uint8_t *data = NULL;
|
||||
int status;
|
||||
uint32_t data_length;
|
||||
|
||||
/* get key */
|
||||
token = strtok(entry, ENTRY_DELIMITER);
|
||||
key_token = token;
|
||||
|
||||
/* get values for key */
|
||||
token = strtok(NULL, ENTRY_DELIMITER);
|
||||
|
||||
if (token == NULL) {
|
||||
printf("Expected 'key = values' but was '%.40s'..\n",
|
||||
key_token);
|
||||
return -1;
|
||||
}
|
||||
|
||||
status = parse_values(token, &data, &data_length);
|
||||
if (status)
|
||||
return -1;
|
||||
|
||||
/* compare keys */
|
||||
if (strstr(key_token, "plaintext")) {
|
||||
if (vector->plaintext.data)
|
||||
rte_free(vector->plaintext.data);
|
||||
vector->plaintext.data = data;
|
||||
vector->plaintext.length = data_length;
|
||||
} else if (strstr(key_token, "cipher_key")) {
|
||||
if (vector->cipher_key.data)
|
||||
rte_free(vector->cipher_key.data);
|
||||
vector->cipher_key.data = data;
|
||||
vector->cipher_key.length = data_length;
|
||||
} else if (strstr(key_token, "auth_key")) {
|
||||
if (vector->auth_key.data)
|
||||
rte_free(vector->auth_key.data);
|
||||
vector->auth_key.data = data;
|
||||
vector->auth_key.length = data_length;
|
||||
} else if (strstr(key_token, "iv")) {
|
||||
if (vector->iv.data)
|
||||
rte_free(vector->iv.data);
|
||||
vector->iv.data = data;
|
||||
vector->iv.phys_addr = rte_malloc_virt2phy(vector->iv.data);
|
||||
vector->iv.length = data_length;
|
||||
} else if (strstr(key_token, "ciphertext")) {
|
||||
if (vector->ciphertext.data)
|
||||
rte_free(vector->ciphertext.data);
|
||||
vector->ciphertext.data = data;
|
||||
vector->ciphertext.length = data_length;
|
||||
} else if (strstr(key_token, "aad")) {
|
||||
if (vector->aad.data)
|
||||
rte_free(vector->aad.data);
|
||||
vector->aad.data = data;
|
||||
vector->aad.phys_addr = rte_malloc_virt2phy(vector->aad.data);
|
||||
vector->aad.length = data_length;
|
||||
} else if (strstr(key_token, "digest")) {
|
||||
if (vector->digest.data)
|
||||
rte_free(vector->digest.data);
|
||||
vector->digest.data = data;
|
||||
vector->digest.phys_addr = rte_malloc_virt2phy(
|
||||
vector->digest.data);
|
||||
vector->digest.length = data_length;
|
||||
} else {
|
||||
printf("Not valid key: '%s'\n", trim(key_token));
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* searches in the file for registry keys and values */
|
||||
static int
|
||||
parse_file(struct cperf_test_vector *v_vec, const char *path)
|
||||
{
|
||||
FILE *fp;
|
||||
char *line = NULL, *entry = NULL;
|
||||
ssize_t read;
|
||||
size_t len = 0;
|
||||
int status = 0;
|
||||
|
||||
fp = fopen(path, "r");
|
||||
if (fp == NULL) {
|
||||
printf("File %s does not exists\n", path);
|
||||
return -1;
|
||||
}
|
||||
|
||||
while ((read = getline(&line, &len, fp)) != -1) {
|
||||
/* ignore comments and new lines */
|
||||
if (line[0] == '#' || line[0] == '/' || line[0] == '\n'
|
||||
|| line[0] == '\r' || line[0] == ' ')
|
||||
continue;
|
||||
|
||||
trim(line);
|
||||
|
||||
/* buffer for multiline */
|
||||
entry = (char *) rte_realloc(entry,
|
||||
sizeof(char) * strlen(line) + 1, 0);
|
||||
if (entry == NULL)
|
||||
return -1;
|
||||
|
||||
memset(entry, 0, strlen(line) + 1);
|
||||
strncpy(entry, line, strlen(line));
|
||||
|
||||
/* check if entry ends with , or = */
|
||||
if (entry[strlen(entry) - 1] == ','
|
||||
|| entry[strlen(entry) - 1] == '=') {
|
||||
while ((read = getline(&line, &len, fp)) != -1) {
|
||||
trim(line);
|
||||
|
||||
/* extend entry about length of new line */
|
||||
char *entry_extended = (char *) rte_realloc(
|
||||
entry, sizeof(char)
|
||||
* (strlen(line) + strlen(entry))
|
||||
+ 1, 0);
|
||||
|
||||
if (entry_extended == NULL)
|
||||
goto err;
|
||||
entry = entry_extended;
|
||||
|
||||
strncat(entry, line, strlen(line));
|
||||
|
||||
if (entry[strlen(entry) - 1] != ',')
|
||||
break;
|
||||
}
|
||||
}
|
||||
status = parse_entry(entry, v_vec);
|
||||
if (status) {
|
||||
printf("An error occurred while parsing!\n");
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
free(line);
|
||||
rte_free(entry);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
if (fp)
|
||||
fclose(fp);
|
||||
if (line)
|
||||
free(line);
|
||||
if (entry)
|
||||
rte_free(entry);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
struct cperf_test_vector*
|
||||
cperf_test_vector_get_from_file(struct cperf_options *opts)
|
||||
{
|
||||
int status;
|
||||
struct cperf_test_vector *test_vector = NULL;
|
||||
|
||||
if (opts == NULL || opts->test_file == NULL)
|
||||
return test_vector;
|
||||
|
||||
test_vector = (struct cperf_test_vector *) rte_zmalloc(NULL,
|
||||
sizeof(struct cperf_test_vector), 0);
|
||||
if (test_vector == NULL)
|
||||
return test_vector;
|
||||
|
||||
/* filling the vector with data from a file */
|
||||
status = parse_file(test_vector, opts->test_file);
|
||||
if (status) {
|
||||
free_test_vector(test_vector, opts);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* other values not included in the file */
|
||||
test_vector->data.cipher_offset = 0;
|
||||
test_vector->data.cipher_length = opts->buffer_sz;
|
||||
|
||||
test_vector->data.auth_offset = 0;
|
||||
test_vector->data.auth_length = opts->buffer_sz;
|
||||
|
||||
return test_vector;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user