Projekt OpenSSL jest wspólnym wysiłkiem podjętym w celu rozwijania solidnego, pełnowartościowego zestawu narzędzi Open Source o komercyjnej jakości, implementującego protokoły Secure Sockets Layer (SSL v2/v3) i Transport Layer Security (TLS v1) oraz w pełni silną bibliotekę kryptograficzną ogólnego zastosowania.
Projekt jest zarządzany przez ogólnoświatową społeczność wolontariuszy, którzy używają Internetu do komunikacji, planowania i rozwijania OpenSSL i skojarzonej z projektem dokumentacji.
OpenSSL jest oparty na wspaniałej bibliotece SSLeay rozwijanej przez Erica A. Younga i Tima J. Hudsona. OpenSSL jest licencjonowany na licencji w stylu Apache, co po prostu oznacza, że można jej używać za darmo zarówno do celów komercyjnych jak i niekomercyjnych przy zachowaniu kilku prostych warunków licencji.
Jestem przyzwyczajony do tego, że na Solarisie kompiluję samodzielnie oprogramowanie przy pomocy skryptu konfiguracyjnego (patrz załącznik). W OpenSSL trzeba jednak zmodyfikować skrypt Configure jeśli chce się użyć lepszych opcji optymalizacyjnych. Poniżej mój diff dla skryptu Configure:
soft@hydra:~/openssl/openssl-0.9.8o% diff -u Configure.orig Configure
--- Configure.orig 2010-05-20 19:36:23.000000000 +0200
+++ Configure 2010-07-20 09:37:00.738332300 +0200
@@ -231,7 +231,7 @@
# SC5.0 note: Compiler common patch 107357-01 or later is required!
"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv9-cc","cc:-fast -xO5 -xstrconst -xdepend -Xa -W2,-Rloop_reform -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8plus.o:des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs",
####
"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::sparcv8.o::::::::::dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
Oto moje podsumowanie konfiguracji:
OpenSSL 0.9.8o 01 Jun 2010
built on: Tue Jul 20 09:50:55 CEST 2010
platform: solaris-sparcv9-cc
options: bn(64,32) md2(int) rc4(ptr,char) des(ptr,risc1,16,long) idea(int) blowfish(ptr)
compiler: cc -KPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -fast -xO5 -xstrconst -xdepend -Xa -W2,-Rloop_reform -DB_ENDIAN -DBN_DIV2W
OPENSSLDIR: "/usr/local/openssl-0.9.8o/ssl"