Mistake on this page?
Report an issue in GitHub or email us
compliance_crypto/test_c022/test_data.h
Go to the documentation of this file.
1 /** @file
2  * Copyright (c) 2019, Arm Limited or its affiliates. All rights reserved.
3  * SPDX-License-Identifier : Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16 **/
17 
18 #include "val_crypto.h"
19 
20 typedef struct {
21  char test_desc[75];
22  psa_key_handle_t key_handle;
23  psa_key_type_t key_type;
24  uint8_t key_data[32];
25  uint32_t key_length;
26  psa_key_usage_t usage;
27  psa_algorithm_t key_alg;
28  const uint8_t salt[16];
29  size_t salt_length;
30  const uint8_t label[16];
31  size_t label_length;
32  size_t capacity;
33  psa_status_t expected_status;
34 } test_data;
35 
36 static test_data check1[] = {
37 #ifdef ARCH_TEST_HKDF
38 #ifdef ARCH_TEST_SHA256
39 {"Test psa_key_derivation to get 16 Byte data with SHA-256\n", 1, PSA_KEY_TYPE_DERIVE,
40 {0x49, 0x8E, 0xC7, 0x7D, 0x01, 0x95, 0x0D, 0x94, 0x2C, 0x16, 0xA5, 0x3E, 0x99,
41  0x5F, 0xC9},
42  AES_16B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_HKDF(PSA_ALG_SHA_256),
43  {0}, 0, {0}, 0, 32,
44  PSA_SUCCESS
45 },
46 #endif
47 
48 #ifdef ARCH_TEST_SHA512
49 {"Test psa_key_derivation to get 32 Byte data with SHA-512\n", 2, PSA_KEY_TYPE_DERIVE,
50 {0xEA, 0xD5, 0xE6, 0xC8, 0x51, 0xF9, 0xEC, 0xBB, 0x9B, 0x57, 0x7C, 0xED, 0xD2,
51  0x4B, 0x82, 0x84, 0x9F, 0x9F, 0xE6, 0x73, 0x21, 0x3D, 0x1A, 0x05, 0xC9, 0xED,
52  0xDF, 0x25, 0x17, 0x68, 0x86, 0xAE},
53  AES_32B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_HKDF(PSA_ALG_SHA_512),
54  {0}, 0, {0}, 0, 64,
55  PSA_SUCCESS
56 },
57 #endif
58 
59 #ifdef ARCH_TEST_MD5
60 {"Test psa_key_derivation to get 32 Byte data with MD-5\n", 3, PSA_KEY_TYPE_DERIVE,
61 {0xEA, 0xD5, 0xE6, 0xC8, 0x51, 0xF9, 0xEC, 0xBB, 0x9B, 0x57, 0x7C, 0xED, 0xD2,
62  0x4B, 0x82, 0x84, 0x9F, 0x9F, 0xE6, 0x73, 0x21, 0x3D, 0x1A, 0x05, 0xC9, 0xED,
63  0xDF, 0x25, 0x17, 0x68, 0x86, 0xAE},
64  AES_32B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_HKDF(PSA_ALG_MD5),
65  {0}, 0, {0}, 0, 64,
66  PSA_SUCCESS
67 },
68 #endif
69 
70 #ifdef ARCH_TEST_SHA256
71 {"Test psa_key_derivation to get 16 Byte data with salt and label\n", 4, PSA_KEY_TYPE_DERIVE,
72 {0x49, 0x8E, 0xC7, 0x7D, 0x01, 0x95, 0x0D, 0x94, 0x2C, 0x16, 0xA5, 0x3E, 0x99,
73  0x5F, 0xC9},
74  AES_16B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_HKDF(PSA_ALG_SHA_256),
75  "abcdefghijklmnop", 16, "This is a label", 15, 32,
76  PSA_SUCCESS
77 },
78 #endif
79 
80 #ifdef ARCH_TEST_SHA1
81 {"Test psa_key_derivation with too large capacity for alg and key\n", 6, PSA_KEY_TYPE_DERIVE,
82 {0x49, 0x8E, 0xC7, 0x7D, 0x01, 0x95, 0x0D, 0x94, 0x2C, 0x16, 0xA5, 0x3E, 0x99,
83  0x5F, 0xC9},
84  AES_16B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_HKDF(PSA_ALG_SHA_1),
85  {0}, 0, {0}, 0, 5200,
86  PSA_ERROR_INVALID_ARGUMENT
87 },
88 #endif
89 
90 #ifdef ARCH_TEST_SHA256
91 {"Test psa_key_derivation with unsupported key type\n", 11, PSA_KEY_TYPE_AES,
92 {0x49, 0x8E, 0xC7, 0x7D, 0x01, 0x95, 0x0D, 0x94, 0x2C, 0x16, 0xA5, 0x3E, 0x99,
93  0x5F, 0xC9},
94  AES_16B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_HKDF(PSA_ALG_SHA_256),
95  {0}, 0, {0}, 0, 32,
96  PSA_ERROR_INVALID_ARGUMENT
97 },
98 
99 {"Test psa_key_derivation with incorrect usage\n", 12, PSA_KEY_TYPE_DERIVE,
100 {0x49, 0x8E, 0xC7, 0x7D, 0x01, 0x95, 0x0D, 0x94, 0x2C, 0x16, 0xA5, 0x3E, 0x99,
101  0x5F, 0xC9},
102  AES_16B_KEY_SIZE, PSA_KEY_USAGE_ENCRYPT, PSA_ALG_HKDF(PSA_ALG_SHA_256),
103  {0}, 0, {0}, 0, 32,
104  PSA_ERROR_NOT_PERMITTED
105 },
106 #endif
107 #endif
108 
109 #ifdef ARCH_TEST_RSA_PKCS1V15_CRYPT
110 {"Test psa_key_derivation with invalid algorithm\n", 5, PSA_KEY_TYPE_DERIVE,
111 {0xEA, 0xD5, 0xE6, 0xC8, 0x51, 0xF9, 0xEC, 0xBB, 0x9B, 0x57, 0x7C, 0xED, 0xD2,
112  0x4B, 0x82, 0x84, 0x9F, 0x9F, 0xE6, 0x73, 0x21, 0x3D, 0x1A, 0x05, 0xC9, 0xED,
113  0xDF, 0x25, 0x17, 0x68, 0x86, 0xAE},
114  AES_32B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_RSA_PKCS1V15_CRYPT,
115  {0}, 0, {0}, 0, 64,
116  PSA_ERROR_INVALID_ARGUMENT
117 },
118 #endif
119 
120 };
121 
122 static test_data check2[] = {
123 #ifdef ARCH_TEST_HKDF
124 #ifdef ARCH_TEST_SHA512
125 {"Test psa_key_derivation to get 32 Byte data with SHA-512\n", 13, PSA_KEY_TYPE_DERIVE,
126 {0xEA, 0xD5, 0xE6, 0xC8, 0x51, 0xF9, 0xEC, 0xBB, 0x9B, 0x57, 0x7C, 0xED, 0xD2,
127  0x4B, 0x82, 0x84, 0x9F, 0x9F, 0xE6, 0x73, 0x21, 0x3D, 0x1A, 0x05, 0xC9, 0xED,
128  0xDF, 0x25, 0x17, 0x68, 0x86, 0xAE},
129  AES_32B_KEY_SIZE, PSA_KEY_USAGE_DERIVE, PSA_ALG_HKDF(PSA_ALG_SHA_512),
130  {0}, 0, {0}, 0, 64,
131  PSA_SUCCESS
132 },
133 #endif
134 #endif
135 
136 };
Copyright (c) 2018-2019, Arm Limited or its affiliates.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.