From 9ed256677e0127ed5c411f4f92945c063caa04c5 Mon Sep 17 00:00:00 2001 From: Shigeki Ohtsu Date: Tue, 31 Mar 2015 14:28:08 +0900 Subject: [PATCH] deps: add docs to upgrade openssl This document is intended to describe the procedure to upgrade openssl from 1.0.1m to 1.0.2a in io.js. --- deps/openssl/doc/UPGRADING.md | 191 +++++++++++++++++++++++ deps/openssl/doc/openssl_define_list.pdf | Bin 0 -> 85632 bytes 2 files changed, 191 insertions(+) create mode 100644 deps/openssl/doc/UPGRADING.md create mode 100644 deps/openssl/doc/openssl_define_list.pdf diff --git a/deps/openssl/doc/UPGRADING.md b/deps/openssl/doc/UPGRADING.md new file mode 100644 index 00000000000000..81f129c4326cb0 --- /dev/null +++ b/deps/openssl/doc/UPGRADING.md @@ -0,0 +1,191 @@ +## How to upgrade openssl library in io.js + +This document describes the procedure to upgrade openssl from 1.0.1m +to 1.0.2a in io.js. + + +### Build System and Upgrading Overview +The openssl build system is based on the `Configure` perl script in +`deps/openssl/openssl`. For example, running `Configure linux_x86-64` +in the openssl repository generates `Makefile` and `opensslconf.h` for +the linux_x86_64 target architecture. + +The `Makefile` contains the list of asm files which are generated by +perl scripts during build so that we can get the most of use of the +hardware performance according to the type of cpus. + +`Configure TABLE` shows various build parameters that depend on each +os and arch. + +In io.js, build target is defined as `--dest-os` and `--dest-cpu` in +configure options which are different from the one that is defined in +openssl and it's build system is gyp that is based on python, +therefore we cannot use the openssl build system directly. + +In order to build openssl with gyp in iojs, files of opensslconf.h and +asm are generated in advance for several supported platforms. + +Here is a map table to show conf(opensslconf.h) and asm between +the openssl target and configuration parameters of os and cpu in iojs. +The tested platform in CI are also listed. + +| --dest-os | --dest-cpu | conf | asm | openssl target | CI | +|---------- |----------- |----- |----- |------------------- |--- | +| linux | ia32 | o | o |linux-elf | o | +| linux | x32 | o | x(*2)|linux-x32 | x | +| linux | x64 | o | o |linux-x86_64 | o | +| linux | arm | o | o |linux-arm | o | +| linux | arm64 | o | o |linux-aarch64 | o | +| mac | ia32 | o | o |darwin-i386-cc | - | +| mac | x64 | o | o |darwin64-x86_64-cc | o | +| win | ia32 | o | o(*3)|VC-WIN32 | x | +| win | x64 | o | o |VC-WIN64A | o | +| solaris | ia32 | o | o |solaris-x86-gcc | o | +| solaris | x64 | o | o |solaris64-x86_64-gcc| o | +| freebsd | ia32 | o | o |BSD-x86 | o | +| freebsd | x64 | o | o |BSD-x86_64 | o | +| openbsd | ia32 | o | o |BSD-x86 | x | +| openbsd | x64 | o | o |BSD-x86_64 | x | +| others | ia32 | x(*1)| o | - | x | +| others | x64 | x(*1)| o | - | x | +| others | arm | x(*1)| o | - | x | +| others | arm64 | x(*1)| o | - | x | +| others | others | x(*1)| x(*2)| - | x | + +- (*1) use linux-elf as a fallback configuration +- (*2) no-asm used +- (*3) currently masm (Microsoft Macro Assembler) is used but it's no +longer supported in openssl. We need to move to use nasm or yasm. + +All parameters such as sources, defines, cflags and others generated +in openssl Makefile are written down into `deps/openssl/openssl.gypi`. + +The header file of `deps/openssl/openssl/crypto/opensslconf.h` are +generated by `Configure` and varies on each os and arch so that we +made a new `deps/openssl/config/opensslconf.h`, where it includes each +conf file from `deps/openssl/config/archs/*/opensslconf.h` by using +pre-defined compiler macros. This procedure can be processed +automatically with `deps/openssl/config/Makefile` + +Assembler support is one of the key features in openssl, but asm files +are dynamically generated with +`deps/openssl/openssl/crypto/*/asm/*.pl` by perl during +build. Furthermore, these perl scripts check the version of assembler +and generate asm files according to the supported instructions in each +compiler. + +Since perl is not a build requirement in iojs, they all should be +generated in advance and statically stored in the repository. We +provide two sets of asm files, one is asm_latest(avx2 and addx +supported) in `deps/openssl/asm` and the other asm_obsolete(without +avx1/2 and addx) in `deps/openssl/asm_obsolute`, which depends on +supported features in assemblers. Each directory has a `Makefile` +to generate asm files with perl scripts in openssl sources. + +`configure` and gyp check the version of assemblers such as gnu +as(gas), llvm and Visual Studio. `deps/openssl/openssl.gypi` +determines what asm files should be used, in which the asm_latest +needs the version of gas >= 2.23, llvm >= 3.3 or MSVS_VERSION>='2012' +(ml64 >= 12) as defined in +https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-x86_64.pl#L112-L129, +otherwise asm_obsolete are used. + +The following is the detail instruction steps how to upgrade openssl +version from 1.0.1m to 1.0.2a in iojs. + +### 1. Replace openssl source in `deps/openssl/openssl` +Remove old openssl sources in `deps/openssl/openssl` . +Get original openssl sources from +https://www.openssl.org/source/openssl-1.0.2a.tar.gz and extract all +files into `deps/openssl/openssl` . + +### 2. Apply private patches +There are three kinds of private patches to be applied in openssl-1.0.2a. + +- The two fixes of assembly error on ia32 win32. masm is no longer + supported in openssl. We should move to use nasm or yasm in future + version of iojs. + +- The fix of openssl-cli built on win. Key press requirement of + openssl-cli in win causes timeout failures of several tests. + +- Backport patches for alt cert feature from openssl-1.1.x. Root certs + of 1024bit RSA key length were deprecated in io.js. When a tls + server has a cross root cert, io.js client leads CERT_UNTRUSTED + error because openssl does not find alternate cert chains. This fix + supports its feature but was made the current master which is + openssl-1.1.x. We backported them privately into openssl-1.0.2 on + iojs. + +### 3. Replace openssl header files in `deps/openssl/openssl/include/openssl` +all header files in `deps/openssl/openssl/include/openssl/*.h` are +symbolic links in the distributed release tar.gz. They cause issues in +Windows. They are replaced into the files to include a real header +file such as +```` +#include "../../crypto/aes/aes.h" +```` +### 4. Change `opensslconf.h` so as to fit each platform. +The opensslconf.h in each target was created in advance by typing +`deps/openssl/openssl/Configure {target}` and copied +into `deps/openssl/conf/archs/{target}/opensslconf.h`. +`deps/openssl/conf/openssconf.h` includes each file according to its +target by checking pre-defined compiler macros. These can be generated +by using `deps/openssl/conf/Makefile` + +We should remove OPENSSL_CPUID_OBJ define in opensslconf.h because it +causes build error when --openss-no-asm option is specified. Instead, +the OPENSSL_CPUID_OBJ is defined in `deps/openssl/openssl.gypi` +according to the configure options. + +One fix of opensslconf.h is needed in 64-bit MacOS. +The current openssl release does not use RC4 asm since it explicitly +specified as `$asm=~s/rc4\-[^:]+//;` in +https://github.com/openssl/openssl/blob/OpenSSL_1_0_1-stable/Configure#L584 +But iojs has used RC4 asm on MacOS for long time. Fix type of RC4_INT +into `unsigned int` in opensslconf.h of darwin64-x86_64-cc to work on +the RC4 asm. + +### 5. Update openssl.gyp and openssl.gypi +Sources, cflags and define parameters that depends on each target can +be obtained via `Configure TABLE`. Its list is put in the table of +[define and cflags changes in openssl-1.0.2a](openssl_define_list.pdf) + +There is no way to verify all necessary sources automatically. We can +only carefully look at the source list and compiled objects in +Makefile of openssl and compare the compiled objects that stored +stored under `out/Release/obj.target/openssl/deps/openssl/' in iojs. + +### 6. ASM files for openssl +We provide two sets of asm files. One is for the latest assembler +and the other is the older one. + +### 6.1. asm files for the latest compiler +This was made in `deps/openssl/asm/Makefile` +- Updated asm files for each platforms which are required in + openssl-1.0.2a. +- Some perl files need CC and ASM envs. Added a check if these envs + exist. Followed asm files are to be generated with CC=gcc and + ASM=nasm on Linux. See + `deps/openssl/openssl/crypto/sha/asm/sha512-x86_64.pl` +- Added new 32bit targets/rules with a sse2 flag (OPENSSL_IA32_SSE2) + to generate asm for use SSE2. +- Generating sha512 asm files in x86_64 need output filename which + has 512. Added new rules so as not to use stdout for outputs. +- PERLASM_SCHEME of linux-armv4 is `void` as defined in openssl + Configure. Changed its target/rule and all directories are moved + from arm-elf-gas to arm-void-gas. +- add a new rule for armv8 asm generation + +With export environments of CC=gcc and ASM=nasm, then type make +command and check if new asm files are generated. + +### 6.2.asm files for the older compiler +For older assembler, the version check of CC and ASM should be +skipped in generating asm file with perl scripts. +Copy files from `deps/openssl/asm` into +`deps/openssl/asm/asm_obsolete` and change rules to generate asm files +into this directories and remove the check of CC and ASM envs. + +Without environments of CC and ASM, then type make command and check +if new asm files for older compilers are generated. diff --git a/deps/openssl/doc/openssl_define_list.pdf b/deps/openssl/doc/openssl_define_list.pdf new file mode 100644 index 0000000000000000000000000000000000000000..efbc85ff01e1b24d68e0f97b880b70b51f7c74de GIT binary patch literal 85632 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