blob: 83f3ea956ac638db49edf81bfebbed76a11b36e8 [file] [log] [blame]
Etienne Carriere9b7b70d2020-05-16 10:27:23 +02001// SPDX-License-Identifier: GPL-2.0
Igor Opaniuk136644a2016-09-13 13:40:56 +03002/*
3 * Copyright (c) 2015, Linaro Limited
Igor Opaniuk136644a2016-09-13 13:40:56 +03004 */
5
6#include <stdio.h>
7#include <stdlib.h>
8#include <string.h>
9
10#include "xtest_test.h"
11#include "xtest_helpers.h"
12
Igor Opaniukf9b7fd22016-09-16 16:22:34 +030013#include <crypto_common.h>
Igor Opaniuk136644a2016-09-13 13:40:56 +030014#include <util.h>
15
Igor Opaniuk44aff4b2016-09-16 10:18:00 +030016/* SHA bechmarks */
Igor Opaniuk136644a2016-09-13 13:40:56 +030017static void xtest_tee_benchmark_2001(ADBG_Case_t *Case_p);
18static void xtest_tee_benchmark_2002(ADBG_Case_t *Case_p);
19
Igor Opaniuk44aff4b2016-09-16 10:18:00 +030020/* AES benchmarks */
21static void xtest_tee_benchmark_2011(ADBG_Case_t *Case_p);
22static void xtest_tee_benchmark_2012(ADBG_Case_t *Case_p);
23
24/* ----------------------------------------------------------------------- */
25/* -------------------------- SHA Benchmarks ----------------------------- */
26/* ----------------------------------------------------------------------- */
27
Igor Opaniuk136644a2016-09-13 13:40:56 +030028static void xtest_tee_benchmark_2001(ADBG_Case_t *c)
29{
30 UNUSED(c);
31
32 int algo = TA_SHA_SHA1; /* Algorithm */
33 size_t size = 1024; /* Buffer size */
34 int offset = 0; /* Buffer offset wrt. alloc'ed address */
35
Igor Opaniukf9b7fd22016-09-16 16:22:34 +030036 sha_perf_run_test(algo, size, CRYPTO_DEF_COUNT,
37 CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM, offset,
38 CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
Igor Opaniuk136644a2016-09-13 13:40:56 +030039
40}
41
42static void xtest_tee_benchmark_2002(ADBG_Case_t *c)
43{
44 UNUSED(c);
45
46 int algo = TA_SHA_SHA256; /* Algorithm */
47 size_t size = 4096; /* Buffer size */
48 int offset = 0; /* Buffer offset wrt. alloc'ed address */
49
Igor Opaniukf9b7fd22016-09-16 16:22:34 +030050 sha_perf_run_test(algo, size, CRYPTO_DEF_COUNT,
51 CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM, offset,
52 CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
Igor Opaniuk136644a2016-09-13 13:40:56 +030053
54}
55
Jens Wiklander74abfe32017-01-03 14:17:47 +010056ADBG_CASE_DEFINE(benchmark, 2001, xtest_tee_benchmark_2001,
Jens Wiklander25a57fe2016-12-26 21:46:24 +010057 "TEE SHA Performance test (TA_SHA_SHA1)");
Jens Wiklander74abfe32017-01-03 14:17:47 +010058ADBG_CASE_DEFINE(benchmark, 2002, xtest_tee_benchmark_2002,
Jens Wiklander25a57fe2016-12-26 21:46:24 +010059 "TEE SHA Performance test (TA_SHA_SHA226)");
Igor Opaniuk136644a2016-09-13 13:40:56 +030060
Igor Opaniuk44aff4b2016-09-16 10:18:00 +030061
62/* ----------------------------------------------------------------------- */
63/* -------------------------- AES Benchmarks ----------------------------- */
64/* ----------------------------------------------------------------------- */
65
66static void xtest_tee_benchmark_2011(ADBG_Case_t *c)
67{
68 UNUSED(c);
69
70 int mode = TA_AES_ECB; /* AES mode */
71 int decrypt = 0; /* Encrypt */
72 int keysize = AES_128;
73 size_t size = 1024; /* Buffer size */
74
Jerome Forissiera410edb2018-03-08 10:36:37 +010075 aes_perf_run_test(mode, keysize, decrypt, size, CRYPTO_DEF_UNIT_SIZE,
76 CRYPTO_DEF_COUNT, CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM,
77 AES_PERF_INPLACE, CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
Igor Opaniuk44aff4b2016-09-16 10:18:00 +030078}
79
80static void xtest_tee_benchmark_2012(ADBG_Case_t *c)
81{
82 UNUSED(c);
83
Igor Opaniukf9b7fd22016-09-16 16:22:34 +030084 int mode = TA_AES_CBC; /* AES mode */
Igor Opaniuk44aff4b2016-09-16 10:18:00 +030085 int decrypt = 0; /* Encrypt */
Igor Opaniukf9b7fd22016-09-16 16:22:34 +030086 int keysize = AES_256;
Igor Opaniuk44aff4b2016-09-16 10:18:00 +030087 size_t size = 1024; /* Buffer size */
88
Jerome Forissiera410edb2018-03-08 10:36:37 +010089 aes_perf_run_test(mode, keysize, decrypt, size, CRYPTO_DEF_UNIT_SIZE,
90 CRYPTO_DEF_COUNT, CRYPTO_DEF_LOOPS, CRYPTO_USE_RANDOM,
91 AES_PERF_INPLACE, CRYPTO_DEF_WARMUP, CRYPTO_DEF_VERBOSITY);
Igor Opaniuk44aff4b2016-09-16 10:18:00 +030092}
93
Jens Wiklander74abfe32017-01-03 14:17:47 +010094ADBG_CASE_DEFINE(benchmark, 2011, xtest_tee_benchmark_2011,
Jens Wiklander25a57fe2016-12-26 21:46:24 +010095 "TEE AES Performance test (TA_AES_ECB)");
Jens Wiklander74abfe32017-01-03 14:17:47 +010096ADBG_CASE_DEFINE(benchmark, 2012, xtest_tee_benchmark_2012,
Jens Wiklander25a57fe2016-12-26 21:46:24 +010097 "TEE AES Performance test (TA_AES_CBC)");