Skip to content

Commit d02611e

Browse files
author
ipl_ci
committed
Intel(R) Integrated Performance Primitives Cryptography 2021.11.1
1 parent db8d8a0 commit d02611e

36 files changed

+969
-239
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@
1414
.idea
1515
__pycache__/
1616

17+
_build
18+
.vscode
19+
doc/source/nocp-parameters.xml
20+
nocp-parameters.xml
21+
22+
1723
# temporary files if a process still has a handle open of a deleted file
1824
.fuse_hidden*
1925

@@ -31,3 +37,4 @@ Thumbs.db:encryptable
3137
ehthumbs.db
3238
ehthumbs_vista.db
3339
*.lnk
40+

BUILD.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,14 @@
2525
- [CMake\*](https://cmake.org/download) 3.18 or higher
2626
- Python 3.8.1
2727
- The Netwide Assembler (NASM) 2.15
28-
- OpenSSL\* 3.0.8 or higher
28+
- OpenSSL\* 3.0.8 or higher **OR** BoringSSL* [45cf810d](https://github.com/google/boringssl/archive/45cf810dbdbd767f09f8cb0b0fcccd342c39041f.tar.gz) **OR** Tongsuo* 8.2.1
29+
2930

3031
### Linux* OS
3132
- [Common tools](#common-tools)
3233
- Intel® C++ Compiler Classic 2021.9 for Linux\* OS
33-
- GCC 8.3
34-
- GCC 9.1
35-
- GCC 10.1
36-
- GCC 11.1
34+
- GCC 8.5
35+
- GCC 11.4
3736
- Clang 9.0
3837
- Clang 12.0
3938
- GNU binutils 2.32
@@ -217,6 +216,8 @@ To build the Intel IPP Cryptography library on macOS\*, complete the following s
217216

218217
- Example for Linux\* OS and the Intel® 64 architecture:
219218
`-DPLATFORM_LIST="w7;n8;y8;e9;l9;k0"`
219+
- `-DNO_CRYPTO_MB:BOOL=TRUE` - optional, turns off the build of [Crypto Multi Buffer library](./sources/ippcp/crypto_mb/Readme.md) and, as a consequence, removes all dependencies on OpenSSL library.
220+
- `-DBABASSL:BOOL=on`, `-DBORINGSSL:BOOL=on` - required only if forks of OpenSSL library are used to resolve OpenSSL dependencies - Tongsuo and BoringSSL respectively. These flags make sense when [Crypto Multi Buffer library](./sources/ippcp/crypto_mb/Readme.md) is built.
220221
- `-DIPPCP_CUSTOM_BUILD="<CPU features list>"` - optional, works only if `-DMERGED_BLD:BOOL=off` is set, i.e. only for 1CPU libraries. Enables the CPU feature dispatching mask at compile-time based on the provided list.
221222

222223
- Currently supported by the library custom features dispatching:

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
This is a list of notable changes to Intel(R) IPP Cryptography, in reverse chronological order.
44

5+
## Intel(R) IPP Cryptography 2021.11
6+
- Minimal supported BoringSSL version was increased to [45cf810d](https://github.com/google/boringssl/archive/45cf810dbdbd767f09f8cb0b0fcccd342c39041f.tar.gz) tag.
7+
58
## Intel(R) IPP Cryptography 2021.10
69
- Added the verification part of eXtended Merkle Signature Scheme (XMSS) algorithm.
710
- Added FIPS-compliance mode for the library. More information can be found in the [Intel(R) IPP Cryptography FIPS Guide](./README_FIPS.md).

CONST_TIME_EXECUTION_TESTING.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,10 @@
55
- [Scope for crypto_mb library](#cryptomb)
66

77
## General information <div id = 'general'>
8-
- Testing is conducted under Linux for 64-bit Intel® IPP Cryptography built with the following compilers:
9-
- Intel® C++ Compiler 19.1
10-
- Intel® C++ Compiler Classic 2021.9
11-
- GCC 8.3
12-
- GCC 9.1
13-
- GCC 10.1
14-
- GCC 11.1
15-
- Clang 9.0
16-
- Clang 12.0
8+
- Testing is conducted under Linux for 64-bit Intel® IPP Cryptography built with the compilers listed in [Build](./BUILD.md).
179
- Tested platforms: w7, n8, y8, e9, l9, k0 (see the supported platforms list [here](./OVERVIEW.md#target-optimization-codes-in-function-names)).
1810
- Testing scope described below is guaranteed to pass for **`release`** branches. This is not guaranteed for the **`develop`** branch ([branches description](./OVERVIEW.md#branches-description))
19-
- Information about Pin-Based Constant Execution Checker can be found [here](https://github.com/intel/pin_based_cec)
11+
- Information about Pin-Based Constant Execution Checker can be found [here](https://github.com/intel/pin_based_cec)
2012

2113
## ippcp library <div id = 'ippcp'>
2214
| Tested Function | Parameters |

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The library provides a comprehensive set of routines commonly used for cryptogra
2222
- RSA, RSA-OAEP, RSA-PKCS_v15, RSA-PSS
2323
- DLP, DLP-DSA, DLP-DH
2424
- ECC (NIST curves), ECDSA, ECDH, EC-SM2
25-
- Multi-buffer RSA, ECDSA, SM3, x25519
25+
- Multi-buffer RSA, ECDSA, ECDH, x25519, SM2, SM3, SM4, etc
2626
- Finite Field Arithmetic Functions
2727
- Big Number Integer Arithmetic Functions
2828
- PRNG/TRNG and Prime Numbers Generation

README_FIPS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ fips_test_status fips_selftest_ippsRSASignVerify_PSS_rmf_get_size_keys (int *pKe
291291
fips_test_status fips_selftest_ippsRSASignVerify_PSS_rmf_get_size (int *pBufferSize Ipp8u *pKeysBuffer);
292292
fips_test_status fips_selftest_ippsRSASign_PSS_rmf (Ipp8u *pBuffer Ipp8u *pKeysBuffer);
293293
fips_test_status fips_selftest_ippsRSAVerify_PSS_rmf (Ipp8u *pBuffer Ipp8u *pKeysBuffer);
294+
fips_test_status fips_selftest_ippsRSA_GenerateKeys (Ipp8u *pBuffer Ipp8u *pKeysBuffer);
294295
```
295296
296297
, where `pBuffer` is the valid buffer for selftest of size indicated by
@@ -305,6 +306,8 @@ fips_test_status fips_selftest_ippsGFpECSignVerifyDSA_get_size_GFpEC_buff (int *
305306
fips_test_status fips_selftest_ippsGFpECSignVerifyDSA_get_size_data_buff (int *pDataBuffSize Ipp8u *pGFpBuff Ipp8u *pGFpECBuff);
306307
fips_test_status fips_selftest_ippsGFpECSignDSA (Ipp8u *pGFpBuff Ipp8u *pGFpECBuff Ipp8u *pDataBuff);
307308
fips_test_status fips_selftest_ippsGFpECVerifyDSA (Ipp8u *pGFpBuff Ipp8u *pGFpECBuff Ipp8u *pDataBuff);
309+
fips_test_status fips_selftest_ippsGFpECPublicKey (Ipp8u *pGFpBuff Ipp8u *pGFpECBuff Ipp8u *pDataBuff);
310+
fips_test_status fips_selftest_ippsGFpECSharedSecretDH (Ipp8u *pGFpBuff Ipp8u *pGFpECBuff Ipp8u *pDataBuff);
308311
```
309312

310313
, where `pGFpBuff` is the valid buffer for selftest of size indicated by

include/ippcp/fips_cert.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,16 @@ IPPAPI(fips_test_status, fips_selftest_ippsRSASignVerify_PSS_rmf_get_size_keys,
9393
IPPAPI(fips_test_status, fips_selftest_ippsRSASignVerify_PSS_rmf_get_size, (int *pBufferSize, Ipp8u *pKeysBuffer))
9494
IPPAPI(fips_test_status, fips_selftest_ippsRSASign_PSS_rmf, (Ipp8u *pBuffer, Ipp8u *pKeysBuffer))
9595
IPPAPI(fips_test_status, fips_selftest_ippsRSAVerify_PSS_rmf, (Ipp8u *pBuffer, Ipp8u *pKeysBuffer))
96+
IPPAPI(fips_test_status, fips_selftest_ippsRSA_GenerateKeys, (Ipp8u *pBuffer, Ipp8u *pKeysBuffer))
9697

9798
/* ECDSA sign/verify */
9899
IPPAPI(fips_test_status, fips_selftest_ippsGFpECSignVerifyDSA_get_size_GFp_buff, (int *pGFpBuffSize))
99100
IPPAPI(fips_test_status, fips_selftest_ippsGFpECSignVerifyDSA_get_size_GFpEC_buff, (int *pGFpECBuffSize, Ipp8u *pGFpBuff))
100101
IPPAPI(fips_test_status, fips_selftest_ippsGFpECSignVerifyDSA_get_size_data_buff, (int *pDataBuffSize, Ipp8u *pGFpBuff, Ipp8u *pGFpECBuff))
101102
IPPAPI(fips_test_status, fips_selftest_ippsGFpECSignDSA, (Ipp8u *pGFpBuff, Ipp8u *pGFpECBuff, Ipp8u *pDataBuff))
102103
IPPAPI(fips_test_status, fips_selftest_ippsGFpECVerifyDSA, (Ipp8u *pGFpBuff, Ipp8u *pGFpECBuff, Ipp8u *pDataBuff))
104+
IPPAPI(fips_test_status, fips_selftest_ippsGFpECPublicKey, (Ipp8u *pGFpBuff, Ipp8u *pGFpECBuff, Ipp8u *pDataBuff))
105+
IPPAPI(fips_test_status, fips_selftest_ippsGFpECSharedSecretDH, (Ipp8u *pGFpBuff, Ipp8u *pGFpECBuff, Ipp8u *pDataBuff))
103106

104107
/*
105108
// Enumerator that contains information about FIPS-approved
@@ -135,8 +138,11 @@ enum FIPS_IPPCP_FUNC {
135138
RSAVerify_PKCS1v15_rmf,
136139
RSASign_PSS_rmf,
137140
RSAVerify_PSS_rmf,
141+
RSA_GenerateKeys,
138142
GFpECSignDSA,
139143
GFpECVerifyDSA,
144+
GFpECSharedSecretDH,
145+
GFpECPublicKey,
140146
HashUpdate_rmf,
141147
HashGetTag_rmf,
142148
HashFinal_rmf,
@@ -151,8 +157,8 @@ enum FIPS_IPPCP_FUNC {
151157
RSAEncrypt_OAEP_rmf,
152158
RSADecrypt_OAEP_rmf,
153159

154-
/* Not approved functions or
155-
* FIPS-mode is not yet implemented, < 0
160+
/* Not approved functions or
161+
* FIPS-mode is not yet implemented, < 0
156162
*/
157163
SMS4EncryptCBC = -0xFFF,
158164
SMS4EncryptCBC_CS1,
@@ -173,7 +179,7 @@ enum FIPS_IPPCP_FUNC {
173179
SMS4_CCMDecrypt,
174180
SMS4_CCMGetTag,
175181
/* XTS APIs didn't pass CAVP testing */
176-
AES_XTSEncrypt,
182+
AES_XTSEncrypt,
177183
AES_XTSDecrypt,
178184
AESEncryptXTS_Direct,
179185
AESDecryptXTS_Direct,
@@ -193,7 +199,6 @@ enum FIPS_IPPCP_FUNC {
193199
PrimeGen_BN,
194200
RSA_Encrypt,
195201
RSA_Decrypt,
196-
RSA_GenerateKeys,
197202
DLPGenKeyPair,
198203
DLPPublicKey,
199204
DLPSignDSA,
@@ -203,8 +208,6 @@ enum FIPS_IPPCP_FUNC {
203208
DLPGenerateDH,
204209
GFpECVerify,
205210
GFpECPrivateKey,
206-
GFpECPublicKey,
207-
GFpECSharedSecretDH,
208211
GFpECSharedSecretDHC,
209212
GFpECSignNR,
210213
GFpECVerifyNR,

include/ippversion.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828

2929
#define IPP_VERSION_MAJOR 2021
3030
#define IPP_VERSION_MINOR 11
31-
#define IPP_VERSION_UPDATE 0
31+
#define IPP_VERSION_UPDATE 1
3232

3333
// Major interface version
3434
#define IPP_INTERFACE_VERSION_MAJOR 11
3535
// Minor interface version
36-
#define IPP_INTERFACE_VERSION_MINOR 12
36+
#define IPP_INTERFACE_VERSION_MINOR 13
3737

3838
#define IPP_VERSION_STR STR(IPP_VERSION_MAJOR) "." STR(IPP_VERSION_MINOR) "." STR(IPP_VERSION_UPDATE) " (" STR(IPP_INTERFACE_VERSION_MAJOR) "." STR(IPP_INTERFACE_VERSION_MINOR) " )"
3939

sources/include/owndefs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
#if !defined(__NOINLINE)
4949
#if defined(__INTEL_COMPILER) || defined(_MSC_VER)
5050
#define __NOINLINE __declspec(noinline)
51-
#elif defined( __GNUC__ )
51+
#elif defined( __GNUC__ ) || defined(__INTEL_LLVM_COMPILER)
5252
#define __NOINLINE __attribute__((noinline))
5353
#else
5454
#define __NOINLINE

sources/ippcp/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ set(DEFAULT_Clang_COMPILER_VER 9.0.0)
106106
set(DEFAULT_Intel18_COMPILER_VER 18.0.0)
107107
set(DEFAULT_Intel19_COMPILER_VER 19.0.0)
108108
set(DEFAULT_MSVC19_COMPILER_VER 19.14)
109-
set(DEFAULT_IntelLLVM2023_COMPILER_VER 2023.1.0)
109+
set(DEFAULT_IntelLLVM_COMPILER_VER 2023.1.0)
110110

111111
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\1.\\2.\\3" CMAKE_C_COMPILER_VERSION_SHORT ${CMAKE_C_COMPILER_VERSION})
112112
string(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" CMAKE_C_COMPILER_VERSION_MAJOR ${CMAKE_C_COMPILER_VERSION})

0 commit comments

Comments
 (0)