• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *    http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include <iostream>
18 
19 #include "file_ex.h"
20 #include "hks_ability.h"
21 #include "hks_config.h"
22 #include "hks_crypto_hal.h"
23 #include "hks_crypto_hal_common.h"
24 #include "hks_mem.h"
25 #include "hks_log.h"
26 #include "hks_params_key_data_01.h"
27 #include "hks_params_key_data_02.h"
28 
29 using namespace testing::ext;
30 namespace OHOS {
31 namespace Security {
32 namespace Huks {
33 namespace UnitTest {
34 namespace {
35 struct TestCaseParams {
36     HksUsageSpec usageSpec = {0};
37     std::string keyData;
38     std::string hexData;
39     HksKeySize keySize = HksKeySize::HKS_RSA_KEY_SIZE_512;
40 
41     HksErrorCode encryptResult = HksErrorCode::HKS_SUCCESS;
42 };
43 
44 #ifdef HKS_UNTRUSTED_RUNNING_ENV
45 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_013_PARAMS = {
46     .usageSpec = {
47         .algType = HKS_ALG_RSA,
48         .mode = HKS_MODE_ECB,
49         .padding = HKS_PADDING_OAEP,
50         .digest = HKS_DIGEST_SHA1,
51         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
52         .algParam = nullptr,
53     },
54     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_013_PARAMS_KEY_DATA
55     .hexData = "00112233445566778899aabbccdd",
56     .keySize = HKS_RSA_KEY_SIZE_512,
57 
58     .encryptResult = HKS_SUCCESS,
59 };
60 
61 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_014_PARAMS = {
62     .usageSpec = {
63         .algType = HKS_ALG_RSA,
64         .mode = HKS_MODE_ECB,
65         .padding = HKS_PADDING_OAEP,
66         .digest = HKS_DIGEST_SHA1,
67         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
68         .algParam = nullptr,
69     },
70     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_014_PARAMS_KEY_DATA
71     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
72     .keySize = HKS_RSA_KEY_SIZE_768,
73 
74     .encryptResult = HKS_SUCCESS,
75 };
76 
77 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_015_PARAMS = {
78     .usageSpec = {
79         .algType = HKS_ALG_RSA,
80         .mode = HKS_MODE_ECB,
81         .padding = HKS_PADDING_OAEP,
82         .digest = HKS_DIGEST_SHA1,
83         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
84         .algParam = nullptr,
85     },
86     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_015_PARAMS_KEY_DATA
87     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
88     .keySize = HKS_RSA_KEY_SIZE_1024,
89 
90     .encryptResult = HKS_SUCCESS,
91 };
92 
93 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_016_PARAMS = {
94     .usageSpec = {
95         .algType = HKS_ALG_RSA,
96         .mode = HKS_MODE_ECB,
97         .padding = HKS_PADDING_OAEP,
98         .digest = HKS_DIGEST_SHA1,
99         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
100         .algParam = nullptr,
101     },
102     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_016_PARAMS_KEY_DATA
103     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
104     .keySize = HKS_RSA_KEY_SIZE_2048,
105 
106     .encryptResult = HKS_SUCCESS,
107 };
108 
109 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_017_PARAMS = {
110     .usageSpec = {
111         .algType = HKS_ALG_RSA,
112         .mode = HKS_MODE_ECB,
113         .padding = HKS_PADDING_OAEP,
114         .digest = HKS_DIGEST_SHA1,
115         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
116         .algParam = nullptr,
117     },
118     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_017_PARAMS_KEY_DATA
119     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
120     .keySize = HKS_RSA_KEY_SIZE_3072,
121 
122     .encryptResult = HKS_SUCCESS,
123 };
124 
125 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_018_PARAMS = {
126     .usageSpec = {
127         .algType = HKS_ALG_RSA,
128         .mode = HKS_MODE_ECB,
129         .padding = HKS_PADDING_OAEP,
130         .digest = HKS_DIGEST_SHA1,
131         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
132         .algParam = nullptr,
133     },
134     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_018_PARAMS_KEY_DATA
135     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
136     .keySize = HKS_RSA_KEY_SIZE_4096,
137 
138     .encryptResult = HKS_SUCCESS,
139 };
140 
141 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_019_PARAMS = {
142     .usageSpec = {
143         .algType = HKS_ALG_RSA,
144         .mode = HKS_MODE_ECB,
145         .padding = HKS_PADDING_OAEP,
146         .digest = HKS_DIGEST_SHA224,
147         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
148         .algParam = nullptr,
149     },
150     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_019_PARAMS_KEY_DATA
151     .hexData = "001122334455",
152     .keySize = HKS_RSA_KEY_SIZE_512,
153 
154     .encryptResult = HKS_SUCCESS,
155 };
156 
157 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_020_PARAMS = {
158     .usageSpec = {
159         .algType = HKS_ALG_RSA,
160         .mode = HKS_MODE_ECB,
161         .padding = HKS_PADDING_OAEP,
162         .digest = HKS_DIGEST_SHA224,
163         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
164         .algParam = nullptr,
165     },
166     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_020_PARAMS_KEY_DATA
167     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
168     .keySize = HKS_RSA_KEY_SIZE_768,
169 
170     .encryptResult = HKS_SUCCESS,
171 };
172 
173 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_021_PARAMS = {
174     .usageSpec = {
175         .algType = HKS_ALG_RSA,
176         .mode = HKS_MODE_ECB,
177         .padding = HKS_PADDING_OAEP,
178         .digest = HKS_DIGEST_SHA224,
179         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
180         .algParam = nullptr,
181     },
182     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_021_PARAMS_KEY_DATA
183     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
184     .keySize = HKS_RSA_KEY_SIZE_1024,
185 
186     .encryptResult = HKS_SUCCESS,
187 };
188 
189 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_022_PARAMS = {
190     .usageSpec = {
191         .algType = HKS_ALG_RSA,
192         .mode = HKS_MODE_ECB,
193         .padding = HKS_PADDING_OAEP,
194         .digest = HKS_DIGEST_SHA224,
195         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
196         .algParam = nullptr,
197     },
198     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_022_PARAMS_KEY_DATA
199     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
200     .keySize = HKS_RSA_KEY_SIZE_2048,
201 
202     .encryptResult = HKS_SUCCESS,
203 };
204 
205 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_023_PARAMS = {
206     .usageSpec = {
207         .algType = HKS_ALG_RSA,
208         .mode = HKS_MODE_ECB,
209         .padding = HKS_PADDING_OAEP,
210         .digest = HKS_DIGEST_SHA224,
211         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
212         .algParam = nullptr,
213     },
214     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_023_PARAMS_KEY_DATA
215     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
216     .keySize = HKS_RSA_KEY_SIZE_3072,
217 
218     .encryptResult = HKS_SUCCESS,
219 };
220 
221 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_024_PARAMS = {
222     .usageSpec = {
223         .algType = HKS_ALG_RSA,
224         .mode = HKS_MODE_ECB,
225         .padding = HKS_PADDING_OAEP,
226         .digest = HKS_DIGEST_SHA224,
227         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
228         .algParam = nullptr,
229     },
230     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_024_PARAMS_KEY_DATA
231     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
232     .keySize = HKS_RSA_KEY_SIZE_4096,
233 
234     .encryptResult = HKS_SUCCESS,
235 };
236 
237 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_025_PARAMS = {
238     .usageSpec = {
239         .algType = HKS_ALG_RSA,
240         .mode = HKS_MODE_ECB,
241         .padding = HKS_PADDING_OAEP,
242         .digest = HKS_DIGEST_SHA256,
243         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
244         .algParam = nullptr,
245     },
246     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_025_PARAMS_KEY_DATA
247     .hexData = "00112233",
248     .keySize = HKS_RSA_KEY_SIZE_512,
249     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
250 };
251 
252 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_026_PARAMS = {
253     .usageSpec = {
254         .algType = HKS_ALG_RSA,
255         .mode = HKS_MODE_ECB,
256         .padding = HKS_PADDING_OAEP,
257         .digest = HKS_DIGEST_SHA256,
258         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
259         .algParam = nullptr,
260     },
261     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_026_PARAMS_KEY_DATA
262     .hexData = "00112233445566778899aabbccdd",
263     .keySize = HKS_RSA_KEY_SIZE_768,
264 
265     .encryptResult = HKS_SUCCESS,
266 };
267 
268 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_027_PARAMS = {
269     .usageSpec = {
270         .algType = HKS_ALG_RSA,
271         .mode = HKS_MODE_ECB,
272         .padding = HKS_PADDING_OAEP,
273         .digest = HKS_DIGEST_SHA256,
274         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
275         .algParam = nullptr,
276     },
277     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_027_PARAMS_KEY_DATA
278     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
279     .keySize = HKS_RSA_KEY_SIZE_1024,
280 
281     .encryptResult = HKS_SUCCESS,
282 };
283 #endif
284 
285 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_028_PARAMS = {
286     .usageSpec = {
287         .algType = HKS_ALG_RSA,
288         .mode = HKS_MODE_ECB,
289         .padding = HKS_PADDING_OAEP,
290         .digest = HKS_DIGEST_SHA256,
291         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
292         .algParam = nullptr,
293     },
294     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_028_PARAMS_KEY_DATA
295     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
296     .keySize = HKS_RSA_KEY_SIZE_2048,
297 
298     .encryptResult = HKS_SUCCESS,
299 };
300 
301 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_029_PARAMS = {
302     .usageSpec = {
303         .algType = HKS_ALG_RSA,
304         .mode = HKS_MODE_ECB,
305         .padding = HKS_PADDING_OAEP,
306         .digest = HKS_DIGEST_SHA256,
307         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
308         .algParam = nullptr,
309     },
310     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_029_PARAMS_KEY_DATA
311     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
312     .keySize = HKS_RSA_KEY_SIZE_3072,
313 
314     .encryptResult = HKS_SUCCESS,
315 };
316 
317 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_030_PARAMS = {
318     .usageSpec = {
319         .algType = HKS_ALG_RSA,
320         .mode = HKS_MODE_ECB,
321         .padding = HKS_PADDING_OAEP,
322         .digest = HKS_DIGEST_SHA256,
323         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
324         .algParam = nullptr,
325     },
326     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_030_PARAMS_KEY_DATA
327     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
328     .keySize = HKS_RSA_KEY_SIZE_4096,
329 
330     .encryptResult = HKS_SUCCESS,
331 };
332 
333 #ifdef HKS_UNTRUSTED_RUNNING_ENV
334 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_031_PARAMS = {
335     .usageSpec = {
336         .algType = HKS_ALG_RSA,
337         .mode = HKS_MODE_ECB,
338         .padding = HKS_PADDING_OAEP,
339         .digest = HKS_DIGEST_SHA384,
340         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
341         .algParam = nullptr,
342     },
343     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_031_PARAMS_KEY_DATA
344     .hexData = "001122334455",
345     .keySize = HKS_RSA_KEY_SIZE_512,
346     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
347 };
348 
349 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_032_PARAMS = {
350     .usageSpec = {
351         .algType = HKS_ALG_RSA,
352         .mode = HKS_MODE_ECB,
353         .padding = HKS_PADDING_OAEP,
354         .digest = HKS_DIGEST_SHA384,
355         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
356         .algParam = nullptr,
357     },
358     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_032_PARAMS_KEY_DATA
359     .hexData = "001122334455",
360     .keySize = HKS_RSA_KEY_SIZE_768,
361     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
362 };
363 
364 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_033_PARAMS = {
365     .usageSpec = {
366         .algType = HKS_ALG_RSA,
367         .mode = HKS_MODE_ECB,
368         .padding = HKS_PADDING_OAEP,
369         .digest = HKS_DIGEST_SHA384,
370         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
371         .algParam = nullptr,
372     },
373     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_033_PARAMS_KEY_DATA
374     .hexData = "00112233445566778899aabbccdd",
375     .keySize = HKS_RSA_KEY_SIZE_1024,
376 
377     .encryptResult = HKS_SUCCESS,
378 };
379 #endif
380 
381 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_034_PARAMS = {
382     .usageSpec = {
383         .algType = HKS_ALG_RSA,
384         .mode = HKS_MODE_ECB,
385         .padding = HKS_PADDING_OAEP,
386         .digest = HKS_DIGEST_SHA384,
387         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
388         .algParam = nullptr,
389     },
390     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_034_PARAMS_KEY_DATA
391     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
392     .keySize = HKS_RSA_KEY_SIZE_2048,
393 
394     .encryptResult = HKS_SUCCESS,
395 };
396 
397 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_035_PARAMS = {
398     .usageSpec = {
399         .algType = HKS_ALG_RSA,
400         .mode = HKS_MODE_ECB,
401         .padding = HKS_PADDING_OAEP,
402         .digest = HKS_DIGEST_SHA384,
403         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
404         .algParam = nullptr,
405     },
406     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_035_PARAMS_KEY_DATA
407     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
408     .keySize = HKS_RSA_KEY_SIZE_3072,
409 
410     .encryptResult = HKS_SUCCESS,
411 };
412 
413 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_036_PARAMS = {
414     .usageSpec = {
415         .algType = HKS_ALG_RSA,
416         .mode = HKS_MODE_ECB,
417         .padding = HKS_PADDING_OAEP,
418         .digest = HKS_DIGEST_SHA384,
419         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
420         .algParam = nullptr,
421     },
422     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_036_PARAMS_KEY_DATA
423     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
424     .keySize = HKS_RSA_KEY_SIZE_4096,
425 
426     .encryptResult = HKS_SUCCESS,
427 };
428 
429 #ifdef HKS_UNTRUSTED_RUNNING_ENV
430 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_037_PARAMS = {
431     .usageSpec = {
432         .algType = HKS_ALG_RSA,
433         .mode = HKS_MODE_ECB,
434         .padding = HKS_PADDING_OAEP,
435         .digest = HKS_DIGEST_SHA512,
436         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
437         .algParam = nullptr,
438     },
439     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_037_PARAMS_KEY_DATA
440     .hexData = "001122334455",
441     .keySize = HKS_RSA_KEY_SIZE_512,
442     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
443 };
444 
445 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_038_PARAMS = {
446     .usageSpec = {
447         .algType = HKS_ALG_RSA,
448         .mode = HKS_MODE_ECB,
449         .padding = HKS_PADDING_OAEP,
450         .digest = HKS_DIGEST_SHA512,
451         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
452         .algParam = nullptr,
453     },
454     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_038_PARAMS_KEY_DATA
455     .hexData = "001122334455",
456     .keySize = HKS_RSA_KEY_SIZE_768,
457     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
458 };
459 
460 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_039_PARAMS = {
461     .usageSpec = {
462         .algType = HKS_ALG_RSA,
463         .mode = HKS_MODE_ECB,
464         .padding = HKS_PADDING_OAEP,
465         .digest = HKS_DIGEST_SHA512,
466         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
467         .algParam = nullptr,
468     },
469     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_039_PARAMS_KEY_DATA
470     .hexData = "001122334455",
471     .keySize = HKS_RSA_KEY_SIZE_1024,
472     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
473 };
474 #endif
475 
476 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_040_PARAMS = {
477     .usageSpec = {
478         .algType = HKS_ALG_RSA,
479         .mode = HKS_MODE_ECB,
480         .padding = HKS_PADDING_OAEP,
481         .digest = HKS_DIGEST_SHA512,
482         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
483         .algParam = nullptr,
484     },
485     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_040_PARAMS_KEY_DATA
486     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
487     .keySize = HKS_RSA_KEY_SIZE_2048,
488 
489     .encryptResult = HKS_SUCCESS,
490 };
491 
492 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_041_PARAMS = {
493     .usageSpec = {
494         .algType = HKS_ALG_RSA,
495         .mode = HKS_MODE_ECB,
496         .padding = HKS_PADDING_OAEP,
497         .digest = HKS_DIGEST_SHA512,
498         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
499         .algParam = nullptr,
500     },
501     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_041_PARAMS_KEY_DATA
502     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
503     .keySize = HKS_RSA_KEY_SIZE_3072,
504 
505     .encryptResult = HKS_SUCCESS,
506 };
507 
508 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_042_PARAMS = {
509     .usageSpec = {
510         .algType = HKS_ALG_RSA,
511         .mode = HKS_MODE_ECB,
512         .padding = HKS_PADDING_OAEP,
513         .digest = HKS_DIGEST_SHA512,
514         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
515         .algParam = nullptr,
516     },
517     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_042_PARAMS_KEY_DATA
518     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
519     .keySize = HKS_RSA_KEY_SIZE_4096,
520 
521     .encryptResult = HKS_SUCCESS,
522 };
523 
524 #ifdef HKS_UNTRUSTED_RUNNING_ENV
525 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_043_PARAMS = {
526     .usageSpec = {
527         .algType = HKS_ALG_RSA,
528         .mode = HKS_MODE_ECB,
529         .padding = HKS_PADDING_OAEP,
530         .digest = HKS_DIGEST_NONE,
531         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
532         .algParam = nullptr,
533     },
534     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_043_PARAMS_KEY_DATA
535     .hexData = "001122334455",
536     .keySize = HKS_RSA_KEY_SIZE_512,
537 #if defined(_USE_OPENSSL_)
538     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
539 #endif
540 #if defined(_USE_MBEDTLS_)
541     .encryptResult = HKS_ERROR_INVALID_DIGEST,
542 #endif
543 };
544 
545 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_044_PARAMS = {
546     .usageSpec = {
547         .algType = HKS_ALG_RSA,
548         .mode = HKS_MODE_ECB,
549         .padding = HKS_PADDING_OAEP,
550         .digest = HKS_DIGEST_NONE,
551         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
552         .algParam = nullptr,
553     },
554     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_044_PARAMS_KEY_DATA
555     .hexData = "00112233445566778899aabbccdd",
556     .keySize = HKS_RSA_KEY_SIZE_768,
557 #if defined(_USE_OPENSSL_)
558     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
559 #endif
560 #if defined(_USE_MBEDTLS_)
561     .encryptResult = HKS_ERROR_INVALID_DIGEST,
562 #endif
563 };
564 
565 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_045_PARAMS = {
566     .usageSpec = {
567         .algType = HKS_ALG_RSA,
568         .mode = HKS_MODE_ECB,
569         .padding = HKS_PADDING_OAEP,
570         .digest = HKS_DIGEST_NONE,
571         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
572         .algParam = nullptr,
573     },
574     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_045_PARAMS_KEY_DATA
575     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
576     .keySize = HKS_RSA_KEY_SIZE_1024,
577 #if defined(_USE_OPENSSL_)
578     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
579 #endif
580 #if defined(_USE_MBEDTLS_)
581     .encryptResult = HKS_ERROR_INVALID_DIGEST,
582 #endif
583 };
584 #endif
585 
586 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_046_PARAMS = {
587     .usageSpec = {
588         .algType = HKS_ALG_RSA,
589         .mode = HKS_MODE_ECB,
590         .padding = HKS_PADDING_OAEP,
591         .digest = HKS_DIGEST_NONE,
592         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
593         .algParam = nullptr,
594     },
595     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_046_PARAMS_KEY_DATA
596     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
597     .keySize = HKS_RSA_KEY_SIZE_2048,
598 #if defined(_USE_OPENSSL_)
599     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
600 #endif
601 #if defined(_USE_MBEDTLS_)
602     .encryptResult = HKS_ERROR_INVALID_DIGEST,
603 #endif
604 };
605 
606 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_047_PARAMS = {
607     .usageSpec = {
608         .algType = HKS_ALG_RSA,
609         .mode = HKS_MODE_ECB,
610         .padding = HKS_PADDING_OAEP,
611         .digest = HKS_DIGEST_NONE,
612         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
613         .algParam = nullptr,
614     },
615     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_047_PARAMS_KEY_DATA
616     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
617     .keySize = HKS_RSA_KEY_SIZE_3072,
618 #if defined(_USE_OPENSSL_)
619     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
620 #endif
621 #if defined(_USE_MBEDTLS_)
622     .encryptResult = HKS_ERROR_INVALID_DIGEST,
623 #endif
624 };
625 
626 const TestCaseParams HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_048_PARAMS = {
627     .usageSpec = {
628         .algType = HKS_ALG_RSA,
629         .mode = HKS_MODE_ECB,
630         .padding = HKS_PADDING_OAEP,
631         .digest = HKS_DIGEST_NONE,
632         .purpose = HKS_KEY_PURPOSE_ENCRYPT | HKS_KEY_PURPOSE_DECRYPT,
633         .algParam = nullptr,
634     },
635     .keyData = HKS_CRYPTO_HAL_RSA_OAEP_048_PARAMS_KEY_DATA
636     .hexData = "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff",
637     .keySize = HKS_RSA_KEY_SIZE_4096,
638 #if defined(_USE_OPENSSL_)
639     .encryptResult = HKS_ERROR_CRYPTO_ENGINE_ERROR,
640 #endif
641 #if defined(_USE_MBEDTLS_)
642     .encryptResult = HKS_ERROR_INVALID_DIGEST,
643 #endif
644 };
645 }  // namespace
646 
647 class HksCryptoHalRsaOaepEncrypt : public HksCryptoHalCommon, public testing::Test {
648 public:
649     static void SetUpTestCase(void);
650     static void TearDownTestCase(void);
651     void SetUp();
652     void TearDown();
653 protected:
RunTestCase(const TestCaseParams & testCaseParams) const654     void RunTestCase(const TestCaseParams &testCaseParams) const
655     {
656         uint32_t keyLen = testCaseParams.keyData.length() / HKS_COUNT_OF_HALF;
657         HksBlob key = { .size = keyLen, .data = (uint8_t *)HksMalloc(keyLen) };
658         ASSERT_EQ(key.data == nullptr, false) << "key malloc failed.";
659         for (uint32_t ii = 0; ii < keyLen; ii++) {
660             key.data[ii] = ReadHex((const uint8_t *)&testCaseParams.keyData[HKS_COUNT_OF_HALF * ii]);
661         }
662 
663         uint32_t inLen = testCaseParams.hexData.length() / HKS_COUNT_OF_HALF;
664         uint32_t outLen = HKS_KEY_BYTES(testCaseParams.keySize);
665 
666         HksBlob message = { .size = inLen, .data = (uint8_t *)HksMalloc(inLen) };
667         ASSERT_EQ(message.data == nullptr, false) << "message malloc failed.";
668         for (uint32_t ii = 0; ii < inLen; ii++) {
669             message.data[ii] = ReadHex((const uint8_t *)&testCaseParams.hexData[HKS_COUNT_OF_HALF * ii]);
670         }
671 
672         HksBlob cipherText = { .size = outLen, .data = (uint8_t *)HksMalloc(outLen + HKS_PADDING_SUPPLENMENT) };
673         ASSERT_EQ(cipherText.data == nullptr, false) << "cipherText malloc failed.";
674         HksBlob tagAead = { .size = 0, .data = nullptr };
675 
676         EXPECT_EQ(HksCryptoHalEncrypt(&key, &testCaseParams.usageSpec, &message, &cipherText, &tagAead),
677             testCaseParams.encryptResult);
678         HKS_FREE(key.data);
679         HKS_FREE(message.data);
680         HKS_FREE(cipherText.data);
681     }
682 };
683 
SetUpTestCase(void)684 void HksCryptoHalRsaOaepEncrypt::SetUpTestCase(void)
685 {
686 }
687 
TearDownTestCase(void)688 void HksCryptoHalRsaOaepEncrypt::TearDownTestCase(void)
689 {
690 }
691 
SetUp()692 void HksCryptoHalRsaOaepEncrypt::SetUp()
693 {
694     EXPECT_EQ(HksCryptoAbilityInit(), 0);
695 }
696 
TearDown()697 void HksCryptoHalRsaOaepEncrypt::TearDown()
698 {
699 }
700 
701 #ifdef HKS_UNTRUSTED_RUNNING_ENV
702 /**
703  * @tc.number    : HksCryptoHalRsaOaepEncrypt_013
704  * @tc.name      : HksCryptoHalRsaOaepEncrypt_013
705  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-512-OAEP_SHA1 key.
706  */
707 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_013, Function | SmallTest | Level1)
708 {
709     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_013_PARAMS);
710 }
711 
712 /**
713  * @tc.number    : HksCryptoHalRsaOaepEncrypt_014
714  * @tc.name      : HksCryptoHalRsaOaepEncrypt_014
715  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-768-OAEP_SHA1 key.
716  */
717 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_014, Function | SmallTest | Level1)
718 {
719     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_014_PARAMS);
720 }
721 
722 /**
723  * @tc.number    : HksCryptoHalRsaOaepEncrypt_015
724  * @tc.name      : HksCryptoHalRsaOaepEncrypt_015
725  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-1024-OAEP_SHA1 key.
726  */
727 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_015, Function | SmallTest | Level1)
728 {
729     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_015_PARAMS);
730 }
731 
732 /**
733  * @tc.number    : HksCryptoHalRsaOaepEncrypt_016
734  * @tc.name      : HksCryptoHalRsaOaepEncrypt_016
735  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-2048-OAEP_SHA1 key.
736  */
737 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_016, Function | SmallTest | Level1)
738 {
739     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_016_PARAMS);
740 }
741 
742 #ifndef CUT_RSA_4096_TEST
743 /**
744  * @tc.number    : HksCryptoHalRsaOaepEncrypt_017
745  * @tc.name      : HksCryptoHalRsaOaepEncrypt_017
746  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-3072-OAEP_SHA1 key.
747  */
748 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_017, Function | SmallTest | Level1)
749 {
750     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_017_PARAMS);
751 }
752 
753 /**
754  * @tc.number    : HksCryptoHalRsaOaepEncrypt_018
755  * @tc.name      : HksCryptoHalRsaOaepEncrypt_018
756  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-4096-OAEP_SHA1 key.
757  */
758 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_018, Function | SmallTest | Level1)
759 {
760     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_018_PARAMS);
761 }
762 #endif
763 
764 /**
765  * @tc.number    : HksCryptoHalRsaOaepEncrypt_019
766  * @tc.name      : HksCryptoHalRsaOaepEncrypt_019
767  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-512-OAEP_SHA224 key.
768  */
769 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_019, Function | SmallTest | Level1)
770 {
771     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_019_PARAMS);
772 }
773 
774 /**
775  * @tc.number    : HksCryptoHalRsaOaepEncrypt_020
776  * @tc.name      : HksCryptoHalRsaOaepEncrypt_020
777  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-768-OAEP_SHA224 key.
778  */
779 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_020, Function | SmallTest | Level1)
780 {
781     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_020_PARAMS);
782 }
783 
784 /**
785  * @tc.number    : HksCryptoHalRsaOaepEncrypt_021
786  * @tc.name      : HksCryptoHalRsaOaepEncrypt_021
787  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-1024-OAEP_SHA224 key.
788  */
789 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_021, Function | SmallTest | Level1)
790 {
791     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_021_PARAMS);
792 }
793 
794 /**
795  * @tc.number    : HksCryptoHalRsaOaepEncrypt_022
796  * @tc.name      : HksCryptoHalRsaOaepEncrypt_022
797  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-2048-OAEP_SHA224 key.
798  */
799 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_022, Function | SmallTest | Level1)
800 {
801     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_022_PARAMS);
802 }
803 
804 #ifndef CUT_RSA_4096_TEST
805 /**
806  * @tc.number    : HksCryptoHalRsaOaepEncrypt_023
807  * @tc.name      : HksCryptoHalRsaOaepEncrypt_023
808  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-3072-OAEP_SHA224 key.
809  */
810 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_023, Function | SmallTest | Level1)
811 {
812     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_023_PARAMS);
813 }
814 
815 /**
816  * @tc.number    : HksCryptoHalRsaOaepEncrypt_024
817  * @tc.name      : HksCryptoHalRsaOaepEncrypt_024
818  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-4096-OAEP_SHA224 key.
819  */
820 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_024, Function | SmallTest | Level1)
821 {
822     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_024_PARAMS);
823 }
824 #endif //CUT_RSA_4096_TEST
825 
826 /**
827  * @tc.number    : HksCryptoHalRsaOaepEncrypt_025
828  * @tc.name      : HksCryptoHalRsaOaepEncrypt_025
829  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-512-OAEP_SHA256 key failed:keysize<sha*2+2.
830  */
831 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_025, Function | SmallTest | Level1)
832 {
833     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_025_PARAMS);
834 }
835 
836 /**
837  * @tc.number    : HksCryptoHalRsaOaepEncrypt_026
838  * @tc.name      : HksCryptoHalRsaOaepEncrypt_026
839  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-768-OAEP_SHA256 key.
840  */
841 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_026, Function | SmallTest | Level1)
842 {
843     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_026_PARAMS);
844 }
845 
846 /**
847  * @tc.number    : HksCryptoHalRsaOaepEncrypt_027
848  * @tc.name      : HksCryptoHalRsaOaepEncrypt_027
849  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-1024-OAEP_SHA256 key.
850  */
851 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_027, Function | SmallTest | Level1)
852 {
853     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_027_PARAMS);
854 }
855 #endif
856 
857 /**
858  * @tc.number    : HksCryptoHalRsaOaepEncrypt_028
859  * @tc.name      : HksCryptoHalRsaOaepEncrypt_028
860  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-2048-OAEP_SHA256 key.
861  */
862 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_028, Function | SmallTest | Level1)
863 {
864     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_028_PARAMS);
865 }
866 
867 #ifndef CUT_RSA_4096_TEST
868 /**
869  * @tc.number    : HksCryptoHalRsaOaepEncrypt_029
870  * @tc.name      : HksCryptoHalRsaOaepEncrypt_029
871  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-3072-OAEP_SHA256 key.
872  */
873 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_029, Function | SmallTest | Level1)
874 {
875     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_029_PARAMS);
876 }
877 
878 /**
879  * @tc.number    : HksCryptoHalRsaOaepEncrypt_030
880  * @tc.name      : HksCryptoHalRsaOaepEncrypt_030
881  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-4096-OAEP_SHA256 key.
882  */
883 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_030, Function | SmallTest | Level1)
884 {
885     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_030_PARAMS);
886 }
887 #endif
888 
889 #ifdef HKS_UNTRUSTED_RUNNING_ENV
890 /**
891  * @tc.number    : HksCryptoHalRsaOaepEncrypt_031
892  * @tc.name      : HksCryptoHalRsaOaepEncrypt_031
893  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-512-OAEP_SHA384 key failed:keysize<sha*2+2.
894  */
895 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_031, Function | SmallTest | Level1)
896 {
897     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_031_PARAMS);
898 }
899 
900 /**
901  * @tc.number    : HksCryptoHalRsaOaepEncrypt_032
902  * @tc.name      : HksCryptoHalRsaOaepEncrypt_032
903  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-768-OAEP_SHA384 key failed:keysize<sha*2+2.
904  */
905 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_032, Function | SmallTest | Level1)
906 {
907     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_032_PARAMS);
908 }
909 
910 /**
911  * @tc.number    : HksCryptoHalRsaOaepEncrypt_033
912  * @tc.name      : HksCryptoHalRsaOaepEncrypt_033
913  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-1024-OAEP_SHA384 key.
914  */
915 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_033, Function | SmallTest | Level1)
916 {
917     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_033_PARAMS);
918 }
919 #endif
920 
921 /**
922  * @tc.number    : HksCryptoHalRsaOaepEncrypt_034
923  * @tc.name      : HksCryptoHalRsaOaepEncrypt_034
924  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-2048-OAEP_SHA384 key.
925  */
926 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_034, Function | SmallTest | Level1)
927 {
928     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_034_PARAMS);
929 }
930 
931 #ifndef CUT_RSA_4096_TEST
932 /**
933  * @tc.number    : HksCryptoHalRsaOaepEncrypt_035
934  * @tc.name      : HksCryptoHalRsaOaepEncrypt_035
935  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-3072-OAEP_SHA384 key.
936  */
937 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_035, Function | SmallTest | Level1)
938 {
939     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_035_PARAMS);
940 }
941 
942 /**
943  * @tc.number    : HksCryptoHalRsaOaepEncrypt_036
944  * @tc.name      : HksCryptoHalRsaOaepEncrypt_036
945  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-4096-OAEP_SHA384 key.
946  */
947 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_036, Function | SmallTest | Level1)
948 {
949     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_036_PARAMS);
950 }
951 #endif
952 
953 #ifdef HKS_UNTRUSTED_RUNNING_ENV
954 /**
955  * @tc.number    : HksCryptoHalRsaOaepEncrypt_037
956  * @tc.name      : HksCryptoHalRsaOaepEncrypt_037
957  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-512-OAEP_SHA512 key failed:keysize<sha*2+2.
958  */
959 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_037, Function | SmallTest | Level1)
960 {
961     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_037_PARAMS);
962 }
963 
964 /**
965  * @tc.number    : HksCryptoHalRsaOaepEncrypt_038
966  * @tc.name      : HksCryptoHalRsaOaepEncrypt_038
967  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-768-OAEP_SHA512 key failed:keysize<sha*2+2.
968  */
969 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_038, Function | SmallTest | Level1)
970 {
971     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_038_PARAMS);
972 }
973 
974 /**
975  * @tc.number    : HksCryptoHalRsaOaepEncrypt_039
976  * @tc.name      : HksCryptoHalRsaOaepEncrypt_039
977  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-1024-OAEP_SHA512 key failed:keysize<sha*2+2.
978  */
979 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_039, Function | SmallTest | Level1)
980 {
981     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_039_PARAMS);
982 }
983 #endif
984 
985 /**
986  * @tc.number    : HksCryptoHalRsaOaepEncrypt_040
987  * @tc.name      : HksCryptoHalRsaOaepEncrypt_040
988  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-2048-OAEP_SHA512 key.
989  */
990 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_040, Function | SmallTest | Level1)
991 {
992     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_040_PARAMS);
993 }
994 
995 #ifndef CUT_RSA_4096_TEST
996 /**
997  * @tc.number    : HksCryptoHalRsaOaepEncrypt_041
998  * @tc.name      : HksCryptoHalRsaOaepEncrypt_041
999  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-3072-OAEP_SHA512 key.
1000  */
1001 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_041, Function | SmallTest | Level1)
1002 {
1003     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_041_PARAMS);
1004 }
1005 
1006 /**
1007  * @tc.number    : HksCryptoHalRsaOaepEncrypt_042
1008  * @tc.name      : HksCryptoHalRsaOaepEncrypt_042
1009  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-4096-OAEP_SHA512 key.
1010  */
1011 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_042, Function | SmallTest | Level1)
1012 {
1013     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_042_PARAMS);
1014 }
1015 #endif
1016 
1017 #ifdef HKS_UNTRUSTED_RUNNING_ENV
1018 /**
1019  * @tc.number    : HksCryptoHalRsaOaepEncrypt_043
1020  * @tc.name      : HksCryptoHalRsaOaepEncrypt_043
1021  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-512-OAEP key failed: wrong digest.
1022  */
1023 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_043, Function | SmallTest | Level1)
1024 {
1025     HKS_LOG_E("Enter HksCryptoHalRsaOaepEncrypt_043");
1026     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_043_PARAMS);
1027 }
1028 
1029 /**
1030  * @tc.number    : HksCryptoHalRsaOaepEncrypt_044
1031  * @tc.name      : HksCryptoHalRsaOaepEncrypt_044
1032  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-768-OAEP key failed: wrong digest.
1033  */
1034 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_044, Function | SmallTest | Level1)
1035 {
1036     HKS_LOG_E("Enter HksCryptoHalRsaOaepEncrypt_044");
1037     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_044_PARAMS);
1038 }
1039 
1040 /**
1041  * @tc.number    : HksCryptoHalRsaOaepEncrypt_045
1042  * @tc.name      : HksCryptoHalRsaOaepEncrypt_045
1043  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-1024-OAEP key failed: wrong digest.
1044  */
1045 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_045, Function | SmallTest | Level1)
1046 {
1047     HKS_LOG_E("Enter HksCryptoHalRsaOaepEncrypt_045");
1048     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_045_PARAMS);
1049 }
1050 #endif
1051 
1052 /**
1053  * @tc.number    : HksCryptoHalRsaOaepEncrypt_046
1054  * @tc.name      : HksCryptoHalRsaOaepEncrypt_046
1055  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-2048-OAEP key failed: wrong digest.
1056  */
1057 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_046, Function | SmallTest | Level1)
1058 {
1059     HKS_LOG_E("Enter HksCryptoHalRsaOaepEncrypt_046");
1060     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_046_PARAMS);
1061 }
1062 
1063 #ifndef CUT_RSA_4096_TEST
1064 /**
1065  * @tc.number    : HksCryptoHalRsaOaepEncrypt_047
1066  * @tc.name      : HksCryptoHalRsaOaepEncrypt_047
1067  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-3072-OAEP key failed: wrong digest.
1068  */
1069 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_047, Function | SmallTest | Level1)
1070 {
1071     HKS_LOG_E("Enter HksCryptoHalRsaOaepEncrypt_047");
1072     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_047_PARAMS);
1073 }
1074 
1075 /**
1076  * @tc.number    : HksCryptoHalRsaOaepEncrypt_048
1077  * @tc.name      : HksCryptoHalRsaOaepEncrypt_048
1078  * @tc.desc      : Using HksCryptoHalEncrypt Encrypt RSA-4096-OAEP key failed: wrong digest.
1079  */
1080 HWTEST_F(HksCryptoHalRsaOaepEncrypt, HksCryptoHalRsaOaepEncrypt_048, Function | SmallTest | Level1)
1081 {
1082     HKS_LOG_E("Enter HksCryptoHalRsaOaepEncrypt_048");
1083     RunTestCase(HKS_CRYPTO_HAL_RSA_OAEP_ENCRYPT_048_PARAMS);
1084 }
1085 #endif
1086 }  // namespace UnitTest
1087 }  // namespace Huks
1088 }  // namespace Security
1089 }  // namespace OHOS