Skip to content

Commit

Permalink
WW20'23 source code update
Browse files Browse the repository at this point in the history
  • Loading branch information
ipl_ci committed May 19, 2023
1 parent 577431a commit 47079e5
Show file tree
Hide file tree
Showing 20 changed files with 906 additions and 43 deletions.
21 changes: 15 additions & 6 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

### Linux* OS
- [Common tools](#common-tools)
- Intel® C++ Compiler Classic 2021.3 for Linux\* OS
- Intel® C++ Compiler Classic 2021.9 for Linux\* OS
- GCC 8.3
- GCC 9.1
- GCC 10.1
Expand All @@ -39,20 +39,20 @@
- GNU binutils 2.32
### Windows* OS
- [Common tools](#common-tools)
- Intel® C++ Compiler Classic 2021.3 for Windows\* OS
- Intel® C++ Compiler Classic 2021.9 for Windows\* OS
- Microsoft Visual C++ Compiler\* version 19.16 provided by Microsoft Visual Studio\* 2017 version 15.9
> **NOTE:** Support for this compiler version will be removed from Intel IPP Cryptography starting 2021.4 release. If you use it for building Intel IPP Cryptography library, please plan on migrating to a newer supported version of Microsoft Visual C++ Compiler\*.
- Microsoft Visual C++ Compiler\* version 19.24 provided by Microsoft Visual Studio\* 2019 version 16.4
- Microsoft Visual C++ Compiler\* version 19.30 provided by Microsoft Visual Studio\* 2022 version 17.0
> **NOTE:** [CMake\*](https://cmake.org/download) 3.21 or higher is required to build using Microsoft Visual Studio\* 2022.
### macOS*
- [Common tools](#common-tools)
- Intel® C++ Compiler Classic 2021.3 for macOS\*
- Intel® C++ Compiler Classic 2021.9 for macOS\*
## Building Intel IPP Cryptography on Linux\* OS

The software was validated on:

- Red Hat\* Enterprise Linux\* 7
- Red Hat\* Enterprise Linux\* 8

To build the Intel IPP Cryptography library on Linux\* OS, complete the following steps:
1. Clone the source code from GitHub\* as follows:
Expand Down Expand Up @@ -102,7 +102,7 @@ To build the Intel IPP Cryptography library on Linux\* OS, complete the followin

The software was validated on:

- Windows Server\* 2016
- Windows Server\* 2019

To build the Intel IPP Cryptography library on Windows* OS, complete the following steps:

Expand Down Expand Up @@ -214,7 +214,16 @@ To build the Intel IPP Cryptography library on macOS*, complete the following st
`-DPLATFORM_LIST="m7;s8;p8;g9;h9"`

- Example for Linux\* OS and the Intel® 64 architecture:
`-DPLATFORM_LIST="w7;n8;y8;e9;l9;n0;k0"`
`-DPLATFORM_LIST="w7;n8;y8;e9;l9;k0"`
- `-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.

- Currently supported by the library custom features dispatching:
1. Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI) code-path enabling: `IPPCP_AES_ON;IPPCP_CLMUL_ON`
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`
- Example:
`-DPLATFORM_LIST="IPPCP_AES_ON;IPPCP_CLMUL_ON"` - this combination enables Intel® AES-NI in all 1CPU libraries, which contains this code path.
- Example of using a combination of CPU features:
`-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)

### Windows\* OS

Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

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

## Intel(R) IPP Cryptography 2021.8
- Crypto Multi-buffer library was extended with XTS mode of SM4 algorithm.

## Intel(R) IPP Cryptography 2021.7.1
- Added re-initialization API for AES-GCM context - ippsAES_GCMReinit. The use-case of this function is very specific, please, refer to the documentation for more details.

Expand Down
4 changes: 2 additions & 2 deletions CONST_TIME_EXECUTION_TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
## General information <div id = 'general'>
- Testing is conducted under Linux for 64-bit Intel® IPP Cryptography built with the following compilers:
- Intel® C++ Compiler 19.1
- Intel® C++ Compiler Classic 2021.3
- Intel® C++ Compiler Classic 2021.9
- GCC 8.3
- GCC 9.1
- GCC 10.1
- GCC 11.1
- Clang 9.0
- Clang 12.0
- Tested platforms: w7, n8, y8, e9, l9, n0, k0 (see the supported platforms list [here](./OVERVIEW.md#target-optimization-codes-in-function-names)).
- Tested platforms: w7, n8, y8, e9, l9, k0 (see the supported platforms list [here](./OVERVIEW.md#target-optimization-codes-in-function-names)).
- 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))
- Information about Pin-Based Constant Execution Checker can be found [here](https://github.com/intel/pin_based_cec)

Expand Down
11 changes: 5 additions & 6 deletions DEPRECATION_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ The deprecated API means it is obsolete and will be removed in one of future Int
| ippsSHA1Init<br>ippsSHA224Init<br>ippsSHA256Init<br>ippsSHA384Init<br>ippsSHA512Init<br>ippsSM3Init<br>ippsMD5Init | ippsHashInit_rmf \* |
| ippsSHA1Duplicate<br>ippsSHA224Duplicate<br>ippsSHA256Duplicate<br>ippsSHA384Duplicate<br>ippsSHA512Duplicate<br>ippsSM3Duplicate<br>ippsMD5Duplicate | ippsHashDuplicate_rmf |
| ippsSHA1Pack, ippsSHA1Unpack<br>ippsSHA224Pack, ippsSHA224Unpack<br>ippsSHA256Pack, ippsSHA256Unpack<br>ippsSHA384Pack, ippsSHA384Unpack<br>ippsSHA512Pack, ippsSHA512Unpack<br>ippsSM3Pack, ippsSM3Unpack<br>ippsMD5Pack, ippsMD5Unpack | ippsHashPack_rmf,<br>ippsHashUnpack_rmf |
| ippsSHA1Update, ippsSHA1GetTag, ippsSHA1Final<br>ippsSHA224Update, ippsSHA224GetTag, ippsSHA224Final<br>ippsSHA256Update, ippsSHA256GetTag, ippsSHA256Final<br>ippsSHA384Update, ippsSHA384GetTag, ippsSHA384Final<br>ippsSHA512Update, ippsSHA512GetTag, ippsSHA512Final<br>ippsSM3Update, ippsSM3GetTag, ippsSM3Final<br>ippsMD5Update, ippsMD5GetTag, ippsSMD5Final | ippsHashUpdate_rmf,<br>ippsHashGetTag_rmf,<br>ippsHashFinal_rmf |
| ippsSHA1Update, ippsSHA1GetTag, ippsSHA1Final<br>ippsSHA224Update, ippsSHA224GetTag, ippsSHA224Final<br>ippsSHA256Update, ippsSHA256GetTag, ippsSHA256Final<br>ippsSHA384Update, ippsSHA384GetTag, ippsSHA384Final<br>ippsSHA512Update, ippsSHA512GetTag, ippsSHA512Final<br>ippsSM3Update, ippsSM3GetTag, ippsSM3Final<br>ippsMD5Update, ippsMD5GetTag, ippsMD5Final | ippsHashUpdate_rmf,<br>ippsHashGetTag_rmf,<br>ippsHashFinal_rmf |
| ippsSHA1MessageDigest<br>ippsSHA224MessageDigest<br>ippsSHA256MessageDigest<br>ippsSHA384MessageDigest<br>ippsSHA512MessageDigest<br>ippsSM3MessageDigest<br>ippsMD5MessageDigest | ippsHashMessage_rmf \* |
| ippsHashGetSize | ippsHashGetSize_rmf |
| ippsHashInit \*\* | ippsHashInit_rmf \* |
Expand All @@ -24,7 +24,7 @@ The deprecated API means it is obsolete and will be removed in one of future Int
| ippsHashMessage \*\* | ippsHashMessage_rmf \* |

>\* To choose hash algorithm, specify [IppsHashMethod parameter](#ippshashalgid-to-ippshashmethod-parameter-map)
>\*\* IppsHashAlgId parameter used in 'ippsHMAC_Init' and in ippsHMAC_Message for choosing hash algorithm is deprecated (see Recommended replacement column for alternative in [IppsHashAlgId to IppsHashMethod parameter map](#ippshashalgid-to-ippshashmethod-parameter-map)
>\*\* IppsHashAlgId parameter used in ippsHMAC_Init and in ippsHMAC_Message for choosing hash algorithm is deprecated (see Recommended replacement column for alternative in [IppsHashAlgId to IppsHashMethod Parameter Map](#ippshashalgid-to-ippshashmethod-parameter-map)
### Keyed HMAC Functionality

Expand All @@ -37,7 +37,7 @@ The deprecated API means it is obsolete and will be removed in one of future Int
| ippsHMAC_Message \*\* | ippsHMAC_Message_rmf \* |

>\* To choose hash algorithm, specify [IppsHashMethod parameter](#ippshashalgid-to-ippshashmethod-parameter-map)
>\*\* IppsHashAlgId parameter used in 'ippsHMAC_Init' and in ippsHMAC_Message for choosing hash algorithm is deprecated (see Recommended replacement column for alternative in [IppsHashAlgId to IppsHashMethod parameter map](#ippshashalgid-to-ippshashmethod-parameter-map)
>\*\* IppsHashAlgId parameter used in 'ippsHMAC_Init' and in ippsHMAC_Message for choosing hash algorithm is deprecated (see Recommended replacement column for alternative in [IppsHashAlgId to IppsHashMethod Parameter Map](#ippshashalgid-to-ippshashmethod-parameter-map)

### MGF Functionality
Expand All @@ -62,7 +62,6 @@ The deprecated API means it is obsolete and will be removed in one of future Int
| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| ippsECCPGetSize<br>ippsECCPGetSizeStd128r1<br>ippsECCPGetSizeStd128r2<br>ippsECCPGetSizeStd192r1<br>ippsECCPGetSizeStd224r1<br>ippsECCPGetSizeStd256r1<br>ippsECCPGetSizeStd384r1<br>ippsECCPGetSizeStd521r1<br>ippsECCPGetSizeStdSM2 | ippsGFpECGetSize |
| ippsECCPInit<br>ippsECCPInitStd128r1<br>ippsECCPInitStd128r2<br>ippsECCPInitStd192r1<br>ippsECCPInitStd224r1<br>ippsECCPInitStd256r1<br>ippsECCPInitStd384r1<br>ippsECCPInitStd521r1<br>ippsECCPInitStdSM2 | ippsGFpECInitStd \*<br>* ippsGFpECInitStd functions provides both initialization<br>and set up standard EC set of parameters |
| ippsECCPGetSize<br>ippsECCPGetSizeStd128r1<br>ippsECCPGetSizeStd128r2<br>ippsECCPGetSizeStd192r1<br>ippsECCPGetSizeStd224r1<br>ippsECCPGetSizeStd256r1<br>ippsECCPGetSizeStd384r1<br>ippsECCPGetSizeStd521r1<br>ippsECCPGetSizeStdSM2 | ippsGFpECGetSize |
| ippsECCPSet | ippsGFpECSet |
| ippsECCPSetStd | ippsGFpECInitStd \*<br>* ippsGFpECInitStd functions provides both initialization<br>and set up standard EC set of parameters |
| ippsECCPSetStd128r1<br>ippsECCPSetStd128r2<br>ippsECCPSetStd192r1<br>ippsECCPSetStd224r1<br>ippsECCPSetStd256r1<br>ippsECCPSetStd384r1<br>ippsECCPSetStd521r1<br>ippsECCPSetStdSM2 | ippsGFpECInitStd128r1<br>ippsGFpECInitStd128r2<br>ippsGFpECInitStd192r1<br>ippsGFpECInitStd224r1<br>ippsGFpECInitStd256r1<br>ippsGFpECInitStd384r1<br>ippsGFpECInitStd521r1<br>ippsGFpECInitStdSM2 |
Expand All @@ -72,9 +71,9 @@ The deprecated API means it is obsolete and will be removed in one of future Int
| ippsECCPSharedSecretDH<br>ippsECCPSharedSecretDHC | ippsGFpECSharedSecretDH<br>ippsGFpECSharedSecretDHC |
| ippsECCPSignDSA<br>ippsECCPVerifyDSA<br>ippsECCPSignNR<br>ippsECCPVerifyNR<br>ippsECCPSignSM2<br>ippsECCPVerifySM2 | ippsGFpECSignDSA<br>ippsGFpECVerifyDSA<br>ippsGFpECSignNR<br>ippsGFpECVerifyNR<br>ippsGFpECSignSM2<br>ippsGFpECVerifySM2 |

### IppsHashAlgId to IppsHashMethod parameter map
### IppsHashAlgId to IppsHashMethod Parameter Map

| Algorithm | IppsHashAlgId (deprecated) | IppsHashMethod(recommended) | Note |
| Algorithm | IppsHashAlgId (deprecated) | IppsHashMethod (recommended) | Notes |
| :--------: | :------------------------: | :---------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------: |
| 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) |
| 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 |
Expand Down
Loading

0 comments on commit 47079e5

Please sign in to comment.