add argument for data chunk size
parent
ea23d8d916
commit
83cccaf3a4
|
@ -34,7 +34,7 @@
|
||||||
#define CONTENT_FILE_NAME "benchmark-content.bin"
|
#define CONTENT_FILE_NAME "benchmark-content.bin"
|
||||||
#define ENCODED_FILE_NAME "test-stream-dec.p7b"
|
#define ENCODED_FILE_NAME "test-stream-dec.p7b"
|
||||||
#define DECODED_FILE_NAME "benchmark-decrypted.bin"
|
#define DECODED_FILE_NAME "benchmark-decrypted.bin"
|
||||||
#define TEST_STREAM_CHUNK_SIZE 1000
|
static int chunkSz = 1000;
|
||||||
|
|
||||||
struct timeval startTime;
|
struct timeval startTime;
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ int CreateContentFile(double contentSz)
|
||||||
typedef struct BENCHMARK_IO {
|
typedef struct BENCHMARK_IO {
|
||||||
FILE* in;
|
FILE* in;
|
||||||
FILE* out;
|
FILE* out;
|
||||||
byte buf[TEST_STREAM_CHUNK_SIZE];
|
byte* buf;
|
||||||
} BENCHMARK_IO;
|
} BENCHMARK_IO;
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ static int GetContentCB(PKCS7* pkcs7, byte** content, void* ctx)
|
||||||
BENCHMARK_IO* io = (BENCHMARK_IO*)ctx;
|
BENCHMARK_IO* io = (BENCHMARK_IO*)ctx;
|
||||||
|
|
||||||
if (io != NULL) {
|
if (io != NULL) {
|
||||||
ret = fread(io->buf, 1, TEST_STREAM_CHUNK_SIZE, io->in);
|
ret = fread(io->buf, 1, chunkSz, io->in);
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
*content = io->buf;
|
*content = io->buf;
|
||||||
}
|
}
|
||||||
|
@ -203,7 +203,8 @@ static int EncodePKCS7Bundle(double contentSz, WC_RNG* rng)
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
io.in = fopen(CONTENT_FILE_NAME, "rb");
|
io.in = fopen(CONTENT_FILE_NAME, "rb");
|
||||||
io.out = fopen(ENCODED_FILE_NAME, "wb");
|
io.out = fopen(ENCODED_FILE_NAME, "wb");
|
||||||
if (io.in == NULL || io.out == NULL) {
|
io.buf = (byte*)malloc(chunkSz);
|
||||||
|
if (io.in == NULL || io.out == NULL || io.buf == NULL) {
|
||||||
printf("Failed to open the IO files\n");
|
printf("Failed to open the IO files\n");
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
@ -240,6 +241,9 @@ static int EncodePKCS7Bundle(double contentSz, WC_RNG* rng)
|
||||||
if (io.in != NULL) {
|
if (io.in != NULL) {
|
||||||
fclose(io.in);
|
fclose(io.in);
|
||||||
}
|
}
|
||||||
|
if (io.buf != NULL) {
|
||||||
|
free(io.buf);
|
||||||
|
}
|
||||||
wc_PKCS7_Free(pkcs7);
|
wc_PKCS7_Free(pkcs7);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -275,9 +279,15 @@ static int DecodePKCS7Bundle(void)
|
||||||
FILE* f = NULL;
|
FILE* f = NULL;
|
||||||
FILE* out = NULL;
|
FILE* out = NULL;
|
||||||
double totalSz = 0;
|
double totalSz = 0;
|
||||||
byte testStreamBuffer[TEST_STREAM_CHUNK_SIZE];
|
byte *testStreamBuffer;
|
||||||
int testStreamBufferSz = 0;
|
int testStreamBufferSz = 0;
|
||||||
|
|
||||||
|
testStreamBuffer = (byte*)malloc(chunkSz);
|
||||||
|
if (testStreamBuffer == NULL) {
|
||||||
|
printf("Failed to malloc temporary buffer to hold data to process\n");
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
f = fopen(ENCODED_FILE_NAME, "rb");
|
f = fopen(ENCODED_FILE_NAME, "rb");
|
||||||
if (f == NULL) {
|
if (f == NULL) {
|
||||||
|
@ -323,8 +333,7 @@ static int DecodePKCS7Bundle(void)
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
rewind(f); /* start from the beginning of the file */
|
rewind(f); /* start from the beginning of the file */
|
||||||
do {
|
do {
|
||||||
testStreamBufferSz = (int)XFREAD(testStreamBuffer, 1,
|
testStreamBufferSz = (int)XFREAD(testStreamBuffer, 1, chunkSz, f);
|
||||||
sizeof(testStreamBuffer), f);
|
|
||||||
if (testStreamBufferSz == 0) {
|
if (testStreamBufferSz == 0) {
|
||||||
printf("Read 0 bytes from file...");
|
printf("Read 0 bytes from file...");
|
||||||
if (feof(f)) {
|
if (feof(f)) {
|
||||||
|
@ -354,6 +363,10 @@ static int DecodePKCS7Bundle(void)
|
||||||
fclose(out);
|
fclose(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (testStreamBuffer != NULL) {
|
||||||
|
free(testStreamBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
wc_PKCS7_Free(pkcs7);
|
wc_PKCS7_Free(pkcs7);
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
|
@ -373,7 +386,16 @@ int main(int argc, char** argv)
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
|
if (strcmp(argv[1], "-h") == 0) {
|
||||||
|
printf("USAGE: %s <content data size> <chunk to read at once>\n",
|
||||||
|
argv[0]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
contentSz = atof(argv[1]);
|
contentSz = atof(argv[1]);
|
||||||
|
|
||||||
|
if (argc > 2) {
|
||||||
|
chunkSz = atoi(argv[2]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = wolfCrypt_Init();
|
ret = wolfCrypt_Init();
|
||||||
|
@ -388,8 +410,7 @@ int main(int argc, char** argv)
|
||||||
|
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
printf("Benchmarking with content size of %.0f bytes\n", contentSz);
|
printf("Benchmarking with content size of %.0f bytes\n", contentSz);
|
||||||
printf("Reading and writing files in chuncks of %d bytes\n",
|
printf("Reading and writing files in chunks of %d bytes\n", chunkSz);
|
||||||
TEST_STREAM_CHUNK_SIZE);
|
|
||||||
printf("Using AES-256 CBC encryption\n");
|
printf("Using AES-256 CBC encryption\n");
|
||||||
printf("Using RSA-2048 key\n\n");
|
printf("Using RSA-2048 key\n\n");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue