| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 | 
							- /*
 
- * Copyright (C) 2016 Intel Corporation. All rights reserved.
 
- *
 
- * Redistribution and use in source and binary forms, with or without
 
- * modification, are permitted provided that the following conditions
 
- * are met:
 
- *
 
- *   * Redistributions of source code must retain the above copyright
 
- *     notice, this list of conditions and the following disclaimer.
 
- *   * Redistributions in binary form must reproduce the above copyright
 
- *     notice, this list of conditions and the following disclaimer in
 
- *     the documentation and/or other materials provided with the
 
- *     distribution.
 
- *   * Neither the name of Intel Corporation nor the names of its
 
- *     contributors may be used to endorse or promote products derived
 
- *     from this software without specific prior written permission.
 
- *
 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
- *
 
- */
 
- #ifndef __IPPCPDEFS_H__
 
- #define __IPPCPDEFS_H__
 
- #ifdef __cplusplus
 
- extern "C" {
 
- #endif
 
- /*
 
- // AES
 
- */
 
- #define IPP_AES_BLOCK_BITSIZE (128) /* cipher blocksizes (bits) */
 
- typedef enum {                      /* cipher keysizes (bits) */
 
-    ippRijndaelKey128 = 128, IppsRijndaelKey128 = 128, /* 128-bit key */
 
-    ippRijndaelKey192 = 192, IppsRijndaelKey192 = 192, /* 192-bit key */
 
-    ippRijndaelKey256 = 256, IppsRijndaelKey256 = 256  /* 256-bit key */
 
- } IppsRijndaelKeyLength;
 
- typedef struct _cpRijndael128 IppsAESSpec;
 
- typedef struct _cpAES_GCM     IppsAES_GCMState;
 
- typedef struct _cpAES_CMAC    IppsAES_CMACState;
 
- /*
 
- // hash
 
- */
 
- typedef enum {
 
-    ippHashAlg_Unknown,
 
-    ippHashAlg_SHA1,
 
-    ippHashAlg_SHA256,
 
-    ippHashAlg_SHA224,
 
-    ippHashAlg_SHA512,
 
-    ippHashAlg_SHA384,
 
-    ippHashAlg_MD5,
 
-    ippHashAlg_SHA512_224,
 
-    ippHashAlg_SHA512_256,
 
-    ippHashAlg_MaxNo
 
- } IppHashAlgId;
 
- #define IPP_ALG_HASH_UNKNOWN     (ippHashAlg_Unknown) /* unknown  */
 
- #define IPP_ALG_HASH_SHA1        (ippHashAlg_SHA1)    /* SHA1     */
 
- #define IPP_ALG_HASH_SHA256      (ippHashAlg_SHA256)  /* SHA256   */
 
- #define IPP_ALG_HASH_SHA224      (ippHashAlg_SHA224)  /* SHA224 or SHA256/224 */
 
- #define IPP_ALG_HASH_SHA512      (ippHashAlg_SHA512)  /* SHA512   */
 
- #define IPP_ALG_HASH_SHA384      (ippHashAlg_SHA384)  /* SHA384 or SHA512/384 */
 
- #define IPP_ALG_HASH_MD5         (ippHashAlg_MD5)     /* MD5      */
 
- #define IPP_ALG_HASH_SHA512_224  (ippHashAlg_SHA512_224) /* SHA512/224 */
 
- #define IPP_ALG_HASH_SHA512_256  (ippHashAlg_SHA512_256) /* SHA512/256 */
 
- #define IPP_ALG_HASH_LIMIT       (ippHashAlg_MaxNo)   /* hash alg limiter*/
 
- #define IPP_SHA1_DIGEST_BITSIZE        160   /* digest size (bits) */
 
- #define IPP_SHA256_DIGEST_BITSIZE      256
 
- #define IPP_SHA224_DIGEST_BITSIZE      224
 
- #define IPP_SHA384_DIGEST_BITSIZE      384
 
- #define IPP_SHA512_DIGEST_BITSIZE      512
 
- #define IPP_MD5_DIGEST_BITSIZE         128
 
- #define IPP_SHA512_224_DIGEST_BITSIZE  224
 
- #define IPP_SHA512_256_DIGEST_BITSIZE  256
 
- typedef struct _cpHashCtx  IppsHashState;
 
- typedef struct _cpHMAC  IppsHMACState;
 
- /*
 
- // Big Number Integer Arithmetic
 
- */
 
- #define BN_MAXBITSIZE      (16*1024)   /* bn max size (bits) */
 
- /* operation results */
 
- #define IPP_IS_EQ (0)
 
- #define IPP_IS_GT (1)
 
- #define IPP_IS_LT (2)
 
- #define IPP_IS_NE (3)
 
- #define IPP_IS_NA (4)
 
- #define IPP_IS_PRIME       (5)
 
- #define IPP_IS_COMPOSITE   (6)
 
- #define IPP_IS_VALID       (7)
 
- #define IPP_IS_INVALID     (8)
 
- #define IPP_IS_INCOMPLETE  (9)
 
- #define IPP_IS_ATINFINITY  (10)
 
- #define IS_ZERO            IPP_IS_EQ
 
- #define GREATER_THAN_ZERO  IPP_IS_GT
 
- #define LESS_THAN_ZERO     IPP_IS_LT
 
- #define IS_PRIME           IPP_IS_PRIME
 
- #define IS_COMPOSITE       IPP_IS_COMPOSITE
 
- #define IS_VALID_KEY       IPP_IS_VALID
 
- #define IS_INVALID_KEY     IPP_IS_INVALID
 
- #define IS_INCOMPLETED_KEY IPP_IS_INCOMPLETE
 
- typedef enum {
 
-    ippBigNumNEG = 0, IppsBigNumNEG = 0,
 
-    ippBigNumPOS = 1, IppsBigNumPOS = 1
 
- } IppsBigNumSGN;
 
- typedef enum {
 
-    ippBinaryMethod   = 0, IppsBinaryMethod = 0,
 
-    ippSlidingWindows = 1, IppsSlidingWindows = 1
 
- } IppsExpMethod;
 
- typedef struct _cpBigNum      IppsBigNumState;
 
- typedef struct _cpMontgomery  IppsMontState;
 
- typedef struct _cpPRNG        IppsPRNGState;
 
- typedef struct _cpPrime       IppsPrimeState;
 
- /*  External Bit Supplier */
 
- typedef IppStatus (__STDCALL *IppBitSupplier)(Ipp32u* pRand, int nBits, void* pEbsParams);
 
- /*
 
- // RSA
 
- */
 
- #define MIN_RSA_SIZE (8)
 
- #define MAX_RSA_SIZE (4096)
 
- typedef struct _cpRSA               IppsRSAState;
 
- typedef struct _cpRSA_public_key    IppsRSAPublicKeyState;
 
- typedef struct _cpRSA_private_key   IppsRSAPrivateKeyState;
 
- /*
 
- // EC Cryptography
 
- */
 
- #define EC_GFP_MAXBITSIZE   (1024)
 
- typedef struct _cpECCP      IppsECCPState;
 
- typedef struct _cpECCPPoint IppsECCPPointState;
 
- /* operation result */
 
- typedef enum {
 
-    ippECValid,             /* validation pass successfully     */
 
-    ippECCompositeBase,     /* field based on composite         */
 
-    ippECComplicatedBase,   /* number of non-zero terms in the polynomial (> PRIME_ARR_MAX) */
 
-    ippECIsZeroDiscriminant,/* zero discriminant */
 
-    ippECCompositeOrder,    /* composite order of base point    */
 
-    ippECInvalidOrder,      /* invalid base point order         */
 
-    ippECIsWeakMOV,         /* weak Meneze-Okamoto-Vanstone  reduction attack */
 
-    ippECIsWeakSSSA,        /* weak Semaev-Smart,Satoh-Araki reduction attack */
 
-    ippECIsSupersingular,   /* supersingular curve */
 
-    ippECInvalidPrivateKey, /* !(0 < Private < order) */
 
-    ippECInvalidPublicKey,  /* (order*PublicKey != Infinity)    */
 
-    ippECInvalidKeyPair,    /* (Private*BasePoint != PublicKey) */
 
-    ippECPointOutOfGroup,   /* out of group (order*P != Infinity)  */
 
-    ippECPointIsAtInfinite, /* point (P=(Px,Py)) at Infinity  */
 
-    ippECPointIsNotValid,   /* point (P=(Px,Py)) out-of EC    */
 
-    ippECPointIsEqual,      /* compared points are equal     */
 
-    ippECPointIsNotEqual,   /* compared points are different  */
 
-    ippECInvalidSignature   /* invalid signature */
 
- } IppECResult;
 
- typedef enum {
 
-    ippECarbitrary =0x00000,        IppECCArbitrary = 0x00000,       /* arbitrary ECC */
 
-    ippECPstd      = 0x10000,       IppECCPStd      = 0x10000,       /* random (recommended) EC over FG(p): */
 
-    ippECPstd112r1 = ippECPstd,     IppECCPStd112r1 = IppECCPStd,    /* secp112r1 curve */
 
-    ippECPstd112r2 = ippECPstd+1,   IppECCPStd112r2 = IppECCPStd+1,  /* secp112r2 curve */
 
-    ippECPstd128r1 = ippECPstd+2,   IppECCPStd128r1 = IppECCPStd+2,  /* secp128r1 curve */
 
-    ippECPstd128r2 = ippECPstd+3,   IppECCPStd128r2 = IppECCPStd+3,  /* secp128r2 curve */
 
-    ippECPstd160r1 = ippECPstd+4,   IppECCPStd160r1 = IppECCPStd+4,  /* secp160r1 curve */
 
-    ippECPstd160r2 = ippECPstd+5,   IppECCPStd160r2 = IppECCPStd+5,  /* secp160r2 curve */
 
-    ippECPstd192r1 = ippECPstd+6,   IppECCPStd192r1 = IppECCPStd+6,  /* secp192r1 curve */
 
-    ippECPstd224r1 = ippECPstd+7,   IppECCPStd224r1 = IppECCPStd+7,  /* secp224r1 curve */
 
-    ippECPstd256r1 = ippECPstd+8,   IppECCPStd256r1 = IppECCPStd+8,  /* secp256r1 curve */
 
-    ippECPstd384r1 = ippECPstd+9,   IppECCPStd384r1 = IppECCPStd+9,  /* secp384r1 curve */
 
-    ippECPstd521r1 = ippECPstd+10,  IppECCPStd521r1 = IppECCPStd+10, /* secp521r1 curve */
 
- } IppsECType, IppECCType;
 
- #ifdef __cplusplus
 
- }
 
- #endif
 
- #endif /* __IPPCPDEFS_H__ */
 
 
  |