You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merged PR 10406838: Add OpenSSL implementation for XtsAes test
## Description:
We add OpenSSL as submodule to 3rdparty and link symcryptunittest to it so we can compare the SymCrypt implementation. We add perf and functional test for XtsAes as well.
## Admin Checklist:
- [ ] You have updated documentation in symcrypt.h to reflect any changes in behavior
- [ ] You have updated CHANGELOG.md to reflect any changes in behavior
- [ ] You have updated symcryptunittest to exercise any new functionality
- [ ] If you have introduced any symbols in symcrypt.h you have updated production and test dynamic export symbols (exports.ver / exports.def / symcrypt.src) and tested the updated dynamic modules with symcryptunittest
- [ ] If you have introduced functionality that varies based on CPU features, you have manually tested with and without relevant features
- [ ] If you have made significant changes to a particular algorithm, you have checked that performance numbers reported by symcryptunittest are in line with expectations
- [ ] If you have added new algorithms/modes, you have updated the status indicator text for the associated modules if necessary
Related work items: #49347468
Copy file name to clipboardExpand all lines: BUILD.md
+27-7Lines changed: 27 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ Linux modules with FIPS integrity checks.
60
60
*`-DSYMCRYPT_TARGET_ARCH=<AMD64|X86|ARM64>` to choose a target architecture. If not specified, it will default to the host system architecture.
61
61
* To cross-compile for Windows X86 from Windows AMD64, you must also use `-A Win32`
62
62
* To cross-compile for Linux ARM64, you must also use `--toolchain=cmake-configs/Toolchain-Clang-ARM64.cmake`
63
-
*`-DSYMCRYPT_USE_ASM=<ON|OFF>` to choose whether to use assembly optimizations. Defaults to `ON`.
63
+
*`-DSYMCRYPT_USE_ASM=<ON|OFF>` to choose whether to use assembly optimizations. Defaults to `ON`.
64
64
*`-DSYMCRYPT_FIPS_BUILD=<ON|OFF>` to choose whether to enable FIPS self-tests in the SymCrypt shared object module. Defaults to `ON`. Currently only affects Linux builds.
65
65
* For a release build, specify `-DCMAKE_BUILD_TYPE=RelWithDebInfo`
66
66
1.`cmake --build bin`
@@ -85,19 +85,39 @@ outputs are placed in this directory.
85
85
86
86
Requires the following packages on debian-based systems to build:
87
87
```
88
-
apt-get -y install --no-install-recommends \
88
+
apt update
89
+
apt -y install --no-install-recommends \
89
90
cmake \
90
-
python3-pyelftools \ # integrity
91
-
gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf # for arm
91
+
python3-pyelftools \
92
+
gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
92
93
```
93
-
94
+
`python3-pyelftools` is for integrity verification and `gcc-arm-linux-gnueabihf``g++-arm-linux-gnueabihf` are for ARM cross compile
`symcryptunittest.exe` can be used to compare and measure performance of algorithms provided by SymCrypt and OpenSSL. On Windows `symcryptunittest.exe` would have to be compiled with OpenSSL. `nasm` and `strawberryperl` are prerequisites to building OpenSSL.
108
+
```
109
+
winget install nasm strawberryperl
110
+
.\scripts\build.py cmake bin --config Release --openssl-build-from-source
111
+
```
112
+
113
+
And on Linux we can use OpenSSL installed by system's package manager.
114
+
```
115
+
sudo apt install -y libssl-dev
116
+
./scripts/build.py cmake bin --config Release --openssl
117
+
```
118
+
119
+
To build OpenSSL on Linux we need to install following prerequisites.
120
+
```
121
+
sudo apt install -y nasm perl
122
+
.\scripts\build.py cmake bin --config Release --openssl-build-from-source
0 commit comments