Revision: 9692 https://osdn.net/projects/ttssh2/scm/svn/commits/9692 Author: nmaya Date: 2022-01-17 00:16:19 +0900 (Mon, 17 Jan 2022) Log Message: ----------- 暗号ライブラリを OpenSSL から LibreSSL に変更 #43469 merge from libressl_3_4_2: r9623,r9624,r9637,r9648,r9658,r9660,r9676,r9677,r9679,r9680,r9683 Revision Links: -------------- https://osdn.net/projects/ttssh2/scm/svn/commits/9623 https://osdn.net/projects/ttssh2/scm/svn/commits/9624 https://osdn.net/projects/ttssh2/scm/svn/commits/9637 https://osdn.net/projects/ttssh2/scm/svn/commits/9648 https://osdn.net/projects/ttssh2/scm/svn/commits/9658 https://osdn.net/projects/ttssh2/scm/svn/commits/9660 https://osdn.net/projects/ttssh2/scm/svn/commits/9676 https://osdn.net/projects/ttssh2/scm/svn/commits/9677 https://osdn.net/projects/ttssh2/scm/svn/commits/9679 https://osdn.net/projects/ttssh2/scm/svn/commits/9680 https://osdn.net/projects/ttssh2/scm/svn/commits/9683 Ticket Links: ------------ https://osdn.net/projects/ttssh2/tracker/detail/43469 Modified Paths: -------------- trunk/doc/convtext.bat trunk/doc/en/html/about/copyright.html trunk/doc/en/html/about/history.html trunk/doc/en/html/index.html trunk/doc/en/html/reference/.gitignore trunk/doc/en/html/reference/develop.txt trunk/doc/en/html/reference/sourcecode.html trunk/doc/en/teraterm.hhc trunk/doc/en/teraterm.hhp trunk/doc/ja/html/about/copyright.html trunk/doc/ja/html/about/history.html trunk/doc/ja/html/index.html trunk/doc/ja/html/reference/.gitignore trunk/doc/ja/html/reference/develop.txt trunk/doc/ja/html/reference/sourcecode.html trunk/doc/ja/teraterm.hhc trunk/doc/ja/teraterm.hhp trunk/libs/buildall.bat trunk/libs/buildall.cmake trunk/ttssh2/ttxssh/CMakeLists.txt trunk/ttssh2/ttxssh/arc4random.c trunk/ttssh2/ttxssh/cipher-3des1.c trunk/ttssh2/ttxssh/cipher-ctr.c trunk/ttssh2/ttxssh/ttxssh.v16.vcxproj Added Paths: ----------- trunk/libs/buildlibressl.bat trunk/libs/buildlibressl.cmake trunk/libs/lib_libressl.cmake trunk/libs/libressl/ Property Changed: ---------------- trunk/ -------------- next part -------------- Index: trunk =================================================================== --- trunk 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk 2022-01-16 15:16:19 UTC (rev 9692) Property changes on: trunk ___________________________________________________________________ Modified: svn:mergeinfo ## -1,6 +1,8 ## /branches/4-stable:8924,9256-9257 /branches/drag_and_drop:7130,7139,7141,7143-7147 /branches/flowctrl_dsrdtr:7825-7827 +/branches/libressl_3_4_2:9623-9624,9637,9648,9658,9660,9676-9677,9679-9680,9683 +/branches/libressl_3_4_2_cmake:9673-9675 /branches/move_code_script:9026-9185 /branches/openssl_1_1_1_v2:7785-7786,7788-7808,7811-7812,7814-7815,7819-7822,7829,7832-7834,7838-7843,7846-7847,7855-7856,7858,7861-7863,7873-7877,7880-7881,7884-7888,7890-7892,7894-7895,7898,7900,7902-7903,7909,7924,7934,7954-7957,7959,7973,7975,7979-7980,8019,8208,8256 /branches/openssl_1_1_1_v3:8258,8264-8265 Modified: trunk/doc/convtext.bat =================================================================== --- trunk/doc/convtext.bat 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/convtext.bat 2022-01-16 15:16:19 UTC (rev 9692) @@ -5,8 +5,8 @@ %TOSJIS% -i ..\libs\oniguruma\COPYING -o %REF_J%\Oniguruma-LICENSE.txt -l unix %TOSJIS% -i ..\libs\oniguruma\doc\RE -o %REF_E%\RE.txt -l unix %TOSJIS% -i ..\libs\oniguruma\doc\RE.ja -o %REF_J%\RE.txt -c utf8 -l unix -%TOSJIS% -i ..\libs\openssl\LICENSE -o %REF_E%\OpenSSL-LICENSE.txt -l unix -%TOSJIS% -i ..\libs\openssl\LICENSE -o %REF_J%\OpenSSL-LICENSE.txt -l unix +%TOSJIS% -i ..\libs\libressl\COPYING -o %REF_E%\LibreSSL-LICENSE.txt -l unix +%TOSJIS% -i ..\libs\libressl\COPYING -o %REF_J%\LibreSSL-LICENSE.txt -l unix %TOSJIS% -i ..\libs\putty\LICENCE -o %REF_E%\PuTTY-LICENSE.txt -l crlf %TOSJIS% -i ..\libs\putty\LICENCE -o %REF_J%\PuTTY-LICENSE.txt -l crlf %TOSJIS% -i ..\libs\SFMT\LICENSE.txt -o %REF_E%\SFMT-LICENSE.txt -l unix Modified: trunk/doc/en/html/about/copyright.html =================================================================== --- trunk/doc/en/html/about/copyright.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/html/about/copyright.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -29,7 +29,7 @@ <li><a href="https://github.com/kkos/oniguruma">Oniguruma</a> ... <a href="../reference/Oniguruma-LICENSE.txt">2-clause BSD license</a></li> <li><a href="http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT/index.html">SFMT</a> ... <a href="../reference/SFMT-LICENSE.txt">3-clause BSD license</a></li> <li><a href="https://www.openssh.com">OpenSSH</a> ... <a href="../reference/OpenSSH-LICENSE.txt">BSD style license</a></li> - <li><a href="https://www.openssl.org">OpenSSL</a> ... <a href="../reference/OpenSSL-LICENSE.txt">Dual(both) license, OpenSSL License(Apache License 1.0) and SSLeay License(4-clause BSD license)</a></li> + <li><a href="https://www.libressl.org">LibreSSL</a> ... <a href="../reference/LibreSSL-LICENSE.txt">OpenSSL License(Apache License 1.0)" and "SSLeay License(4-clause BSD license)" and "ISC license" and "public domain"</a></li> <li><a href="https://zlib.net">zlib</a> ... <a href="../reference/zlib-LICENSE.txt">zlib License</a></li> <li><a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> ... <a href="../reference/PuTTY-LICENSE.txt">MIT License</a></li> <li><a href="https://github.com/P-H-C/phc-winner-argon2">The reference C implementation of Argon2</a> ... <a href="../reference/argon2-LICENSE.txt">Creative Commons CC0 1.0 License/Waiver or the Apache License 2.0</a></li> @@ -153,8 +153,8 @@ Copyright of original TTSSH belongs to Robert O'Callahan. Copyright of TTSSH supporting SSH2 belongs to Yutaka Hirata. - Copyright of OpenSSL belongs to OpenSSL project. Please see <a href="../reference/OpenSSL-LICENSE.txt">OpenSSL-LICENSE.txt</a> for more information about license. - OpenSSL is linked to this program statically. + Copyright of LibreSSL belongs to OpenBSD project. Please see <a href="../reference/LibreSSL-LICENSE.txt">LibreSSL-LICENSE.txt</a> for more information about license. + LibreSSL is linked to this program statically. Copyright of zlib belongs to Greg Roelofs and Jean-loup Gaill. Please see <a href="../reference/zlib-LICENSE.txt">OpenSSL-LICENSE.txt</a> for more information about license. zlib is linked to this program statically. Copyright of OpenSSH belongs to each developers. Please see <a href="../reference/OpenSSH-LICENSE.txt">OpenSSH-LICENSE.txt</a> for more information. Modified: trunk/doc/en/html/about/history.html =================================================================== --- trunk/doc/en/html/about/history.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/html/about/history.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -31,7 +31,7 @@ <h2 id="teraterm">Tera Term</h2> -<h3 id="teraterm_5.0">202x.xx.xx (Ver 5.0)</h3> +<h3 id="teraterm_5.0">2022.xx.xx (Ver 5.0 not released)</h3> <ul class="history"> <li>Changes <ul> @@ -3303,7 +3303,7 @@ <h2 id="ttssh">TTSSH</h2> -<h3 id="ttssh_2.93">202x.x.x (Ver 2.93 not released)</h3> +<h3 id="ttssh_2.93">2022.xx.xx (Ver 2.93 not released)</h3> <ul class="history"> <!--li>Changes <ul> @@ -3317,6 +3317,7 @@ <li>Misc <ul> + <li>Changed cryptography library from OpenSSL to LibreSSL 3.4.2.</li> <li>Upgraded PuTTY to PuTTY 0.76.</li> </ul> </li> Modified: trunk/doc/en/html/index.html =================================================================== --- trunk/doc/en/html/index.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/html/index.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -142,7 +142,7 @@ <LI><A HREF="reference/Oniguruma-LICENSE.txt">License of Oniguruma</A></LI> <LI><A HREF="reference/SFMT-LICENSE.txt">License of SFMT</A></LI> <LI><A HREF="reference/OpenSSH-LICENSE.txt">License of OpenSSH</A></LI> - <LI><A HREF="reference/OpenSSL-LICENSE.txt">License of OpenSSL</A></LI> + <LI><A HREF="reference/LibreSSL-LICENSE.txt">License of LibreSSL</A></LI> <LI><A HREF="reference/zlib-LICENSE.txt">License of zlib</A></LI> <LI><A HREF="reference/PuTTY-LICENSE.txt">License of PuTTY</A></LI> <LI><A HREF="reference/argon2-LICENSE.txt">License of The reference C implementation of Argon2</A></LI> Modified: trunk/doc/en/html/reference/.gitignore =================================================================== --- trunk/doc/en/html/reference/.gitignore 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/html/reference/.gitignore 2022-01-16 15:16:19 UTC (rev 9692) @@ -1,6 +1,7 @@ CygTerm+-LICENSE.txt Oniguruma-LICENSE.txt OpenSSL-LICENSE.txt +LibreSSL-LICENSE.txt PuTTY-LICENSE.txt RE.txt SFMT-LICENSE.txt Modified: trunk/doc/en/html/reference/develop.txt =================================================================== --- trunk/doc/en/html/reference/develop.txt 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/html/reference/develop.txt 2022-01-16 15:16:19 UTC (rev 9692) @@ -77,7 +77,7 @@ * Libraries - Oniguruma 6.9.7.1 (https://github.com/kkos/oniguruma) -- OpenSSL 1.1.1k (http://www.openssl.org/) +- LibreSSL 3.4.2 (https://www.libressl.org/) - zlib 1.2.11 (http://www.zlib.net/) - PuTTY 0.76 (http://www.chiark.greenend.org.uk/~sgtatham/putty/) - SFMT 1.5.1 (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html) @@ -163,11 +163,10 @@ (2) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu. (3) Move 'libs' directory on the command prompt. And run buildoniguruma6.bat. - 3. OpenSSL (used by TTSSH) - (1) Extract openssl source into libs/openssl directory. - (2) When the libs/openssl/Makefile.bak file exists on the OpenSSL 1.0.0e or later, delete the file only once - (3) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu. - (4) Move 'libs' directory on the command prompt. And run buildopenssl11.bat. + 3. LibreSSL (used by TTSSH) + (1) Extract LibreSSL source into libs/libressl directory. + (2) Launch 'Visual Studio 2005 Command Prompt' batch file from start menu. + (3) Move 'libs' directory on the command prompt. And run buildlibressl.bat. 4. Zlib (used by TTSSH) (1) Extract zlib source into libs/zlib directory. @@ -317,8 +316,8 @@ http://www.jrsoftware.org/isdl.php Oniguruma https://github.com/kkos/oniguruma - OpenSSL - http://www.openssl.org/ + LibreSSL + https://www.libressl.org/ zlib http://www.zlib.net/ PuTTY Modified: trunk/doc/en/html/reference/sourcecode.html =================================================================== --- trunk/doc/en/html/reference/sourcecode.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/html/reference/sourcecode.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -99,7 +99,7 @@ The macro program is linked to pseudorandom number generator "SFMT", which allows to generate random number in "random" macro command. </p> <p> - "TTSSH" module is linkd to "OpenSSL" library to perform cryptography related operations. One may think that OpenSSL library contains only Secure Socket Layer (SSL) protocol related functions used for secure web access, however that is wrong assumption. OpenSSL library also supports basic cipher algorithms, which are utilized by "TTSSH" module. Since Secure Layer related functions of the library are not used, it is very unlikely that "TTSSH" module will be compromised if a SSL related security hole is found in OpenSSL library. + "TTSSH" module is linkd to "LibreSSL" library to perform cryptography related operations. One may think that LibreSSL library contains only Secure Socket Layer (SSL) protocol related functions used for secure web access, however that is wrong assumption. LibreSSL library also supports basic cipher algorithms, which are utilized by "TTSSH" module. Since Secure Layer related functions of the library are not used, it is very unlikely that "TTSSH" module will be compromised if a SSL related security hole is found in LibreSSL library. </p> <p> "TTSSH" module is linkd to compression Library "zlib" to compress SSH packets. Packet compression is effective on low speed networks like for example with dial-up connections, however in high speed networks it may slow down communication. That's why packet compression function is disabled by default. <br> Modified: trunk/doc/en/teraterm.hhc =================================================================== --- trunk/doc/en/teraterm.hhc 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/teraterm.hhc 2022-01-16 15:16:19 UTC (rev 9692) @@ -578,8 +578,8 @@ <param name="ImageNumber" value="11"> </OBJECT> <LI> <OBJECT type="text/sitemap"> - <param name="Name" value="License of OpenSSL"> - <param name="Local" value="html\reference\OpenSSL-LICENSE.txt"> + <param name="Name" value="License of LibreSSL"> + <param name="Local" value="html\reference\LibreSSL-LICENSE.txt"> <param name="ImageNumber" value="11"> </OBJECT> <LI> <OBJECT type="text/sitemap"> Modified: trunk/doc/en/teraterm.hhp =================================================================== --- trunk/doc/en/teraterm.hhp 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/en/teraterm.hhp 2022-01-16 15:16:19 UTC (rev 9692) @@ -170,7 +170,7 @@ HlpSetupLang=html\setup\lng.html HlpRefKeycode=html\reference\keycode.txt HlpRefRe=html\reference\RE.txt -HlpRefOpenssl=html\reference\OpenSSL-LICENSE.txt +HlpRefOpenssl=html\reference\LibreSSL-LICENSE.txt HlpRefOpenssh=html\reference\OpenSSH-LICENSE.txt HlpRefDev=html\reference\develop.html HlpRefPutty=html\reference\PuTTY-LICENSE.txt Modified: trunk/doc/ja/html/about/copyright.html =================================================================== --- trunk/doc/ja/html/about/copyright.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/html/about/copyright.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -29,7 +29,7 @@ <li><a href="https://github.com/kkos/oniguruma">Oniguruma</a> ... <a href="../reference/Oniguruma-LICENSE.txt">\x93\xF1\x8F\xF0\x8D\x80BSD\x83\x89\x83C\x83Z\x83\x93\x83X</a></li> <li><a href="http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT/index-jp.html">SFMT</a> ... <a href="../reference/SFMT-LICENSE.txt">\x8EO\x8F\xF0\x8D\x80BSD\x83\x89\x83C\x83Z\x83\x93\x83X</a></li> <li><a href="https://www.openssh.com">OpenSSH</a> ... <a href="../reference/OpenSSH-LICENSE.txt">BSD\x83X\x83^\x83C\x83\x8B\x83\x89\x83C\x83Z\x83\x93\x83X</a></li> - <li><a href="https://www.openssl.org">OpenSSL</a> ... <a href="../reference/OpenSSL-LICENSE.txt">OpenSSL License(Apache License 1.0) \x82\xC6 SSLeay License(\x8El\x8F\xF0\x8D\x80BSD\x83\x89\x83C\x83Z\x83\x93\x83X) \x82̃f\x83\x85\x83A\x83\x8B\x83\x89\x83C\x83Z\x83\x93\x83X(\x97\xBC\x95\xFB\x82\xAA\x93K\x97p\x82\xB3\x82\xEA\x82\xE9)</a></li> + <li><a href="https://www.libressl.org">LibreSSL</a> ... <a href="../reference/LibreSSL-LICENSE.txt">\x81uOpenSSL License(Apache License 1.0)\x81v\x82ƁuSSLeay License(\x8El\x8F\xF0\x8D\x80BSD\x83\x89\x83C\x83Z\x83\x93\x83X)\x81v\x82ƁuISC \x83\x89\x83C\x83Z\x83\x93\x83X\x81v\x82Ɓu\x83p\x83u\x83\x8A\x83b\x83N\x83h\x83\x81\x83C\x83\x93\x81v</a></li> <li><a href="https://zlib.net">zlib</a> ... <a href="../reference/zlib-LICENSE.txt">zlib\x83\x89\x83C\x83Z\x83\x93\x83X</a></li> <li><a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> ... <a href="../reference/PuTTY-LICENSE.txt">MIT\x83\x89\x83C\x83Z\x83\x93\x83X</a></li> <li><a href="https://github.com/P-H-C/phc-winner-argon2">The reference C implementation of Argon2</a> ... <a href="../reference/argon2-LICENSE.txt">Creative Commons CC0 1.0 License/Waiver \x82܂\xBD\x82\xCD Apache License 2.0</a></li> @@ -146,8 +146,8 @@ TTSSH\x82\xCDRobert O'Callahan\x8E\x81\x82̒\x98\x8D앨\x82ł\xB7\x81B TTSSH\x82\xCCSSH2\x89\xBB\x82̃R\x81[\x83h\x82ɂ\xA2\x82ẮA\x92\x98\x8D쌠\x82͕\xBD\x93c\x96L\x82ɂ\xA0\x82\xE8\x82܂\xB7\x81B - OpenSSL\x82\xCDOpenSSL Project\x82̒\x98\x8D앨\x82ł\xB7\x81B\x83\x89\x83C\x83Z\x83\x93\x83X\x8F\xEE\x95\xF1\x82ɂ\xA2\x82Ă͓\xAF\x8D\xAB\x82\xCC<a href="../reference/OpenSSL-LICENSE.txt">OpenSSL-LICENSE.txt</a>\x82\xF0\x82\xB2\x97\x97\x89\xBA\x82\xB3\x82\xA2\x81B - \x96{\x83v\x83\x8D\x83O\x83\x89\x83\x80\x82́AOpenSSL\x82ƐÓI\x83\x8A\x83\x93\x83N\x82\xB5\x82Ă\xA2\x82܂\xB7\x81B + LibreSSL\x82\xCDOpenBSD Project\x82̒\x98\x8D앨\x82ł\xB7\x81B\x83\x89\x83C\x83Z\x83\x93\x83X\x8F\xEE\x95\xF1\x82ɂ\xA2\x82Ă͓\xAF\x8D\xAB\x82\xCC<a href="../reference/LibreSSL-LICENSE.txt">LibreSSL-LICENSE.txt</a>\x82\xF0\x82\xB2\x97\x97\x89\xBA\x82\xB3\x82\xA2\x81B + \x96{\x83v\x83\x8D\x83O\x83\x89\x83\x80\x82́ALibreSSL\x82ƐÓI\x83\x8A\x83\x93\x83N\x82\xB5\x82Ă\xA2\x82܂\xB7\x81B zlib\x82\xCDGreg Roelofs\x82\xC6Jean-loup Gailly\x8E\x81\x82̒\x98\x8D앨\x82ł\xB7\x81B\x83\x89\x83C\x83Z\x83\x93\x83X\x8F\xEE\x95\xF1\x82ɂ\xA2\x82Ă͓\xAF\x8D\xAB\x82\xCC<a href="../reference/zlib-LICENSE.txt">zlib-LICENSE.txt</a>\x82\xF0\x82\xB2\x97\x97\x89\xBA\x82\xB3\x82\xA2\x81B \x96{\x83v\x83\x8D\x83O\x83\x89\x83\x80\x82́Azlib\x82ƐÓI\x83\x8A\x83\x93\x83N\x82\xB5\x82Ă\xA2\x82܂\xB7\x81B OpenSSH\x82̒\x98\x8D쌠\x82́A\x8Ae\x8AJ\x94\xAD\x8E҂ɂ\xA0\x82\xE8\x82܂\xB7\x81B\x8Fڂ\xB5\x82\xAD\x82͓\xAF\x8D\xAB\x82\xCC<a href="../reference/OpenSSH-LICENSE.txt">OpenSSH-LICENSE.txt</a>\x82\xF0\x82\xB2\x97\x97\x82\xAD\x82\xBE\x82\xB3\x82\xA2\x81B Modified: trunk/doc/ja/html/about/history.html =================================================================== --- trunk/doc/ja/html/about/history.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/html/about/history.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -31,7 +31,7 @@ <h2 id="teraterm">Tera Term</h2> -<h3 id="teraterm_5.0">202x.xx.xx (Ver 5.0)</h3> +<h3 id="teraterm_5.0">2022.xx.xx (Ver 5.0 not released)</h3> <ul class="history"> <li>\x95ύX <ul> @@ -3309,7 +3309,7 @@ <h2 id="ttssh">TTSSH</h2> -<h3 id="ttssh_2.93">202x.x.x (Ver 2.93 not released)</h3> +<h3 id="ttssh_2.93">2022.xx.xx (Ver 2.93 not released)</h3> <ul class="history"> <!--li>\x95ύX <ul> @@ -3323,6 +3323,7 @@ <li>\x82\xBB\x82̑\xBC <ul> + <li>\x88Í\x86\x83\x89\x83C\x83u\x83\x89\x83\x8A\x82\xF0 OpenSSL \x82\xA9\x82\xE7 LibreSSL 3.4.2 \x82֕ύX\x82\xB5\x82\xBD\x81B</li> <li>PuTTY 0.76 \x82֍\xB7\x82\xB5\x91ւ\xA6\x82\xBD\x81B</li> </ul> </li> Modified: trunk/doc/ja/html/index.html =================================================================== --- trunk/doc/ja/html/index.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/html/index.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -144,7 +144,7 @@ <LI><A HREF="reference/Oniguruma-LICENSE.txt">\x8BS\x8E\xD4 \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> <LI><A HREF="reference/SFMT-LICENSE.txt">SFMT \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> <LI><A HREF="reference/OpenSSH-LICENSE.txt">OpenSSH \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> - <LI><A HREF="reference/OpenSSL-LICENSE.txt">OpenSSL \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> + <LI><A HREF="reference/LibreSSL-LICENSE.txt">LibreSSL \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> <LI><A HREF="reference/zlib-LICENSE.txt">zlib \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> <LI><A HREF="reference/PuTTY-LICENSE.txt">PuTTY \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> <LI><A HREF="reference/argon2-LICENSE.txt">The reference C implementation of Argon2 \x83\x89\x83C\x83Z\x83\x93\x83X</A></LI> Modified: trunk/doc/ja/html/reference/.gitignore =================================================================== --- trunk/doc/ja/html/reference/.gitignore 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/html/reference/.gitignore 2022-01-16 15:16:19 UTC (rev 9692) @@ -1,6 +1,7 @@ CygTerm+-LICENSE.txt Oniguruma-LICENSE.txt OpenSSL-LICENSE.txt +LibreSSL-LICENSE.txt PuTTY-LICENSE.txt RE.txt SFMT-LICENSE.txt Modified: trunk/doc/ja/html/reference/develop.txt =================================================================== --- trunk/doc/ja/html/reference/develop.txt 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/html/reference/develop.txt 2022-01-16 15:16:19 UTC (rev 9692) @@ -70,7 +70,7 @@ \x81\xA1 \x83\x89\x83C\x83u\x83\x89\x83\x8A - Oniguruma 6.9.7.1 (https://github.com/kkos/oniguruma) -- OpenSSL 1.1.1k (http://www.openssl.org/) +- LibreSSL 3.4.2 (https://www.libressl.org/) - zlib 1.2.11 (http://www.zlib.net/) - PuTTY 0.76 (http://www.chiark.greenend.org.uk/~sgtatham/putty/) - SFMT 1.5.1 (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html) @@ -159,11 +159,10 @@ (2) \x83X\x83^\x81[\x83g\x83\x81\x83j\x83\x85\x81[\x82\xA9\x82\xE7\x81uVisual Studio 2005 \x83R\x83}\x83\x93\x83h \x83v\x83\x8D\x83\x93\x83v\x83g\x81v\x82\xF0\x8BN\x93\xAE\x82\xB7\x82\xE9\x81B (3) \x83R\x83}\x83\x93\x83h\x83v\x83\x8D\x83\x93\x83v\x83g\x8Fォ\x82\xE7 libs \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82Ɉړ\xAE\x82\xB5\x81Abuildoniguruma6.bat \x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B - 3. OpenSSL (used by TTSSH) - (1) openssl \x82̃\\x81[\x83X\x82\xF0 libs/openssl \x82̒\x86\x82ɓW\x8AJ\x82\xB7\x82\xE9\x81B - (2) OpenSSL 1.0.0e \x88ȍ~\x82ŁAlibs/openssl/Makefile.bak \x82\xAA\x8Dŏ\x89\x82\xA9\x82瑶\x8D݂\xB7\x82\xE9\x8Fꍇ\x82́A\x88\xEA\x93x\x82\xBE\x82\xAF\x8E蓮\x82ō폜\x82\xB5\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B - (3) \x83X\x83^\x81[\x83g\x83\x81\x83j\x83\x85\x81[\x82\xA9\x82\xE7\x81uVisual Studio 2005 \x83R\x83}\x83\x93\x83h \x83v\x83\x8D\x83\x93\x83v\x83g\x81v\x82\xF0\x8BN\x93\xAE\x82\xB7\x82\xE9\x81B - (4) \x83R\x83}\x83\x93\x83h\x83v\x83\x8D\x83\x93\x83v\x83g\x8Fォ\x82\xE7 libs \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82Ɉړ\xAE\x82\xB5\x81Abuildopenssl11.bat \x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B + 3. LibreSSL (used by TTSSH) + (1) LibreSSL \x82̃\\x81[\x83X\x82\xF0 libs/libressl \x82̒\x86\x82ɓW\x8AJ\x82\xB7\x82\xE9\x81B + (2) \x83X\x83^\x81[\x83g\x83\x81\x83j\x83\x85\x81[\x82\xA9\x82\xE7\x81uVisual Studio 2005 \x83R\x83}\x83\x93\x83h \x83v\x83\x8D\x83\x93\x83v\x83g\x81v\x82\xF0\x8BN\x93\xAE\x82\xB7\x82\xE9\x81B + (3) \x83R\x83}\x83\x93\x83h\x83v\x83\x8D\x83\x93\x83v\x83g\x8Fォ\x82\xE7 libs \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82Ɉړ\xAE\x82\xB5\x81Abuildlibressl.bat \x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9\x81B 4. Zlib (used by TTSSH) (1) zlib \x82̃\\x81[\x83X\x82\xF0 libs/zlib \x82̒\x86\x82ɓW\x8AJ\x82\xB7\x82\xE9\x81B @@ -316,8 +315,8 @@ http://www.jrsoftware.org/isdl.php Oniguruma https://github.com/kkos/oniguruma - OpenSSL - http://www.openssl.org/ + LibreSSL + https://www.libressl.org/ zlib http://www.zlib.net/ PuTTY Modified: trunk/doc/ja/html/reference/sourcecode.html =================================================================== --- trunk/doc/ja/html/reference/sourcecode.html 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/html/reference/sourcecode.html 2022-01-16 15:16:19 UTC (rev 9692) @@ -95,7 +95,7 @@ Tera Term\x83}\x83N\x83\x8D\x83v\x83\x8D\x83O\x83\x89\x83\x80\x82́A\x8B^\x8E\x97\x97\x90\x90\x94\x90\xB6\x90\xAC\x8A\xED"SFMT"\x82\xF0\x83\x8A\x83\x93\x83N\x82\xB5\x82Ă\xA2\x82܂\xB7\x81B"random"\x83R\x83}\x83\x93\x83h\x82ɂ\xA8\x82\xA2\x82ė\x90\x90\x94\x82̐\xB6\x90\xAC\x82ɗ\x98\x97p\x82\xB3\x82\xEA\x82Ă\xA2\x82܂\xB7\x81B </p> <p> - SSH\x83\x82\x83W\x83\x85\x81[\x83\x8B\x82ł\xA0\x82\xE9TTSSH\x82́A\x88Í\x86\x8F\x88\x97\x9D\x82\xF0\x8Ds\x82\xA4\x82\xBD\x82߂\xC9"OpenSSL"\x82\xF0\x83\x8A\x83\x93\x83N\x82\xB5\x82Ă\xA2\x82܂\xB7\x81BOpenSSL\x82Ƃ\xA2\x82\xA4\x83l\x81[\x83~\x83\x93\x83O\x82\xA9\x82\xE7Web\x83A\x83N\x83Z\x83X\x82Ɏg\x82\xED\x82\xEA\x82\xE9SSL(Secure Socket Layer)\x83v\x83\x8D\x83g\x83R\x83\x8B\x90\xEA\x97p\x82̃\x89\x83C\x83u\x83\x89\x83\x8A\x82\xA9\x82Ǝv\x82\xED\x82ꂪ\x82\xBF\x82ł\xB7\x82\xAA\x81A\x82\xBB\x82\xA4\x82ł͂\xA0\x82\xE8\x82܂\xB9\x82\xF1\x81BOpenSSL\x82͊\xEE\x96{\x93I\x82ȈÍ\x86\x83A\x83\x8B\x83S\x83\x8A\x83Y\x83\x80\x82\xF0\x83T\x83|\x81[\x83g\x82\xB5\x82Ă\xA8\x82\xE8\x81ATTSSH\x82ł\xCDOpenSSL\x82Ɋ܂܂\xEA\x82\xE9\x88Í\x86\x89\xBB/\x95\x9C\x8D\x86\x83\x8B\x81[\x83`\x83\x93\x82݂̂𗘗p\x82\xB5\x82Ă\xA2\x82܂\xB7\x81B\x82\xB1\x82̂\xB1\x82Ƃ́A\x82\xB7\x82Ȃ킿OpenSSL\x83\x89\x83C\x83u\x83\x89\x83\x8A\x82\xC9SSL\x8A֘A\x82̃Z\x83L\x83\x85\x83\x8A\x83e\x83B\x83z\x81[\x83\x 8B\x82\xAA\x94\xAD\x8C\xA9\x82\xB3\x82ꂽ\x82Ƃ\xB5\x82Ă\xE0\x81ATTSSH\x82ւ̉e\x8B\xBF\x82͋ɂ߂ĒႢ\x82Ƃ\xA2\x82\xA4\x82\xB1\x82Ƃł\xB7\x81B + SSH\x83\x82\x83W\x83\x85\x81[\x83\x8B\x82ł\xA0\x82\xE9TTSSH\x82́A\x88Í\x86\x8F\x88\x97\x9D\x82\xF0\x8Ds\x82\xA4\x82\xBD\x82߂\xC9"LibreSSL"\x82\xF0\x83\x8A\x83\x93\x83N\x82\xB5\x82Ă\xA2\x82܂\xB7\x81BLibreSSL\x82Ƃ\xA2\x82\xA4\x83l\x81[\x83~\x83\x93\x83O\x82\xA9\x82\xE7Web\x83A\x83N\x83Z\x83X\x82Ɏg\x82\xED\x82\xEA\x82\xE9SSL(Secure Socket Layer)\x83v\x83\x8D\x83g\x83R\x83\x8B\x90\xEA\x97p\x82̃\x89\x83C\x83u\x83\x89\x83\x8A\x82\xA9\x82Ǝv\x82\xED\x82ꂪ\x82\xBF\x82ł\xB7\x82\xAA\x81A\x82\xBB\x82\xA4\x82ł͂\xA0\x82\xE8\x82܂\xB9\x82\xF1\x81BLibreSSL\x82͊\xEE\x96{\x93I\x82ȈÍ\x86\x83A\x83\x8B\x83S\x83\x8A\x83Y\x83\x80\x82\xF0\x83T\x83|\x81[\x83g\x82\xB5\x82Ă\xA8\x82\xE8\x81ATTSSH\x82ł\xCDLibreSSL\x82Ɋ܂܂\xEA\x82\xE9\x88Í\x86\x89\xBB/\x95\x9C\x8D\x86\x83\x8B\x81[\x83`\x83\x93\x82݂̂𗘗p\x82\xB5\x82Ă\xA2\x82܂\xB7\x81B\x82\xB1\x82̂\xB1\x82Ƃ́A\x82\xB7\x82Ȃ킿LibreSSL\x83\x89\x83C\x83u\x83\x89\x83\x8A\x82\xC9SSL\x8A֘A\x82̃Z\x83L\x83\x85\x83\x8A\x83e\x83B\x83z\x81[\ x83\x8B\x82\xAA\x94\xAD\x8C\xA9\x82\xB3\x82ꂽ\x82Ƃ\xB5\x82Ă\xE0\x81ATTSSH\x82ւ̉e\x8B\xBF\x82͋ɂ߂ĒႢ\x82Ƃ\xA2\x82\xA4\x82\xB1\x82Ƃł\xB7\x81B </p> <p> SSH\x83\x82\x83W\x83\x85\x81[\x83\x8B\x82ł\xA0\x82\xE9TTSSH\x82́ASSH\x83p\x83P\x83b\x83g\x82̈\xB3\x8Fk\x82\xF0\x8Ds\x82\xA4\x82\xBD\x82߂Ɉ\xB3\x8Fk\x83\x89\x83C\x83u\x83\x89\x83\x8A"zlib"\x82\xF0\x83\x8A\x83\x93\x83N\x82\xB5\x82Ă\xA2\x82܂\xB7\x81B\x82\xBD\x82\xBE\x82\xB5\x81A\x83_\x83C\x83\x84\x83\x8B\x83A\x83b\x83v\x89\xF1\x90\xFC\x82Ȃǂ̒ᑬ\x93x\x82ȃl\x83b\x83g\x83\x8F\x81[\x83N\x82ɂ\xA8\x82\xA2\x82ẮA\x83p\x83P\x83b\x83g\x88\xB3\x8Fk\x82͗L\x8C\xF8\x82ł\xB7\x82\xAA\x81A\x8D\xF0\x8D\xA1\x82̍\x82\x91\xAC\x89\xF1\x90\xFC\x82ł͂ނ\xB5\x82둬\x93x\x92ቺ\x82\xF0\x8F\xB5\x82\xAD\x91\xAB\x82\xA9\x82\xB9\x82ƂȂ\xE8\x82܂\xB7\x81B\x82䂦\x82ɁA\x83f\x83t\x83H\x83\x8B\x83g\x82ł̓p\x83P\x83b\x83g\x88\xB3\x8Fk\x8B@\x94\\x82͖\xB3\x8C\x{27B0B3}\x82\xEA\x82Ă\xA2\x82܂\xB7\x81B Modified: trunk/doc/ja/teraterm.hhc =================================================================== --- trunk/doc/ja/teraterm.hhc 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/teraterm.hhc 2022-01-16 15:16:19 UTC (rev 9692) @@ -616,8 +616,8 @@ <param name="ImageNumber" value="11"> </OBJECT> <LI> <OBJECT type="text/sitemap"> - <param name="Name" value="OpenSSL \x83\x89\x83C\x83Z\x83\x93\x83X"> - <param name="Local" value="html\reference\OpenSSL-LICENSE.txt"> + <param name="Name" value="LibreSSL \x83\x89\x83C\x83Z\x83\x93\x83X"> + <param name="Local" value="html\reference\LibreSSL-LICENSE.txt"> <param name="ImageNumber" value="11"> </OBJECT> <LI> <OBJECT type="text/sitemap"> Modified: trunk/doc/ja/teraterm.hhp =================================================================== --- trunk/doc/ja/teraterm.hhp 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/doc/ja/teraterm.hhp 2022-01-16 15:16:19 UTC (rev 9692) @@ -177,7 +177,7 @@ HlpSetupLang=html\setup\lng.html HlpRefKeycode=html\reference\keycode.txt HlpRefRe=html\reference\RE.txt -HlpRefOpenssl=html\reference\OpenSSL-LICENSE.txt +HlpRefOpenssl=html\reference\LibreSSL-LICENSE.txt HlpRefOpenssh=html\reference\OpenSSH-LICENSE.txt HlpRefDev=html\reference\develop.html HlpRefPutty=html\reference\PuTTY-LICENSE.txt Modified: trunk/libs/buildall.bat =================================================================== --- trunk/libs/buildall.bat 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/libs/buildall.bat 2022-01-16 15:16:19 UTC (rev 9692) @@ -10,7 +10,7 @@ exit /b 1 ) -CALL buildopenssl11.bat +CALL buildlibressl.bat if ERRORLEVEL 1 ( echo "buildall.bat \x82\xF0\x8FI\x97\xB9\x82\xB5\x82܂\xB7" exit /b 1 Modified: trunk/libs/buildall.cmake =================================================================== --- trunk/libs/buildall.cmake 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/libs/buildall.cmake 2022-01-16 15:16:19 UTC (rev 9692) @@ -55,5 +55,9 @@ execute_process( COMMAND ${CMAKE_COMMAND} -P argon2.cmake ) +message("libressl") +execute_process( + COMMAND ${CMAKE_COMMAND} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} ${ARCHITECTURE_OPTION} -P buildlibressl.cmake + ) message("done buildall.cmake") Copied: trunk/libs/buildlibressl.bat (from rev 9624, branches/libressl_3_4_2/libs/buildlibressl.bat) =================================================================== --- trunk/libs/buildlibressl.bat (rev 0) +++ trunk/libs/buildlibressl.bat 2022-01-16 15:16:19 UTC (rev 9692) @@ -0,0 +1,68 @@ +rem LibreSSL\x82̃r\x83\x8B\x83h + +cd libressl + + +if exist "CMakeCache.txt" goto end + + +if not "%VSINSTALLDIR%" == "" goto vsinstdir + +:check_2019 +if "%VS160COMNTOOLS%" == "" goto check_2022 +if not exist "%VS160COMNTOOLS%\VsDevCmd.bat" goto check_2022 +call "%VS160COMNTOOLS%\VsDevCmd.bat" +goto vs2019 + +:check_2022 +if "%VS170COMNTOOLS%" == "" goto novs +if not exist "%VS170COMNTOOLS%\VsDevCmd.bat" goto novs +call "%VS170COMNTOOLS%\VsDevCmd.bat" +goto vs2022 + +:novs +echo "Can't find Visual Studio" +goto fail + +:vsinstdir +rem Visual Studio\x82̃o\x81[\x83W\x83\x87\x83\x93\x94\xBB\x95\xCA +set VSCMNDIR="%VSINSTALLDIR%\Common7\Tools\" +set VSCMNDIR=%VSCMNDIR:\\=\% + +if /I %VSCMNDIR% EQU "%VS160COMNTOOLS%" goto vs2019 +if /I %VSCMNDIR% EQU "%VS170COMNTOOLS%" goto vs2022 + +echo Unknown Visual Studio version +goto fail + +:vs2019 +set CMAKE_PARAMETER=-G "Visual Studio 16 2019" -A Win32 +goto vsend + +:vs2022 +set CMAKE_PARAMETER=-G "Visual Studio 17 2022" -A Win32 +goto vsend + +:vsend + +set CMAKE=cmake +rem set CMAKE="C:\Program Files\CMake\bin\cmake" +rem set CMAKE="%VSINSTALLDIR%\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake" + +%CMAKE% -DMSVC=on -DUSE_STATIC_MSVC_RUNTIMES=on %CMAKE_PARAMETER% + +devenv /build Debug LibreSSL.sln /project crypto /projectconfig Debug + +devenv /build Release LibreSSL.sln /project crypto /projectconfig Release + + +:end +cd .. +exit /b 0 + + +:fail +cd .. +echo "buildlibressl.bat \x82\xF0\x8FI\x97\xB9\x82\xB5\x82܂\xB7" + @ echo on +exit /b 1 Copied: trunk/libs/buildlibressl.cmake (from rev 9680, branches/libressl_3_4_2/libs/buildlibressl.cmake) =================================================================== --- trunk/libs/buildlibressl.cmake (rev 0) +++ trunk/libs/buildlibressl.cmake 2022-01-16 15:16:19 UTC (rev 9692) @@ -0,0 +1,134 @@ +# for libreSSL +# cmake -DCMAKE_GENERATOR="Visual Studio 16 2019" -DARCHITECTURE=Win32 -P buildlibressl.cmake +# cmake -DCMAKE_GENERATOR="Visual Studio 15 2017" -P buildlibressl.cmake +# cmake -DCMAKE_GENERATOR="Visual Studio 15 2017" -DCMAKE_CONFIGURATION_TYPE=Release -P buildlibressl.cmake + +include(script_support.cmake) + +set(SRC_DIR_BASE "libressl-3.4.2") +set(SRC_ARC "libressl-3.4.2.tar.gz") +set(SRC_URL "https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.4.2.tar.gz") +set(SRC_ARC_HASH_SHA256 cb82ca7d547336917352fbd23db2fc483c6c44d35157b32780214ec74197b3ce) + +set(DOWN_DIR "${CMAKE_SOURCE_DIR}/download/libressl") +set(EXTRACT_DIR "${CMAKE_SOURCE_DIR}/build/libressl/src") +set(SRC_DIR "${EXTRACT_DIR}/${SRC_DIR_BASE}") +set(INSTALL_DIR "${CMAKE_SOURCE_DIR}/libressl_${TOOLSET}") +set(BUILD_DIR "${CMAKE_SOURCE_DIR}/build/libressl/build_${TOOLSET}") +if(("${CMAKE_GENERATOR}" MATCHES "Win64") OR ("$ENV{MSYSTEM_CHOST}" STREQUAL "x86_64-w64-mingw32") OR ("${ARCHITECTURE}" MATCHES "x64") OR ("${CMAKE_COMMAND}" MATCHES "mingw64")) + set(INSTALL_DIR "${INSTALL_DIR}_x64") + set(BUILD_DIR "${BUILD_DIR}_x64") +endif() + +#message("BUILD_DIR=${BUILD_DIR}") +#message("INSTALL_DIR=${INSTALL_DIR}") + +######################################## + +# Configure + Generate +function(cmake_generate GENERATOR SRC_DIR WORKING_DIR OPTIONS) + execute_process( + COMMAND ${CMAKE_COMMAND} ${SRC_DIR} .. -G "${GENERATOR}" ${OPTIONS} + WORKING_DIRECTORY "${BUILD_DIR}" + ENCODING AUTO + RESULT_VARIABLE rv + ) + if(NOT rv STREQUAL "0") + message(FATAL_ERROR "cmake build fail ${rv}") + endif() +endfunction() + +# build + install +function(cmake_build WORKING_DIR OPTIONS BUILD_TOOL_OPTIONS) + execute_process( + COMMAND ${CMAKE_COMMAND} --build . ${OPTIONS} --target install -- ${BUILD_TOOL_OPTIONS} + WORKING_DIRECTORY "${BUILD_DIR}" + ENCODING AUTO + RESULT_VARIABLE rv + ) + if(NOT rv STREQUAL "0") + message(FATAL_ERROR "cmake build fail ${rv}") + endif() +endfunction() + +######################################## + +if(NOT EXISTS ${SRC_DIR}/README.md) + + file(DOWNLOAD + ${SRC_URL} + ${DOWN_DIR}/${SRC_ARC} + EXPECTED_HASH SHA256=${SRC_ARC_HASH_SHA256} + SHOW_PROGRESS + ) + + file(MAKE_DIRECTORY ${EXTRACT_DIR}) + + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar "xvf" ${DOWN_DIR}/${SRC_ARC} + WORKING_DIRECTORY ${EXTRACT_DIR} + ) + + file(COPY + ${SRC_DIR}/COPYING + DESTINATION ${CMAKE_CURRENT_LIST_DIR}/doc_help + ) + file(RENAME + ${CMAKE_CURRENT_LIST_DIR}/doc_help/COPYING + ${CMAKE_CURRENT_LIST_DIR}/doc_help/LibreSSL-LICENSE.txt) +endif() + +######################################## + +file(MAKE_DIRECTORY "${BUILD_DIR}") + +if(("${CMAKE_BUILD_TYPE}" STREQUAL "") AND ("${CMAKE_CONFIGURATION_TYPE}" STREQUAL "")) + if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + # multi-configuration + + unset(GENERATE_OPTIONS) + list(APPEND GENERATE_OPTIONS -A ${ARCHITECTURE}) + list(APPEND GENERATE_OPTIONS "-DCMAKE_DEBUG_POSTFIX=d") + list(APPEND GENERATE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}") + list(APPEND GENERATE_OPTIONS "-DLIBRESSL_TESTS=off") + if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + list(APPEND GENERATE_OPTIONS "-DMSVC=on") + list(APPEND GENERATE_OPTIONS "-DUSE_STATIC_MSVC_RUNTIMES=on") + endif() + + cmake_generate("${CMAKE_GENERATOR}" "${SRC_DIR}" "${BUILD_DIR}" "${GENERATE_OPTIONS}") + + unset(BUILD_OPTIONS) + list(APPEND BUILD_OPTIONS "--config Debug") + cmake_build("${BUILD_DIR}" "${BUILD_OPTIONS}" "") + + unset(BUILD_OPTIONS) + list(APPEND BUILD_OPTIONS "--config Release") + cmake_build("${BUILD_DIR}" "${BUILD_OPTIONS}" "") + + return() + else() + # single-configuration + unset(GENERATE_OPTIONS) + if(CMAKE_HOST_UNIX) + list(APPEND GENERATE_OPTIONS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_CURRENT_LIST_DIR}/../mingw.toolchain.cmake") + endif(CMAKE_HOST_UNIX) + list(APPEND GENERATE_OPTIONS "-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}") + list(APPEND GENERATE_OPTIONS "-DCMAKE_BUILD_TYPE=Release") + if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + list(APPEND GENERATE_OPTIONS "-DMSVC=on") + list(APPEND GENERATE_OPTIONS "-DUSE_STATIC_MSVC_RUNTIMES=on") + endif() + + cmake_generate("${CMAKE_GENERATOR}" "${SRC_DIR}" "${BUILD_DIR}" "${GENERATE_OPTIONS}") + + if(${CMAKE_GENERATOR} MATCHES "Unix Makefiles") + set(APPEND BUILD_TOOL_OPTIONS "-j") + endif() + + unset(BUILD_OPTIONS) + cmake_build("${BUILD_DIR}" "${BUILD_OPTIONS}" "${BUILD_TOOL_OPTIONS}") + + endif() +endif() Copied: trunk/libs/lib_libressl.cmake (from rev 9680, branches/libressl_3_4_2/libs/lib_libressl.cmake) =================================================================== --- trunk/libs/lib_libressl.cmake (rev 0) +++ trunk/libs/lib_libressl.cmake 2022-01-16 15:16:19 UTC (rev 9692) @@ -0,0 +1,27 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/script_support.cmake) + +set(LIBRESSL_ROOT ${CMAKE_CURRENT_LIST_DIR}/libressl_${TOOLSET}) +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(LIBRESSL_ROOT "${LIBRESSL_ROOT}_x64") +endif() + +if(MINGW) + set(LIBRESSL_INCLUDE_DIRS + ${LIBRESSL_ROOT}/include + ) + + set(LIBRESSL_LIB + ${LIBRESSL_ROOT}/lib/libcrypto-47.a + bcrypt + ) +else() + set(LIBRESSL_INCLUDE_DIRS + ${LIBRESSL_ROOT}/include + ) + + set(LIBRESSL_LIB + debug ${LIBRESSL_ROOT}/lib/crypto-47d.lib + optimized ${LIBRESSL_ROOT}/lib/crypto-47d.lib + ) +endif() Modified: trunk/ttssh2/ttxssh/CMakeLists.txt =================================================================== --- trunk/ttssh2/ttxssh/CMakeLists.txt 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/ttssh2/ttxssh/CMakeLists.txt 2022-01-16 15:16:19 UTC (rev 9692) @@ -1,9 +1,15 @@ set(PACKAGE_NAME "ttxssh") +option(TTXSSH_LIBRESSL "User LibreSSL" on) + project(${PACKAGE_NAME}) include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_zlib.cmake) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_openssl.cmake) +if(TTXSSH_LIBRESSL) + include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_libressl.cmake) +else() + include(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/lib_openssl.cmake) +endif() add_library( ${PACKAGE_NAME} SHARED @@ -155,10 +161,23 @@ ../../teraterm/common ../matcher ../putty - ${OPENSSL_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} -) + ) +if(TTXSSH_LIBRESSL) + target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ${LIBRESSL_INCLUDE_DIRS} + ) +else() + target_include_directories( + ${PACKAGE_NAME} + PRIVATE + ${OPENSSL_INCLUDE_DIRS} + ) +endif() + set_target_properties( ${PACKAGE_NAME} PROPERTIES @@ -188,9 +207,24 @@ ttpcmn argon2 ${ZLIB_LIB} - ${OPENSSL_LIB} ) +if(TTXSSH_LIBRESSL) + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + ${LIBRESSL_LIB} + bcrypt.lib + ) +else() + target_link_libraries( + ${PACKAGE_NAME} + PRIVATE + ${OPENSSL_LIB} + crypt32.lib # TODO このlibを使用しないパッチを適応したら削除すること + ) +endif() + if(SUPPORT_OLD_WINDOWS) target_link_libraries( ${PACKAGE_NAME} @@ -206,8 +240,6 @@ gdi32 comdlg32 comctl32 - # OpenSSL が使用 - crypt32.lib # TODO このlibを使用しないパッチを適応したら削除すること ) install( Modified: trunk/ttssh2/ttxssh/arc4random.c =================================================================== --- trunk/ttssh2/ttxssh/arc4random.c 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/ttssh2/ttxssh/arc4random.c 2022-01-16 15:16:19 UTC (rev 9692) @@ -22,8 +22,16 @@ /* * ChaCha based random number generator for OpenBSD. + * openssh-portable: openbsd-compat/arc4random.c */ +/* + * with LibreSSL, use getentropy() instead of RAND_bytes(). + * OpenBSD: lib/libcrypto/arc4random/getentropy_win.c + * $OpenBSD: getentropy_win.c,v 1.6 2020/11/11 10:41:24 bcook Exp $ + */ + + #include <sys/types.h> #include <stdlib.h> @@ -35,8 +43,12 @@ #include "arc4random.h" #include "chacha.h" +#ifndef LIBRESSL_VERSION_NUMBER #include <openssl/rand.h> #include <openssl/err.h> +#else +#include <bcrypt.h> +#endif /* OpenSSH isn't multithreaded */ #define _ARC4_LOCK() @@ -64,14 +76,41 @@ chacha_ivsetup(&rs, buf + KEYSZ, NULL); } +#ifdef LIBRESSL_VERSION_NUMBER +/* + * On Windows, BCryptGenRandom with BCRYPT_USE_SYSTEM_PREFERRED_RNG is supposed + * to be a well-seeded, cryptographically strong random number generator. + * https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom + */ +static int +getentropy(void *buf, size_t len) +{ + if (len > 256) { + return (-1); + } + + if (FAILED(BCryptGenRandom(NULL, buf, len, BCRYPT_USE_SYSTEM_PREFERRED_RNG))) { + return (-1); + } + + return (0); +} +#endif /* LIBRESSL_VERSION_NUMBER */ + static void _rs_stir(void) { u_char rnd[KEYSZ + IVSZ]; +#ifndef LIBRESSL_VERSION_NUMBER if (RAND_bytes(rnd, sizeof(rnd)) <= 0) { return; } +#else + if (getentropy(rnd, sizeof(rnd)) <= 0) { + return; + } +#endif if (!rs_initialized) { rs_initialized = 1; Modified: trunk/ttssh2/ttxssh/cipher-3des1.c =================================================================== --- trunk/ttssh2/ttxssh/cipher-3des1.c 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/ttssh2/ttxssh/cipher-3des1.c 2022-01-16 15:16:19 UTC (rev 9692) @@ -52,7 +52,6 @@ }; const EVP_CIPHER * evp_ssh1_3des(void); -int ssh1_3des_iv(EVP_CIPHER_CTX *, int, u_char *, int); static int ssh1_3des_init(EVP_CIPHER_CTX *ctx, const u_char *key, const u_char *iv, int enc) { @@ -124,37 +123,9 @@ return 1; } -// ssh1_3des_iv \x82͖\xA2\x8Eg\x97p\x81B -int ssh1_3des_iv(EVP_CIPHER_CTX *evp, int doset, u_char *iv, int len) -{ - struct ssh1_3des_ctx *c; - - if (len != 24) { - //fatal("%s: bad 3des iv length: %d", __func__, len); - return SSH_ERR_INVALID_ARGUMENT; - } - - if ((c = EVP_CIPHER_CTX_get_app_data(evp)) == NULL) { - //fatal("%s: no 3des context", __func__); - return SSH_ERR_INTERNAL_ERROR; - } - - if (doset) { - //debug3("%s: Installed 3DES IV", __func__); - memcpy(EVP_CIPHER_CTX_iv_noconst(c->k1), iv, 8); - memcpy(EVP_CIPHER_CTX_iv_noconst(c->k2), iv + 8, 8); - memcpy(EVP_CIPHER_CTX_iv_noconst(c->k3), iv + 16, 8); - } else { - //debug3("%s: Copying 3DES IV", __func__); - memcpy(iv, EVP_CIPHER_CTX_iv(c->k1), 8); - memcpy(iv + 8, EVP_CIPHER_CTX_iv(c->k2), 8); - memcpy(iv + 16, EVP_CIPHER_CTX_iv(c->k3), 8); - } - return 0; -} - const EVP_CIPHER *evp_ssh1_3des(void) { +#ifndef LIBRESSL_VERSION_NUMBER static EVP_CIPHER *p = NULL; if (p == NULL) { @@ -169,4 +140,18 @@ EVP_CIPHER_meth_set_flags(p, EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH); } return (p); +#else + static EVP_CIPHER ssh1_3des; + + memset(&ssh1_3des, 0, sizeof(EVP_CIPHER)); + ssh1_3des.nid = NID_undef; + ssh1_3des.block_size = 8; + ssh1_3des.iv_len = 0; + ssh1_3des.key_len = 16; + ssh1_3des.init = ssh1_3des_init; + ssh1_3des.cleanup = ssh1_3des_cleanup; + ssh1_3des.do_cipher = ssh1_3des_cbc; + ssh1_3des.flags = EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH; + return (&ssh1_3des); +#endif } Modified: trunk/ttssh2/ttxssh/cipher-ctr.c =================================================================== --- trunk/ttssh2/ttxssh/cipher-ctr.c 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/ttssh2/ttxssh/cipher-ctr.c 2022-01-16 15:16:19 UTC (rev 9692) @@ -133,6 +133,7 @@ const EVP_CIPHER * evp_aes_128_ctr(void) { +#ifndef LIBRESSL_VERSION_NUMBER static EVP_CIPHER *p = NULL; if (p == NULL) { @@ -147,6 +148,22 @@ EVP_CIPHER_meth_set_flags(p, EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV); } return (p); +#else + static EVP_CIPHER aes_ctr; + + memset(&aes_ctr, 0, sizeof(EVP_CIPHER)); + aes_ctr.nid = NID_undef; + aes_ctr.block_size = AES_BLOCK_SIZE; + aes_ctr.iv_len = AES_BLOCK_SIZE; + aes_ctr.key_len = 16; + aes_ctr.init = ssh_aes_ctr_init; + aes_ctr.cleanup = ssh_aes_ctr_cleanup; + aes_ctr.do_cipher = ssh_aes_ctr; +#ifndef SSH_OLD_EVP + aes_ctr.flags = EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV; +#endif + return (&aes_ctr); +#endif } //============================================================================ @@ -212,6 +229,7 @@ const EVP_CIPHER * evp_des3_ctr(void) { +#ifndef LIBRESSL_VERSION_NUMBER static EVP_CIPHER *p = NULL; if (p == NULL) { @@ -226,6 +244,22 @@ EVP_CIPHER_meth_set_flags(p, EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV); } return (p); +#else + static EVP_CIPHER des3_ctr; + + memset(&des3_ctr, 0, sizeof(EVP_CIPHER)); + des3_ctr.nid = NID_undef; + des3_ctr.block_size = DES_BLOCK_SIZE; + des3_ctr.iv_len = DES_BLOCK_SIZE; + des3_ctr.key_len = 24; + des3_ctr.init = ssh_des3_ctr_init; + des3_ctr.cleanup = ssh_des3_ctr_cleanup; + des3_ctr.do_cipher = ssh_des3_ctr; +#ifndef SSH_OLD_EVP + des3_ctr.flags = EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV; +#endif + return (&des3_ctr); +#endif } //============================================================================ @@ -306,6 +340,7 @@ const EVP_CIPHER * evp_bf_ctr(void) { +#ifndef LIBRESSL_VERSION_NUMBER static EVP_CIPHER *p = NULL; if (p == NULL) { @@ -320,6 +355,22 @@ EVP_CIPHER_meth_set_flags(p, EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV); } return (p); +#else + static EVP_CIPHER blowfish_ctr; + + memset(&blowfish_ctr, 0, sizeof(EVP_CIPHER)); + blowfish_ctr.nid = NID_undef; + blowfish_ctr.block_size = BF_BLOCK; + blowfish_ctr.iv_len = BF_BLOCK; + blowfish_ctr.key_len = 16; + blowfish_ctr.init = ssh_bf_ctr_init; + blowfish_ctr.cleanup = ssh_bf_ctr_cleanup; + blowfish_ctr.do_cipher = ssh_bf_ctr; +#ifndef SSH_OLD_EVP + blowfish_ctr.flags = EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV; +#endif + return (&blowfish_ctr); +#endif } //============================================================================ @@ -400,6 +451,7 @@ const EVP_CIPHER * evp_cast5_ctr(void) { +#ifndef LIBRESSL_VERSION_NUMBER static EVP_CIPHER *p = NULL; if (p == NULL) { @@ -414,6 +466,22 @@ EVP_CIPHER_meth_set_flags(p, EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV); } return (p); +#else + static EVP_CIPHER cast5_ctr; + + memset(&cast5_ctr, 0, sizeof(EVP_CIPHER)); + cast5_ctr.nid = NID_undef; + cast5_ctr.block_size = CAST_BLOCK; + cast5_ctr.iv_len = CAST_BLOCK; + cast5_ctr.key_len = 16; + cast5_ctr.init = ssh_cast5_ctr_init; + cast5_ctr.cleanup = ssh_cast5_ctr_cleanup; + cast5_ctr.do_cipher = ssh_cast5_ctr; +#ifndef SSH_OLD_EVP + cast5_ctr.flags = EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV; +#endif + return (&cast5_ctr); +#endif } //============================================================================ @@ -474,7 +542,7 @@ const EVP_CIPHER * evp_camellia_128_ctr(void) { - +#ifndef LIBRESSL_VERSION_NUMBER static EVP_CIPHER *p = NULL; if (p == NULL) { @@ -489,4 +557,20 @@ EVP_CIPHER_meth_set_flags(p, EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV); } return (p); +#else + static EVP_CIPHER camellia_ctr; + + memset(&camellia_ctr, 0, sizeof(EVP_CIPHER)); + camellia_ctr.nid = NID_undef; + camellia_ctr.block_size = CAMELLIA_BLOCK_SIZE; + camellia_ctr.iv_len = CAMELLIA_BLOCK_SIZE; + camellia_ctr.key_len = 16; + camellia_ctr.init = ssh_camellia_ctr_init; + camellia_ctr.cleanup = ssh_camellia_ctr_cleanup; + camellia_ctr.do_cipher = ssh_camellia_ctr; +#ifndef SSH_OLD_EVP + camellia_ctr.flags = EVP_CIPH_CBC_MODE | EVP_CIPH_VARIABLE_LENGTH | EVP_CIPH_ALWAYS_CALL_INIT | EVP_CIPH_CUSTOM_IV; +#endif + return (&camellia_ctr); +#endif } Modified: trunk/ttssh2/ttxssh/ttxssh.v16.vcxproj =================================================================== --- trunk/ttssh2/ttxssh/ttxssh.v16.vcxproj 2022-01-16 15:11:55 UTC (rev 9691) +++ trunk/ttssh2/ttxssh/ttxssh.v16.vcxproj 2022-01-16 15:16:19 UTC (rev 9692) @@ -62,7 +62,7 @@ <ClCompile> <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions> <Optimization>Disabled</Optimization> - <AdditionalIncludeDirectories>$(SolutionDir)..\teraterm\common;$(SolutionDir)..\libs\openssl\include;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\zlib;$(SolutionDir)matcher;$(SolutionDir)putty;$(SolutionDir)argon2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(SolutionDir)..\teraterm\common;$(SolutionDir)..\libs\libressl\include;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\zlib;$(SolutionDir)matcher;$(SolutionDir)putty;$(SolutionDir)argon2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions)</PreprocessorDefinitions> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <FunctionLevelLinking>true</FunctionLevelLinking> @@ -79,9 +79,9 @@ <AdditionalIncludeDirectories>$(SolutionDir)..\teraterm\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ResourceCompile> <Link> - <AdditionalDependencies>common_static.lib;ws2_32.lib;libcrypto.lib;zlibd.lib;ttpcmn.lib;dnsapi.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>common_static.lib;ws2_32.lib;crypto-47.lib;Bcrypt.lib;zlibd.lib;ttpcmn.lib;dnsapi.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> <SuppressStartupBanner>true</SuppressStartupBanner> - <AdditionalLibraryDirectories>$(SolutionDir)..\libs\openssl\out32.dbg;$(SolutionDir)..\libs\zlib;$(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalLibraryDirectories>$(SolutionDir)..\libs\libressl\crypto\Debug;$(SolutionDir)..\libs\zlib;$(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile> <DelayLoadDLLs>user32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> <GenerateDebugInformation>true</GenerateDebugInformation> @@ -106,7 +106,7 @@ <AdditionalOptions>/D"_CRT_SECURE_NO_DEPRECATE" %(AdditionalOptions)</AdditionalOptions> <Optimization>MaxSpeed</Optimization> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> - <AdditionalIncludeDirectories>$(SolutionDir)..\teraterm\common;$(SolutionDir)..\libs\openssl\include;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\zlib;$(SolutionDir)matcher;$(SolutionDir)putty;$(SolutionDir)argon2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(SolutionDir)..\teraterm\common;$(SolutionDir)..\libs\libressl\include;$(SolutionDir)..\teraterm\teraterm;$(SolutionDir)..\libs\zlib;$(SolutionDir)matcher;$(SolutionDir)putty;$(SolutionDir)argon2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> @@ -122,9 +122,9 @@ <AdditionalIncludeDirectories>$(SolutionDir)..\teraterm\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ResourceCompile> <Link> - <AdditionalDependencies>common_static.lib;ws2_32.lib;libcrypto.lib;zlib.lib;ttpcmn.lib;dnsapi.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>common_static.lib;ws2_32.lib;crypto-47.lib;Bcrypt.lib;zlib.lib;ttpcmn.lib;dnsapi.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> <SuppressStartupBanner>true</SuppressStartupBanner> - <AdditionalLibraryDirectories>$(SolutionDir)..\libs\openssl\out32;$(SolutionDir)..\libs\zlib;$(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalLibraryDirectories>$(SolutionDir)..\libs\libressl\crypto\Release;$(SolutionDir)..\libs\zlib;$(SolutionDir)..\teraterm\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile> <DelayLoadDLLs>user32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> <GenerateDebugInformation>true</GenerateDebugInformation> @@ -243,4 +243,4 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project> +</Project> \ No newline at end of file