• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This file is part of the openHiTLS project.
3  *
4  * openHiTLS is licensed under the Mulan PSL v2.
5  * You can use this software according to the terms and conditions of the Mulan PSL v2.
6  * You may obtain a copy of Mulan PSL v2 at:
7  *
8  *     http://license.coscl.org.cn/MulanPSL2
9  *
10  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11  * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12  * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13  * See the Mulan PSL v2 for more details.
14  */
15 
16 // Source code for the test .so file
17 
18 #include <stdio.h>
19 #include <stdint.h>
20 #include <stdlib.h>
21 #include <string.h>
22 #include "crypt_errno.h"
23 #include "crypt_eal_provider.h"
24 #include "crypt_eal_implprovider.h"
25 
26 #define CRYPT_EAL_DEFAULT_ATTR "provider=test2,compare1=one,compare2=two"
27 #define RESULT 5358979
28 
MD5_Init(void * mdCtx)29 int32_t MD5_Init(void *mdCtx)
30 {
31     mdCtx = NULL;
32     return RESULT;
33 }
34 
35 const CRYPT_EAL_Func defMdMd5[] = {
36     {CRYPT_EAL_IMPLMD_NEWCTX, NULL},
37     {CRYPT_EAL_IMPLMD_INITCTX, MD5_Init},
38     {CRYPT_EAL_IMPLMD_UPDATE, NULL},
39     {CRYPT_EAL_IMPLMD_FINAL, NULL},
40     {CRYPT_EAL_IMPLMD_DEINITCTX, NULL},
41     {CRYPT_EAL_IMPLMD_DUPCTX, NULL},
42     {CRYPT_EAL_IMPLMD_CTRL, NULL},
43     {CRYPT_EAL_IMPLMD_FREECTX, NULL},
44     CRYPT_EAL_FUNC_END,
45 };
46 
47 static const CRYPT_EAL_AlgInfo defMds[] = {
48     {CRYPT_MD_MD5, defMdMd5, CRYPT_EAL_DEFAULT_ATTR},
49     CRYPT_EAL_ALGINFO_END
50 };
51 
52 
CRYPT_EAL_DefaultProvQuery(void * provCtx,int32_t operaId,const CRYPT_EAL_AlgInfo ** algInfos)53 static int32_t CRYPT_EAL_DefaultProvQuery(void *provCtx, int32_t operaId, const CRYPT_EAL_AlgInfo **algInfos)
54 {
55     (void) provCtx;
56     int32_t ret = CRYPT_SUCCESS;
57     switch (operaId) {
58         case CRYPT_EAL_OPERAID_SYMMCIPHER:
59             break;
60         case CRYPT_EAL_OPERAID_KEYMGMT:
61             break;
62         case CRYPT_EAL_OPERAID_SIGN:
63             break;
64 
65         case CRYPT_EAL_OPERAID_ASYMCIPHER:
66             break;
67 
68         case CRYPT_EAL_OPERAID_KEYEXCH:
69             break;
70 
71         case CRYPT_EAL_OPERAID_KEM:
72             break;
73         case CRYPT_EAL_OPERAID_HASH:
74             *algInfos = defMds;
75             break;
76         case CRYPT_EAL_OPERAID_MAC:
77             break;
78         case CRYPT_EAL_OPERAID_KDF:
79             // *algInfos = defKdfs;
80             break;
81         case CRYPT_EAL_OPERAID_RAND:
82             break;
83         default:
84             ret = CRYPT_NOT_SUPPORT;
85             break;
86     }
87     return ret;
88 }
89 
CRYPT_EAL_DefaultProvFree(void * provCtx)90 static void CRYPT_EAL_DefaultProvFree(void *provCtx)
91 {
92     return;
93 }
94 
95 static CRYPT_EAL_Func defProvOutFuncs[] = {
96     {CRYPT_EAL_PROVCB_QUERY, CRYPT_EAL_DefaultProvQuery},
97     {CRYPT_EAL_PROVCB_FREE, CRYPT_EAL_DefaultProvFree},
98     {CRYPT_EAL_PROVCB_CTRL, NULL},
99     CRYPT_EAL_FUNC_END
100 };
101 
CRYPT_EAL_ProviderInit(CRYPT_EAL_ProvMgrCtx * mgrCtx,BSL_Param * param,CRYPT_EAL_Func * capFuncs,CRYPT_EAL_Func ** outFuncs,void ** provCtx)102 int32_t CRYPT_EAL_ProviderInit(CRYPT_EAL_ProvMgrCtx *mgrCtx,
103     BSL_Param *param, CRYPT_EAL_Func *capFuncs, CRYPT_EAL_Func **outFuncs, void **provCtx)
104 {
105     *outFuncs = defProvOutFuncs;
106     return 0;
107 }
108