Skip to content

Commit db8d8a0

Browse files
author
ipl_ci
committed
WW3'24 source code update
1 parent 3c0ad55 commit db8d8a0

File tree

1,482 files changed

+23174
-17238
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,482 files changed

+23174
-17238
lines changed

.gitignore

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Common certs and secrets
2+
3+
*.pem
4+
*.pgp
5+
*.gpg
6+
*.key
7+
*.crt
8+
9+
## Common Linux files ##
10+
# Backup or temp files
11+
*~
12+
*.pyc
13+
*.obj
14+
.idea
15+
__pycache__/
16+
17+
# temporary files if a process still has a handle open of a deleted file
18+
.fuse_hidden*
19+
20+
## Common Mac files ##
21+
22+
.DS_Store
23+
.AppleDouble
24+
.LSOverride
25+
._*
26+
27+
## Common Windows files ##
28+
29+
Thumbs.db
30+
Thumbs.db:encryptable
31+
ehthumbs.db
32+
ehthumbs_vista.db
33+
*.lnk

BUILD.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,11 @@ To build the Intel IPP Cryptography library on Windows* OS, complete the followi
147147

148148
## Building Intel IPP Cryptography on macOS\*
149149

150-
The software was validated on:
151-
152-
- macOS\* 12.0
150+
> **NOTE:** Intel IPP Cryptography stopped macOS\* validation and maintenance based on the announcement in the [Intel IPP Cryptography 2021.9 release notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/release-notes-for-oneapi-integrated-performance-primitives.html#inpage-nav-3-1).\
151+
The Intel IPP Cryptography 2021.10 release is the last release validated on macOS\* 12.0.\
152+
For further macOS\* testing and maintenance we are relying on contributions from the community. For more details, see [Contributing Rules](./CONTRIBUTING.md).
153153

154-
To build the Intel IPP Cryptography library on macOS*, complete the following steps:
154+
To build the Intel IPP Cryptography library on macOS\*, complete the following steps:
155155

156156
1. Clone the source code from GitHub\* as follows:
157157

@@ -219,14 +219,24 @@ To build the Intel IPP Cryptography library on macOS*, complete the following st
219219
`-DPLATFORM_LIST="w7;n8;y8;e9;l9;k0"`
220220
- `-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.
221221

222-
- Currently supported by the library custom features dispatching:
222+
- Currently supported by the library custom features dispatching:
223223
1. Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI) code-path enabling: `IPPCP_AES_ON;IPPCP_CLMUL_ON`
224-
2. Intel® Advanced Vector Extensions 512 (Intel(R) AVX-512) and vector extensions of Intel(R) AES New Instructions (Intel(R) AES-NI) code-path enabling: `IPPCP_VAES_ON;IPPCP_VCLMUL_ON`
224+
2. Intel® Advanced Vector Extensions 512 (Intel® AVX-512) / Intel® Advanced Vector Extensions 2 (Intel® AVX2) vector extensions of Intel® AES New Instructions (Intel® AES-NI) code-paths enabling: `IPPCP_VAES_ON;IPPCP_VCLMUL_ON`.
225225
- Example:
226-
`-DPLATFORM_LIST="IPPCP_AES_ON;IPPCP_CLMUL_ON"` - this combination enables Intel® AES-NI in all 1CPU libraries, which contains this code path.
226+
`-DIPPCP_CUSTOM_BUILD="IPPCP_AES_ON;IPPCP_CLMUL_ON"` - this combination enables Intel® AES-NI in all 1CPU libraries, which contains this code path.
227227
- Example of using a combination of CPU features:
228-
`-DPLATFORM_LIST="IPPCP_AES_ON;IPPCP_CLMUL_ON;IPPCP_VAES_ON;IPPCP_VCLMUL_ON"` - in this combination the highest available feature in each 1CPU library will be enabled (e.g. for `"y8"` it’s Intel® AES-NI and for `"k1"` - Intel AVX-512 VAES)
229-
228+
`-DIPPCP_CUSTOM_BUILD="IPPCP_AES_ON;IPPCP_CLMUL_ON;IPPCP_VAES_ON;IPPCP_VCLMUL_ON"` - in this combination the highest available feature in each 1CPU library will be enabled (e.g. for `"y8"` it’s Intel® AES-NI, for `"l9"` it's Intel® AVX2 VAES, and for `"k1"` - Intel® AVX-512 VAES)
229+
- `-DIPPCP_FIPS_MODE:BOOL=<on|off>` - optional. Regulates the build of FIPS-compliant Intel IPP Cryptography library.
230+
231+
- `-DIPPCP_FIPS_MODE:BOOL=on`: enables all FIPS-compliance changes in Intel IPP Cryptography library.
232+
- `-DIPPCP_FIPS_MODE:BOOL=off`: default configuration. Intel IPP Cryptography library build with such option is not FIPS-compliant.
233+
- `-DIPPCP_SELFTEST_USE_MALLOC:BOOL=<on|off>` - optional. Enables internal memory allocation and release using `malloc()` and `free()` functions inside Intel IPP Cryptography library selftests.
234+
- `-DIPPCP_SELFTEST_USE_MALLOC:BOOL=on`: memory management is held by FIPS selftests, all processing APIs should be called with input parameters equal to `NULL`.
235+
- `-DIPPCP_SELFTEST_USE_MALLOC:BOOL=off`: default configuration. Memory management is held by customer's application, all processing APIs should be called with work buffers of the valid length.
236+
- `-DMBX_FIPS_MODE:BOOL=<on|off>` - optional. Regulates the build of FIPS-compliant Crypto Multi-buffer Library.
237+
238+
- `-DMBX_FIPS_MODE:BOOL=on`: enables all FIPS-compliance changes in Crypto Multi-buffer Library.
239+
- `-DMBX_FIPS_MODE:BOOL=off`: default configuration. Crypto Multi-buffer Library build with such option is not FIPS-compliant.
230240
### Windows\* OS
231241

232242
- `-G"<tool-chain-generator>"` - defines the native build system CMake will generate from the input files.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
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.10
6+
- Added the verification part of eXtended Merkle Signature Scheme (XMSS) algorithm.
7+
- Added FIPS-compliance mode for the library. More information can be found in the [Intel(R) IPP Cryptography FIPS Guide](./README_FIPS.md).
8+
59
## Intel(R) IPP Cryptography 2021.9
610
- Added optimized RSA-2048 code for multi-buffer (8 buffers) Intel® AVX-512 implementation.
711
- Added Intel® Advanced Vector Extensions 2 (Intel® AVX2) vector extensions of Intel® AES New Instructions (Intel® AES-NI) optimization for AES-GCM algorithm.

CMakeLists.txt

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
#===============================================================================
1+
#=========================================================================
22
# Copyright (C) 2017 Intel Corporation
33
#
4-
# Licensed under the Apache License, Version 2.0 (the 'License');
4+
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
66
# You may obtain a copy of the License at
77
#
8-
# http://www.apache.org/licenses/LICENSE-2.0
8+
# http://www.apache.org/licenses/LICENSE-2.0
99
#
10-
# Unless required by applicable law or agreed to in writing,
11-
# software distributed under the License is distributed on an 'AS IS' BASIS,
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
1212
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
# See the License for the specific language governing permissions
14-
# and limitations under the License.
15-
#
16-
#===============================================================================
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#=========================================================================
1716

1817
#
1918
# Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography)

CONTRIBUTING.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,17 @@ Existing automation guarantees regular synchronization of repositories.
2828
+-------------+ +------------+
2929
</pre>
3030

31+
## License
32+
Intel® IPP Cryptography is licensed under the terms in LICENSE <https://github.com/intel/ipp-crypto/blob/develop/LICENSE>. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.
33+
34+
## Developer Certification of Origin (DCO)
35+
We encourage you to use Signed-off-by feature to comply with [Developer Certification of Origin (DCO)](https://developercertificate.org/).
36+
The name in the commit message Signed-off-by line and your email must match the change authorship information. Make sure your .gitconfig is set up correctly so you can use `git commit -s` for signing your commits:
37+
38+
`git config --global user.name "Kris Smith"`
39+
40+
`git config --global user.email [email protected]`
41+
3142
## Contribution Flow
3243

3344
- Contributor creates fork from develop, commits the changes into the created branch, opens a PR and requests a review.

OVERVIEW.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ List of CPU feature subsets that the library has special optimizations for:
103103
- RDRAND
104104
- RDSEED
105105
- CLMUL
106-
- Intel AVX-512 VAES
106+
- Intel AVX-512/AVX2 VAES
107107
- Intel AVX-512 IFMA
108108
- Intel AVX-512 GFNI
109109

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[Build Instructions](./BUILD.md) | [Contributing Guide](#how-to-contribute) | [Documentation](#documentation) | [Get Help](#get-help) | [Intel IPP Product Page](https://www.intel.com/content/www/us/en/developer/tools/oneapi/ipp.html)
44

5-
Intel® Integrated Performance Primitives (Intel® IPP) Cryptography is a secure, fast and lightweight library of building blocks for cryptography, highly-optimized for various Intel® CPUs.
5+
Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography) is a secure, fast and lightweight library of building blocks for cryptography, highly-optimized for various Intel® CPUs.
66

77
## Key Features
88
The library provides a comprehensive set of routines commonly used for cryptographic operations, including:
@@ -41,6 +41,11 @@ The library provides a comprehensive set of routines commonly used for cryptogra
4141
- Kernel mode compatibility
4242
- Thread-safe design
4343

44+
## FIPS 140 Compliance
45+
46+
Intel IPP Cryptography supports building blocks (self-tests, services) for FIPS 140-3 compliance.
47+
See [FIPS] (./README_FIPS.md) document for details.
48+
4449
## Installation
4550

4651
[How to Get and Build the Intel IPP Cryptography Library](./BUILD.md)

0 commit comments

Comments
 (0)