Skip to content

Commit 19b408c

Browse files
AES-GCM algorithm was optimized for Intel(R) Microarchitecture Code Named Cascade Lake with Intel(R) AES New Instructions (Intel(R) AES-NI). Crypto Multi-buffer library installation instructions update.
1 parent ad2ad95 commit 19b408c

Some content is hidden

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

66 files changed

+5235
-1080
lines changed

BUILD.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,4 @@ endif()
280280
# `IPPCRYPTO_LIBRARIES` - static library name
281281
# `IPPCRYPTO_INCLUDE_DIRS` - path to Intel IPP Cryptography headers
282282
# `IPPCRYPTO_ROOT_DIR` - library root dir (a folder with 'include' and 'lib' directories)
283-
```
283+
```

CHANGELOG.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,29 @@
22

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

5+
## 2020-06-09
6+
- AES-GCM algorithm was optimized for Intel(R) Microarchitecture Code Named Cascade Lake with Intel(R) AES New Instructions (Intel(R) AES-NI).
7+
- Crypto Multi-buffer library installation instructions update.
8+
59
## 2020-04-27
6-
- In the Readme file of the Crypto Multi-buffer Library was added the information about possible fails on the installation step, when the library is installed by default paths.
10+
- The Readme file of Crypto Multi-buffer Library was updated by information about possible installation fails in specific environment.
711

812
## 2020-04-21
913
- Documentation of Crypto Multi-buffer Library was updated.
1014
- Position Independent Execution (PIE) option was added to Crypto Multi-buffer Library build scripts.
1115

1216
## 2020-04-19
13-
- AES-XTS optimization for Ice Lake with vector extensions of Intel(R) AES New Instructions (Intel(R) AES-NI) was improved.
17+
- AES-XTS optimization for Intel(R) Microarchitecture Code Named Ice Lake with vector extensions of Intel(R) AES New Instructions (Intel(R) AES-NI) was improved.
1418
- Fixed a build issue that affect build of the Intel(R) IPP Crypto library with MSVC\* compiler on Windows\* OS.
1519
- Duplicated APIs of HASH, HMAC, MGF, RSA, ECCP functionality were marked as deprecated. For more information see [Deprecation notes](./DEPRECATION_NOTES.md)
1620
- Added examples demonstrating usage of SMS4-CBC encryption and decryption.
1721

1822
## 2020-02-25
19-
- ECB,CBC,CTR modes of SMS4 algorithm were optimized for Ice Lake with average 6x performance improvement.
20-
- Clang9.0\* for Linux and Clang11.0\* for MacOS support added.
21-
- RSA multi-buffer Encrypt/Decrypt example added.
22-
- Added Control-flow Enforcement Technology enabling for NASM\* compiler on Linux and Windows.
23-
- API of ippsGFpECSignDSA, ippsGFpECSignNR and ippsGFpECSignSM2 functions changed.
23+
- SM4-ECB, SM4-CBC and SM4-CTR were enabled for Intel(R) Microarchitecture Code Named Ice Lake with Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) GFNI instructions.
24+
- Added support of Clang 9.0 for Linux and Clang 11.0 for MacOS compilers.
25+
- Added example of RSA Multi-Buffer Encryption/Decryption usage.
26+
- The library was enabled with Intel(R) Control-flow Enforcement Technology (CET) on Linux and Windows.
27+
- Changed API of ippsGFpECSignDSA, ippsGFpECSignNR and ippsGFpECSignSM2 functions: const-ness requirement of private ephemeral keys is removed and now the ephemeral keys are cleaned up after signing.
2428

2529
## 2019-12-13
2630
- Removed Android support. Use Linux libraries instead.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ The library provides a comprehensive set of routines commonly used for cryptogra
4949
## Documentation
5050

5151
- [Introduction to Intel IPP Cryptography Library](./OVERVIEW.md)
52-
- [Introduction to RSA IFMA Library](./sources/ippcp/ifma_rsa_mb/Readme.md)
52+
- [Introduction to Crypto Multi-buffer Library](./sources/ippcp/crypto_mb/Readme.md)
5353
- [Intel IPP Cryptography Build Instructions](./BUILD.md)
5454
- [Intel IPP Release Notes](https://software.intel.com/en-us/articles/intel-ipp-release-notes-and-new-features)
5555
- [Intel IPP Cryptography Developer Reference](https://software.intel.com/en-us/ipp-crypto-reference)

include/ippcp.h

Lines changed: 199 additions & 227 deletions
Large diffs are not rendered by default.

sources/cmake/linux/Clang9.0.0.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ endif()
9090
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpack-struct=16")
9191
if(${ARCH} MATCHES "ia32")
9292
# Stack alignment = 16 bytes
93-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mpreferred-stack-boundary=4")
93+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstack-alignment=4")
9494
# 32bit linker command
95-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wa,--32")
95+
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Xassembler --32")
9696
# Tells the compiler to generate code for a specific architecture (32)
9797
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
9898
endif(${ARCH} MATCHES "ia32")

sources/cmake/macosx/AppleClang11.0.0.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,7 @@ endif()
9393
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpack-struct=16")
9494
if(${ARCH} MATCHES "ia32")
9595
# Stack alignment = 16 bytes
96-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mpreferred-stack-boundary=4")
97-
# 32bit linker command
98-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wa,--32")
96+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstack-alignment=4")
9997
# Tells the compiler to generate code for a specific architecture (32)
10098
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
10199
endif(${ARCH} MATCHES "ia32")

sources/dispatcher/gen_disp_lin32.nonpic.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,8 @@
154154
IPPAPI(IppStatus, {FunName},{FunArg})
155155
{{
156156
__asm( ".L0: mov ippcpJumpIndexForMergedLibs, %eax");
157-
__asm( "jmp *(arraddr+4)(,%eax,4)" );
157+
__asm( "mov (arraddr+4)(,%eax,4), %eax" );
158+
__asm( "jmp *%eax" );
158159
__asm( ".global in_{FunName}" );
159160
__asm( "in_{FunName}:" );
160161
{endbr32}

sources/dispatcher/gen_disp_lin32.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@
167167
__asm( "movd ippcpJumpIndexForMergedLibs@GOT(%eax), %xmm0" );
168168
__asm( "movd %xmm0, %edx" );
169169
__asm( "mov (%edx), %edx" );
170-
__asm( "jmp *(arraddr@GOTOFF+4)(%eax,%edx,4)" );
170+
__asm( "mov (arraddr@GOTOFF+4)(%eax,%edx,4), %edx" );
171+
__asm( "jmp *%edx" );
171172
__asm( ".global in_{FunName}" );
172173
__asm( "in_{FunName}:" );
173174
{endbr32}

sources/dispatcher/gen_disp_lin64.nonpic.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@
101101
{endbr64}
102102
movsxd rax, dword [ippcpJumpIndexForMergedLibs]
103103
lea r11, [rel .Larraddr_{FunName}]
104-
jmp qword [r11 + rax*8]
104+
mov r11, qword [r11 + rax*8]
105+
jmp r11
105106
.LEnd{FunName}:
106107
""".format(FunName=FunName, endbr64='db 0xf3, 0x0f, 0x1e, 0xfa'))
107108
ASMDISP.close()
@@ -149,7 +150,8 @@
149150
{{
150151
__asm{{
151152
movsxd rax, dword ptr ippcpJumpIndexForMergedLibs
152-
jmp qword ptr [8*rax+8+arraddr]
153+
mov rax, qword ptr [8*rax+8+arraddr]
154+
jmp rax
153155
}}
154156
}}
155157

sources/dispatcher/gen_disp_lin64.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@
103103
mov rax, qword [rel ippcpJumpIndexForMergedLibs wrt ..gotpc]
104104
movsxd rax, dword [rax]
105105
lea r11, [rel .Larraddr_{FunName}]
106-
jmp qword [r11+rax*8]
106+
mov r11, qword [r11+rax*8]
107+
jmp r11
107108
.LEnd{FunName}:
108109
""".format(FunName=FunName, endbr64='db 0xf3, 0x0f, 0x1e, 0xfa'))
109110
ASMDISP.close()

0 commit comments

Comments
 (0)