aboutsummaryrefslogtreecommitdiff
path: root/ext/ipp/sources/ippcp/owncp.h
blob: c5dec5ef81b624f26650e78fb7a8061bace9b979 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
/*******************************************************************************
* Copyright 2002-2018 Intel Corporation
* All Rights Reserved.
*
* If this  software was obtained  under the  Intel Simplified  Software License,
* the following terms apply:
*
* The source code,  information  and material  ("Material") contained  herein is
* owned by Intel Corporation or its  suppliers or licensors,  and  title to such
* Material remains with Intel  Corporation or its  suppliers or  licensors.  The
* Material  contains  proprietary  information  of  Intel or  its suppliers  and
* licensors.  The Material is protected by  worldwide copyright  laws and treaty
* provisions.  No part  of  the  Material   may  be  used,  copied,  reproduced,
* modified, published,  uploaded, posted, transmitted,  distributed or disclosed
* in any way without Intel's prior express written permission.  No license under
* any patent,  copyright or other  intellectual property rights  in the Material
* is granted to  or  conferred  upon  you,  either   expressly,  by implication,
* inducement,  estoppel  or  otherwise.  Any  license   under such  intellectual
* property rights must be express and approved by Intel in writing.
*
* Unless otherwise agreed by Intel in writing,  you may not remove or alter this
* notice or  any  other  notice   embedded  in  Materials  by  Intel  or Intel's
* suppliers or licensors in any way.
*
*
* If this  software  was obtained  under the  Apache License,  Version  2.0 (the
* "License"), the following terms apply:
*
* You may  not use this  file except  in compliance  with  the License.  You may
* obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless  required  by   applicable  law  or  agreed  to  in  writing,  software
* distributed under the License  is distributed  on an  "AS IS"  BASIS,  WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* See the   License  for the   specific  language   governing   permissions  and
* limitations under the License.
*******************************************************************************/
/******* FILE MODIFIED FROM ORIGINAL 2019u1 RELEASE TO AVOID WARNINGS *********/
/*
//               Intel(R) Integrated Performance Primitives
//                   Cryptographic Primitives (ippcp)
*/

#ifndef __OWNCP_H__
#define __OWNCP_H__

#ifndef __OWNDEFS_H__
  #include "owndefs.h"
#endif

#ifndef IPPCP_H__

#define ippcpGetLibVersion           OWNAPI(ippcpGetLibVersion)
#define ippsDESGetSize               OWNAPI(ippsDESGetSize)
#define ippsDESInit                  OWNAPI(ippsDESInit)
#define ippsDESPack                  OWNAPI(ippsDESPack)
#define ippsDESUnpack                OWNAPI(ippsDESUnpack)
#define ippsTDESEncryptECB           OWNAPI(ippsTDESEncryptECB)
#define ippsTDESDecryptECB           OWNAPI(ippsTDESDecryptECB)
#define ippsTDESEncryptCBC           OWNAPI(ippsTDESEncryptCBC)
#define ippsTDESDecryptCBC           OWNAPI(ippsTDESDecryptCBC)
#define ippsTDESEncryptCFB           OWNAPI(ippsTDESEncryptCFB)
#define ippsTDESDecryptCFB           OWNAPI(ippsTDESDecryptCFB)
#define ippsTDESEncryptOFB           OWNAPI(ippsTDESEncryptOFB)
#define ippsTDESDecryptOFB           OWNAPI(ippsTDESDecryptOFB)
#define ippsTDESEncryptCTR           OWNAPI(ippsTDESEncryptCTR)
#define ippsTDESDecryptCTR           OWNAPI(ippsTDESDecryptCTR)
#define ippsAESGetSize               OWNAPI(ippsAESGetSize)
#define ippsAESInit                  OWNAPI(ippsAESInit)
#define ippsAESSetKey                OWNAPI(ippsAESSetKey)
#define ippsAESPack                  OWNAPI(ippsAESPack)
#define ippsAESUnpack                OWNAPI(ippsAESUnpack)
#define ippsAESEncryptECB            OWNAPI(ippsAESEncryptECB)
#define ippsAESDecryptECB            OWNAPI(ippsAESDecryptECB)
#define ippsAESEncryptCBC            OWNAPI(ippsAESEncryptCBC)
#define ippsAESEncryptCBC_CS1        OWNAPI(ippsAESEncryptCBC_CS1)
#define ippsAESEncryptCBC_CS2        OWNAPI(ippsAESEncryptCBC_CS2)
#define ippsAESEncryptCBC_CS3        OWNAPI(ippsAESEncryptCBC_CS3)
#define ippsAESDecryptCBC            OWNAPI(ippsAESDecryptCBC)
#define ippsAESDecryptCBC_CS1        OWNAPI(ippsAESDecryptCBC_CS1)
#define ippsAESDecryptCBC_CS2        OWNAPI(ippsAESDecryptCBC_CS2)
#define ippsAESDecryptCBC_CS3        OWNAPI(ippsAESDecryptCBC_CS3)
#define ippsAESEncryptCFB            OWNAPI(ippsAESEncryptCFB)
#define ippsAESDecryptCFB            OWNAPI(ippsAESDecryptCFB)
#define ippsAESEncryptOFB            OWNAPI(ippsAESEncryptOFB)
#define ippsAESDecryptOFB            OWNAPI(ippsAESDecryptOFB)
#define ippsAESEncryptCTR            OWNAPI(ippsAESEncryptCTR)
#define ippsAESDecryptCTR            OWNAPI(ippsAESDecryptCTR)
#define ippsAESEncryptXTS_Direct     OWNAPI(ippsAESEncryptXTS_Direct)
#define ippsAESDecryptXTS_Direct     OWNAPI(ippsAESDecryptXTS_Direct)
#define ippsSMS4GetSize              OWNAPI(ippsSMS4GetSize)
#define ippsSMS4Init                 OWNAPI(ippsSMS4Init)
#define ippsSMS4SetKey               OWNAPI(ippsSMS4SetKey)
#define ippsSMS4EncryptECB           OWNAPI(ippsSMS4EncryptECB)
#define ippsSMS4DecryptECB           OWNAPI(ippsSMS4DecryptECB)
#define ippsSMS4EncryptCBC           OWNAPI(ippsSMS4EncryptCBC)
#define ippsSMS4EncryptCBC_CS1       OWNAPI(ippsSMS4EncryptCBC_CS1)
#define ippsSMS4EncryptCBC_CS2       OWNAPI(ippsSMS4EncryptCBC_CS2)
#define ippsSMS4EncryptCBC_CS3       OWNAPI(ippsSMS4EncryptCBC_CS3)
#define ippsSMS4DecryptCBC           OWNAPI(ippsSMS4DecryptCBC)
#define ippsSMS4DecryptCBC_CS1       OWNAPI(ippsSMS4DecryptCBC_CS1)
#define ippsSMS4DecryptCBC_CS2       OWNAPI(ippsSMS4DecryptCBC_CS2)
#define ippsSMS4DecryptCBC_CS3       OWNAPI(ippsSMS4DecryptCBC_CS3)
#define ippsSMS4EncryptCFB           OWNAPI(ippsSMS4EncryptCFB)
#define ippsSMS4DecryptCFB           OWNAPI(ippsSMS4DecryptCFB)
#define ippsSMS4EncryptOFB           OWNAPI(ippsSMS4EncryptOFB)
#define ippsSMS4DecryptOFB           OWNAPI(ippsSMS4DecryptOFB)
#define ippsSMS4EncryptCTR           OWNAPI(ippsSMS4EncryptCTR)
#define ippsSMS4DecryptCTR           OWNAPI(ippsSMS4DecryptCTR)
#define ippsSMS4_CCMGetSize          OWNAPI(ippsSMS4_CCMGetSize)
#define ippsSMS4_CCMInit             OWNAPI(ippsSMS4_CCMInit)
#define ippsSMS4_CCMMessageLen       OWNAPI(ippsSMS4_CCMMessageLen)
#define ippsSMS4_CCMTagLen           OWNAPI(ippsSMS4_CCMTagLen)
#define ippsSMS4_CCMStart            OWNAPI(ippsSMS4_CCMStart)
#define ippsSMS4_CCMEncrypt          OWNAPI(ippsSMS4_CCMEncrypt)
#define ippsSMS4_CCMDecrypt          OWNAPI(ippsSMS4_CCMDecrypt)
#define ippsSMS4_CCMGetTag           OWNAPI(ippsSMS4_CCMGetTag)
#define ippsAES_CCMGetSize           OWNAPI(ippsAES_CCMGetSize)
#define ippsAES_CCMInit              OWNAPI(ippsAES_CCMInit)
#define ippsAES_CCMMessageLen        OWNAPI(ippsAES_CCMMessageLen)
#define ippsAES_CCMTagLen            OWNAPI(ippsAES_CCMTagLen)
#define ippsAES_CCMStart             OWNAPI(ippsAES_CCMStart)
#define ippsAES_CCMEncrypt           OWNAPI(ippsAES_CCMEncrypt)
#define ippsAES_CCMDecrypt           OWNAPI(ippsAES_CCMDecrypt)
#define ippsAES_CCMGetTag            OWNAPI(ippsAES_CCMGetTag)
#define ippsAES_GCMGetSize           OWNAPI(ippsAES_GCMGetSize)
#define ippsAES_GCMInit              OWNAPI(ippsAES_GCMInit)
#define ippsAES_GCMReset             OWNAPI(ippsAES_GCMReset)
#define ippsAES_GCMProcessIV         OWNAPI(ippsAES_GCMProcessIV)
#define ippsAES_GCMProcessAAD        OWNAPI(ippsAES_GCMProcessAAD)
#define ippsAES_GCMStart             OWNAPI(ippsAES_GCMStart)
#define ippsAES_GCMEncrypt           OWNAPI(ippsAES_GCMEncrypt)
#define ippsAES_GCMDecrypt           OWNAPI(ippsAES_GCMDecrypt)
#define ippsAES_GCMGetTag            OWNAPI(ippsAES_GCMGetTag)
#define ippsAES_XTSGetSize           OWNAPI(ippsAES_XTSGetSize)
#define ippsAES_XTSInit              OWNAPI(ippsAES_XTSInit)
#define ippsAES_XTSEncrypt           OWNAPI(ippsAES_XTSEncrypt)
#define ippsAES_XTSDecrypt           OWNAPI(ippsAES_XTSDecrypt)
#define ippsAES_S2V_CMAC             OWNAPI(ippsAES_S2V_CMAC)
#define ippsAES_SIVEncrypt           OWNAPI(ippsAES_SIVEncrypt)
#define ippsAES_SIVDecrypt           OWNAPI(ippsAES_SIVDecrypt)
#define ippsAES_CMACGetSize          OWNAPI(ippsAES_CMACGetSize)
#define ippsAES_CMACInit             OWNAPI(ippsAES_CMACInit)
#define ippsAES_CMACUpdate           OWNAPI(ippsAES_CMACUpdate)
#define ippsAES_CMACFinal            OWNAPI(ippsAES_CMACFinal)
#define ippsAES_CMACGetTag           OWNAPI(ippsAES_CMACGetTag)
#define ippsARCFourCheckKey          OWNAPI(ippsARCFourCheckKey)
#define ippsARCFourGetSize           OWNAPI(ippsARCFourGetSize)
#define ippsARCFourInit              OWNAPI(ippsARCFourInit)
#define ippsARCFourReset             OWNAPI(ippsARCFourReset)
#define ippsARCFourPack              OWNAPI(ippsARCFourPack)
#define ippsARCFourUnpack            OWNAPI(ippsARCFourUnpack)
#define ippsARCFourEncrypt           OWNAPI(ippsARCFourEncrypt)
#define ippsARCFourDecrypt           OWNAPI(ippsARCFourDecrypt)
#define ippsSHA1GetSize              OWNAPI(ippsSHA1GetSize)
#define ippsSHA1Init                 OWNAPI(ippsSHA1Init)
#define ippsSHA1Duplicate            OWNAPI(ippsSHA1Duplicate)
#define ippsSHA1Pack                 OWNAPI(ippsSHA1Pack)
#define ippsSHA1Unpack               OWNAPI(ippsSHA1Unpack)
#define ippsSHA1Update               OWNAPI(ippsSHA1Update)
#define ippsSHA1GetTag               OWNAPI(ippsSHA1GetTag)
#define ippsSHA1Final                OWNAPI(ippsSHA1Final)
#define ippsSHA1MessageDigest        OWNAPI(ippsSHA1MessageDigest)
#define ippsSHA224GetSize            OWNAPI(ippsSHA224GetSize)
#define ippsSHA224Init               OWNAPI(ippsSHA224Init)
#define ippsSHA224Duplicate          OWNAPI(ippsSHA224Duplicate)
#define ippsSHA224Pack               OWNAPI(ippsSHA224Pack)
#define ippsSHA224Unpack             OWNAPI(ippsSHA224Unpack)
#define ippsSHA224Update             OWNAPI(ippsSHA224Update)
#define ippsSHA224GetTag             OWNAPI(ippsSHA224GetTag)
#define ippsSHA224Final              OWNAPI(ippsSHA224Final)
#define ippsSHA224MessageDigest      OWNAPI(ippsSHA224MessageDigest)
#define ippsSHA256GetSize            OWNAPI(ippsSHA256GetSize)
#define ippsSHA256Init               OWNAPI(ippsSHA256Init)
#define ippsSHA256Duplicate          OWNAPI(ippsSHA256Duplicate)
#define ippsSHA256Pack               OWNAPI(ippsSHA256Pack)
#define ippsSHA256Unpack             OWNAPI(ippsSHA256Unpack)
#define ippsSHA256Update             OWNAPI(ippsSHA256Update)
#define ippsSHA256GetTag             OWNAPI(ippsSHA256GetTag)
#define ippsSHA256Final              OWNAPI(ippsSHA256Final)
#define ippsSHA256MessageDigest      OWNAPI(ippsSHA256MessageDigest)
#define ippsSHA384GetSize            OWNAPI(ippsSHA384GetSize)
#define ippsSHA384Init               OWNAPI(ippsSHA384Init)
#define ippsSHA384Duplicate          OWNAPI(ippsSHA384Duplicate)
#define ippsSHA384Pack               OWNAPI(ippsSHA384Pack)
#define ippsSHA384Unpack             OWNAPI(ippsSHA384Unpack)
#define ippsSHA384Update             OWNAPI(ippsSHA384Update)
#define ippsSHA384GetTag             OWNAPI(ippsSHA384GetTag)
#define ippsSHA384Final              OWNAPI(ippsSHA384Final)
#define ippsSHA384MessageDigest      OWNAPI(ippsSHA384MessageDigest)
#define ippsSHA512GetSize            OWNAPI(ippsSHA512GetSize)
#define ippsSHA512Init               OWNAPI(ippsSHA512Init)
#define ippsSHA512Duplicate          OWNAPI(ippsSHA512Duplicate)
#define ippsSHA512Pack               OWNAPI(ippsSHA512Pack)
#define ippsSHA512Unpack             OWNAPI(ippsSHA512Unpack)
#define ippsSHA512Update             OWNAPI(ippsSHA512Update)
#define ippsSHA512GetTag             OWNAPI(ippsSHA512GetTag)
#define ippsSHA512Final              OWNAPI(ippsSHA512Final)
#define ippsSHA512MessageDigest      OWNAPI(ippsSHA512MessageDigest)
#define ippsMD5GetSize               OWNAPI(ippsMD5GetSize)
#define ippsMD5Init                  OWNAPI(ippsMD5Init)
#define ippsMD5Duplicate             OWNAPI(ippsMD5Duplicate)
#define ippsMD5Pack                  OWNAPI(ippsMD5Pack)
#define ippsMD5Unpack                OWNAPI(ippsMD5Unpack)
#define ippsMD5Update                OWNAPI(ippsMD5Update)
#define ippsMD5GetTag                OWNAPI(ippsMD5GetTag)
#define ippsMD5Final                 OWNAPI(ippsMD5Final)
#define ippsMD5MessageDigest         OWNAPI(ippsMD5MessageDigest)
#define ippsSM3GetSize               OWNAPI(ippsSM3GetSize)
#define ippsSM3Init                  OWNAPI(ippsSM3Init)
#define ippsSM3Duplicate             OWNAPI(ippsSM3Duplicate)
#define ippsSM3Pack                  OWNAPI(ippsSM3Pack)
#define ippsSM3Unpack                OWNAPI(ippsSM3Unpack)
#define ippsSM3Update                OWNAPI(ippsSM3Update)
#define ippsSM3GetTag                OWNAPI(ippsSM3GetTag)
#define ippsSM3Final                 OWNAPI(ippsSM3Final)
#define ippsSM3MessageDigest         OWNAPI(ippsSM3MessageDigest)
#define ippsHashGetSize              OWNAPI(ippsHashGetSize)
#define ippsHashInit                 OWNAPI(ippsHashInit)
#define ippsHashPack                 OWNAPI(ippsHashPack)
#define ippsHashUnpack               OWNAPI(ippsHashUnpack)
#define ippsHashDuplicate            OWNAPI(ippsHashDuplicate)
#define ippsHashUpdate               OWNAPI(ippsHashUpdate)
#define ippsHashGetTag               OWNAPI(ippsHashGetTag)
#define ippsHashFinal                OWNAPI(ippsHashFinal)
#define ippsHashMessage              OWNAPI(ippsHashMessage)
#define ippsHashMethod_MD5           OWNAPI(ippsHashMethod_MD5)
#define ippsHashMethod_SM3           OWNAPI(ippsHashMethod_SM3)
#define ippsHashMethod_SHA1          OWNAPI(ippsHashMethod_SHA1)
#define ippsHashMethod_SHA1_NI       OWNAPI(ippsHashMethod_SHA1_NI)
#define ippsHashMethod_SHA1_TT       OWNAPI(ippsHashMethod_SHA1_TT)
#define ippsHashMethod_SHA256        OWNAPI(ippsHashMethod_SHA256)
#define ippsHashMethod_SHA256_NI     OWNAPI(ippsHashMethod_SHA256_NI)
#define ippsHashMethod_SHA256_TT     OWNAPI(ippsHashMethod_SHA256_TT)
#define ippsHashMethod_SHA224        OWNAPI(ippsHashMethod_SHA224)
#define ippsHashMethod_SHA224_NI     OWNAPI(ippsHashMethod_SHA224_NI)
#define ippsHashMethod_SHA224_TT     OWNAPI(ippsHashMethod_SHA224_TT)
#define ippsHashMethod_SHA512        OWNAPI(ippsHashMethod_SHA512)
#define ippsHashMethod_SHA384        OWNAPI(ippsHashMethod_SHA384)
#define ippsHashMethod_SHA512_256    OWNAPI(ippsHashMethod_SHA512_256)
#define ippsHashMethod_SHA512_224    OWNAPI(ippsHashMethod_SHA512_224)
#define ippsHashGetSize_rmf          OWNAPI(ippsHashGetSize_rmf)
#define ippsHashInit_rmf             OWNAPI(ippsHashInit_rmf)
#define ippsHashPack_rmf             OWNAPI(ippsHashPack_rmf)
#define ippsHashUnpack_rmf           OWNAPI(ippsHashUnpack_rmf)
#define ippsHashDuplicate_rmf        OWNAPI(ippsHashDuplicate_rmf)
#define ippsHashUpdate_rmf           OWNAPI(ippsHashUpdate_rmf)
#define ippsHashGetTag_rmf           OWNAPI(ippsHashGetTag_rmf)
#define ippsHashFinal_rmf            OWNAPI(ippsHashFinal_rmf)
#define ippsHashMessage_rmf          OWNAPI(ippsHashMessage_rmf)
#define ippsMGF                      OWNAPI(ippsMGF)
#define ippsMGF1_rmf                 OWNAPI(ippsMGF1_rmf)
#define ippsMGF2_rmf                 OWNAPI(ippsMGF2_rmf)
#define ippsHMAC_GetSize             OWNAPI(ippsHMAC_GetSize)
#define ippsHMAC_Init                OWNAPI(ippsHMAC_Init)
#define ippsHMAC_Pack                OWNAPI(ippsHMAC_Pack)
#define ippsHMAC_Unpack              OWNAPI(ippsHMAC_Unpack)
#define ippsHMAC_Duplicate           OWNAPI(ippsHMAC_Duplicate)
#define ippsHMAC_Update              OWNAPI(ippsHMAC_Update)
#define ippsHMAC_Final               OWNAPI(ippsHMAC_Final)
#define ippsHMAC_GetTag              OWNAPI(ippsHMAC_GetTag)
#define ippsHMAC_Message             OWNAPI(ippsHMAC_Message)
#define ippsHMACGetSize_rmf          OWNAPI(ippsHMACGetSize_rmf)
#define ippsHMACInit_rmf             OWNAPI(ippsHMACInit_rmf)
#define ippsHMACPack_rmf             OWNAPI(ippsHMACPack_rmf)
#define ippsHMACUnpack_rmf           OWNAPI(ippsHMACUnpack_rmf)
#define ippsHMACDuplicate_rmf        OWNAPI(ippsHMACDuplicate_rmf)
#define ippsHMACUpdate_rmf           OWNAPI(ippsHMACUpdate_rmf)
#define ippsHMACFinal_rmf            OWNAPI(ippsHMACFinal_rmf)
#define ippsHMACGetTag_rmf           OWNAPI(ippsHMACGetTag_rmf)
#define ippsHMACMessage_rmf          OWNAPI(ippsHMACMessage_rmf)
#define ippsBigNumGetSize            OWNAPI(ippsBigNumGetSize)
#define ippsBigNumInit               OWNAPI(ippsBigNumInit)
#define ippsCmpZero_BN               OWNAPI(ippsCmpZero_BN)
#define ippsCmp_BN                   OWNAPI(ippsCmp_BN)
#define ippsGetSize_BN               OWNAPI(ippsGetSize_BN)
#define ippsSet_BN                   OWNAPI(ippsSet_BN)
#define ippsGet_BN                   OWNAPI(ippsGet_BN)
#define ippsRef_BN                   OWNAPI(ippsRef_BN)
#define ippsExtGet_BN                OWNAPI(ippsExtGet_BN)
#define ippsAdd_BN                   OWNAPI(ippsAdd_BN)
#define ippsSub_BN                   OWNAPI(ippsSub_BN)
#define ippsMul_BN                   OWNAPI(ippsMul_BN)
#define ippsMAC_BN_I                 OWNAPI(ippsMAC_BN_I)
#define ippsDiv_BN                   OWNAPI(ippsDiv_BN)
#define ippsMod_BN                   OWNAPI(ippsMod_BN)
#define ippsGcd_BN                   OWNAPI(ippsGcd_BN)
#define ippsModInv_BN                OWNAPI(ippsModInv_BN)
#define ippsSetOctString_BN          OWNAPI(ippsSetOctString_BN)
#define ippsGetOctString_BN          OWNAPI(ippsGetOctString_BN)
#define ippsMontGetSize              OWNAPI(ippsMontGetSize)
#define ippsMontInit                 OWNAPI(ippsMontInit)
#define ippsMontSet                  OWNAPI(ippsMontSet)
#define ippsMontGet                  OWNAPI(ippsMontGet)
#define ippsMontForm                 OWNAPI(ippsMontForm)
#define ippsMontMul                  OWNAPI(ippsMontMul)
#define ippsMontExp                  OWNAPI(ippsMontExp)
#define ippsPRNGGetSize              OWNAPI(ippsPRNGGetSize)
#define ippsPRNGInit                 OWNAPI(ippsPRNGInit)
#define ippsPRNGSetModulus           OWNAPI(ippsPRNGSetModulus)
#define ippsPRNGSetH0                OWNAPI(ippsPRNGSetH0)
#define ippsPRNGSetAugment           OWNAPI(ippsPRNGSetAugment)
#define ippsPRNGSetSeed              OWNAPI(ippsPRNGSetSeed)
#define ippsPRNGGetSeed              OWNAPI(ippsPRNGGetSeed)
#define ippsPRNGen                   OWNAPI(ippsPRNGen)
#define ippsPRNGen_BN                OWNAPI(ippsPRNGen_BN)
#define ippsPRNGenRDRAND             OWNAPI(ippsPRNGenRDRAND)
#define ippsPRNGenRDRAND_BN          OWNAPI(ippsPRNGenRDRAND_BN)
#define ippsTRNGenRDSEED             OWNAPI(ippsTRNGenRDSEED)
#define ippsTRNGenRDSEED_BN          OWNAPI(ippsTRNGenRDSEED_BN)
#define ippsPrimeGetSize             OWNAPI(ippsPrimeGetSize)
#define ippsPrimeInit                OWNAPI(ippsPrimeInit)
#define ippsPrimeGen                 OWNAPI(ippsPrimeGen)
#define ippsPrimeTest                OWNAPI(ippsPrimeTest)
#define ippsPrimeGen_BN              OWNAPI(ippsPrimeGen_BN)
#define ippsPrimeTest_BN             OWNAPI(ippsPrimeTest_BN)
#define ippsPrimeGet                 OWNAPI(ippsPrimeGet)
#define ippsPrimeGet_BN              OWNAPI(ippsPrimeGet_BN)
#define ippsPrimeSet                 OWNAPI(ippsPrimeSet)
#define ippsPrimeSet_BN              OWNAPI(ippsPrimeSet_BN)
#define ippsRSA_GetSizePublicKey     OWNAPI(ippsRSA_GetSizePublicKey)
#define ippsRSA_InitPublicKey        OWNAPI(ippsRSA_InitPublicKey)
#define ippsRSA_SetPublicKey         OWNAPI(ippsRSA_SetPublicKey)
#define ippsRSA_GetPublicKey         OWNAPI(ippsRSA_GetPublicKey)
#define ippsRSA_GetSizePrivateKeyType1   OWNAPI(ippsRSA_GetSizePrivateKeyType1)
#define ippsRSA_InitPrivateKeyType1      OWNAPI(ippsRSA_InitPrivateKeyType1)
#define ippsRSA_SetPrivateKeyType1       OWNAPI(ippsRSA_SetPrivateKeyType1)
#define ippsRSA_GetPrivateKeyType1       OWNAPI(ippsRSA_GetPrivateKeyType1)
#define ippsRSA_GetSizePrivateKeyType2   OWNAPI(ippsRSA_GetSizePrivateKeyType2)
#define ippsRSA_InitPrivateKeyType2      OWNAPI(ippsRSA_InitPrivateKeyType2)
#define ippsRSA_SetPrivateKeyType2       OWNAPI(ippsRSA_SetPrivateKeyType2)
#define ippsRSA_GetPrivateKeyType2       OWNAPI(ippsRSA_GetPrivateKeyType2)
#define ippsRSA_GetBufferSizePublicKey   OWNAPI(ippsRSA_GetBufferSizePublicKey)
#define ippsRSA_GetBufferSizePrivateKey  OWNAPI(ippsRSA_GetBufferSizePrivateKey)
#define ippsRSA_Encrypt              OWNAPI(ippsRSA_Encrypt)
#define ippsRSA_Decrypt              OWNAPI(ippsRSA_Decrypt)
#define ippsRSA_GenerateKeys         OWNAPI(ippsRSA_GenerateKeys)
#define ippsRSA_ValidateKeys         OWNAPI(ippsRSA_ValidateKeys)
#define ippsRSAEncrypt_OAEP          OWNAPI(ippsRSAEncrypt_OAEP)
#define ippsRSADecrypt_OAEP          OWNAPI(ippsRSADecrypt_OAEP)
#define ippsRSAEncrypt_OAEP_rmf      OWNAPI(ippsRSAEncrypt_OAEP_rmf)
#define ippsRSADecrypt_OAEP_rmf      OWNAPI(ippsRSADecrypt_OAEP_rmf)
#define ippsRSAEncrypt_PKCSv15       OWNAPI(ippsRSAEncrypt_PKCSv15)
#define ippsRSADecrypt_PKCSv15       OWNAPI(ippsRSADecrypt_PKCSv15)
#define ippsRSASign_PSS              OWNAPI(ippsRSASign_PSS)
#define ippsRSAVerify_PSS            OWNAPI(ippsRSAVerify_PSS)
#define ippsRSASign_PSS_rmf          OWNAPI(ippsRSASign_PSS_rmf)
#define ippsRSAVerify_PSS_rmf        OWNAPI(ippsRSAVerify_PSS_rmf)
#define ippsRSASign_PKCS1v15         OWNAPI(ippsRSASign_PKCS1v15)
#define ippsRSAVerify_PKCS1v15       OWNAPI(ippsRSAVerify_PKCS1v15)
#define ippsRSASign_PKCS1v15_rmf     OWNAPI(ippsRSASign_PKCS1v15_rmf)
#define ippsRSAVerify_PKCS1v15_rmf   OWNAPI(ippsRSAVerify_PKCS1v15_rmf)
#define ippsDLGetResultString        OWNAPI(ippsDLGetResultString)
#define ippsDLPGetSize               OWNAPI(ippsDLPGetSize)
#define ippsDLPInit                  OWNAPI(ippsDLPInit)
#define ippsDLPPack                  OWNAPI(ippsDLPPack)
#define ippsDLPUnpack                OWNAPI(ippsDLPUnpack)
#define ippsDLPSet                   OWNAPI(ippsDLPSet)
#define ippsDLPGet                   OWNAPI(ippsDLPGet)
#define ippsDLPSetDP                 OWNAPI(ippsDLPSetDP)
#define ippsDLPGetDP                 OWNAPI(ippsDLPGetDP)
#define ippsDLPGenKeyPair            OWNAPI(ippsDLPGenKeyPair)
#define ippsDLPPublicKey             OWNAPI(ippsDLPPublicKey)
#define ippsDLPValidateKeyPair       OWNAPI(ippsDLPValidateKeyPair)
#define ippsDLPSetKeyPair            OWNAPI(ippsDLPSetKeyPair)
#define ippsDLPSignDSA               OWNAPI(ippsDLPSignDSA)
#define ippsDLPVerifyDSA             OWNAPI(ippsDLPVerifyDSA)
#define ippsDLPSharedSecretDH        OWNAPI(ippsDLPSharedSecretDH)
#define ippsDLPGenerateDSA           OWNAPI(ippsDLPGenerateDSA)
#define ippsDLPValidateDSA           OWNAPI(ippsDLPValidateDSA)
#define ippsDLPGenerateDH            OWNAPI(ippsDLPGenerateDH)
#define ippsDLPValidateDH            OWNAPI(ippsDLPValidateDH)
#define ippsECCGetResultString       OWNAPI(ippsECCGetResultString)
#define ippsECCPGetSize              OWNAPI(ippsECCPGetSize)
#define ippsECCPGetSizeStd128r1      OWNAPI(ippsECCPGetSizeStd128r1)
#define ippsECCPGetSizeStd128r2      OWNAPI(ippsECCPGetSizeStd128r2)
#define ippsECCPGetSizeStd192r1      OWNAPI(ippsECCPGetSizeStd192r1)
#define ippsECCPGetSizeStd224r1      OWNAPI(ippsECCPGetSizeStd224r1)
#define ippsECCPGetSizeStd256r1      OWNAPI(ippsECCPGetSizeStd256r1)
#define ippsECCPGetSizeStd384r1      OWNAPI(ippsECCPGetSizeStd384r1)
#define ippsECCPGetSizeStd521r1      OWNAPI(ippsECCPGetSizeStd521r1)
#define ippsECCPGetSizeStdSM2        OWNAPI(ippsECCPGetSizeStdSM2)
#define ippsECCPInit                 OWNAPI(ippsECCPInit)
#define ippsECCPInitStd128r1         OWNAPI(ippsECCPInitStd128r1)
#define ippsECCPInitStd128r2         OWNAPI(ippsECCPInitStd128r2)
#define ippsECCPInitStd192r1         OWNAPI(ippsECCPInitStd192r1)
#define ippsECCPInitStd224r1         OWNAPI(ippsECCPInitStd224r1)
#define ippsECCPInitStd256r1         OWNAPI(ippsECCPInitStd256r1)
#define ippsECCPInitStd384r1         OWNAPI(ippsECCPInitStd384r1)
#define ippsECCPInitStd521r1         OWNAPI(ippsECCPInitStd521r1)
#define ippsECCPInitStdSM2           OWNAPI(ippsECCPInitStdSM2)
#define ippsECCPSet                  OWNAPI(ippsECCPSet)
#define ippsECCPSetStd               OWNAPI(ippsECCPSetStd)
#define ippsECCPSetStd128r1          OWNAPI(ippsECCPSetStd128r1)
#define ippsECCPSetStd128r2          OWNAPI(ippsECCPSetStd128r2)
#define ippsECCPSetStd192r1          OWNAPI(ippsECCPSetStd192r1)
#define ippsECCPSetStd224r1          OWNAPI(ippsECCPSetStd224r1)
#define ippsECCPSetStd256r1          OWNAPI(ippsECCPSetStd256r1)
#define ippsECCPSetStd384r1          OWNAPI(ippsECCPSetStd384r1)
#define ippsECCPSetStd521r1          OWNAPI(ippsECCPSetStd521r1)
#define ippsECCPSetStdSM2            OWNAPI(ippsECCPSetStdSM2)
#define ippsECCPBindGxyTblStd192r1   OWNAPI(ippsECCPBindGxyTblStd192r1)
#define ippsECCPBindGxyTblStd224r1   OWNAPI(ippsECCPBindGxyTblStd224r1)
#define ippsECCPBindGxyTblStd256r1   OWNAPI(ippsECCPBindGxyTblStd256r1)
#define ippsECCPBindGxyTblStd384r1   OWNAPI(ippsECCPBindGxyTblStd384r1)
#define ippsECCPBindGxyTblStd521r1   OWNAPI(ippsECCPBindGxyTblStd521r1)
#define ippsECCPBindGxyTblStdSM2     OWNAPI(ippsECCPBindGxyTblStdSM2)
#define ippsECCPGet                  OWNAPI(ippsECCPGet)
#define ippsECCPGetOrderBitSize      OWNAPI(ippsECCPGetOrderBitSize)
#define ippsECCPValidate             OWNAPI(ippsECCPValidate)
#define ippsECCPPointGetSize         OWNAPI(ippsECCPPointGetSize)
#define ippsECCPPointInit            OWNAPI(ippsECCPPointInit)
#define ippsECCPSetPoint             OWNAPI(ippsECCPSetPoint)
#define ippsECCPSetPointAtInfinity   OWNAPI(ippsECCPSetPointAtInfinity)
#define ippsECCPGetPoint             OWNAPI(ippsECCPGetPoint)
#define ippsECCPCheckPoint           OWNAPI(ippsECCPCheckPoint)
#define ippsECCPComparePoint         OWNAPI(ippsECCPComparePoint)
#define ippsECCPNegativePoint        OWNAPI(ippsECCPNegativePoint)
#define ippsECCPAddPoint             OWNAPI(ippsECCPAddPoint)
#define ippsECCPMulPointScalar       OWNAPI(ippsECCPMulPointScalar)
#define ippsECCPGenKeyPair           OWNAPI(ippsECCPGenKeyPair)
#define ippsECCPPublicKey            OWNAPI(ippsECCPPublicKey)
#define ippsECCPValidateKeyPair      OWNAPI(ippsECCPValidateKeyPair)
#define ippsECCPSetKeyPair           OWNAPI(ippsECCPSetKeyPair)
#define ippsECCPSharedSecretDH       OWNAPI(ippsECCPSharedSecretDH)
#define ippsECCPSharedSecretDHC      OWNAPI(ippsECCPSharedSecretDHC)
#define ippsECCPSignDSA              OWNAPI(ippsECCPSignDSA)
#define ippsECCPVerifyDSA            OWNAPI(ippsECCPVerifyDSA)
#define ippsECCPSignNR               OWNAPI(ippsECCPSignNR)
#define ippsECCPVerifyNR             OWNAPI(ippsECCPVerifyNR)
#define ippsECCPSignSM2              OWNAPI(ippsECCPSignSM2)
#define ippsECCPVerifySM2            OWNAPI(ippsECCPVerifySM2)
#define ippsGFpGetSize               OWNAPI(ippsGFpGetSize)
#define ippsGFpInitArbitrary         OWNAPI(ippsGFpInitArbitrary)
#define ippsGFpInitFixed             OWNAPI(ippsGFpInitFixed)
#define ippsGFpInit                  OWNAPI(ippsGFpInit)
#define ippsGFpMethod_p192r1         OWNAPI(ippsGFpMethod_p192r1)
#define ippsGFpMethod_p224r1         OWNAPI(ippsGFpMethod_p224r1)
#define ippsGFpMethod_p256r1         OWNAPI(ippsGFpMethod_p256r1)
#define ippsGFpMethod_p384r1         OWNAPI(ippsGFpMethod_p384r1)
#define ippsGFpMethod_p521r1         OWNAPI(ippsGFpMethod_p521r1)
#define ippsGFpMethod_p256sm2        OWNAPI(ippsGFpMethod_p256sm2)
#define ippsGFpMethod_p256bn         OWNAPI(ippsGFpMethod_p256bn)
#define ippsGFpMethod_p256           OWNAPI(ippsGFpMethod_p256)
#define ippsGFpMethod_pArb           OWNAPI(ippsGFpMethod_pArb)
#define ippsGFpxGetSize              OWNAPI(ippsGFpxGetSize)
#define ippsGFpxInit                 OWNAPI(ippsGFpxInit)
#define ippsGFpxInitBinomial         OWNAPI(ippsGFpxInitBinomial)
#define ippsGFpxMethod_binom2_epid2  OWNAPI(ippsGFpxMethod_binom2_epid2)
#define ippsGFpxMethod_binom3_epid2  OWNAPI(ippsGFpxMethod_binom3_epid2)
#define ippsGFpxMethod_binom2        OWNAPI(ippsGFpxMethod_binom2)
#define ippsGFpxMethod_binom3        OWNAPI(ippsGFpxMethod_binom3)
#define ippsGFpxMethod_binom         OWNAPI(ippsGFpxMethod_binom)
#define ippsGFpxMethod_com           OWNAPI(ippsGFpxMethod_com)
#define ippsGFpScratchBufferSize     OWNAPI(ippsGFpScratchBufferSize)
#define ippsGFpElementGetSize        OWNAPI(ippsGFpElementGetSize)
#define ippsGFpElementInit           OWNAPI(ippsGFpElementInit)
#define ippsGFpSetElement            OWNAPI(ippsGFpSetElement)
#define ippsGFpSetElementRegular     OWNAPI(ippsGFpSetElementRegular)
#define ippsGFpSetElementOctString   OWNAPI(ippsGFpSetElementOctString)
#define ippsGFpSetElementRandom      OWNAPI(ippsGFpSetElementRandom)
#define ippsGFpSetElementHash        OWNAPI(ippsGFpSetElementHash)
#define ippsGFpSetElementHash_rmf    OWNAPI(ippsGFpSetElementHash_rmf)
#define ippsGFpCpyElement            OWNAPI(ippsGFpCpyElement)
#define ippsGFpGetElement            OWNAPI(ippsGFpGetElement)
#define ippsGFpGetElementOctString   OWNAPI(ippsGFpGetElementOctString)
#define ippsGFpCmpElement            OWNAPI(ippsGFpCmpElement)
#define ippsGFpIsZeroElement         OWNAPI(ippsGFpIsZeroElement)
#define ippsGFpIsUnityElement        OWNAPI(ippsGFpIsUnityElement)
#define ippsGFpConj                  OWNAPI(ippsGFpConj)
#define ippsGFpNeg                   OWNAPI(ippsGFpNeg)
#define ippsGFpInv                   OWNAPI(ippsGFpInv)
#define ippsGFpSqrt                  OWNAPI(ippsGFpSqrt)
#define ippsGFpSqr                   OWNAPI(ippsGFpSqr)
#define ippsGFpAdd                   OWNAPI(ippsGFpAdd)
#define ippsGFpSub                   OWNAPI(ippsGFpSub)
#define ippsGFpMul                   OWNAPI(ippsGFpMul)
#define ippsGFpExp                   OWNAPI(ippsGFpExp)
#define ippsGFpMultiExp              OWNAPI(ippsGFpMultiExp)
#define ippsGFpAdd_PE                OWNAPI(ippsGFpAdd_PE)
#define ippsGFpSub_PE                OWNAPI(ippsGFpSub_PE)
#define ippsGFpMul_PE                OWNAPI(ippsGFpMul_PE)
#define ippsGFpECGetSize             OWNAPI(ippsGFpECGetSize)
#define ippsGFpECInit                OWNAPI(ippsGFpECInit)
#define ippsGFpECSet                 OWNAPI(ippsGFpECSet)
#define ippsGFpECSetSubgroup         OWNAPI(ippsGFpECSetSubgroup)
#define ippsGFpECInitStd128r1        OWNAPI(ippsGFpECInitStd128r1)
#define ippsGFpECInitStd128r2        OWNAPI(ippsGFpECInitStd128r2)
#define ippsGFpECInitStd192r1        OWNAPI(ippsGFpECInitStd192r1)
#define ippsGFpECInitStd224r1        OWNAPI(ippsGFpECInitStd224r1)
#define ippsGFpECInitStd256r1        OWNAPI(ippsGFpECInitStd256r1)
#define ippsGFpECInitStd384r1        OWNAPI(ippsGFpECInitStd384r1)
#define ippsGFpECInitStd521r1        OWNAPI(ippsGFpECInitStd521r1)
#define ippsGFpECInitStdSM2          OWNAPI(ippsGFpECInitStdSM2)
#define ippsGFpECInitStdBN256        OWNAPI(ippsGFpECInitStdBN256)
#define ippsGFpECBindGxyTblStd192r1  OWNAPI(ippsGFpECBindGxyTblStd192r1)
#define ippsGFpECBindGxyTblStd224r1  OWNAPI(ippsGFpECBindGxyTblStd224r1)
#define ippsGFpECBindGxyTblStd256r1  OWNAPI(ippsGFpECBindGxyTblStd256r1)
#define ippsGFpECBindGxyTblStd384r1  OWNAPI(ippsGFpECBindGxyTblStd384r1)
#define ippsGFpECBindGxyTblStd521r1  OWNAPI(ippsGFpECBindGxyTblStd521r1)
#define ippsGFpECBindGxyTblStdSM2    OWNAPI(ippsGFpECBindGxyTblStdSM2)
#define ippsGFpECGet                 OWNAPI(ippsGFpECGet)
#define ippsGFpECGetSubgroup         OWNAPI(ippsGFpECGetSubgroup)
#define ippsGFpECScratchBufferSize   OWNAPI(ippsGFpECScratchBufferSize)
#define ippsGFpECVerify              OWNAPI(ippsGFpECVerify)
#define ippsGFpECPointGetSize        OWNAPI(ippsGFpECPointGetSize)
#define ippsGFpECPointInit           OWNAPI(ippsGFpECPointInit)
#define ippsGFpECSetPointAtInfinity  OWNAPI(ippsGFpECSetPointAtInfinity)
#define ippsGFpECSetPoint            OWNAPI(ippsGFpECSetPoint)
#define ippsGFpECSetPointRegular     OWNAPI(ippsGFpECSetPointRegular)
#define ippsGFpECSetPointRandom      OWNAPI(ippsGFpECSetPointRandom)
#define ippsGFpECMakePoint           OWNAPI(ippsGFpECMakePoint)
#define ippsGFpECSetPointHash        OWNAPI(ippsGFpECSetPointHash)
#define ippsGFpECSetPointHash_rmf    OWNAPI(ippsGFpECSetPointHash_rmf)
#define ippsGFpECGetPoint            OWNAPI(ippsGFpECGetPoint)
#define ippsGFpECGetPointRegular     OWNAPI(ippsGFpECGetPointRegular)
#define ippsGFpECSetPointOctString   OWNAPI(ippsGFpECSetPointOctString)
#define ippsGFpECGetPointOctString   OWNAPI(ippsGFpECGetPointOctString)
#define ippsGFpECTstPoint            OWNAPI(ippsGFpECTstPoint)
#define ippsGFpECTstPointInSubgroup  OWNAPI(ippsGFpECTstPointInSubgroup)
#define ippsGFpECCpyPoint            OWNAPI(ippsGFpECCpyPoint)
#define ippsGFpECCmpPoint            OWNAPI(ippsGFpECCmpPoint)
#define ippsGFpECNegPoint            OWNAPI(ippsGFpECNegPoint)
#define ippsGFpECAddPoint            OWNAPI(ippsGFpECAddPoint)
#define ippsGFpECMulPoint            OWNAPI(ippsGFpECMulPoint)
#define ippsGFpECPrivateKey          OWNAPI(ippsGFpECPrivateKey)
#define ippsGFpECPublicKey           OWNAPI(ippsGFpECPublicKey)
#define ippsGFpECTstKeyPair          OWNAPI(ippsGFpECTstKeyPair)
#define ippsGFpECSharedSecretDH      OWNAPI(ippsGFpECSharedSecretDH)
#define ippsGFpECSharedSecretDHC     OWNAPI(ippsGFpECSharedSecretDHC)
#define ippsGFpECSignDSA             OWNAPI(ippsGFpECSignDSA)
#define ippsGFpECVerifyDSA           OWNAPI(ippsGFpECVerifyDSA)
#define ippsGFpECSignNR              OWNAPI(ippsGFpECSignNR)
#define ippsGFpECVerifyNR            OWNAPI(ippsGFpECVerifyNR)
#define ippsGFpECSignSM2             OWNAPI(ippsGFpECSignSM2)
#define ippsGFpECVerifySM2           OWNAPI(ippsGFpECVerifySM2)
#define ippsGFpECESGetSize_SM2       OWNAPI(ippsGFpECESGetSize_SM2)
#define ippsGFpECESInit_SM2          OWNAPI(ippsGFpECESInit_SM2)
#define ippsGFpECESSetKey_SM2        OWNAPI(ippsGFpECESSetKey_SM2)
#define ippsGFpECESStart_SM2         OWNAPI(ippsGFpECESStart_SM2)
#define ippsGFpECESEncrypt_SM2       OWNAPI(ippsGFpECESEncrypt_SM2)
#define ippsGFpECESDecrypt_SM2       OWNAPI(ippsGFpECESDecrypt_SM2)
#define ippsGFpECESFinal_SM2         OWNAPI(ippsGFpECESFinal_SM2)
#define ippsGFpECESGetBuffersSize_SM2 OWNAPI(ippsGFpECESGetBuffersSize_SM2)

  #include "ippcp.h"
#endif

/*
// modes of the CPU feature
*/
#define _FEATURE_OFF_      (0)   /* feature is OFF a priori */
#define _FEATURE_ON_       (1)   /* feature is ON  a priori */
#define _FEATURE_TICKTOCK_ (2)   /* dectect is feature OFF/ON */

#include "pcpvariant.h"

#pragma warning( disable : 4996 4324 4206)

/* ippCP length */
typedef int cpSize;

/*
// Common ippCP Macros
*/

/* size of cache line (bytes) */
#if (_IPP==_IPP_M5)
#define CACHE_LINE_SIZE      (16)
#define LOG_CACHE_LINE_SIZE   (4)
#else
#define CACHE_LINE_SIZE      (64)
#define LOG_CACHE_LINE_SIZE   (6)
#endif

/* swap data & pointers */
#define SWAP_PTR(ATYPE, pX,pY)   { ATYPE* aPtr=(pX); (pX)=(pY); (pY)=aPtr; }
#define SWAP(x,y)                {(x)^=(y); (y)^=(x); (x)^=(y);}

/* alignment value */
#define ALIGN_VAL ((int)sizeof(void*))

/* bitsize */
#define BYTESIZE     (8)
#define BITSIZE(x)   ((int)(sizeof(x)*BYTESIZE))

/* bit length -> byte/word length conversion */
#define BITS2WORD8_SIZE(x)  (((x)+ 7)>>3)
#define BITS2WORD16_SIZE(x) (((x)+15)>>4)
#define BITS2WORD32_SIZE(x) (((x)+31)>>5)
#define BITS2WORD64_SIZE(x) (((x)+63)>>6)

/* WORD and DWORD manipulators */
#define LODWORD(x)    ((Ipp32u)(x))
#define HIDWORD(x)    ((Ipp32u)(((Ipp64u)(x) >>32) & 0xFFFFFFFF))

#define MAKEHWORD(bLo,bHi) ((Ipp16u)(((Ipp8u)(bLo))  | ((Ipp16u)((Ipp8u)(bHi))) << 8))
#define MAKEWORD(hLo,hHi)  ((Ipp32u)(((Ipp16u)(hLo)) | ((Ipp32u)((Ipp16u)(hHi))) << 16))
#define MAKEDWORD(wLo,wHi) ((Ipp64u)(((Ipp32u)(wLo)) | ((Ipp64u)((Ipp32u)(wHi))) << 32))

/* extract byte */
#define EBYTE(w,n) ((Ipp8u)((w) >> (8 * (n))))

/* hexString <-> Ipp32u conversion */
#define HSTRING_TO_U32(ptrByte)  \
         ((((ptrByte)[0]) <<24)  \
        +(((ptrByte)[1]) <<16)   \
        +(((ptrByte)[2]) <<8)    \
        +((ptrByte)[3]))
#define U32_TO_HSTRING(ptrByte, x)  \
   (ptrByte)[0] = (Ipp8u)((x)>>24); \
   (ptrByte)[1] = (Ipp8u)((x)>>16); \
   (ptrByte)[2] = (Ipp8u)((x)>>8);  \
   (ptrByte)[3] = (Ipp8u)(x)

/* 32- and 64-bit masks for MSB of nbits-sequence */
#define MAKEMASK32(nbits) (0xFFFFFFFF >>((32 - ((nbits)&0x1F)) &0x1F))
#define MAKEMASK64(nbits) (0xFFFFFFFFFFFFFFFF >>((64 - ((nbits)&0x3F)) &0x3F))

/* Logical Shifts (right and left) of WORD */
#define LSR32(x,nBits)  ((x)>>(nBits))
#define LSL32(x,nBits)  ((x)<<(nBits))

/* Rorate (right and left) of WORD */
#if defined(_MSC_VER) && !defined( __ICL )
#  include <stdlib.h>
#  define ROR32(x, nBits)  _lrotr((x),(nBits))
#  define ROL32(x, nBits)  _lrotl((x),(nBits))
#else
#  define ROR32(x, nBits) (LSR32((x),(nBits)) | LSL32((x),32-(nBits)))
#  define ROL32(x, nBits) ROR32((x),(32-(nBits)))
#endif

/* Logical Shifts (right and left) of DWORD */
#define LSR64(x,nBits)  ((x)>>(nBits))
#define LSL64(x,nBits)  ((x)<<(nBits))

/* Rorate (right and left) of DWORD */
#define ROR64(x, nBits) (LSR64((x),(nBits)) | LSL64((x),64-(nBits)))
#define ROL64(x, nBits) ROR64((x),(64-(nBits)))

/* change endian */
#if defined(_MSC_VER)
#  define ENDIANNESS(x)   _byteswap_ulong((x))
#  define ENDIANNESS32(x)  ENDIANNESS((x))
#  define ENDIANNESS64(x) _byteswap_uint64((x))
#elif defined(__ICL)
#  define ENDIANNESS(x)   _bswap((x))
#  define ENDIANNESS32(x)  ENDIANNESS((x))
#  define ENDIANNESS64(x) _bswap64((x))
#else
#  define ENDIANNESS(x) ((ROR32((x), 24) & 0x00ff00ff) | (ROR32((x), 8) & 0xff00ff00))
#  define ENDIANNESS32(x) ENDIANNESS((x))
#  define ENDIANNESS64(x) MAKEDWORD(ENDIANNESS(HIDWORD((x))), ENDIANNESS(LODWORD((x))))
#endif

#define IPP_MAKE_MULTIPLE_OF_8(x) ((x) = ((x)+7)&(~7))
#define IPP_MAKE_MULTIPLE_OF_16(x) ((x) = ((x)+15)&(~15))

/* define 64-bit constant */
#if !defined(__GNUC__)
   #define CONST_64(x)  (x) /*(x##i64)*/
#else
   #define CONST_64(x)  (x##LL)
#endif

/* define 64-bit constant or pair of 32-bit dependding on architecture */
#if ((_IPP_ARCH == _IPP_ARCH_EM64T) || (_IPP_ARCH == _IPP_ARCH_LP64) || (_IPP_ARCH == _IPP_ARCH_LRB) || (_IPP_ARCH == _IPP_ARCH_LRB2))
#define LL(lo,hi) ((Ipp64u)(((Ipp32u)(lo)) | ((Ipp64u)((Ipp32u)(hi))) << 32))
#define L_(lo)    ((Ipp64u)(lo))
#else
#define LL(lo,hi) (lo),(hi)
#define L_(lo)    (lo)
#endif


/* test if library's feature is ON */
int cpGetFeature( Ipp64u Feature );
/* test CPU crypto features */
__INLINE Ipp32u IsFeatureEnabled(Ipp64u niMmask)
{
   return cpGetFeature(niMmask);
}

#define IPPCP_GET_NUM_THREADS() ( ippcpGetEnabledNumThreads() )
#define IPPCP_OMP_NUM_THREADS() num_threads( IPPCP_GET_NUM_THREADS() )
#define IPPCP_OMP_LIMIT_MAX_NUM_THREADS(n)  num_threads( IPP_MIN(IPPCP_GET_NUM_THREADS(),(n)))

/* copy under mask */
#define MASKED_COPY_BNU(dst, mask, src1, src2, len) { \
   cpSize i; \
   for(i=0; i<(len); i++) (dst)[i] = ((mask) & (src1)[i]) | (~(mask) & (src2)[i]); \
}

#if !defined( _M_X64 ) && defined ( _MSC_VER ) && !defined(__INTEL_COMPILER)
#if (_AES_NI_ENABLING_ == _FEATURE_ON_) || \
    (_AES_NI_ENABLING_ == _FEATURE_TICKTOCK_) || (_IPP >= _IPP_W7)
__inline __m128i
_mm_cvtsi64_si128(__int64 a)
{
  __m128i x;
  x.m128i_i64[0] = a;
  x.m128i_i64[1] = 0;
  return x;
}
#endif
#endif

#endif /* __OWNCP_H__ */