16df3ef80SGreg Tucker /********************************************************************** 26df3ef80SGreg Tucker Copyright(c) 2011-2016 Intel Corporation All rights reserved. 36df3ef80SGreg Tucker 46df3ef80SGreg Tucker Redistribution and use in source and binary forms, with or without 56df3ef80SGreg Tucker modification, are permitted provided that the following conditions 66df3ef80SGreg Tucker are met: 76df3ef80SGreg Tucker * Redistributions of source code must retain the above copyright 86df3ef80SGreg Tucker notice, this list of conditions and the following disclaimer. 96df3ef80SGreg Tucker * Redistributions in binary form must reproduce the above copyright 106df3ef80SGreg Tucker notice, this list of conditions and the following disclaimer in 116df3ef80SGreg Tucker the documentation and/or other materials provided with the 126df3ef80SGreg Tucker distribution. 136df3ef80SGreg Tucker * Neither the name of Intel Corporation nor the names of its 146df3ef80SGreg Tucker contributors may be used to endorse or promote products derived 156df3ef80SGreg Tucker from this software without specific prior written permission. 166df3ef80SGreg Tucker 176df3ef80SGreg Tucker THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 186df3ef80SGreg Tucker "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 196df3ef80SGreg Tucker LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 206df3ef80SGreg Tucker A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 216df3ef80SGreg Tucker OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 226df3ef80SGreg Tucker SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 236df3ef80SGreg Tucker LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 246df3ef80SGreg Tucker DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 256df3ef80SGreg Tucker THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 266df3ef80SGreg Tucker (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 276df3ef80SGreg Tucker OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 286df3ef80SGreg Tucker **********************************************************************/ 296df3ef80SGreg Tucker 306df3ef80SGreg Tucker #ifndef _MULTI_BUFFER_H_ 316df3ef80SGreg Tucker #define _MULTI_BUFFER_H_ 326df3ef80SGreg Tucker 336df3ef80SGreg Tucker /** 346df3ef80SGreg Tucker * @file multi_buffer.h 356df3ef80SGreg Tucker * @brief Multi-buffer common fields 366df3ef80SGreg Tucker * 376df3ef80SGreg Tucker */ 386df3ef80SGreg Tucker 396df3ef80SGreg Tucker #ifdef __cplusplus 406df3ef80SGreg Tucker extern "C" { 416df3ef80SGreg Tucker #endif 426df3ef80SGreg Tucker 43*8cb7fe78SPablo de Lara /* 44*8cb7fe78SPablo de Lara * Define enums from API v2.24, so applications that were using this version 45*8cb7fe78SPablo de Lara * will still be compiled successfully. 46*8cb7fe78SPablo de Lara * This list does not need to be extended for new enums. 47*8cb7fe78SPablo de Lara */ 48*8cb7fe78SPablo de Lara #ifndef NO_COMPAT_ISAL_CRYPTO_API_2_24 49*8cb7fe78SPablo de Lara /***** Previous enums *****/ 50*8cb7fe78SPablo de Lara #define JOB_STS ISAL_JOB_STS 51*8cb7fe78SPablo de Lara #define STS_UNKNOWN ISAL_STS_UNKNOWN 52*8cb7fe78SPablo de Lara #define STS_BEING_PROCESSED ISAL_STS_BEING_PROCESSED 53*8cb7fe78SPablo de Lara #define STS_COMPLETED ISAL_STS_COMPLETED 54*8cb7fe78SPablo de Lara #define STS_INTERNAL_ERROR ISAL_STS_INTERNAL_ERROR 55*8cb7fe78SPablo de Lara #define STS_ERROR ISAL_STS_ERROR 56*8cb7fe78SPablo de Lara 57*8cb7fe78SPablo de Lara #define HASH_CTX_FLAG ISAL_HASH_CTX_FLAG 58*8cb7fe78SPablo de Lara #define HASH_UPDATE ISAL_HASH_UPDATE 59*8cb7fe78SPablo de Lara #define HASH_FIRST ISAL_HASH_FIRST 60*8cb7fe78SPablo de Lara #define HASH_LAST ISAL_HASH_LAST 61*8cb7fe78SPablo de Lara #define HASH_ENTIRE ISAL_HASH_ENTIRE 62*8cb7fe78SPablo de Lara 63*8cb7fe78SPablo de Lara #define HASH_CTX_STS ISAL_HASH_CTX_STS 64*8cb7fe78SPablo de Lara #define HASH_CTX_STS_IDLE ISAL_HASH_CTX_STS_IDLE 65*8cb7fe78SPablo de Lara #define HASH_CTX_STS_PROCESSING ISAL_HASH_CTX_STS_PROCESSING 66*8cb7fe78SPablo de Lara #define HASH_CTX_STS_LAST ISAL_HASH_CTX_STS_LAST 67*8cb7fe78SPablo de Lara #define HASH_CTX_STS_COMPLETE ISAL_HASH_CTX_STS_COMPLETE 68*8cb7fe78SPablo de Lara 69*8cb7fe78SPablo de Lara #define HASH_CTX_ERROR ISAL_HASH_CTX_ERROR 70*8cb7fe78SPablo de Lara #define HASH_CTX_ERROR_NONE ISAL_HASH_CTX_ERROR_NONE 71*8cb7fe78SPablo de Lara #define HASH_CTX_ERROR_INVALID_FLAGS ISAL_HASH_CTX_ERROR_INVALID_FLAGS 72*8cb7fe78SPablo de Lara #define HASH_CTX_ERROR_ALREADY_PROCESSING ISAL_HASH_CTX_ERROR_ALREADY_PROCESSING 73*8cb7fe78SPablo de Lara #define HASH_CTX_ERROR_ALREADY_COMPLETED ISAL_HASH_CTX_ERROR_ALREADY_COMPLETED 74*8cb7fe78SPablo de Lara 75*8cb7fe78SPablo de Lara #define HASH_MB_NO_FLAGS ISAL_HASH_MB_NO_FLAGS 76*8cb7fe78SPablo de Lara #define HASH_MB_FIRST ISAL_HASH_MB_FIRST 77*8cb7fe78SPablo de Lara #define HASH_MB_LAST ISAL_HASH_MB_LAST 78*8cb7fe78SPablo de Lara 79*8cb7fe78SPablo de Lara #define hash_ctx_user_data isal_hash_ctx_user_data 80*8cb7fe78SPablo de Lara #define hash_ctx_digest isal_hash_ctx_digest 81*8cb7fe78SPablo de Lara #define hash_ctx_processing isal_hash_ctx_processing 82*8cb7fe78SPablo de Lara #define hash_ctx_complete isal_hash_ctx_complete 83*8cb7fe78SPablo de Lara #define hash_ctx_status isal_hash_ctx_status 84*8cb7fe78SPablo de Lara #define hash_ctx_error isal_hash_ctx_error 85*8cb7fe78SPablo de Lara #define hash_ctx_init isal_hash_ctx_init 86*8cb7fe78SPablo de Lara 87*8cb7fe78SPablo de Lara #endif /* !NO_COMPAT_ISAL_CRYPTO_API_2_24 */ 88*8cb7fe78SPablo de Lara 896df3ef80SGreg Tucker /** 90*8cb7fe78SPablo de Lara * @enum ISAL_JOB_STS 916df3ef80SGreg Tucker * @brief Job return codes 926df3ef80SGreg Tucker */ 936df3ef80SGreg Tucker 941de5344dSMarcel Cornu typedef enum { 95*8cb7fe78SPablo de Lara ISAL_STS_UNKNOWN = 0, //!< ISAL_STS_UNKNOWN 96*8cb7fe78SPablo de Lara ISAL_STS_BEING_PROCESSED = 1, //!< ISAL_STS_BEING_PROCESSED 97*8cb7fe78SPablo de Lara ISAL_STS_COMPLETED = 2, //!< ISAL_STS_COMPLETED 98*8cb7fe78SPablo de Lara ISAL_STS_INTERNAL_ERROR, //!< ISAL_STS_INTERNAL_ERROR 99*8cb7fe78SPablo de Lara ISAL_STS_ERROR //!< ISAL_STS_ERROR 100*8cb7fe78SPablo de Lara } ISAL_JOB_STS; 1016df3ef80SGreg Tucker 102*8cb7fe78SPablo de Lara #define ISAL_HASH_MB_NO_FLAGS 0 103*8cb7fe78SPablo de Lara #define ISAL_HASH_MB_FIRST 1 104*8cb7fe78SPablo de Lara #define ISAL_HASH_MB_LAST 2 1056df3ef80SGreg Tucker 1066df3ef80SGreg Tucker /* Common flags for the new API only 1076df3ef80SGreg Tucker * */ 1086df3ef80SGreg Tucker 1096df3ef80SGreg Tucker /** 110*8cb7fe78SPablo de Lara * @enum ISAL_HASH_CTX_FLAG 1116df3ef80SGreg Tucker * @brief CTX job type 1126df3ef80SGreg Tucker */ 1136df3ef80SGreg Tucker typedef enum { 114*8cb7fe78SPablo de Lara ISAL_HASH_UPDATE = 0x00, //!< ISAL_HASH_UPDATE 115*8cb7fe78SPablo de Lara ISAL_HASH_FIRST = 0x01, //!< ISAL_HASH_FIRST 116*8cb7fe78SPablo de Lara ISAL_HASH_LAST = 0x02, //!< ISAL_HASH_LAST 117*8cb7fe78SPablo de Lara ISAL_HASH_ENTIRE = 0x03, //!< ISAL_HASH_ENTIRE 118*8cb7fe78SPablo de Lara } ISAL_HASH_CTX_FLAG; 1196df3ef80SGreg Tucker 1206df3ef80SGreg Tucker /** 121*8cb7fe78SPablo de Lara * @enum ISAL_HASH_CTX_STS 1226df3ef80SGreg Tucker * @brief CTX status flags 1236df3ef80SGreg Tucker */ 1246df3ef80SGreg Tucker typedef enum { 125*8cb7fe78SPablo de Lara ISAL_HASH_CTX_STS_IDLE = 0x00, //!< ISAL_HASH_CTX_STS_IDLE 126*8cb7fe78SPablo de Lara ISAL_HASH_CTX_STS_PROCESSING = 0x01, //!< ISAL_HASH_CTX_STS_PROCESSING 127*8cb7fe78SPablo de Lara ISAL_HASH_CTX_STS_LAST = 0x02, //!< ISAL_HASH_CTX_STS_LAST 128*8cb7fe78SPablo de Lara ISAL_HASH_CTX_STS_COMPLETE = 0x04, //!< ISAL_HASH_CTX_STS_COMPLETE 129*8cb7fe78SPablo de Lara } ISAL_HASH_CTX_STS; 1306df3ef80SGreg Tucker 1316df3ef80SGreg Tucker /** 132*8cb7fe78SPablo de Lara * @enum ISAL_HASH_CTX_ERROR 1336df3ef80SGreg Tucker * @brief CTX error flags 1346df3ef80SGreg Tucker */ 1356df3ef80SGreg Tucker typedef enum { 136*8cb7fe78SPablo de Lara ISAL_HASH_CTX_ERROR_NONE = 0, //!< ISAL_HASH_CTX_ERROR_NONE 137*8cb7fe78SPablo de Lara ISAL_HASH_CTX_ERROR_INVALID_FLAGS = -1, //!< ISAL_HASH_CTX_ERROR_INVALID_FLAGS 138*8cb7fe78SPablo de Lara ISAL_HASH_CTX_ERROR_ALREADY_PROCESSING = -2, //!< ISAL_HASH_CTX_ERROR_ALREADY_PROCESSING 139*8cb7fe78SPablo de Lara ISAL_HASH_CTX_ERROR_ALREADY_COMPLETED = -3, //!< ISAL_HASH_CTX_ERROR_ALREADY_COMPLETED 140*8cb7fe78SPablo de Lara } ISAL_HASH_CTX_ERROR; 1416df3ef80SGreg Tucker 142*8cb7fe78SPablo de Lara #define isal_hash_ctx_user_data(ctx) ((ctx)->user_data) 143*8cb7fe78SPablo de Lara #define isal_hash_ctx_digest(ctx) ((ctx)->job.result_digest) 144*8cb7fe78SPablo de Lara #define isal_hash_ctx_processing(ctx) ((ctx)->status & ISAL_HASH_CTX_STS_PROCESSING) 145*8cb7fe78SPablo de Lara #define isal_hash_ctx_complete(ctx) ((ctx)->status == ISAL_HASH_CTX_STS_COMPLETE) 146*8cb7fe78SPablo de Lara #define isal_hash_ctx_status(ctx) ((ctx)->status) 147*8cb7fe78SPablo de Lara #define isal_hash_ctx_error(ctx) ((ctx)->error) 148*8cb7fe78SPablo de Lara #define isal_hash_ctx_init(ctx) \ 1496df3ef80SGreg Tucker do { \ 150*8cb7fe78SPablo de Lara (ctx)->error = ISAL_HASH_CTX_ERROR_NONE; \ 151*8cb7fe78SPablo de Lara (ctx)->status = ISAL_HASH_CTX_STS_COMPLETE; \ 1526df3ef80SGreg Tucker } while (0) 1536df3ef80SGreg Tucker 1546df3ef80SGreg Tucker #ifdef __cplusplus 1556df3ef80SGreg Tucker } 1566df3ef80SGreg Tucker #endif 1576df3ef80SGreg Tucker 1586df3ef80SGreg Tucker #endif // _MULTI_BUFFER_H_ 159