• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*******************************************************************************
2 * Copyright 2014-2018 Intel Corporation
3 * All Rights Reserved.
4 *
5 * If this  software was obtained  under the  Intel Simplified  Software License,
6 * the following terms apply:
7 *
8 * The source code,  information  and material  ("Material") contained  herein is
9 * owned by Intel Corporation or its  suppliers or licensors,  and  title to such
10 * Material remains with Intel  Corporation or its  suppliers or  licensors.  The
11 * Material  contains  proprietary  information  of  Intel or  its suppliers  and
12 * licensors.  The Material is protected by  worldwide copyright  laws and treaty
13 * provisions.  No part  of  the  Material   may  be  used,  copied,  reproduced,
14 * modified, published,  uploaded, posted, transmitted,  distributed or disclosed
15 * in any way without Intel's prior express written permission.  No license under
16 * any patent,  copyright or other  intellectual property rights  in the Material
17 * is granted to  or  conferred  upon  you,  either   expressly,  by implication,
18 * inducement,  estoppel  or  otherwise.  Any  license   under such  intellectual
19 * property rights must be express and approved by Intel in writing.
20 *
21 * Unless otherwise agreed by Intel in writing,  you may not remove or alter this
22 * notice or  any  other  notice   embedded  in  Materials  by  Intel  or Intel's
23 * suppliers or licensors in any way.
24 *
25 *
26 * If this  software  was obtained  under the  Apache License,  Version  2.0 (the
27 * "License"), the following terms apply:
28 *
29 * You may  not use this  file except  in compliance  with  the License.  You may
30 * obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
31 *
32 *
33 * Unless  required  by   applicable  law  or  agreed  to  in  writing,  software
34 * distributed under the License  is distributed  on an  "AS IS"  BASIS,  WITHOUT
35 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
36 *
37 * See the   License  for the   specific  language   governing   permissions  and
38 * limitations under the License.
39 *******************************************************************************/
40 
41 /*
42 //
43 //  Purpose:
44 //     Cryptography Primitive.
45 //     Security Hash Standard
46 //     Constants
47 //
48 //
49 */
50 
51 #include "owndefs.h"
52 #include "owncp.h"
53 #include "pcphash.h"
54 
55 #if defined( _IPP_DATA )
56 
57 /*
58 // enabled hash alg IDs
59 */
60 const IppHashAlgId cpEnabledHashAlgID[] = {
61    IPP_ALG_HASH_UNKNOWN,
62 
63 #if defined(_ENABLE_ALG_SHA1_)
64    IPP_ALG_HASH_SHA1,
65 #else
66    IPP_ALG_HASH_UNKNOWN,
67 #endif
68 
69 #if defined(_ENABLE_ALG_SHA256_)
70    IPP_ALG_HASH_SHA256,
71 #else
72    IPP_ALG_HASH_UNKNOWN,
73 #endif
74 
75 #if defined(_ENABLE_ALG_SHA224_)
76    IPP_ALG_HASH_SHA224,
77 #else
78    IPP_ALG_HASH_UNKNOWN,
79 #endif
80 
81 #if defined(_ENABLE_ALG_SHA512_)
82    IPP_ALG_HASH_SHA512,
83 #else
84    IPP_ALG_HASH_UNKNOWN,
85 #endif
86 
87 #if defined(_ENABLE_ALG_SHA384_)
88    IPP_ALG_HASH_SHA384,
89 #else
90    IPP_ALG_HASH_UNKNOWN,
91 #endif
92 
93 #if defined(_ENABLE_ALG_MD5_)
94    IPP_ALG_HASH_MD5,
95 #else
96    IPP_ALG_HASH_UNKNOWN,
97 #endif
98 
99 #if defined(_ENABLE_ALG_SM3_)
100    IPP_ALG_HASH_SM3,
101 #else
102    IPP_ALG_HASH_UNKNOWN,
103 #endif
104 
105 #if defined(_ENABLE_ALG_SHA512_224_)
106    IPP_ALG_HASH_SHA512_224,
107 #else
108    IPP_ALG_HASH_UNKNOWN,
109 #endif
110 
111 #if defined(_ENABLE_ALG_SHA512_256_)
112    IPP_ALG_HASH_SHA512_256
113 #else
114    IPP_ALG_HASH_UNKNOWN
115 #endif
116 };
117 ////////////////////////////////////////////////////////////
118 
119 /*
120 // hash init values
121 */
122 const Ipp32u UnknownHash_IV[] = {
123    0};
124 
125 #if defined(_ENABLE_ALG_SHA1_)
126 const Ipp32u SHA1_IV[] = {
127    0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0};
128 #endif
129 
130 #if defined(_ENABLE_ALG_SHA256_)
131 const Ipp32u SHA256_IV[] = {
132    0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A,
133    0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19};
134 #endif
135 
136 #if defined(_ENABLE_ALG_SHA224_)
137 const Ipp32u SHA224_IV[] = {
138    0xC1059ED8, 0x367CD507, 0x3070DD17, 0xF70E5939,
139    0xFFC00B31, 0x68581511, 0x64F98FA7, 0xBEFA4FA4};
140 #endif
141 
142 #if defined(_ENABLE_ALG_SHA512_)
143 const Ipp64u SHA512_IV[] = {
144    CONST_64(0x6A09E667F3BCC908), CONST_64(0xBB67AE8584CAA73B),
145    CONST_64(0x3C6EF372FE94F82B), CONST_64(0xA54FF53A5F1D36F1),
146    CONST_64(0x510E527FADE682D1), CONST_64(0x9B05688C2B3E6C1F),
147    CONST_64(0x1F83D9ABFB41BD6B), CONST_64(0x5BE0CD19137E2179)};
148 #endif
149 
150 #if defined(_ENABLE_ALG_SHA384_)
151 const Ipp64u SHA384_IV[] = {
152    CONST_64(0xCBBB9D5DC1059ED8), CONST_64(0x629A292A367CD507),
153    CONST_64(0x9159015A3070DD17), CONST_64(0x152FECD8F70E5939),
154    CONST_64(0x67332667FFC00B31), CONST_64(0x8EB44A8768581511),
155    CONST_64(0xDB0C2E0D64F98FA7), CONST_64(0x47B5481DBEFA4FA4)};
156 #endif
157 
158 #if defined(_ENABLE_ALG_MD5_)
159 const Ipp32u MD5_IV[] = {
160    0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476};
161 #endif
162 
163 #if defined(_ENABLE_ALG_SM3_)
164 const Ipp32u SM3_IV[] = {
165    0x7380166F, 0x4914B2B9, 0x172442D7, 0xDA8A0600,
166    0xA96F30BC, 0x163138AA, 0xE38DEE4D, 0xB0FB0E4E};
167 #endif
168 
169 #if defined(_ENABLE_ALG_SHA512_224_)
170 const Ipp64u SHA512_224_IV[] = {
171    CONST_64(0x8C3D37C819544DA2), CONST_64(0x73E1996689DCD4D6),
172    CONST_64(0x1DFAB7AE32FF9C82), CONST_64(0x679DD514582F9FCF),
173    CONST_64(0x0F6D2B697BD44DA8), CONST_64(0x77E36F7304C48942),
174    CONST_64(0x3F9D85A86A1D36C8), CONST_64(0x1112E6AD91D692A1)};
175 #endif
176 
177 #if defined(_ENABLE_ALG_SHA512_256_)
178 const Ipp64u SHA512_256_IV[] = {
179    CONST_64(0x22312194FC2BF72C), CONST_64(0x9F555FA3C84C64C2),
180    CONST_64(0x2393B86B6F53B151), CONST_64(0x963877195940EABD),
181    CONST_64(0x96283EE2A88EFFE3), CONST_64(0xBE5E1E2553863992),
182    CONST_64(0x2B0199FC2C85B8AA), CONST_64(0x0EB72DDC81C52CA2)};
183 #endif
184 
185 const Ipp8u* cpHashIV[] = {
186    (Ipp8u*)UnknownHash_IV,
187 
188    #if defined(_ENABLE_ALG_SHA1_)
189    (Ipp8u*)SHA1_IV,
190    #else
191    (Ipp8u*)UnknownHash_IV,
192    #endif
193 
194    #if defined(_ENABLE_ALG_SHA256_)
195    (Ipp8u*)SHA256_IV,
196    #else
197    (Ipp8u*)UnknownHash_IV,
198    #endif
199 
200    #if defined(_ENABLE_ALG_SHA224_)
201    (Ipp8u*)SHA224_IV,
202    #else
203    (Ipp8u*)UnknownHash_IV,
204    #endif
205 
206    #if defined(_ENABLE_ALG_SHA512_)
207    (Ipp8u*)SHA512_IV,
208    #else
209    (Ipp8u*)UnknownHash_IV,
210    #endif
211 
212    #if defined(_ENABLE_ALG_SHA384_)
213    (Ipp8u*)SHA384_IV,
214    #else
215    (Ipp8u*)UnknownHash_IV,
216    #endif
217 
218    #if defined(_ENABLE_ALG_MD5_)
219    (Ipp8u*)MD5_IV,
220    #else
221    (Ipp8u*)UnknownHash_IV,
222    #endif
223 
224    #if defined(_ENABLE_ALG_SM3_)
225    (Ipp8u*)SM3_IV,
226    #else
227    (Ipp8u*)UnknownHash_IV,
228    #endif
229 
230    #if defined(_ENABLE_ALG_SHA512_224_)
231    (Ipp8u*)SHA512_224_IV,
232    #else
233    (Ipp8u*)UnknownHash_IV,
234    #endif
235 
236    #if defined(_ENABLE_ALG_SHA512_256_)
237    (Ipp8u*)SHA512_256_IV,
238    #else
239    (Ipp8u*)UnknownHash_IV,
240    #endif
241 };
242 
243 ////////////////////////////////////////////////////////////
244 
245 /*
246 // additive constatns
247 */
248 #if defined(_ENABLE_ALG_SHA1_)
249 __ALIGN16 const Ipp32u SHA1_cnt[] = {
250    0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6
251 };
252 #endif
253 
254 #if defined(_ENABLE_ALG_SHA256_) || defined(_ENABLE_ALG_SHA224_)
255 __ALIGN16 const Ipp32u SHA256_cnt[] = {
256    0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,
257    0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
258    0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
259    0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
260    0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,
261    0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
262    0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,
263    0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
264    0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,
265    0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
266    0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,
267    0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
268    0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,
269    0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
270    0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,
271    0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2
272 };
273 #endif
274 
275 #if defined(_ENABLE_ALG_SHA512_) || defined(_ENABLE_ALG_SHA384_) || defined(_ENABLE_ALG_SHA512_224_) || defined(_ENABLE_ALG_SHA512_256_)
276 __ALIGN16 const Ipp64u SHA512_cnt[] = {
277    CONST_64(0x428A2F98D728AE22), CONST_64(0x7137449123EF65CD), CONST_64(0xB5C0FBCFEC4D3B2F), CONST_64(0xE9B5DBA58189DBBC),
278    CONST_64(0x3956C25BF348B538), CONST_64(0x59F111F1B605D019), CONST_64(0x923F82A4AF194F9B), CONST_64(0xAB1C5ED5DA6D8118),
279    CONST_64(0xD807AA98A3030242), CONST_64(0x12835B0145706FBE), CONST_64(0x243185BE4EE4B28C), CONST_64(0x550C7DC3D5FFB4E2),
280    CONST_64(0x72BE5D74F27B896F), CONST_64(0x80DEB1FE3B1696B1), CONST_64(0x9BDC06A725C71235), CONST_64(0xC19BF174CF692694),
281    CONST_64(0xE49B69C19EF14AD2), CONST_64(0xEFBE4786384F25E3), CONST_64(0x0FC19DC68B8CD5B5), CONST_64(0x240CA1CC77AC9C65),
282    CONST_64(0x2DE92C6F592B0275), CONST_64(0x4A7484AA6EA6E483), CONST_64(0x5CB0A9DCBD41FBD4), CONST_64(0x76F988DA831153B5),
283    CONST_64(0x983E5152EE66DFAB), CONST_64(0xA831C66D2DB43210), CONST_64(0xB00327C898FB213F), CONST_64(0xBF597FC7BEEF0EE4),
284    CONST_64(0xC6E00BF33DA88FC2), CONST_64(0xD5A79147930AA725), CONST_64(0x06CA6351E003826F), CONST_64(0x142929670A0E6E70),
285    CONST_64(0x27B70A8546D22FFC), CONST_64(0x2E1B21385C26C926), CONST_64(0x4D2C6DFC5AC42AED), CONST_64(0x53380D139D95B3DF),
286    CONST_64(0x650A73548BAF63DE), CONST_64(0x766A0ABB3C77B2A8), CONST_64(0x81C2C92E47EDAEE6), CONST_64(0x92722C851482353B),
287    CONST_64(0xA2BFE8A14CF10364), CONST_64(0xA81A664BBC423001), CONST_64(0xC24B8B70D0F89791), CONST_64(0xC76C51A30654BE30),
288    CONST_64(0xD192E819D6EF5218), CONST_64(0xD69906245565A910), CONST_64(0xF40E35855771202A), CONST_64(0x106AA07032BBD1B8),
289    CONST_64(0x19A4C116B8D2D0C8), CONST_64(0x1E376C085141AB53), CONST_64(0x2748774CDF8EEB99), CONST_64(0x34B0BCB5E19B48A8),
290    CONST_64(0x391C0CB3C5C95A63), CONST_64(0x4ED8AA4AE3418ACB), CONST_64(0x5B9CCA4F7763E373), CONST_64(0x682E6FF3D6B2B8A3),
291    CONST_64(0x748F82EE5DEFB2FC), CONST_64(0x78A5636F43172F60), CONST_64(0x84C87814A1F0AB72), CONST_64(0x8CC702081A6439EC),
292    CONST_64(0x90BEFFFA23631E28), CONST_64(0xA4506CEBDE82BDE9), CONST_64(0xBEF9A3F7B2C67915), CONST_64(0xC67178F2E372532B),
293    CONST_64(0xCA273ECEEA26619C), CONST_64(0xD186B8C721C0C207), CONST_64(0xEADA7DD6CDE0EB1E), CONST_64(0xF57D4F7FEE6ED178),
294    CONST_64(0x06F067AA72176FBA), CONST_64(0x0A637DC5A2C898A6), CONST_64(0x113F9804BEF90DAE), CONST_64(0x1B710B35131C471B),
295    CONST_64(0x28DB77F523047D84), CONST_64(0x32CAAB7B40C72493), CONST_64(0x3C9EBE0A15C9BEBC), CONST_64(0x431D67C49C100D4C),
296    CONST_64(0x4CC5D4BECB3E42B6), CONST_64(0x597F299CFC657E2A), CONST_64(0x5FCB6FAB3AD6FAEC), CONST_64(0x6C44198C4A475817)
297 };
298 #endif
299 
300 #if defined(_ENABLE_ALG_MD5_)
301 __ALIGN16 const Ipp32u MD5_cnt[] = {
302    0xD76AA478, 0xE8C7B756, 0x242070DB, 0xC1BDCEEE,
303    0xF57C0FAF, 0x4787C62A, 0xA8304613, 0xFD469501,
304    0x698098D8, 0x8B44F7AF, 0xFFFF5BB1, 0x895CD7BE,
305    0x6B901122, 0xFD987193, 0xA679438E, 0x49B40821,
306 
307    0xF61E2562, 0xC040B340, 0x265E5A51, 0xE9B6C7AA,
308    0xD62F105D, 0x02441453, 0xD8A1E681, 0xE7D3FBC8,
309    0x21E1CDE6, 0xC33707D6, 0xF4D50D87, 0x455A14ED,
310    0xA9E3E905, 0xFCEFA3F8, 0x676F02D9, 0x8D2A4C8A,
311 
312    0xFFFA3942, 0x8771F681, 0x6D9D6122, 0xFDE5380C,
313    0xA4BEEA44, 0x4BDECFA9, 0xF6BB4B60, 0xBEBFBC70,
314    0x289B7EC6, 0xEAA127FA, 0xD4EF3085, 0x04881D05,
315    0xD9D4D039, 0xE6DB99E5, 0x1FA27CF8, 0xC4AC5665,
316 
317    0xF4292244, 0x432AFF97, 0xAB9423A7, 0xFC93A039,
318    0x655B59C3, 0x8F0CCC92, 0xFFEFF47D, 0x85845DD1,
319    0x6FA87E4F, 0xFE2CE6E0, 0xA3014314, 0x4E0811A1,
320    0xF7537E82, 0xBD3AF235, 0x2AD7D2BB, 0xEB86D391
321 };
322 #endif
323 
324 #if defined(_ENABLE_ALG_SM3_)
325 __ALIGN16 const Ipp32u SM3_cnt[] = {
326    0x79CC4519,0xF3988A32,0xE7311465,0xCE6228CB,0x9CC45197,0x3988A32F,0x7311465E,0xE6228CBC,
327    0xCC451979,0x988A32F3,0x311465E7,0x6228CBCE,0xC451979C,0x88A32F39,0x11465E73,0x228CBCE6,
328    0x9D8A7A87,0x3B14F50F,0x7629EA1E,0xEC53D43C,0xD8A7A879,0xB14F50F3,0x629EA1E7,0xC53D43CE,
329    0x8A7A879D,0x14F50F3B,0x29EA1E76,0x53D43CEC,0xA7A879D8,0x4F50F3B1,0x9EA1E762,0x3D43CEC5,
330    0x7A879D8A,0xF50F3B14,0xEA1E7629,0xD43CEC53,0xA879D8A7,0x50F3B14F,0xA1E7629E,0x43CEC53D,
331    0x879D8A7A,0x0F3B14F5,0x1E7629EA,0x3CEC53D4,0x79D8A7A8,0xF3B14F50,0xE7629EA1,0xCEC53D43,
332    0x9D8A7A87,0x3B14F50F,0x7629EA1E,0xEC53D43C,0xD8A7A879,0xB14F50F3,0x629EA1E7,0xC53D43CE,
333    0x8A7A879D,0x14F50F3B,0x29EA1E76,0x53D43CEC,0xA7A879D8,0x4F50F3B1,0x9EA1E762,0x3D43CEC5
334 };
335 #endif
336 
337 /*
338 // hash alg default processing opt argument
339 */
340 const void* cpHashProcFuncOpt[] = {
341    NULL,
342 
343    #if defined(_ENABLE_ALG_SHA1_)
344    SHA1_cnt,
345    #else
346    NULL,
347    #endif
348 
349    #if defined(_ENABLE_ALG_SHA256_)
350    SHA256_cnt,
351    #else
352    NULL,
353    #endif
354 
355    #if defined(_ENABLE_ALG_SHA224_)
356    SHA256_cnt,
357    #else
358    NULL,
359    #endif
360 
361    #if defined(_ENABLE_ALG_SHA512_)
362    SHA512_cnt,
363    #else
364    NULL,
365    #endif
366 
367    #if defined(_ENABLE_ALG_SHA384_)
368    SHA512_cnt,
369    #else
370    NULL,
371    #endif
372 
373    #if defined(_ENABLE_ALG_MD5_)
374    MD5_cnt,
375    #else
376    NULL,
377    #endif
378 
379    #if defined(_ENABLE_ALG_SM3_)
380    SM3_cnt,
381    #else
382    NULL,
383    #endif
384 
385    #if defined(_ENABLE_ALG_SHA512_224_)
386    SHA512_cnt,
387    #else
388    NULL,
389    #endif
390 
391    #if defined(_ENABLE_ALG_SHA512_256_)
392    SHA512_cnt,
393    #else
394    NULL,
395    #endif
396 };
397 ////////////////////////////////////////////////////////////
398 
399 /* hash alg attributes */
400 const cpHashAttr cpHashAlgAttr[] = {
401    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},                            /* unknown */
402 
403 #if defined(_ENABLE_ALG_SHA1_)     /* sha1 / unknown */
404    {IPP_SHA1_DIGEST_BITSIZE/8, IPP_SHA1_DIGEST_BITSIZE/8,    MBS_SHA1,   sizeof(Ipp64u), {CONST_64(0x2000000000000000-1),CONST_64(0)}},
405 #else
406    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
407 #endif
408 
409 #if defined(_ENABLE_ALG_SHA256_)   /* sha256 / unknown */
410    {IPP_SHA256_DIGEST_BITSIZE/8,IPP_SHA256_DIGEST_BITSIZE/8, MBS_SHA256, sizeof(Ipp64u), {CONST_64(0x2000000000000000-1),CONST_64(0)}},
411 #else
412    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
413 #endif
414 
415 #if defined(_ENABLE_ALG_SHA224_)   /* sha224 / unknown */
416    {IPP_SHA256_DIGEST_BITSIZE/8,IPP_SHA224_DIGEST_BITSIZE/8, MBS_SHA224, sizeof(Ipp64u), {CONST_64(0x2000000000000000-1),CONST_64(0)}},
417 #else
418    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
419 #endif
420 
421 #if defined(_ENABLE_ALG_SHA512_)   /* sha512 / unknown */
422    {IPP_SHA512_DIGEST_BITSIZE/8,IPP_SHA512_DIGEST_BITSIZE/8, MBS_SHA512, sizeof(Ipp64u)*2, {CONST_64(0xFFFFFFFFFFFFFFFF),CONST_64(0x2000000000000000-1)}},
423 #else
424    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
425 #endif
426 
427 #if defined(_ENABLE_ALG_SHA384_)   /* sha384 / unknown */
428    {IPP_SHA512_DIGEST_BITSIZE/8,IPP_SHA384_DIGEST_BITSIZE/8, MBS_SHA384, sizeof(Ipp64u)*2, {CONST_64(0xFFFFFFFFFFFFFFFF),CONST_64(0x2000000000000000-1)}},
429 #else
430    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
431 #endif
432 
433 #if defined(_ENABLE_ALG_MD5_)   /* md5 / unknown */
434    {IPP_MD5_DIGEST_BITSIZE/8,IPP_MD5_DIGEST_BITSIZE/8, MBS_MD5, sizeof(Ipp64u), {CONST_64(0x2000000000000000-1),CONST_64(0)}},
435 #else
436    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
437 #endif
438 
439 #if defined(_ENABLE_ALG_SM3_)   /* sm3 / unknown */
440    {IPP_SM3_DIGEST_BITSIZE/8,IPP_SM3_DIGEST_BITSIZE/8, MBS_SM3, sizeof(Ipp64u), {CONST_64(0x2000000000000000-1),CONST_64(0)}},
441 #else
442    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
443 #endif
444 
445 #if defined(_ENABLE_ALG_SHA512_224_)   /* sha512/224 / unknown */
446    {IPP_SHA512_DIGEST_BITSIZE/8,IPP_SHA512_224_DIGEST_BITSIZE/8, MBS_SHA512, sizeof(Ipp64u)*2, {CONST_64(0xFFFFFFFFFFFFFFFF),CONST_64(0x2000000000000000-1)}},
447 #else
448    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}},
449 #endif
450 
451 #if defined(_ENABLE_ALG_SHA512_256_)   /* sha512/256 / unknown */
452    {IPP_SHA512_DIGEST_BITSIZE/8,IPP_SHA512_256_DIGEST_BITSIZE/8, MBS_SHA512, sizeof(Ipp64u)*2, {CONST_64(0xFFFFFFFFFFFFFFFF),CONST_64(0x2000000000000000-1)}}
453 #else
454    {0, 0, 0, 0, {CONST_64(0),CONST_64(0)}}
455 #endif
456 };
457 
458 #endif /* _IPP_DATA */
459