• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*******************************************************************************
2 * Copyright 2002-2018 Intel Corporation
3 * All Rights Reserved.
4 *
5 * If this  software was obtained  under the  Intel Simplified  Software License,
6 * the following terms apply:
7 *
8 * The source code,  information  and material  ("Material") contained  herein is
9 * owned by Intel Corporation or its  suppliers or licensors,  and  title to such
10 * Material remains with Intel  Corporation or its  suppliers or  licensors.  The
11 * Material  contains  proprietary  information  of  Intel or  its suppliers  and
12 * licensors.  The Material is protected by  worldwide copyright  laws and treaty
13 * provisions.  No part  of  the  Material   may  be  used,  copied,  reproduced,
14 * modified, published,  uploaded, posted, transmitted,  distributed or disclosed
15 * in any way without Intel's prior express written permission.  No license under
16 * any patent,  copyright or other  intellectual property rights  in the Material
17 * is granted to  or  conferred  upon  you,  either   expressly,  by implication,
18 * inducement,  estoppel  or  otherwise.  Any  license   under such  intellectual
19 * property rights must be express and approved by Intel in writing.
20 *
21 * Unless otherwise agreed by Intel in writing,  you may not remove or alter this
22 * notice or  any  other  notice   embedded  in  Materials  by  Intel  or Intel's
23 * suppliers or licensors in any way.
24 *
25 *
26 * If this  software  was obtained  under the  Apache License,  Version  2.0 (the
27 * "License"), the following terms apply:
28 *
29 * You may  not use this  file except  in compliance  with  the License.  You may
30 * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
31 *
32 *
33 * Unless  required  by   applicable  law  or  agreed  to  in  writing,  software
34 * distributed under the License  is distributed  on an  "AS IS"  BASIS,  WITHOUT
35 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
36 *
37 * See the   License  for the   specific  language   governing   permissions  and
38 * limitations under the License.
39 *******************************************************************************/
40 /******* FILE MODIFIED FROM ORIGINAL 2019u1 RELEASE TO AVOID WARNINGS *********/
41 /*
42 //               Intel(R) Integrated Performance Primitives
43 //                   Cryptographic Primitives (ippcp)
44 */
45 
46 #ifndef __OWNCP_H__
47 #define __OWNCP_H__
48 
49 #ifndef __OWNDEFS_H__
50   #include "owndefs.h"
51 #endif
52 
53 #ifndef IPPCP_H__
54 
55 #define ippcpGetLibVersion           OWNAPI(ippcpGetLibVersion)
56 #define ippsDESGetSize               OWNAPI(ippsDESGetSize)
57 #define ippsDESInit                  OWNAPI(ippsDESInit)
58 #define ippsDESPack                  OWNAPI(ippsDESPack)
59 #define ippsDESUnpack                OWNAPI(ippsDESUnpack)
60 #define ippsTDESEncryptECB           OWNAPI(ippsTDESEncryptECB)
61 #define ippsTDESDecryptECB           OWNAPI(ippsTDESDecryptECB)
62 #define ippsTDESEncryptCBC           OWNAPI(ippsTDESEncryptCBC)
63 #define ippsTDESDecryptCBC           OWNAPI(ippsTDESDecryptCBC)
64 #define ippsTDESEncryptCFB           OWNAPI(ippsTDESEncryptCFB)
65 #define ippsTDESDecryptCFB           OWNAPI(ippsTDESDecryptCFB)
66 #define ippsTDESEncryptOFB           OWNAPI(ippsTDESEncryptOFB)
67 #define ippsTDESDecryptOFB           OWNAPI(ippsTDESDecryptOFB)
68 #define ippsTDESEncryptCTR           OWNAPI(ippsTDESEncryptCTR)
69 #define ippsTDESDecryptCTR           OWNAPI(ippsTDESDecryptCTR)
70 #define ippsAESGetSize               OWNAPI(ippsAESGetSize)
71 #define ippsAESInit                  OWNAPI(ippsAESInit)
72 #define ippsAESSetKey                OWNAPI(ippsAESSetKey)
73 #define ippsAESPack                  OWNAPI(ippsAESPack)
74 #define ippsAESUnpack                OWNAPI(ippsAESUnpack)
75 #define ippsAESEncryptECB            OWNAPI(ippsAESEncryptECB)
76 #define ippsAESDecryptECB            OWNAPI(ippsAESDecryptECB)
77 #define ippsAESEncryptCBC            OWNAPI(ippsAESEncryptCBC)
78 #define ippsAESEncryptCBC_CS1        OWNAPI(ippsAESEncryptCBC_CS1)
79 #define ippsAESEncryptCBC_CS2        OWNAPI(ippsAESEncryptCBC_CS2)
80 #define ippsAESEncryptCBC_CS3        OWNAPI(ippsAESEncryptCBC_CS3)
81 #define ippsAESDecryptCBC            OWNAPI(ippsAESDecryptCBC)
82 #define ippsAESDecryptCBC_CS1        OWNAPI(ippsAESDecryptCBC_CS1)
83 #define ippsAESDecryptCBC_CS2        OWNAPI(ippsAESDecryptCBC_CS2)
84 #define ippsAESDecryptCBC_CS3        OWNAPI(ippsAESDecryptCBC_CS3)
85 #define ippsAESEncryptCFB            OWNAPI(ippsAESEncryptCFB)
86 #define ippsAESDecryptCFB            OWNAPI(ippsAESDecryptCFB)
87 #define ippsAESEncryptOFB            OWNAPI(ippsAESEncryptOFB)
88 #define ippsAESDecryptOFB            OWNAPI(ippsAESDecryptOFB)
89 #define ippsAESEncryptCTR            OWNAPI(ippsAESEncryptCTR)
90 #define ippsAESDecryptCTR            OWNAPI(ippsAESDecryptCTR)
91 #define ippsAESEncryptXTS_Direct     OWNAPI(ippsAESEncryptXTS_Direct)
92 #define ippsAESDecryptXTS_Direct     OWNAPI(ippsAESDecryptXTS_Direct)
93 #define ippsSMS4GetSize              OWNAPI(ippsSMS4GetSize)
94 #define ippsSMS4Init                 OWNAPI(ippsSMS4Init)
95 #define ippsSMS4SetKey               OWNAPI(ippsSMS4SetKey)
96 #define ippsSMS4EncryptECB           OWNAPI(ippsSMS4EncryptECB)
97 #define ippsSMS4DecryptECB           OWNAPI(ippsSMS4DecryptECB)
98 #define ippsSMS4EncryptCBC           OWNAPI(ippsSMS4EncryptCBC)
99 #define ippsSMS4EncryptCBC_CS1       OWNAPI(ippsSMS4EncryptCBC_CS1)
100 #define ippsSMS4EncryptCBC_CS2       OWNAPI(ippsSMS4EncryptCBC_CS2)
101 #define ippsSMS4EncryptCBC_CS3       OWNAPI(ippsSMS4EncryptCBC_CS3)
102 #define ippsSMS4DecryptCBC           OWNAPI(ippsSMS4DecryptCBC)
103 #define ippsSMS4DecryptCBC_CS1       OWNAPI(ippsSMS4DecryptCBC_CS1)
104 #define ippsSMS4DecryptCBC_CS2       OWNAPI(ippsSMS4DecryptCBC_CS2)
105 #define ippsSMS4DecryptCBC_CS3       OWNAPI(ippsSMS4DecryptCBC_CS3)
106 #define ippsSMS4EncryptCFB           OWNAPI(ippsSMS4EncryptCFB)
107 #define ippsSMS4DecryptCFB           OWNAPI(ippsSMS4DecryptCFB)
108 #define ippsSMS4EncryptOFB           OWNAPI(ippsSMS4EncryptOFB)
109 #define ippsSMS4DecryptOFB           OWNAPI(ippsSMS4DecryptOFB)
110 #define ippsSMS4EncryptCTR           OWNAPI(ippsSMS4EncryptCTR)
111 #define ippsSMS4DecryptCTR           OWNAPI(ippsSMS4DecryptCTR)
112 #define ippsSMS4_CCMGetSize          OWNAPI(ippsSMS4_CCMGetSize)
113 #define ippsSMS4_CCMInit             OWNAPI(ippsSMS4_CCMInit)
114 #define ippsSMS4_CCMMessageLen       OWNAPI(ippsSMS4_CCMMessageLen)
115 #define ippsSMS4_CCMTagLen           OWNAPI(ippsSMS4_CCMTagLen)
116 #define ippsSMS4_CCMStart            OWNAPI(ippsSMS4_CCMStart)
117 #define ippsSMS4_CCMEncrypt          OWNAPI(ippsSMS4_CCMEncrypt)
118 #define ippsSMS4_CCMDecrypt          OWNAPI(ippsSMS4_CCMDecrypt)
119 #define ippsSMS4_CCMGetTag           OWNAPI(ippsSMS4_CCMGetTag)
120 #define ippsAES_CCMGetSize           OWNAPI(ippsAES_CCMGetSize)
121 #define ippsAES_CCMInit              OWNAPI(ippsAES_CCMInit)
122 #define ippsAES_CCMMessageLen        OWNAPI(ippsAES_CCMMessageLen)
123 #define ippsAES_CCMTagLen            OWNAPI(ippsAES_CCMTagLen)
124 #define ippsAES_CCMStart             OWNAPI(ippsAES_CCMStart)
125 #define ippsAES_CCMEncrypt           OWNAPI(ippsAES_CCMEncrypt)
126 #define ippsAES_CCMDecrypt           OWNAPI(ippsAES_CCMDecrypt)
127 #define ippsAES_CCMGetTag            OWNAPI(ippsAES_CCMGetTag)
128 #define ippsAES_GCMGetSize           OWNAPI(ippsAES_GCMGetSize)
129 #define ippsAES_GCMInit              OWNAPI(ippsAES_GCMInit)
130 #define ippsAES_GCMReset             OWNAPI(ippsAES_GCMReset)
131 #define ippsAES_GCMProcessIV         OWNAPI(ippsAES_GCMProcessIV)
132 #define ippsAES_GCMProcessAAD        OWNAPI(ippsAES_GCMProcessAAD)
133 #define ippsAES_GCMStart             OWNAPI(ippsAES_GCMStart)
134 #define ippsAES_GCMEncrypt           OWNAPI(ippsAES_GCMEncrypt)
135 #define ippsAES_GCMDecrypt           OWNAPI(ippsAES_GCMDecrypt)
136 #define ippsAES_GCMGetTag            OWNAPI(ippsAES_GCMGetTag)
137 #define ippsAES_XTSGetSize           OWNAPI(ippsAES_XTSGetSize)
138 #define ippsAES_XTSInit              OWNAPI(ippsAES_XTSInit)
139 #define ippsAES_XTSEncrypt           OWNAPI(ippsAES_XTSEncrypt)
140 #define ippsAES_XTSDecrypt           OWNAPI(ippsAES_XTSDecrypt)
141 #define ippsAES_S2V_CMAC             OWNAPI(ippsAES_S2V_CMAC)
142 #define ippsAES_SIVEncrypt           OWNAPI(ippsAES_SIVEncrypt)
143 #define ippsAES_SIVDecrypt           OWNAPI(ippsAES_SIVDecrypt)
144 #define ippsAES_CMACGetSize          OWNAPI(ippsAES_CMACGetSize)
145 #define ippsAES_CMACInit             OWNAPI(ippsAES_CMACInit)
146 #define ippsAES_CMACUpdate           OWNAPI(ippsAES_CMACUpdate)
147 #define ippsAES_CMACFinal            OWNAPI(ippsAES_CMACFinal)
148 #define ippsAES_CMACGetTag           OWNAPI(ippsAES_CMACGetTag)
149 #define ippsARCFourCheckKey          OWNAPI(ippsARCFourCheckKey)
150 #define ippsARCFourGetSize           OWNAPI(ippsARCFourGetSize)
151 #define ippsARCFourInit              OWNAPI(ippsARCFourInit)
152 #define ippsARCFourReset             OWNAPI(ippsARCFourReset)
153 #define ippsARCFourPack              OWNAPI(ippsARCFourPack)
154 #define ippsARCFourUnpack            OWNAPI(ippsARCFourUnpack)
155 #define ippsARCFourEncrypt           OWNAPI(ippsARCFourEncrypt)
156 #define ippsARCFourDecrypt           OWNAPI(ippsARCFourDecrypt)
157 #define ippsSHA1GetSize              OWNAPI(ippsSHA1GetSize)
158 #define ippsSHA1Init                 OWNAPI(ippsSHA1Init)
159 #define ippsSHA1Duplicate            OWNAPI(ippsSHA1Duplicate)
160 #define ippsSHA1Pack                 OWNAPI(ippsSHA1Pack)
161 #define ippsSHA1Unpack               OWNAPI(ippsSHA1Unpack)
162 #define ippsSHA1Update               OWNAPI(ippsSHA1Update)
163 #define ippsSHA1GetTag               OWNAPI(ippsSHA1GetTag)
164 #define ippsSHA1Final                OWNAPI(ippsSHA1Final)
165 #define ippsSHA1MessageDigest        OWNAPI(ippsSHA1MessageDigest)
166 #define ippsSHA224GetSize            OWNAPI(ippsSHA224GetSize)
167 #define ippsSHA224Init               OWNAPI(ippsSHA224Init)
168 #define ippsSHA224Duplicate          OWNAPI(ippsSHA224Duplicate)
169 #define ippsSHA224Pack               OWNAPI(ippsSHA224Pack)
170 #define ippsSHA224Unpack             OWNAPI(ippsSHA224Unpack)
171 #define ippsSHA224Update             OWNAPI(ippsSHA224Update)
172 #define ippsSHA224GetTag             OWNAPI(ippsSHA224GetTag)
173 #define ippsSHA224Final              OWNAPI(ippsSHA224Final)
174 #define ippsSHA224MessageDigest      OWNAPI(ippsSHA224MessageDigest)
175 #define ippsSHA256GetSize            OWNAPI(ippsSHA256GetSize)
176 #define ippsSHA256Init               OWNAPI(ippsSHA256Init)
177 #define ippsSHA256Duplicate          OWNAPI(ippsSHA256Duplicate)
178 #define ippsSHA256Pack               OWNAPI(ippsSHA256Pack)
179 #define ippsSHA256Unpack             OWNAPI(ippsSHA256Unpack)
180 #define ippsSHA256Update             OWNAPI(ippsSHA256Update)
181 #define ippsSHA256GetTag             OWNAPI(ippsSHA256GetTag)
182 #define ippsSHA256Final              OWNAPI(ippsSHA256Final)
183 #define ippsSHA256MessageDigest      OWNAPI(ippsSHA256MessageDigest)
184 #define ippsSHA384GetSize            OWNAPI(ippsSHA384GetSize)
185 #define ippsSHA384Init               OWNAPI(ippsSHA384Init)
186 #define ippsSHA384Duplicate          OWNAPI(ippsSHA384Duplicate)
187 #define ippsSHA384Pack               OWNAPI(ippsSHA384Pack)
188 #define ippsSHA384Unpack             OWNAPI(ippsSHA384Unpack)
189 #define ippsSHA384Update             OWNAPI(ippsSHA384Update)
190 #define ippsSHA384GetTag             OWNAPI(ippsSHA384GetTag)
191 #define ippsSHA384Final              OWNAPI(ippsSHA384Final)
192 #define ippsSHA384MessageDigest      OWNAPI(ippsSHA384MessageDigest)
193 #define ippsSHA512GetSize            OWNAPI(ippsSHA512GetSize)
194 #define ippsSHA512Init               OWNAPI(ippsSHA512Init)
195 #define ippsSHA512Duplicate          OWNAPI(ippsSHA512Duplicate)
196 #define ippsSHA512Pack               OWNAPI(ippsSHA512Pack)
197 #define ippsSHA512Unpack             OWNAPI(ippsSHA512Unpack)
198 #define ippsSHA512Update             OWNAPI(ippsSHA512Update)
199 #define ippsSHA512GetTag             OWNAPI(ippsSHA512GetTag)
200 #define ippsSHA512Final              OWNAPI(ippsSHA512Final)
201 #define ippsSHA512MessageDigest      OWNAPI(ippsSHA512MessageDigest)
202 #define ippsMD5GetSize               OWNAPI(ippsMD5GetSize)
203 #define ippsMD5Init                  OWNAPI(ippsMD5Init)
204 #define ippsMD5Duplicate             OWNAPI(ippsMD5Duplicate)
205 #define ippsMD5Pack                  OWNAPI(ippsMD5Pack)
206 #define ippsMD5Unpack                OWNAPI(ippsMD5Unpack)
207 #define ippsMD5Update                OWNAPI(ippsMD5Update)
208 #define ippsMD5GetTag                OWNAPI(ippsMD5GetTag)
209 #define ippsMD5Final                 OWNAPI(ippsMD5Final)
210 #define ippsMD5MessageDigest         OWNAPI(ippsMD5MessageDigest)
211 #define ippsSM3GetSize               OWNAPI(ippsSM3GetSize)
212 #define ippsSM3Init                  OWNAPI(ippsSM3Init)
213 #define ippsSM3Duplicate             OWNAPI(ippsSM3Duplicate)
214 #define ippsSM3Pack                  OWNAPI(ippsSM3Pack)
215 #define ippsSM3Unpack                OWNAPI(ippsSM3Unpack)
216 #define ippsSM3Update                OWNAPI(ippsSM3Update)
217 #define ippsSM3GetTag                OWNAPI(ippsSM3GetTag)
218 #define ippsSM3Final                 OWNAPI(ippsSM3Final)
219 #define ippsSM3MessageDigest         OWNAPI(ippsSM3MessageDigest)
220 #define ippsHashGetSize              OWNAPI(ippsHashGetSize)
221 #define ippsHashInit                 OWNAPI(ippsHashInit)
222 #define ippsHashPack                 OWNAPI(ippsHashPack)
223 #define ippsHashUnpack               OWNAPI(ippsHashUnpack)
224 #define ippsHashDuplicate            OWNAPI(ippsHashDuplicate)
225 #define ippsHashUpdate               OWNAPI(ippsHashUpdate)
226 #define ippsHashGetTag               OWNAPI(ippsHashGetTag)
227 #define ippsHashFinal                OWNAPI(ippsHashFinal)
228 #define ippsHashMessage              OWNAPI(ippsHashMessage)
229 #define ippsHashMethod_MD5           OWNAPI(ippsHashMethod_MD5)
230 #define ippsHashMethod_SM3           OWNAPI(ippsHashMethod_SM3)
231 #define ippsHashMethod_SHA1          OWNAPI(ippsHashMethod_SHA1)
232 #define ippsHashMethod_SHA1_NI       OWNAPI(ippsHashMethod_SHA1_NI)
233 #define ippsHashMethod_SHA1_TT       OWNAPI(ippsHashMethod_SHA1_TT)
234 #define ippsHashMethod_SHA256        OWNAPI(ippsHashMethod_SHA256)
235 #define ippsHashMethod_SHA256_NI     OWNAPI(ippsHashMethod_SHA256_NI)
236 #define ippsHashMethod_SHA256_TT     OWNAPI(ippsHashMethod_SHA256_TT)
237 #define ippsHashMethod_SHA224        OWNAPI(ippsHashMethod_SHA224)
238 #define ippsHashMethod_SHA224_NI     OWNAPI(ippsHashMethod_SHA224_NI)
239 #define ippsHashMethod_SHA224_TT     OWNAPI(ippsHashMethod_SHA224_TT)
240 #define ippsHashMethod_SHA512        OWNAPI(ippsHashMethod_SHA512)
241 #define ippsHashMethod_SHA384        OWNAPI(ippsHashMethod_SHA384)
242 #define ippsHashMethod_SHA512_256    OWNAPI(ippsHashMethod_SHA512_256)
243 #define ippsHashMethod_SHA512_224    OWNAPI(ippsHashMethod_SHA512_224)
244 #define ippsHashGetSize_rmf          OWNAPI(ippsHashGetSize_rmf)
245 #define ippsHashInit_rmf             OWNAPI(ippsHashInit_rmf)
246 #define ippsHashPack_rmf             OWNAPI(ippsHashPack_rmf)
247 #define ippsHashUnpack_rmf           OWNAPI(ippsHashUnpack_rmf)
248 #define ippsHashDuplicate_rmf        OWNAPI(ippsHashDuplicate_rmf)
249 #define ippsHashUpdate_rmf           OWNAPI(ippsHashUpdate_rmf)
250 #define ippsHashGetTag_rmf           OWNAPI(ippsHashGetTag_rmf)
251 #define ippsHashFinal_rmf            OWNAPI(ippsHashFinal_rmf)
252 #define ippsHashMessage_rmf          OWNAPI(ippsHashMessage_rmf)
253 #define ippsMGF                      OWNAPI(ippsMGF)
254 #define ippsMGF1_rmf                 OWNAPI(ippsMGF1_rmf)
255 #define ippsMGF2_rmf                 OWNAPI(ippsMGF2_rmf)
256 #define ippsHMAC_GetSize             OWNAPI(ippsHMAC_GetSize)
257 #define ippsHMAC_Init                OWNAPI(ippsHMAC_Init)
258 #define ippsHMAC_Pack                OWNAPI(ippsHMAC_Pack)
259 #define ippsHMAC_Unpack              OWNAPI(ippsHMAC_Unpack)
260 #define ippsHMAC_Duplicate           OWNAPI(ippsHMAC_Duplicate)
261 #define ippsHMAC_Update              OWNAPI(ippsHMAC_Update)
262 #define ippsHMAC_Final               OWNAPI(ippsHMAC_Final)
263 #define ippsHMAC_GetTag              OWNAPI(ippsHMAC_GetTag)
264 #define ippsHMAC_Message             OWNAPI(ippsHMAC_Message)
265 #define ippsHMACGetSize_rmf          OWNAPI(ippsHMACGetSize_rmf)
266 #define ippsHMACInit_rmf             OWNAPI(ippsHMACInit_rmf)
267 #define ippsHMACPack_rmf             OWNAPI(ippsHMACPack_rmf)
268 #define ippsHMACUnpack_rmf           OWNAPI(ippsHMACUnpack_rmf)
269 #define ippsHMACDuplicate_rmf        OWNAPI(ippsHMACDuplicate_rmf)
270 #define ippsHMACUpdate_rmf           OWNAPI(ippsHMACUpdate_rmf)
271 #define ippsHMACFinal_rmf            OWNAPI(ippsHMACFinal_rmf)
272 #define ippsHMACGetTag_rmf           OWNAPI(ippsHMACGetTag_rmf)
273 #define ippsHMACMessage_rmf          OWNAPI(ippsHMACMessage_rmf)
274 #define ippsBigNumGetSize            OWNAPI(ippsBigNumGetSize)
275 #define ippsBigNumInit               OWNAPI(ippsBigNumInit)
276 #define ippsCmpZero_BN               OWNAPI(ippsCmpZero_BN)
277 #define ippsCmp_BN                   OWNAPI(ippsCmp_BN)
278 #define ippsGetSize_BN               OWNAPI(ippsGetSize_BN)
279 #define ippsSet_BN                   OWNAPI(ippsSet_BN)
280 #define ippsGet_BN                   OWNAPI(ippsGet_BN)
281 #define ippsRef_BN                   OWNAPI(ippsRef_BN)
282 #define ippsExtGet_BN                OWNAPI(ippsExtGet_BN)
283 #define ippsAdd_BN                   OWNAPI(ippsAdd_BN)
284 #define ippsSub_BN                   OWNAPI(ippsSub_BN)
285 #define ippsMul_BN                   OWNAPI(ippsMul_BN)
286 #define ippsMAC_BN_I                 OWNAPI(ippsMAC_BN_I)
287 #define ippsDiv_BN                   OWNAPI(ippsDiv_BN)
288 #define ippsMod_BN                   OWNAPI(ippsMod_BN)
289 #define ippsGcd_BN                   OWNAPI(ippsGcd_BN)
290 #define ippsModInv_BN                OWNAPI(ippsModInv_BN)
291 #define ippsSetOctString_BN          OWNAPI(ippsSetOctString_BN)
292 #define ippsGetOctString_BN          OWNAPI(ippsGetOctString_BN)
293 #define ippsMontGetSize              OWNAPI(ippsMontGetSize)
294 #define ippsMontInit                 OWNAPI(ippsMontInit)
295 #define ippsMontSet                  OWNAPI(ippsMontSet)
296 #define ippsMontGet                  OWNAPI(ippsMontGet)
297 #define ippsMontForm                 OWNAPI(ippsMontForm)
298 #define ippsMontMul                  OWNAPI(ippsMontMul)
299 #define ippsMontExp                  OWNAPI(ippsMontExp)
300 #define ippsPRNGGetSize              OWNAPI(ippsPRNGGetSize)
301 #define ippsPRNGInit                 OWNAPI(ippsPRNGInit)
302 #define ippsPRNGSetModulus           OWNAPI(ippsPRNGSetModulus)
303 #define ippsPRNGSetH0                OWNAPI(ippsPRNGSetH0)
304 #define ippsPRNGSetAugment           OWNAPI(ippsPRNGSetAugment)
305 #define ippsPRNGSetSeed              OWNAPI(ippsPRNGSetSeed)
306 #define ippsPRNGGetSeed              OWNAPI(ippsPRNGGetSeed)
307 #define ippsPRNGen                   OWNAPI(ippsPRNGen)
308 #define ippsPRNGen_BN                OWNAPI(ippsPRNGen_BN)
309 #define ippsPRNGenRDRAND             OWNAPI(ippsPRNGenRDRAND)
310 #define ippsPRNGenRDRAND_BN          OWNAPI(ippsPRNGenRDRAND_BN)
311 #define ippsTRNGenRDSEED             OWNAPI(ippsTRNGenRDSEED)
312 #define ippsTRNGenRDSEED_BN          OWNAPI(ippsTRNGenRDSEED_BN)
313 #define ippsPrimeGetSize             OWNAPI(ippsPrimeGetSize)
314 #define ippsPrimeInit                OWNAPI(ippsPrimeInit)
315 #define ippsPrimeGen                 OWNAPI(ippsPrimeGen)
316 #define ippsPrimeTest                OWNAPI(ippsPrimeTest)
317 #define ippsPrimeGen_BN              OWNAPI(ippsPrimeGen_BN)
318 #define ippsPrimeTest_BN             OWNAPI(ippsPrimeTest_BN)
319 #define ippsPrimeGet                 OWNAPI(ippsPrimeGet)
320 #define ippsPrimeGet_BN              OWNAPI(ippsPrimeGet_BN)
321 #define ippsPrimeSet                 OWNAPI(ippsPrimeSet)
322 #define ippsPrimeSet_BN              OWNAPI(ippsPrimeSet_BN)
323 #define ippsRSA_GetSizePublicKey     OWNAPI(ippsRSA_GetSizePublicKey)
324 #define ippsRSA_InitPublicKey        OWNAPI(ippsRSA_InitPublicKey)
325 #define ippsRSA_SetPublicKey         OWNAPI(ippsRSA_SetPublicKey)
326 #define ippsRSA_GetPublicKey         OWNAPI(ippsRSA_GetPublicKey)
327 #define ippsRSA_GetSizePrivateKeyType1   OWNAPI(ippsRSA_GetSizePrivateKeyType1)
328 #define ippsRSA_InitPrivateKeyType1      OWNAPI(ippsRSA_InitPrivateKeyType1)
329 #define ippsRSA_SetPrivateKeyType1       OWNAPI(ippsRSA_SetPrivateKeyType1)
330 #define ippsRSA_GetPrivateKeyType1       OWNAPI(ippsRSA_GetPrivateKeyType1)
331 #define ippsRSA_GetSizePrivateKeyType2   OWNAPI(ippsRSA_GetSizePrivateKeyType2)
332 #define ippsRSA_InitPrivateKeyType2      OWNAPI(ippsRSA_InitPrivateKeyType2)
333 #define ippsRSA_SetPrivateKeyType2       OWNAPI(ippsRSA_SetPrivateKeyType2)
334 #define ippsRSA_GetPrivateKeyType2       OWNAPI(ippsRSA_GetPrivateKeyType2)
335 #define ippsRSA_GetBufferSizePublicKey   OWNAPI(ippsRSA_GetBufferSizePublicKey)
336 #define ippsRSA_GetBufferSizePrivateKey  OWNAPI(ippsRSA_GetBufferSizePrivateKey)
337 #define ippsRSA_Encrypt              OWNAPI(ippsRSA_Encrypt)
338 #define ippsRSA_Decrypt              OWNAPI(ippsRSA_Decrypt)
339 #define ippsRSA_GenerateKeys         OWNAPI(ippsRSA_GenerateKeys)
340 #define ippsRSA_ValidateKeys         OWNAPI(ippsRSA_ValidateKeys)
341 #define ippsRSAEncrypt_OAEP          OWNAPI(ippsRSAEncrypt_OAEP)
342 #define ippsRSADecrypt_OAEP          OWNAPI(ippsRSADecrypt_OAEP)
343 #define ippsRSAEncrypt_OAEP_rmf      OWNAPI(ippsRSAEncrypt_OAEP_rmf)
344 #define ippsRSADecrypt_OAEP_rmf      OWNAPI(ippsRSADecrypt_OAEP_rmf)
345 #define ippsRSAEncrypt_PKCSv15       OWNAPI(ippsRSAEncrypt_PKCSv15)
346 #define ippsRSADecrypt_PKCSv15       OWNAPI(ippsRSADecrypt_PKCSv15)
347 #define ippsRSASign_PSS              OWNAPI(ippsRSASign_PSS)
348 #define ippsRSAVerify_PSS            OWNAPI(ippsRSAVerify_PSS)
349 #define ippsRSASign_PSS_rmf          OWNAPI(ippsRSASign_PSS_rmf)
350 #define ippsRSAVerify_PSS_rmf        OWNAPI(ippsRSAVerify_PSS_rmf)
351 #define ippsRSASign_PKCS1v15         OWNAPI(ippsRSASign_PKCS1v15)
352 #define ippsRSAVerify_PKCS1v15       OWNAPI(ippsRSAVerify_PKCS1v15)
353 #define ippsRSASign_PKCS1v15_rmf     OWNAPI(ippsRSASign_PKCS1v15_rmf)
354 #define ippsRSAVerify_PKCS1v15_rmf   OWNAPI(ippsRSAVerify_PKCS1v15_rmf)
355 #define ippsDLGetResultString        OWNAPI(ippsDLGetResultString)
356 #define ippsDLPGetSize               OWNAPI(ippsDLPGetSize)
357 #define ippsDLPInit                  OWNAPI(ippsDLPInit)
358 #define ippsDLPPack                  OWNAPI(ippsDLPPack)
359 #define ippsDLPUnpack                OWNAPI(ippsDLPUnpack)
360 #define ippsDLPSet                   OWNAPI(ippsDLPSet)
361 #define ippsDLPGet                   OWNAPI(ippsDLPGet)
362 #define ippsDLPSetDP                 OWNAPI(ippsDLPSetDP)
363 #define ippsDLPGetDP                 OWNAPI(ippsDLPGetDP)
364 #define ippsDLPGenKeyPair            OWNAPI(ippsDLPGenKeyPair)
365 #define ippsDLPPublicKey             OWNAPI(ippsDLPPublicKey)
366 #define ippsDLPValidateKeyPair       OWNAPI(ippsDLPValidateKeyPair)
367 #define ippsDLPSetKeyPair            OWNAPI(ippsDLPSetKeyPair)
368 #define ippsDLPSignDSA               OWNAPI(ippsDLPSignDSA)
369 #define ippsDLPVerifyDSA             OWNAPI(ippsDLPVerifyDSA)
370 #define ippsDLPSharedSecretDH        OWNAPI(ippsDLPSharedSecretDH)
371 #define ippsDLPGenerateDSA           OWNAPI(ippsDLPGenerateDSA)
372 #define ippsDLPValidateDSA           OWNAPI(ippsDLPValidateDSA)
373 #define ippsDLPGenerateDH            OWNAPI(ippsDLPGenerateDH)
374 #define ippsDLPValidateDH            OWNAPI(ippsDLPValidateDH)
375 #define ippsECCGetResultString       OWNAPI(ippsECCGetResultString)
376 #define ippsECCPGetSize              OWNAPI(ippsECCPGetSize)
377 #define ippsECCPGetSizeStd128r1      OWNAPI(ippsECCPGetSizeStd128r1)
378 #define ippsECCPGetSizeStd128r2      OWNAPI(ippsECCPGetSizeStd128r2)
379 #define ippsECCPGetSizeStd192r1      OWNAPI(ippsECCPGetSizeStd192r1)
380 #define ippsECCPGetSizeStd224r1      OWNAPI(ippsECCPGetSizeStd224r1)
381 #define ippsECCPGetSizeStd256r1      OWNAPI(ippsECCPGetSizeStd256r1)
382 #define ippsECCPGetSizeStd384r1      OWNAPI(ippsECCPGetSizeStd384r1)
383 #define ippsECCPGetSizeStd521r1      OWNAPI(ippsECCPGetSizeStd521r1)
384 #define ippsECCPGetSizeStdSM2        OWNAPI(ippsECCPGetSizeStdSM2)
385 #define ippsECCPInit                 OWNAPI(ippsECCPInit)
386 #define ippsECCPInitStd128r1         OWNAPI(ippsECCPInitStd128r1)
387 #define ippsECCPInitStd128r2         OWNAPI(ippsECCPInitStd128r2)
388 #define ippsECCPInitStd192r1         OWNAPI(ippsECCPInitStd192r1)
389 #define ippsECCPInitStd224r1         OWNAPI(ippsECCPInitStd224r1)
390 #define ippsECCPInitStd256r1         OWNAPI(ippsECCPInitStd256r1)
391 #define ippsECCPInitStd384r1         OWNAPI(ippsECCPInitStd384r1)
392 #define ippsECCPInitStd521r1         OWNAPI(ippsECCPInitStd521r1)
393 #define ippsECCPInitStdSM2           OWNAPI(ippsECCPInitStdSM2)
394 #define ippsECCPSet                  OWNAPI(ippsECCPSet)
395 #define ippsECCPSetStd               OWNAPI(ippsECCPSetStd)
396 #define ippsECCPSetStd128r1          OWNAPI(ippsECCPSetStd128r1)
397 #define ippsECCPSetStd128r2          OWNAPI(ippsECCPSetStd128r2)
398 #define ippsECCPSetStd192r1          OWNAPI(ippsECCPSetStd192r1)
399 #define ippsECCPSetStd224r1          OWNAPI(ippsECCPSetStd224r1)
400 #define ippsECCPSetStd256r1          OWNAPI(ippsECCPSetStd256r1)
401 #define ippsECCPSetStd384r1          OWNAPI(ippsECCPSetStd384r1)
402 #define ippsECCPSetStd521r1          OWNAPI(ippsECCPSetStd521r1)
403 #define ippsECCPSetStdSM2            OWNAPI(ippsECCPSetStdSM2)
404 #define ippsECCPBindGxyTblStd192r1   OWNAPI(ippsECCPBindGxyTblStd192r1)
405 #define ippsECCPBindGxyTblStd224r1   OWNAPI(ippsECCPBindGxyTblStd224r1)
406 #define ippsECCPBindGxyTblStd256r1   OWNAPI(ippsECCPBindGxyTblStd256r1)
407 #define ippsECCPBindGxyTblStd384r1   OWNAPI(ippsECCPBindGxyTblStd384r1)
408 #define ippsECCPBindGxyTblStd521r1   OWNAPI(ippsECCPBindGxyTblStd521r1)
409 #define ippsECCPBindGxyTblStdSM2     OWNAPI(ippsECCPBindGxyTblStdSM2)
410 #define ippsECCPGet                  OWNAPI(ippsECCPGet)
411 #define ippsECCPGetOrderBitSize      OWNAPI(ippsECCPGetOrderBitSize)
412 #define ippsECCPValidate             OWNAPI(ippsECCPValidate)
413 #define ippsECCPPointGetSize         OWNAPI(ippsECCPPointGetSize)
414 #define ippsECCPPointInit            OWNAPI(ippsECCPPointInit)
415 #define ippsECCPSetPoint             OWNAPI(ippsECCPSetPoint)
416 #define ippsECCPSetPointAtInfinity   OWNAPI(ippsECCPSetPointAtInfinity)
417 #define ippsECCPGetPoint             OWNAPI(ippsECCPGetPoint)
418 #define ippsECCPCheckPoint           OWNAPI(ippsECCPCheckPoint)
419 #define ippsECCPComparePoint         OWNAPI(ippsECCPComparePoint)
420 #define ippsECCPNegativePoint        OWNAPI(ippsECCPNegativePoint)
421 #define ippsECCPAddPoint             OWNAPI(ippsECCPAddPoint)
422 #define ippsECCPMulPointScalar       OWNAPI(ippsECCPMulPointScalar)
423 #define ippsECCPGenKeyPair           OWNAPI(ippsECCPGenKeyPair)
424 #define ippsECCPPublicKey            OWNAPI(ippsECCPPublicKey)
425 #define ippsECCPValidateKeyPair      OWNAPI(ippsECCPValidateKeyPair)
426 #define ippsECCPSetKeyPair           OWNAPI(ippsECCPSetKeyPair)
427 #define ippsECCPSharedSecretDH       OWNAPI(ippsECCPSharedSecretDH)
428 #define ippsECCPSharedSecretDHC      OWNAPI(ippsECCPSharedSecretDHC)
429 #define ippsECCPSignDSA              OWNAPI(ippsECCPSignDSA)
430 #define ippsECCPVerifyDSA            OWNAPI(ippsECCPVerifyDSA)
431 #define ippsECCPSignNR               OWNAPI(ippsECCPSignNR)
432 #define ippsECCPVerifyNR             OWNAPI(ippsECCPVerifyNR)
433 #define ippsECCPSignSM2              OWNAPI(ippsECCPSignSM2)
434 #define ippsECCPVerifySM2            OWNAPI(ippsECCPVerifySM2)
435 #define ippsGFpGetSize               OWNAPI(ippsGFpGetSize)
436 #define ippsGFpInitArbitrary         OWNAPI(ippsGFpInitArbitrary)
437 #define ippsGFpInitFixed             OWNAPI(ippsGFpInitFixed)
438 #define ippsGFpInit                  OWNAPI(ippsGFpInit)
439 #define ippsGFpMethod_p192r1         OWNAPI(ippsGFpMethod_p192r1)
440 #define ippsGFpMethod_p224r1         OWNAPI(ippsGFpMethod_p224r1)
441 #define ippsGFpMethod_p256r1         OWNAPI(ippsGFpMethod_p256r1)
442 #define ippsGFpMethod_p384r1         OWNAPI(ippsGFpMethod_p384r1)
443 #define ippsGFpMethod_p521r1         OWNAPI(ippsGFpMethod_p521r1)
444 #define ippsGFpMethod_p256sm2        OWNAPI(ippsGFpMethod_p256sm2)
445 #define ippsGFpMethod_p256bn         OWNAPI(ippsGFpMethod_p256bn)
446 #define ippsGFpMethod_p256           OWNAPI(ippsGFpMethod_p256)
447 #define ippsGFpMethod_pArb           OWNAPI(ippsGFpMethod_pArb)
448 #define ippsGFpxGetSize              OWNAPI(ippsGFpxGetSize)
449 #define ippsGFpxInit                 OWNAPI(ippsGFpxInit)
450 #define ippsGFpxInitBinomial         OWNAPI(ippsGFpxInitBinomial)
451 #define ippsGFpxMethod_binom2_epid2  OWNAPI(ippsGFpxMethod_binom2_epid2)
452 #define ippsGFpxMethod_binom3_epid2  OWNAPI(ippsGFpxMethod_binom3_epid2)
453 #define ippsGFpxMethod_binom2        OWNAPI(ippsGFpxMethod_binom2)
454 #define ippsGFpxMethod_binom3        OWNAPI(ippsGFpxMethod_binom3)
455 #define ippsGFpxMethod_binom         OWNAPI(ippsGFpxMethod_binom)
456 #define ippsGFpxMethod_com           OWNAPI(ippsGFpxMethod_com)
457 #define ippsGFpScratchBufferSize     OWNAPI(ippsGFpScratchBufferSize)
458 #define ippsGFpElementGetSize        OWNAPI(ippsGFpElementGetSize)
459 #define ippsGFpElementInit           OWNAPI(ippsGFpElementInit)
460 #define ippsGFpSetElement            OWNAPI(ippsGFpSetElement)
461 #define ippsGFpSetElementRegular     OWNAPI(ippsGFpSetElementRegular)
462 #define ippsGFpSetElementOctString   OWNAPI(ippsGFpSetElementOctString)
463 #define ippsGFpSetElementRandom      OWNAPI(ippsGFpSetElementRandom)
464 #define ippsGFpSetElementHash        OWNAPI(ippsGFpSetElementHash)
465 #define ippsGFpSetElementHash_rmf    OWNAPI(ippsGFpSetElementHash_rmf)
466 #define ippsGFpCpyElement            OWNAPI(ippsGFpCpyElement)
467 #define ippsGFpGetElement            OWNAPI(ippsGFpGetElement)
468 #define ippsGFpGetElementOctString   OWNAPI(ippsGFpGetElementOctString)
469 #define ippsGFpCmpElement            OWNAPI(ippsGFpCmpElement)
470 #define ippsGFpIsZeroElement         OWNAPI(ippsGFpIsZeroElement)
471 #define ippsGFpIsUnityElement        OWNAPI(ippsGFpIsUnityElement)
472 #define ippsGFpConj                  OWNAPI(ippsGFpConj)
473 #define ippsGFpNeg                   OWNAPI(ippsGFpNeg)
474 #define ippsGFpInv                   OWNAPI(ippsGFpInv)
475 #define ippsGFpSqrt                  OWNAPI(ippsGFpSqrt)
476 #define ippsGFpSqr                   OWNAPI(ippsGFpSqr)
477 #define ippsGFpAdd                   OWNAPI(ippsGFpAdd)
478 #define ippsGFpSub                   OWNAPI(ippsGFpSub)
479 #define ippsGFpMul                   OWNAPI(ippsGFpMul)
480 #define ippsGFpExp                   OWNAPI(ippsGFpExp)
481 #define ippsGFpMultiExp              OWNAPI(ippsGFpMultiExp)
482 #define ippsGFpAdd_PE                OWNAPI(ippsGFpAdd_PE)
483 #define ippsGFpSub_PE                OWNAPI(ippsGFpSub_PE)
484 #define ippsGFpMul_PE                OWNAPI(ippsGFpMul_PE)
485 #define ippsGFpECGetSize             OWNAPI(ippsGFpECGetSize)
486 #define ippsGFpECInit                OWNAPI(ippsGFpECInit)
487 #define ippsGFpECSet                 OWNAPI(ippsGFpECSet)
488 #define ippsGFpECSetSubgroup         OWNAPI(ippsGFpECSetSubgroup)
489 #define ippsGFpECInitStd128r1        OWNAPI(ippsGFpECInitStd128r1)
490 #define ippsGFpECInitStd128r2        OWNAPI(ippsGFpECInitStd128r2)
491 #define ippsGFpECInitStd192r1        OWNAPI(ippsGFpECInitStd192r1)
492 #define ippsGFpECInitStd224r1        OWNAPI(ippsGFpECInitStd224r1)
493 #define ippsGFpECInitStd256r1        OWNAPI(ippsGFpECInitStd256r1)
494 #define ippsGFpECInitStd384r1        OWNAPI(ippsGFpECInitStd384r1)
495 #define ippsGFpECInitStd521r1        OWNAPI(ippsGFpECInitStd521r1)
496 #define ippsGFpECInitStdSM2          OWNAPI(ippsGFpECInitStdSM2)
497 #define ippsGFpECInitStdBN256        OWNAPI(ippsGFpECInitStdBN256)
498 #define ippsGFpECBindGxyTblStd192r1  OWNAPI(ippsGFpECBindGxyTblStd192r1)
499 #define ippsGFpECBindGxyTblStd224r1  OWNAPI(ippsGFpECBindGxyTblStd224r1)
500 #define ippsGFpECBindGxyTblStd256r1  OWNAPI(ippsGFpECBindGxyTblStd256r1)
501 #define ippsGFpECBindGxyTblStd384r1  OWNAPI(ippsGFpECBindGxyTblStd384r1)
502 #define ippsGFpECBindGxyTblStd521r1  OWNAPI(ippsGFpECBindGxyTblStd521r1)
503 #define ippsGFpECBindGxyTblStdSM2    OWNAPI(ippsGFpECBindGxyTblStdSM2)
504 #define ippsGFpECGet                 OWNAPI(ippsGFpECGet)
505 #define ippsGFpECGetSubgroup         OWNAPI(ippsGFpECGetSubgroup)
506 #define ippsGFpECScratchBufferSize   OWNAPI(ippsGFpECScratchBufferSize)
507 #define ippsGFpECVerify              OWNAPI(ippsGFpECVerify)
508 #define ippsGFpECPointGetSize        OWNAPI(ippsGFpECPointGetSize)
509 #define ippsGFpECPointInit           OWNAPI(ippsGFpECPointInit)
510 #define ippsGFpECSetPointAtInfinity  OWNAPI(ippsGFpECSetPointAtInfinity)
511 #define ippsGFpECSetPoint            OWNAPI(ippsGFpECSetPoint)
512 #define ippsGFpECSetPointRegular     OWNAPI(ippsGFpECSetPointRegular)
513 #define ippsGFpECSetPointRandom      OWNAPI(ippsGFpECSetPointRandom)
514 #define ippsGFpECMakePoint           OWNAPI(ippsGFpECMakePoint)
515 #define ippsGFpECSetPointHash        OWNAPI(ippsGFpECSetPointHash)
516 #define ippsGFpECSetPointHash_rmf    OWNAPI(ippsGFpECSetPointHash_rmf)
517 #define ippsGFpECGetPoint            OWNAPI(ippsGFpECGetPoint)
518 #define ippsGFpECGetPointRegular     OWNAPI(ippsGFpECGetPointRegular)
519 #define ippsGFpECSetPointOctString   OWNAPI(ippsGFpECSetPointOctString)
520 #define ippsGFpECGetPointOctString   OWNAPI(ippsGFpECGetPointOctString)
521 #define ippsGFpECTstPoint            OWNAPI(ippsGFpECTstPoint)
522 #define ippsGFpECTstPointInSubgroup  OWNAPI(ippsGFpECTstPointInSubgroup)
523 #define ippsGFpECCpyPoint            OWNAPI(ippsGFpECCpyPoint)
524 #define ippsGFpECCmpPoint            OWNAPI(ippsGFpECCmpPoint)
525 #define ippsGFpECNegPoint            OWNAPI(ippsGFpECNegPoint)
526 #define ippsGFpECAddPoint            OWNAPI(ippsGFpECAddPoint)
527 #define ippsGFpECMulPoint            OWNAPI(ippsGFpECMulPoint)
528 #define ippsGFpECPrivateKey          OWNAPI(ippsGFpECPrivateKey)
529 #define ippsGFpECPublicKey           OWNAPI(ippsGFpECPublicKey)
530 #define ippsGFpECTstKeyPair          OWNAPI(ippsGFpECTstKeyPair)
531 #define ippsGFpECSharedSecretDH      OWNAPI(ippsGFpECSharedSecretDH)
532 #define ippsGFpECSharedSecretDHC     OWNAPI(ippsGFpECSharedSecretDHC)
533 #define ippsGFpECSignDSA             OWNAPI(ippsGFpECSignDSA)
534 #define ippsGFpECVerifyDSA           OWNAPI(ippsGFpECVerifyDSA)
535 #define ippsGFpECSignNR              OWNAPI(ippsGFpECSignNR)
536 #define ippsGFpECVerifyNR            OWNAPI(ippsGFpECVerifyNR)
537 #define ippsGFpECSignSM2             OWNAPI(ippsGFpECSignSM2)
538 #define ippsGFpECVerifySM2           OWNAPI(ippsGFpECVerifySM2)
539 #define ippsGFpECESGetSize_SM2       OWNAPI(ippsGFpECESGetSize_SM2)
540 #define ippsGFpECESInit_SM2          OWNAPI(ippsGFpECESInit_SM2)
541 #define ippsGFpECESSetKey_SM2        OWNAPI(ippsGFpECESSetKey_SM2)
542 #define ippsGFpECESStart_SM2         OWNAPI(ippsGFpECESStart_SM2)
543 #define ippsGFpECESEncrypt_SM2       OWNAPI(ippsGFpECESEncrypt_SM2)
544 #define ippsGFpECESDecrypt_SM2       OWNAPI(ippsGFpECESDecrypt_SM2)
545 #define ippsGFpECESFinal_SM2         OWNAPI(ippsGFpECESFinal_SM2)
546 #define ippsGFpECESGetBuffersSize_SM2 OWNAPI(ippsGFpECESGetBuffersSize_SM2)
547 
548   #include "ippcp.h"
549 #endif
550 
551 /*
552 // modes of the CPU feature
553 */
554 #define _FEATURE_OFF_      (0)   /* feature is OFF a priori */
555 #define _FEATURE_ON_       (1)   /* feature is ON  a priori */
556 #define _FEATURE_TICKTOCK_ (2)   /* dectect is feature OFF/ON */
557 
558 #include "pcpvariant.h"
559 
560 #pragma warning( disable : 4996 4324 4206)
561 
562 /* ippCP length */
563 typedef int cpSize;
564 
565 /*
566 // Common ippCP Macros
567 */
568 
569 /* size of cache line (bytes) */
570 #if (_IPP==_IPP_M5)
571 #define CACHE_LINE_SIZE      (16)
572 #define LOG_CACHE_LINE_SIZE   (4)
573 #else
574 #define CACHE_LINE_SIZE      (64)
575 #define LOG_CACHE_LINE_SIZE   (6)
576 #endif
577 
578 /* swap data & pointers */
579 #define SWAP_PTR(ATYPE, pX,pY)   { ATYPE* aPtr=(pX); (pX)=(pY); (pY)=aPtr; }
580 #define SWAP(x,y)                {(x)^=(y); (y)^=(x); (x)^=(y);}
581 
582 /* alignment value */
583 #define ALIGN_VAL ((int)sizeof(void*))
584 
585 /* bitsize */
586 #define BYTESIZE     (8)
587 #define BITSIZE(x)   ((int)(sizeof(x)*BYTESIZE))
588 
589 /* bit length -> byte/word length conversion */
590 #define BITS2WORD8_SIZE(x)  (((x)+ 7)>>3)
591 #define BITS2WORD16_SIZE(x) (((x)+15)>>4)
592 #define BITS2WORD32_SIZE(x) (((x)+31)>>5)
593 #define BITS2WORD64_SIZE(x) (((x)+63)>>6)
594 
595 /* WORD and DWORD manipulators */
596 #define LODWORD(x)    ((Ipp32u)(x))
597 #define HIDWORD(x)    ((Ipp32u)(((Ipp64u)(x) >>32) & 0xFFFFFFFF))
598 
599 #define MAKEHWORD(bLo,bHi) ((Ipp16u)(((Ipp8u)(bLo))  | ((Ipp16u)((Ipp8u)(bHi))) << 8))
600 #define MAKEWORD(hLo,hHi)  ((Ipp32u)(((Ipp16u)(hLo)) | ((Ipp32u)((Ipp16u)(hHi))) << 16))
601 #define MAKEDWORD(wLo,wHi) ((Ipp64u)(((Ipp32u)(wLo)) | ((Ipp64u)((Ipp32u)(wHi))) << 32))
602 
603 /* extract byte */
604 #define EBYTE(w,n) ((Ipp8u)((w) >> (8 * (n))))
605 
606 /* hexString <-> Ipp32u conversion */
607 #define HSTRING_TO_U32(ptrByte)  \
608          ((((ptrByte)[0]) <<24)  \
609         +(((ptrByte)[1]) <<16)   \
610         +(((ptrByte)[2]) <<8)    \
611         +((ptrByte)[3]))
612 #define U32_TO_HSTRING(ptrByte, x)  \
613    (ptrByte)[0] = (Ipp8u)((x)>>24); \
614    (ptrByte)[1] = (Ipp8u)((x)>>16); \
615    (ptrByte)[2] = (Ipp8u)((x)>>8);  \
616    (ptrByte)[3] = (Ipp8u)(x)
617 
618 /* 32- and 64-bit masks for MSB of nbits-sequence */
619 #define MAKEMASK32(nbits) (0xFFFFFFFF >>((32 - ((nbits)&0x1F)) &0x1F))
620 #define MAKEMASK64(nbits) (0xFFFFFFFFFFFFFFFF >>((64 - ((nbits)&0x3F)) &0x3F))
621 
622 /* Logical Shifts (right and left) of WORD */
623 #define LSR32(x,nBits)  ((x)>>(nBits))
624 #define LSL32(x,nBits)  ((x)<<(nBits))
625 
626 /* Rorate (right and left) of WORD */
627 #if defined(_MSC_VER) && !defined( __ICL )
628 #  include <stdlib.h>
629 #  define ROR32(x, nBits)  _lrotr((x),(nBits))
630 #  define ROL32(x, nBits)  _lrotl((x),(nBits))
631 #else
632 #  define ROR32(x, nBits) (LSR32((x),(nBits)) | LSL32((x),32-(nBits)))
633 #  define ROL32(x, nBits) ROR32((x),(32-(nBits)))
634 #endif
635 
636 /* Logical Shifts (right and left) of DWORD */
637 #define LSR64(x,nBits)  ((x)>>(nBits))
638 #define LSL64(x,nBits)  ((x)<<(nBits))
639 
640 /* Rorate (right and left) of DWORD */
641 #define ROR64(x, nBits) (LSR64((x),(nBits)) | LSL64((x),64-(nBits)))
642 #define ROL64(x, nBits) ROR64((x),(64-(nBits)))
643 
644 /* change endian */
645 #if defined(_MSC_VER)
646 #  define ENDIANNESS(x)   _byteswap_ulong((x))
647 #  define ENDIANNESS32(x)  ENDIANNESS((x))
648 #  define ENDIANNESS64(x) _byteswap_uint64((x))
649 #elif defined(__ICL)
650 #  define ENDIANNESS(x)   _bswap((x))
651 #  define ENDIANNESS32(x)  ENDIANNESS((x))
652 #  define ENDIANNESS64(x) _bswap64((x))
653 #else
654 #  define ENDIANNESS(x) ((ROR32((x), 24) & 0x00ff00ff) | (ROR32((x), 8) & 0xff00ff00))
655 #  define ENDIANNESS32(x) ENDIANNESS((x))
656 #  define ENDIANNESS64(x) MAKEDWORD(ENDIANNESS(HIDWORD((x))), ENDIANNESS(LODWORD((x))))
657 #endif
658 
659 #define IPP_MAKE_MULTIPLE_OF_8(x) ((x) = ((x)+7)&(~7))
660 #define IPP_MAKE_MULTIPLE_OF_16(x) ((x) = ((x)+15)&(~15))
661 
662 /* define 64-bit constant */
663 #if !defined(__GNUC__)
664    #define CONST_64(x)  (x) /*(x##i64)*/
665 #else
666    #define CONST_64(x)  (x##LL)
667 #endif
668 
669 /* define 64-bit constant or pair of 32-bit dependding on architecture */
670 #if ((_IPP_ARCH == _IPP_ARCH_EM64T) || (_IPP_ARCH == _IPP_ARCH_LP64) || (_IPP_ARCH == _IPP_ARCH_LRB) || (_IPP_ARCH == _IPP_ARCH_LRB2))
671 #define LL(lo,hi) ((Ipp64u)(((Ipp32u)(lo)) | ((Ipp64u)((Ipp32u)(hi))) << 32))
672 #define L_(lo)    ((Ipp64u)(lo))
673 #else
674 #define LL(lo,hi) (lo),(hi)
675 #define L_(lo)    (lo)
676 #endif
677 
678 
679 /* test if library's feature is ON */
680 int cpGetFeature( Ipp64u Feature );
681 /* test CPU crypto features */
IsFeatureEnabled(Ipp64u niMmask)682 __INLINE Ipp32u IsFeatureEnabled(Ipp64u niMmask)
683 {
684    return cpGetFeature(niMmask);
685 }
686 
687 #define IPPCP_GET_NUM_THREADS() ( ippcpGetEnabledNumThreads() )
688 #define IPPCP_OMP_NUM_THREADS() num_threads( IPPCP_GET_NUM_THREADS() )
689 #define IPPCP_OMP_LIMIT_MAX_NUM_THREADS(n)  num_threads( IPP_MIN(IPPCP_GET_NUM_THREADS(),(n)))
690 
691 /* copy under mask */
692 #define MASKED_COPY_BNU(dst, mask, src1, src2, len) { \
693    cpSize i; \
694    for(i=0; i<(len); i++) (dst)[i] = ((mask) & (src1)[i]) | (~(mask) & (src2)[i]); \
695 }
696 
697 #if !defined( _M_X64 ) && defined ( _MSC_VER ) && !defined(__INTEL_COMPILER)
698 #if (_AES_NI_ENABLING_ == _FEATURE_ON_) || \
699     (_AES_NI_ENABLING_ == _FEATURE_TICKTOCK_) || (_IPP >= _IPP_W7)
700 __inline __m128i
_mm_cvtsi64_si128(__int64 a)701 _mm_cvtsi64_si128(__int64 a)
702 {
703   __m128i x;
704   x.m128i_i64[0] = a;
705   x.m128i_i64[1] = 0;
706   return x;
707 }
708 #endif
709 #endif
710 
711 #endif /* __OWNCP_H__ */
712