########## signature check: $ gpg --keyid-format long openssl-1.1.1s.tar.gz.asc gpg: Signature made Tue 01 Nov 2022 08:36:17 AM EDT gpg: using RSA key 527466A21CA79E6D gpg: Can't check signature: No public key $ gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 527466A21CA79E6D gpg: requesting key 1CA79E6D from hkps server keyserver.ubuntu.com gpg: key A9DA2D5C: public key "Tomáš Mráz " imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) $ gpg openssl-1.1.1s.tar.gz.asc gpg: Signature made Tue 01 Nov 2022 08:36:17 AM EDT using RSA key ID 1CA79E6D gpg: Good signature from "Tomáš Mráz " gpg: aka "Tomáš Mráz " gpg: aka "Tomáš Mráz " gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: A21F AB74 B008 8AA3 6115 2586 B8EF 1A6B A9DA 2D5C Subkey fingerprint: DC70 3266 2AF8 85E2 F47F 243F 5274 66A2 1CA7 9E6D ########## file check and extract: $ gzip -d < openssl-1.1.1s.tar.gz | tar tvf - | head drwxrwxr-x root/root 0 2022-11-01 08:36 openssl-1.1.1s/ -rw-rw-r-- root/root 87 2022-11-01 08:36 openssl-1.1.1s/ACKNOWLEDGEMENTS -rw-rw-r-- root/root 854 2022-11-01 08:36 openssl-1.1.1s/AUTHORS -rw-rw-r-- root/root 605265 2022-11-01 08:36 openssl-1.1.1s/CHANGES -rw-rw-r-- root/root 3627 2022-11-01 08:36 openssl-1.1.1s/CONTRIBUTING drwxrwxr-x root/root 0 2022-11-01 08:36 openssl-1.1.1s/Configurations/ -rw-rw-r-- root/root 11582 2022-11-01 08:36 openssl-1.1.1s/Configurations/00-base-templates.conf -rw-rw-r-- root/root 81204 2022-11-01 08:36 openssl-1.1.1s/Configurations/10-main.conf -rw-rw-r-- root/root 11680 2022-11-01 08:36 openssl-1.1.1s/Configurations/15-android.conf -rw-rw-r-- root/root 2411 2022-11-01 08:36 openssl-1.1.1s/Configurations/15-ios.conf $ gzip -d < openssl-1.1.1s.tar.gz | tar tvf - | awk '{ print $6 }' | head openssl-1.1.1s/ openssl-1.1.1s/ACKNOWLEDGEMENTS openssl-1.1.1s/AUTHORS openssl-1.1.1s/CHANGES openssl-1.1.1s/CONTRIBUTING openssl-1.1.1s/Configurations/ openssl-1.1.1s/Configurations/00-base-templates.conf openssl-1.1.1s/Configurations/10-main.conf openssl-1.1.1s/Configurations/15-android.conf openssl-1.1.1s/Configurations/15-ios.conf $ gzip -d < openssl-1.1.1s.tar.gz | tar tvf - | awk '{ print $6 }' | awk -F/ '{ print $1 }' | sort -u openssl-1.1.1s $ gzip -d < openssl-1.1.1s.tar.gz | tar tvf - | fgrep '..' $ $ gzip -d < openssl-1.1.1s.tar.gz | tar xf - ########## configure, make, make test, make install: $ ./config --prefix=/opt/openssl-1.1.1s --openssldir=/etc/local/ssl no-shared < /dev/null >& config.sh.log $ make < /dev/null >& make-make.log $ make test < /dev/null >& make-test.log # mkdir /opt/openssl-1.1.1s; chown rperry:rperry /opt/openssl-1.1.1s $ make install < /dev/null >& make-install.log $ make distclean # chown -Rh root:root /opt/openssl-1.1.1s # cd /opt && rm openssl && ln -s openssl-1.1.1s openssl # ls -ld /opt/openssl* /opt/bin/openssl lrwxrwxrwx 1 root root 22 Apr 4 2018 /opt/bin/openssl -> ../openssl/bin/openssl lrwxrwxrwx 1 root root 14 Nov 3 09:09 /opt/openssl -> openssl-1.1.1s drwxr-xr-x 6 root root 52 May 3 2022 /opt/openssl-1.1.1o drwxr-xr-x 6 root root 52 Jun 21 11:02 /opt/openssl-1.1.1p drwxr-xr-x 6 root root 52 Nov 3 09:08 /opt/openssl-1.1.1s # $ which openssl /opt/bin/openssl $ openssl version OpenSSL 1.1.1s 1 Nov 2022 $ ########## BIGNUM structure:: $ find . -name '*.h' -print | xargs grep 'typedef.*BIGNUM' ./include/openssl/ossl_typ.h:typedef struct bignum_st BIGNUM; $ find . -name '*.h' -print | xargs grep 'struct bignum_st' ./crypto/bn/bn_local.h:struct bignum_st { ./include/openssl/ossl_typ.h:typedef struct bignum_st BIGNUM; $ less crypto/bn/bn_local.h ... struct bignum_st { BN_ULONG *d; /* Pointer to an array of 'BN_BITS2' bit * chunks. */ int top; /* Index of last used d +1. */ /* The next are internal book keeping for bn_expand. */ int dmax; /* Size of the d array. */ int neg; /* one if the number is negative */ int flags; }; ...