aboutsummaryrefslogtreecommitdiff
path: root/ext/ipp/sources/ippcp/owncp.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/ipp/sources/ippcp/owncp.h')
-rw-r--r--ext/ipp/sources/ippcp/owncp.h711
1 files changed, 711 insertions, 0 deletions
diff --git a/ext/ipp/sources/ippcp/owncp.h b/ext/ipp/sources/ippcp/owncp.h
new file mode 100644
index 0000000..c5dec5e
--- /dev/null
+++ b/ext/ipp/sources/ippcp/owncp.h
@@ -0,0 +1,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__ */