Skip to content

Commit

Permalink
Update OpenSSL version to v3.0.13 and curl version to v8.6.0 (#279)
Browse files Browse the repository at this point in the history
Signed-off-by: Shrikant Temburwar <[email protected]>
Co-authored-by: Davis Benny <[email protected]>
  • Loading branch information
shrikant1407 and DukeDavis12 authored Mar 14, 2024
1 parent e724f52 commit 22b2492
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 68 deletions.
37 changes: 16 additions & 21 deletions docs/cse.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@







# Intel<sup>&reg;</sup> CSE Implementation
The development and execution OS used was `Ubuntu* OS version [20.04|22.04] / RHEL* OS version [8.4|8.6|8.8] / Debian 11.4` on x86. Follow these steps to compile and execute FIDO Device Onboard (FDO).

The Intel<sup>&reg;</sup> CSE (Intel<sup>&reg;</sup> Converged Security Engine) enabled FDO Client SDK execution depends on OpenSSL* toolkit 3.0.12 version. Users must install or upgrade the toolkit before compilation if the toolkit is not available by default in the environment.
The Intel<sup>&reg;</sup> CSE (Intel<sup>&reg;</sup> Converged Security Engine) enabled FDO Client SDK execution depends on OpenSSL* toolkit 3.0.13 version. Users must install or upgrade the toolkit before compilation if the toolkit is not available by default in the environment.

# Prerequisites for Intel<sup>&reg;</sup> CSE support
The system hardware should have the support for Intel<sup>&reg;</sup> CSE FDO client with UUID: 125405e0-fca9-4110-8f88-b4dbcdcb876f
Expand All @@ -31,11 +25,12 @@ sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.
sudo yum -y install gcc gcc-c++ python3-setuptools git-clang-format dos2unix ruby perl glibc-static \
glib2-devel libpcap-devel autoconf libtool libproxy-devel mozjs52-devel doxygen cmake openssl-devel make mercurial perl nghttp2 libnghttp2-devel
```

## 2. Packages Requirements when Executing Binaries:

OpenSSL* toolkit version 3.0.12
OpenSSL* toolkit version 3.0.13
GCC version > 7.5
Curl version 8.4.0
Curl version 8.6.0

Following steps will replace the existing versions of OpenSSL and Curl from the system. If you want to keep the existing versions then use [Installation-Script](../utils/install_openssl_curl.sh) script to install Openssl and Curl at a different location.
> ***NOTE***: [Installation-Script](../utils/install_openssl_curl.sh) will install OpenSSL and Curl at /opt/ by default. To provide different path, modify these variables in the script
Expand All @@ -46,7 +41,7 @@ Following steps will replace the existing versions of OpenSSL and Curl from the

* Command to install OpenSSL and Curl
```
sudo ./install_openssl_curl.sh -i -v 3.0.12
sudo ./install_openssl_curl.sh -i -v 3.0.13
```
#### Steps to remove the older curl packages

Expand All @@ -59,15 +54,15 @@ Following steps will replace the existing versions of OpenSSL and Curl from the
yum remove curl libcurl-devel
```

#### Steps to Upgrade the OpenSSL* Toolkit to Version 3.0.12
#### Steps to Upgrade the OpenSSL* Toolkit to Version 3.0.13

1. Pull the tarball:
```
wget https://www.openssl.org/source/openssl-3.0.12.tar.gz
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
```
2. Unpack the tarball with:
```
tar -zxf openssl-3.0.12.tar.gz && cd openssl-3.0.12
tar -zxf openssl-3.0.13.tar.gz && cd openssl-3.0.13
```
3. Issue the command:
```
Expand Down Expand Up @@ -106,20 +101,20 @@ Issue the following command from the terminal:
```
Your output should be as follows:
```
OpenSSL* 3.0.12 24 Oct 2023
OpenSSL* 3.0.13 30 Jan 2024
```

#### Steps to install curl version 8.4.0 configured with openssl
#### Steps to install curl version 8.6.0 configured with openssl

After installing openssl, proceed with the installation of curl.

1. Pull the tarball:
```
wget https://curl.se/download/curl-8.4.0.tar.gz
wget https://curl.se/download/curl-8.6.0.tar.gz
```
2. Unpack the tarball with:
```
tar -zxf curl-8.4.0.tar.gz && cd curl-8.4.0
tar -zxf curl-8.6.0.tar.gz && cd curl-8.6.0
```
3. Issue the command to configure the curl with openssl and nghttp2:
```
Expand All @@ -142,7 +137,7 @@ Issue the following command from the terminal:
```
Your output should point to the openssl version which you installed.
```
curl 8.4.0 (x86_64-pc-linux-gnu) libcurl/8.4.0 OpenSSL/3.0.12 zlib/1.2.11
curl 8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.0.13 zlib/1.2.11
```
Alternatively, execute [Installation-Script](../utils/install_openssl_curl.sh) which can be used for both installation and uninstallation of OpenSSL and Curl.
> ***NOTE***: [Installation-Script](../utils/install_openssl_curl.sh) will install OpenSSL and Curl to /opt/ by default. To provide different path, modify these variables in the script
Expand All @@ -153,15 +148,15 @@ Alternatively, execute [Installation-Script](../utils/install_openssl_curl.sh)

* Command to install OpenSSL and Curl
```
sudo ./install_openssl_curl.sh -i -v 3.0.12
sudo ./install_openssl_curl.sh -i -v 3.0.13
```

* Command to uninstall OpenSSL
```
sudo ./install_openssl_curl.sh -u -v 3.0.12
sudo ./install_openssl_curl.sh -u -v 3.0.13
```

Note 1: If you are using no_proxy environment variable to exclude proxying for any FDO server IP addresses along with curl 8.4.0 in your setup, ensure to use CIDR notation (https://datatracker.ietf.org/doc/html/rfc1519) as given in below examples.
Note 1: If you are using no_proxy environment variable to exclude proxying for any FDO server IP addresses along with curl 8.6.0 in your setup, ensure to use CIDR notation (https://datatracker.ietf.org/doc/html/rfc1519) as given in below examples.

Single IP address example: no_proxy="10.60.132.45/32"
Two IP addresses example: no_proxy="10.60.132.45/32,10.60.132.46/32"
Expand Down
28 changes: 13 additions & 15 deletions docs/linux.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@



# Linux* OS
The development and execution OS used was `Ubuntu* OS version [20.04|22.04] / RHEL* OS version [8.4|8.6|8.8] / Debian 11.4` on x86. Follow these steps to compile and execute FIDO Device Onboard (FDO).

The FDO Client SDK execution depends on OpenSSL* toolkit 3.0.12 version. Users must install or upgrade the toolkit before compilation if the toolkit is not available by default in the environment.
The FDO Client SDK execution depends on OpenSSL* toolkit 3.0.13 version. Users must install or upgrade the toolkit before compilation if the toolkit is not available by default in the environment.

## 1. Packages Requirements when Building Binaries:
* For Ubuntu* OS version [20.04|22.04] / Debian 11.4:
Expand All @@ -24,9 +22,9 @@ sudo yum -y install gcc gcc-c++ python3-setuptools git-clang-format dos2unix rub
```
## 2. Packages Requirements when Executing Binaries:

OpenSSL* toolkit version 3.0.12
OpenSSL* toolkit version 3.0.13
GCC version > 7.5
Curl version 8.4.0
Curl version 8.6.0

Following steps will replace the existing versions of OpenSSL and Curl from the system. If you want to keep the existing versions then use [Installation-Script](../utils/install_openssl_curl.sh) script to install Openssl and Curl at a different location.
> ***NOTE***: [Installation-Script](../utils/install_openssl_curl.sh) will install OpenSSL and Curl at /opt/ by default. To provide different path, modify these variables in the script
Expand All @@ -37,7 +35,7 @@ Following steps will replace the existing versions of OpenSSL and Curl from the

* Command to install OpenSSL and Curl
```
sudo ./install_openssl_curl.sh -i -v 3.0.12
sudo ./install_openssl_curl.sh -i -v 3.0.13
```

#### Steps to remove the older OpenSSL and curl packages
Expand All @@ -55,15 +53,15 @@ Following steps will replace the existing versions of OpenSSL and Curl from the
sudo yum remove libcurl-devel openssl-devel
```

#### Steps to Upgrade the OpenSSL* Toolkit to Version 3.0.12
#### Steps to Upgrade the OpenSSL* Toolkit to Version 3.0.13

1. Pull the tarball:
```
wget https://www.openssl.org/source/openssl-3.0.12.tar.gz
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
```
2. Unpack the tarball with:
```
tar -zxf openssl-3.0.12.tar.gz && cd openssl-3.0.12
tar -zxf openssl-3.0.13.tar.gz && cd openssl-3.0.13
```
3. Issue the command:
```
Expand Down Expand Up @@ -103,20 +101,20 @@ Issue the following command from the terminal:
```
Your output should be as follows:
```
OpenSSL* 3.0.12 24 Oct 2023
OpenSSL* 3.0.13 30 Jan 2024
```

#### Steps to install curl version 8.4.0 configured with openssl
#### Steps to install curl version 8.6.0 configured with openssl

After installing openssl, proceed with the installation of curl.

1. Pull the tarball:
```
wget https://curl.se/download/curl-8.4.0.tar.gz
wget https://curl.se/download/curl-8.6.0.tar.gz
```
2. Unpack the tarball with:
```
tar -zxf curl-8.4.0.tar.gz && cd curl-8.4.0
tar -zxf curl-8.6.0.tar.gz && cd curl-8.6.0
```
3. Issue the command to configure the curl with openssl and nghttp2:
```
Expand All @@ -139,9 +137,9 @@ Issue the following command from the terminal:
```
Your output should point to the openssl version which you installed.
```
curl 8.4.0 (x86_64-pc-linux-gnu) libcurl/8.4.0 OpenSSL/3.0.12 zlib/1.2.11
curl 8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.0.13 zlib/1.2.11
```
Note 1: If you are using no_proxy environment variable to exclude proxying for any FDO server IP addresses along with curl 8.4.0 in your setup, ensure to use CIDR notation (https://datatracker.ietf.org/doc/html/rfc1519) as given in below examples.
Note 1: If you are using no_proxy environment variable to exclude proxying for any FDO server IP addresses along with curl 8.6.0 in your setup, ensure to use CIDR notation (https://datatracker.ietf.org/doc/html/rfc1519) as given in below examples.

Single IP address example: no_proxy="10.60.132.45/32"
Two IP addresses example: no_proxy="10.60.132.45/32,10.60.132.46/32"
Expand Down
37 changes: 15 additions & 22 deletions docs/tpm.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@








# Linux* TPM* Implementation

`Ubuntu* OS version 20.04 or 22.04 / RHEL* OS version [8.4|8.6|8.8] / Debian 11.4` on x86 was used as a development and execution OS. Follow these steps to compile and execute FIDO Device Onboard (FDO).

The FDO Client SDK execution depends on OpenSSL* toolkit 3.0.12 version. Users must install or upgrade the toolkit before compilation if the toolkit is not available by default in the environment.
The FDO Client SDK execution depends on OpenSSL* toolkit 3.0.13 version. Users must install or upgrade the toolkit before compilation if the toolkit is not available by default in the environment.

## 1. Packages Requirements when Building Binaries with TPM* 2.0:

Expand All @@ -30,10 +23,10 @@ sudo yum -y install gcc gcc-c++ python3-setuptools git-clang-format dos2unix rub
glib2-devel libpcap-devel autoconf libtool libproxy-devel mozjs52-devel doxygen cmake make mercurial nghttp2 libnghttp2-devel
```

OpenSSL* toolkit version 3.0.12.
Curl version 8.4.0
OpenSSL* toolkit version 3.0.13.
Curl version 8.6.0

#### Steps to Upgrade the OpenSSL* Toolkit to Version 3.0.12
#### Steps to Upgrade the OpenSSL* Toolkit to Version 3.0.13

Following steps will replace the existing versions of OpenSSL and Curl from the system. If you want to keep the existing versions then use [Installation-Script](../utils/install_openssl_curl.sh) script to install Openssl and Curl at a different location.
> ***NOTE***: [Installation-Script](../utils/install_openssl_curl.sh) will install OpenSSL and Curl at /opt/ by default. To provide different path, modify these variables in the script
Expand All @@ -44,7 +37,7 @@ Following steps will replace the existing versions of OpenSSL and Curl from the

* Command to install OpenSSL and Curl
```
sudo ./install_openssl_curl.sh -i -v 3.0.12
sudo ./install_openssl_curl.sh -i -v 3.0.13
```

1. If libssl-dev, curl and libcurl are installed, uninstall it:
Expand All @@ -61,11 +54,11 @@ Following steps will replace the existing versions of OpenSSL and Curl from the
```
2. Pull the tarball:
```
wget https://www.openssl.org/source/openssl-3.0.12.tar.gz
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
```
3. Unpack the tarball with:
```
tar -zxf openssl-3.0.12.tar.gz && cd openssl-3.0.12
tar -zxf openssl-3.0.13.tar.gz && cd openssl-3.0.13
```
4. Issue the command:
```
Expand Down Expand Up @@ -104,20 +97,20 @@ Issue the following command from the terminal:
```
Your output should be as follows:
```
OpenSSL* 3.0.12 24 Oct 2023
OpenSSL* 3.0.13 30 Jan 2024
```
#### Steps to install curl version 8.4.0 configured with openssl
#### Steps to install curl version 8.6.0 configured with openssl
After installing openssl, proceed with the installation of curl.
1. Pull the tarball:
```
wget https://curl.se/download/curl-8.4.0.tar.gz
wget https://curl.se/download/curl-8.6.0.tar.gz
```
2. Unpack the tarball with:
```
tar -zxf curl-8.4.0.tar.gz && cd curl-8.4.0
tar -zxf curl-8.6.0.tar.gz && cd curl-8.6.0
```
3. Issue the command to configure the curl with openssl and nghttp2:
```
Expand All @@ -140,10 +133,10 @@ Issue the following command from the terminal:
```
Your output should point to the openssl version which you installed.
```
curl 8.4.0 (x86_64-pc-linux-gnu) libcurl/8.4.0 OpenSSL/3.0.12 zlib/1.2.11
curl 8.6.0 (x86_64-pc-linux-gnu) libcurl/8.6.0 OpenSSL/3.0.13 zlib/1.2.11
```
Note 1: If you are using no_proxy environment variable to exclude proxying for any FDO server IP addresses, it may not work with curl 8.4.0. Workaround for this is to ensure the no_proxy IP is specified in CIDR notation (https://datatracker.ietf.org/doc/html/rfc1519)
Note 1: If you are using no_proxy environment variable to exclude proxying for any FDO server IP addresses, it may not work with curl 8.6.0. Workaround for this is to ensure the no_proxy IP is specified in CIDR notation (https://datatracker.ietf.org/doc/html/rfc1519)
Single IP address example: no_proxy="10.60.132.45/32"
Two IP addresses example: no_proxy="10.60.132.45/32,10.60.132.46/32"
Expand Down Expand Up @@ -450,12 +443,12 @@ sudo utils/clear_tpm_nv.sh
```

- OpenSSL* Toolkit Library Linking Related Error While Building FDO Client SDK.<br />
There is a dependency on the OpenSSL* toolkit version 3.0.12 for building and running the FDO Client SDK.
There is a dependency on the OpenSSL* toolkit version 3.0.13 for building and running the FDO Client SDK.
Check the version of the OpenSSL* toolkit installed in your machine with the command

```shell
openssl version
```
If the OpenSSL* toolkit version in your machine is earlier than version 3.0.12, follow the steps given in section 1 to update the OpenSSL* version to 3.0.12.
If the OpenSSL* toolkit version in your machine is earlier than version 3.0.13, follow the steps given in section 1 to update the OpenSSL* version to 3.0.13.


20 changes: 10 additions & 10 deletions utils/install_openssl_curl.sh
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
OPENSSL_ROOT=/opt/openssl
CURL_ROOT=/opt/curl
CURL_VER="8.4.0"
CURL_LINK="https://curl.se/download/curl-8.4.0.tar.gz --no-check-certificate"
CURL_VER="8.6.0"
CURL_LINK="https://curl.se/download/curl-8.6.0.tar.gz --no-check-certificate"

PARENT_DIR=`pwd`
cd $PARENT_DIR



install()
{
install()
{
OPENSSL_LINK="https://www.openssl.org/source/openssl-$OPENSSL_VER.tar.gz --no-check-certificate"
echo "Build & Install OpenSSL version : $OPENSSL_VER"
cd $PARENT_DIR
Expand All @@ -21,20 +21,20 @@ install()
./config --prefix=$OPENSSL_ROOT --openssldir=/usr/local/ssl
make -j$(nproc)
make install

grep -qxF '$OPENSSL_ROOT/lib64/' /etc/ld.so.conf.d/libc.conf || echo $OPENSSL_ROOT/lib64/ | sudo tee -a /etc/ld.so.conf.d/libc.conf
ldconfig

echo "Build & Install Curl version : $CURL_VER"
cd $PARENT_DIR
wget $CURL_LINK
tar -xvzf curl-$CURL_VER.tar.gz
cd curl-$CURL_VER

./configure --prefix=$CURL_ROOT --with-openssl=$OPENSSL_ROOT --with-nghttp2 --enable-versioned-symbols
./configure --prefix=$CURL_ROOT --with-openssl=$OPENSSL_ROOT --with-nghttp2 --enable-versioned-symbols --without-libpsl
make -j$(nproc)
make install

$OPENSSL_ROOT/bin/openssl version
$CURL_ROOT/bin/curl -V
}
Expand All @@ -44,7 +44,7 @@ uninstall()
{
OPENSSL_LINK="https://www.openssl.org/source/openssl-$OPENSSL_VER.tar.gz --no-check-certificate"
echo "Uninstall OpenSSL version : $OPENSSL_VER"

cd $PARENT_DIR
rm -f openssl-$OPENSSL_VER.tar.gz
wget $OPENSSL_LINK
Expand All @@ -66,7 +66,7 @@ usage()
./$0 <OPTION>\n
OPTION:
-i - Install OpenSSL.
-u - Uninstall OpenSSL. (e.g. -v 3.0.8)
-u - Uninstall OpenSSL. (e.g. -v 3.0.13)
-v - OpenSSL Version
-h - Help."
}
Expand Down

0 comments on commit 22b2492

Please sign in to comment.