Skip to content

Commit 3b6588d

Browse files
author
ipl_ci
committed
Intel(R) Cryptography Primitives Library 1.0.1
1 parent 4e6ad01 commit 3b6588d

File tree

124 files changed

+1173
-3419
lines changed

Some content is hidden

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

124 files changed

+1173
-3419
lines changed

BUILD.md

+11-16
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@
1010
- [Building Intel® Cryptography Primitives Library on macOS\*](#building-intel-cryptography-primitives-library-on-macos)
1111
- [CMake Build Options](#cmake-build-options)
1212
- [Common for all operating systems](#common-for-all-operating-systems)
13-
- [Windows\* OS](#windows-os-1)
14-
- [Linux\* OS](#linux-os-1)
13+
- [Windows\* OS](#windows-os)
14+
- [Linux\* OS](#linux-os)
1515
- [CMake Commands FAQ](#cmake-commands-faq)
16+
- [How to build a 32-bit library?](#how-to-build-a-32-bit-library)
1617
- [How to build a 64-bit generic library without any CPU-specific optimizations?](#how-to-build-a-64-bit-generic-library-without-any-cpu-specific-optimizations)
1718
- [How to build two libraries with optimizations for Intel® Advanced Vector Extensions 2 and Intel® Advanced Vector Extensions 512 instruction sets?](#how-to-build-two-libraries-with-optimizations-for-intel-advanced-vector-extensions-2-and-intel-advanced-vector-extensions-512-instruction-sets)
1819
- [How to build a library to work in a kernel space?](#how-to-build-a-library-to-work-in-a-kernel-space)
19-
- [How to specify path to OpenSSL*](#how-to-specify-path-to-openssl)
20-
- [How to run Intel® Cryptography Primitives Library with clang-tidy?](#how-to-run-intel-cryptography-primitives-library-with-clang-tidy)
2120
- [Incorporating Intel® Cryptography Primitives Library sources into custom build system](#incorporating-intel-cryptography-primitives-library-sources-into-custom-build-system)
2221

2322

@@ -63,7 +62,7 @@ To build the Intel® Cryptography Primitives Library on Linux\* OS, complete the
6362
1. Clone the source code from GitHub\* as follows:
6463

6564
``` bash
66-
git clone --recursive https://github.com/intel/cryptography-primitives
65+
git clone --recursive https://github.com/intel/ipp-crypto
6766
```
6867

6968
2. Set the environment for one of the supported C/C++ compilers.
@@ -114,7 +113,7 @@ To build the Intel® Cryptography Primitives Library on Windows* OS, complete th
114113
1. Clone the source code from GitHub\* as follows:
115114

116115
``` bash
117-
git clone --recursive https://github.com/intel/cryptography-primitives
116+
git clone --recursive https://github.com/intel/ipp-crypto
118117
```
119118

120119
2. Set the environment variables for one of the supported C/C++ compilers.
@@ -153,7 +152,7 @@ To build the Intel® Cryptography Primitives Library on Windows* OS, complete th
153152

154153
## Building Intel® Cryptography Primitives Library on macOS\*
155154

156-
> **NOTE:** Intel® Cryptography Primitives Library stopped macOS\* validation and maintenance based on the announcement in the [Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography) 2021.9 release notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-ipp-previous-release-notes.html#inpage-nav-1-1).\
155+
> **NOTE:** Intel® Cryptography Primitives Library stopped macOS\* validation and maintenance based on the announcement in the [Intel® Integrated Performance Primitives Cryptography (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).\
157156
The Intel® IPP Cryptography 2021.10 release is the last release validated on macOS\* 12.0.\
158157
For further macOS\* testing and maintenance we are relying on contributions from the community. For more details, see [Contributing Rules](./CONTRIBUTING.md).
159158

@@ -162,7 +161,7 @@ To build the Intel® Cryptography Primitives Library on macOS\*, complete the fo
162161
1. Clone the source code from GitHub\* as follows:
163162

164163
``` bash
165-
git clone --recursive https://github.com/intel/cryptography-primitives
164+
git clone --recursive https://github.com/intel/ipp-crypto
166165
```
167166

168167
2. Set the environment variables for one of the supported C/C++ compilers.
@@ -223,9 +222,6 @@ To build the Intel® Cryptography Primitives Library on macOS\*, complete the fo
223222

224223
- Example for Linux\* OS and the Intel® 64 architecture:
225224
`-DPLATFORM_LIST="m7;n8;y8;e9;l9;k0;k1"`
226-
- `-DMBX_PLATFORM_LIST="<platform list>"` - optional, works only if `-DMERGED_BLD:BOOL=off` is set. Sets target platforms for the code to be compiled for [Crypto Multi Buffer library](./sources/ippcp/crypto_mb/Readme.md). Please, refer to [Crypto Multi Buffer library target platforms list](./sources/ippcp/crypto_mb/Readme.md/#target-optimization-codes-in-function-names) to check the supported platforms.
227-
- Example:
228-
`-DMBX_PLATFORM_LIST="k1;l9"`
229225
- `-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.
230226
- `-DTONGSUO: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.
231227
> **NOTE:** -DBABASSL:BOOL=on flag is deprecated and targeted to be removed in the future releases. Please use -DTONGSUO:BOOL=on instead.\*.
@@ -287,13 +283,8 @@ To build the Intel® Cryptography Primitives Library on macOS\*, complete the fo
287283
`cmake CMakeLists.txt -B_build -DARCH=intel64 -DNONPIC_LIB:BOOL=on`
288284

289285
### How to specify path to OpenSSL\*
290-
291286
`cmake CMakeLists.txt -B_build -DARCH=intel64 -DOPENSSL_INCLUDE_DIR=/path/to/openssl/include -DOPENSSL_LIBRARIES=/path/to/openssl/lib -DOPENSSL_ROOT_DIR=/path/to/openssl`
292287

293-
### How to run Intel® Cryptography Primitives Library with clang-tidy?
294-
295-
`CC=clang CXX=clang++ cmake CMakeLists.txt -B_build -DARCH=intel64 -DCRYPTO_USE_CLANG_TIDY:BOOL=on`
296-
297288
## Incorporating Intel® Cryptography Primitives Library sources into custom build system
298289

299290
You can include Intel® Cryptography Primitives Library sources into some arbitrary project's CMake build system and build them with it.
@@ -330,3 +321,7 @@ endif()
330321
# `IPPCRYPTO_INCLUDE_DIRS` - path to Intel® Cryptography Primitives Library headers
331322
# `IPPCRYPTO_ROOT_DIR` - library root dir (a folder with 'include' and 'lib' directories)
332323
```
324+
325+
### How to run Intel® IPP Cryptography with clang-tidy?
326+
327+
`CC=clang CXX=clang++ cmake CMakeLists.txt -B_build -DARCH=intel64 -DCRYPTO_USE_CLANG_TIDY:BOOL=on`

CHANGELOG.md

+3-8
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,12 @@
22

33
This is a list of notable changes to Intel® Cryptography Primitives Library, in reverse chronological order.
44

5-
## Intel(R) Cryptography Primitives Library 1.1.0
6-
7-
- Added single buffer SHA384, SHA512, SHA512/224, SHA512/256 hash algorithm optimizations with the new SHA512 instructions for Lunar Lake and Arrow Lake S CPUs.
8-
- Enabled support of [specific ISA library](./OVERVIEW.md#specific-isa-library) build for Crypto Multi buffer library.
9-
Cmake build options `-DMERGED_BLD:BOOL=off -DMBX_PLATFORM_LIST="k1;l9"` may be used. Please refer to
10-
[BUILD.md](./BUILD.md) for the details.
11-
- Fixed AVX512 IFMA implementation (k1 branch) of SM2 signature and verification single-buffer algorithm. The optimized path is re-enabled.
5+
## Intel(R) Cryptography Primitives Library 1.0.1
6+
- Fixed an issue with invalid memory access for AES-GCM algorithm with Intel® Advanced Vector Extensions 2 (Intel® AVX2) vector extensions of Intel® AES New Instructions (Intel® AES-NI) in case of corner sizes.
127

138
## Intel(R) Cryptography Primitives Library 1.0.0
149
- Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography) was renamed to Intel(R) Cryptography Primitives Library.
15-
- Added single buffer SM3 hash algorithm optimization with the new SM3 instructions for Lunar Lake and Arrow Lake S CPUs.
10+
- Added IPPCP SM3 hash algorithm optimization with the new instruction set (SM3-NI) for Lunar Lake and Arrow Lake CPUs.
1611
- Added Intel® AVX-IFMA RSA implementation to Crypto Multi buffer library.
1712
- Fixed bug in IceLake optimization (`k1` branch) of ECDSA signature function caused by incorrect processing of R and S component's size and sign.
1813
- Added FIPS selftest for Leighton-Micali Hash-Based Signatures(LMS) verification algorithm.

CMakeLists.txt

+5-9
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,15 @@ if("${CMAKE_GENERATOR}" STREQUAL "NMake Makefiles")
5050
endif()
5151
endif()
5252

53-
# on ninja/WIN32 the build type fallback mechanism needs to be placed before the `project` call
53+
project(${PROJECT_FULL_NAME}
54+
VERSION ${PROJECT_VERSION}
55+
LANGUAGES C CXX)
56+
5457
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
5558
message(STATUS "CMAKE_BUILD_TYPE is unset, defaulting to Release")
5659
set(CMAKE_BUILD_TYPE "Release")
5760
endif()
5861

59-
project(${PROJECT_FULL_NAME}
60-
VERSION ${PROJECT_VERSION}
61-
LANGUAGES C CXX)
62-
6362
find_package(Python REQUIRED)
6463

6564
if(WIN32 AND (${CMAKE_GENERATOR} MATCHES "Visual Studio"))
@@ -91,10 +90,6 @@ endif()
9190
if("${MERGED_BLD}" STREQUAL "")
9291
set(MERGED_BLD ON)
9392
endif()
94-
# Crypto_mb merged build flag is set same as IPPCP by default
95-
if(MERGED_BLD)
96-
set(MBX_MERGED_BLD ON)
97-
endif()
9893

9994
# Set default installation directories
10095
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -248,6 +243,7 @@ if (NOT (CRYPTO_USE_CLANG_TIDY))
248243
endif()
249244
endif()
250245

246+
251247
if(BUILD_EXAMPLES)
252248
# This helps to organize examples projects structure in IDE by folders
253249
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

CONTRIBUTING.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ We welcome community contributions to Intel® Cryptography Primitives Library!
77

88
If you have an idea how to improve the product:
99

10-
- Let us know via [GitHub* Issues](https://github.com/intel/cryptography-primitives/issues).
11-
- Send your proposal directly via [pull request](https://github.com/intel/cryptography-primitives/pulls).
10+
- Let us know via [GitHub* Issues](https://github.com/intel/ipp-crypto/issues).
11+
- Send your proposal directly via [pull request](https://github.com/intel/ipp-crypto/pulls).
1212

1313

1414

@@ -29,7 +29,7 @@ Existing automation guarantees regular synchronization of repositories.
2929
</pre>
3030

3131
## License
32-
Intel® Cryptography Primitives Library is licensed under the terms in [LICENSE](./LICENSE). By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.
32+
Intel® Cryptography Primitives Library 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.
3333

3434
## Developer Certification of Origin (DCO)
3535
We encourage you to use Signed-off-by feature to comply with [Developer Certification of Origin (DCO)](https://developercertificate.org/).

DEPRECATION_NOTES.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The deprecated API means it is obsolete and will be removed in one of future Int
1919

2020
The code paths n8/s8 (Intel® SSSE3) and g9/e9 (Intel® AVX) are deprecated and removed from the merged build of Intel® Cryptography Primitives Library, lower optimizations are used instead. 1cpu headers are still available for all code paths. These branches can also be built as 1cpu libraries if specified in the platform list, e.g. `-DMERGED_BLD:BOOL=off -DPLATFORM_LIST=s8;e9`.
2121

22-
## Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography) 2020 Update1 (branch [ipp-crypto_2020_update1](https://github.com/intel/cryptography-primitives/tree/ipp-crypto_2020_update1))
22+
## Intel® Integrated Performance Primitives Cryptography (Intel® IPP Cryptography) 2020 Update1 (branch [ipp-crypto_2020_update1](https://github.com/intel/ipp-crypto/tree/ipp-crypto_2020_update1))
2323

2424
### Hash Functionality
2525

@@ -88,14 +88,14 @@ The code paths n8/s8 (Intel® SSSE3) and g9/e9 (Intel® AVX) are deprecated and
8888

8989
### IppsHashAlgId to IppsHashMethod Parameter Map
9090

91-
| Algorithm | IppsHashAlgId (deprecated) | IppsHashMethod (recommended) | Notes |
92-
| :--------: | :------------------------: | :---------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
93-
| SHA1 | ippsHashAlg_SHA1 | ippsHashMethod_SHA1<br>ippsHashMethod_SHA1_NI<br>ippsHashMethod_SHA1_TT | Intel® Secure Hash Algorithm - New Instructions (Intel® SHA-NI) not supported<br>Intel® SHA-NI only supported<br>Automatic switch on Intel® SHA-NI, if possible (tick-tock) |
94-
| SHA224 | ippsHashAlg_SHA224 | ippsHashMethod_SHA224<br>ippsHashMethod_SHA224_NI<br>ippsHashMethod_SHA224_TT | Intel® SHA-NI not supported<br>Intel® SHA-NI only supported<br>Automatic switch on Intel® SHA-NI, if possible supported |
95-
| SHA256 | ippsHashAlg_SHA256 | ippsHashMethod_SHA256<br>ippsHashMethod_SHA256_NI<br>ippsHashMethod_SHA256_TT | Intel® SHA-NI not supported<br>Intel® SHA-NI only supported<br>Automatic switch on Intel® SHA-NI, if possible supported |
96-
| SHA384 | ippsHashAlg_SHA384 | ippsHashMethod_SHA384<br>ippsHashMethod_SHA384_NI<br>ippsHashMethod_SHA384_TT | Intel® SHA512 not supported<br>Intel® SHA512 only supported<br>Automatic switch on Intel® SHA512, if possible supported |
97-
| SHA512 | ippsHashAgl_SHA512 | ippsHashMethod_SHA512<br>ippsHashMethod_SHA512_NI<br>ippsHashMethod_SHA512_TT | Intel® SHA512 not supported<br>Intel® SHA512 only supported<br>Automatic switch on Intel® SHA512, if possible supported |
98-
| SM3 | ippsHashAlg_SM3 | ippsHashMethod_SM3 | - |
99-
| MD5 | ippsHashAlg_MD5 | ippsHashMethod_MD5 | - |
100-
| SHA512-224 | ippsHashAlg_SHA512_224 | ippsHashMethod_SHA512_224<br>ippsHashMethod_SHA512_224_NI<br>ippsHashMethod_SHA512_224_TT | Intel® SHA512 not supported<br>Intel® SHA512 only supported<br>Automatic switch on Intel® SHA512, if possible supported |
101-
| SHA512-256 | ippsHashAlg_SHA512_256 | ippsHashMethod_SHA512_256<br>ippsHashMethod_SHA512_256_NI<br>ippsHashMethod_SHA512_256_TT | Intel® SHA512 not supported<br>Intel® SHA512 only supported<br>Automatic switch on Intel® SHA512, if possible supported |
91+
| Algorithm | IppsHashAlgId (deprecated) | IppsHashMethod (recommended) | Notes |
92+
| :--------: | :------------------------: | :---------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------: |
93+
| SHA1 | ippsHashAlg_SHA1 | ippsHashMethod_SHA1<br>ippsHashMethod_SHA1_NI<br>ippsHashMethod_SHA1_TT | Intel® Secure Hash Algorithm - New Instructions (Intel® SHA-NI) not supported<br>Intel SHA-NI only supported<br>Automatic switch on Intel SHA-NI, if possible (tick-tock) |
94+
| SHA224 | ippsHashAlg_SHA224 | ippsHashMethod_SHA224<br>ippsHashMethod_SHA224_NI<br>ippsHashMethod_SHA224_TT | Intel SHA-NI not supported<br>Intel SHA-NI only supported<br>Automatic switch on Intel SHA-NI, if possible supported |
95+
| SHA256 | ippsHashAlg_SHA256 | ippsHashMethod_SHA256<br>ippsHashMethod_SHA256_NI<br>ippsHashMethod_SHA256_TT | Intel SHA-NI not supported<br>Intel SHA-NI only supported<br>Automatic switch on Intel SHA-NI, if possible supported |
96+
| SHA384 | ippsHashAlg_SHA384 | ippsHashMethod_SHA384 | - |
97+
| SHA512 | ippsHashAgl_SHA512 | ippsHashMethod_SHA512 | - |
98+
| SM3 | ippsHashAlg_SM3 | ippsHashMethod_SM3 | - |
99+
| MD5 | ippsHashAlg_MD5 | ippsHashMethod_MD5 | - |
100+
| SHA512-224 | ippsHashAlg_SHA512_224 | ippsHashMethod_SHA512_224 | - |
101+
| SHA512-256 | ippsHashAlg_SHA512_256 | ippsHashMethod_SHA512_256 | - |

0 commit comments

Comments
 (0)