This is version 4.12 of the open-source based AmiSSL library for Amiga based
operating systems. Version 4.x is a new major release which comes with full
compatibility to the OpenSSL 1.1.x line which includes important security
related fixes, TLSv1.3 and comes with new encryption ciphers which are
required nowadays to connect to modern SSL-based services (e.g. HTTPS).
Backwards Compatibility:
-----------------------
All applications compiled to use most previous versions of AmiSSLv4 will
automatically use this latest version once installed. Unfortunately, due to
some errors that were made in AmiSSL 4.3, applications compiled to
specifically use AmiSSL 4.3 will need to be recompiled with the AmiSSL 4.4
SDK (or newer) in order for them to be able to use this latest version.
Due to fundamental changes in the API between the old AmiSSLv3 and new v4
versions and the large changes between the old OpenSSL 0.9.x and the new
OpenSSL 1.1.x line, applications have to be recompiled with the updated
AmiSSL SDK to take full advantage of the modernized OpenSSL 1.1.x API.
Besides that fundamental change, AmiSSLv4 can be installed on top of a
AmiSSLv3 installation while still ensuring that applications compiled for
AmiSSLv3 will continue to work properly.
Requirements:
------------
- AmigaOS 4.0+/PPC, AmigaOS 3.0+/68020+ or MorphOS
Version 4.12 (11.2.2022):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.1m (14.12.2021) version, which brings security and bug fixes.
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.se/docs/caextract.html dated 1.2.2022.
- Fixed RSA_X931_derive_ex() from not being reachable on OS3.
- Fixed crash after OpenSSL fatal error message requester shown.
- Cleaned up and unified error requesters, removing redundant code.
- Fixed GCC linker alignment for all OS4 binaries.
Version 4.11 (30.10.2021):
------------------------
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.se/docs/caextract.html dated 26.10.2021.
- Legacy entropy generation is now faster on OS3 machines, with the
removal of delays caused by using the vblank timer, which typically
causes AmiSSL to initialise 2 seconds faster (#57).
- Fixed legacy entropy generation to correctly use an entropy factor of 4,
as originally intended, which was broken since AmiSSL 4.3 (#57).
- Entropy generation now uses SHA-256 instead of SHA-1.
- Tweaked OS4 memory allocations to not be locked.
- Fixed issues when redirecting OpenSSL tool output to a file (#58).
- Added Ctrl-C break detection to the OpenSSL tool.
- OS4 binaries now stripped further with --strip-unneeded-rel-relocs.
Version 4.10 (25.08.2021):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.1l (24.08.2021) version, which brings security and bug
fixes, including:
+ Fixed an SM2 Decryption Buffer Overflow (CVE-2021-3711).
+ Fixed various read buffer overruns processing ASN.1 strings
(CVE-2021-3712).
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.haxx.se/ca/ dated 05.07.2021.
- Added Italian installer translation.
Version 4.9 (02.04.2021):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.1k (25.03.2021) version, which brings security and bug fixes.
- Simplified and improved logic in amisslmaster.library for choosing which
libraries to open.
- Installer will now delete redundant AmiSSLv4 libraries where possible.
- Added Swedish installer translation.
- Updated icons with more modern GlowIcons.
- Added sample openssl.cnf file and CA.pl helper script to the installation.
- Added CA.pl documentation to OpenSSL.doc.
Version 4.8 (13.03.2021):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.1j (16.02.2021) version, which brings security and bug fixes.
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.se/docs/caextract.html.
- Fixed corrupted OS3 libamisslauto.a (object name was too long).
- Tweaked SDK examples and OpenSSL includes to be more compatible with
vanilla VBCC and SAS/C compiler installations.
- Restored SAS/C support to AmiSSL autoopen link library code.
- Added native VBCC support to AmiSSL autoopen link library code.
- Added lib/autoinit_amissl_main.c to SDK to allow VBCC, SAS/C and GCC
users to compile their own link library, if required.
Version 4.7 (17.12.2020):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.1i (08.12.2020) version, which brings security and bug fixes.
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.haxx.se/ca/
- Fixed OpenSSL command and https developer example not having execute file
permission bit set on OS3
Version 4.6 (08.06.2020):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.1g (21.04.2020) version, which brings security and bug fixes.
- Tweaks to allow and force Amithlon to use the 68060 target, due to 64-bit
integer math emulation being broken in Amithlon (68080 and MorphOS should
continue to use the more optimal 68020-40 target).
Version 4.5 (29.03.2020):
------------------------
- Dropped FPU usage from 68060 target, allowing 68LC060 and 68EC060
processors to benefit from the 4.4 changes, without crashing.
- Fixed a number of memory leaks, particularly where multithreaded
applications would leak memory over time (although freed on exit).
- All binaries now stripped of debug symbols, improving load time.
- Fixed installer issue for MorphOS (#43).
- Modernized and improved the https example source code.
- Minor improvements/fixes.
Version 4.4 (15.02.2020):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.1d (10.09.2019) version.
- Applications compiled with the AmiSSL 4.3 SDK will need to be recompiled
to use this release (if the AmiSSL 4.0-4.2 SDK was used, those applications
do not need recompiling and will automatically use AmiSSL 4.4).
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.haxx.se/ca/
- Now includes separate 68020-40 and 68060 optimised versions.
- Fixed poor 64-bit integer math performance (including erratic mouse
movement) specific to 68060 processors, caused by software emulation of
instructions not present on 68060 processors.
- Added 68060 optimised 64-bit multiplication routine from vbcc with
permission by Frank Wille.
- Improved BN performance for 68060 (disabled m68k asm replacement as it's
slower due to the above).
- Improved elliptic curve performance for all m68k processors.
- Fixed the OS3 target from crashing on systems with a 68020/030, but
without an FPU (#37).
- Disabled Poly1305 FPU algorithm on Tabor A1222 (#38).
- Fixed TLS 1.3 cipher lookup failures on OS4, caused by compiler bug (#35).
- OpenSSL.doc not updated for the last 14 years, but now automatically
updated for each new release.
- Fixed crashing OpenSSL command on OS3 (#28).
- Fixed OpenSSL command not making path to openssl.cnf correctly (#34).
- Fixed OpenSSL command -out parameter (#33).
- OpenSSL s_server command can now be interrupted with Ctrl-C.
- Install script fixes for MorphOS (#41).
- Fixed include files for vbcc/m68k compilation (#20).
- LhA release archive now packed using an older header level for better
compatibility with some Amiga unpackers.
- Minor improvements/fixes.
Version 4.3 (21.02.2019):
------------------------
- Updated OpenSSL backend to latest OpenSSL 1.1.1a (20.11.2018) version
including newest TLS 1.2 and TLS 1.3 protocol/cipher versions and general
compatibility.
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.haxx.se/ca/
- Minor improvements/fixes.
Version 4.2 (07.03.2018):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.0g (02.11.2017) version.
- Updated root certificates to latest Mozilla-based bundle provided
by https://curl.haxx.se/ca/
- Fixed https.c example cleanup code for non-OS4 targets (#18)
- Reinstated AmigaOS multithreading support and semaphore protection, using
the new thread API introduced in OpenSSL 1.1.0 (#17)
- Include `ppcinline/macros.h` which contains all `LPXX()` macros to use the
AmiSSL includes for MorphOS.
- Minor improvements/fixes.
Version 4.1 (13.03.2017):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.0e (16.02.2017) version.
- MorphOS can now be selected as an install target with the OS3/m68k version
being installed. For a native PPC version we would require some work to be
done by some talented MorphOS developers.
- Added some m68k asm replacement code for potentially speeding up BN
calculation routines.
- Added AmiUpdate compatibility.
- Included a newlib compiled version of libamisslauto.a.
- Minor improvements/Fixes for install script.
Version 4.0 (07.02.2017):
------------------------
- Updated OpenSSL backend to full compatibility to latest
OpenSSL 1.1.0d (26 Jan 2017) version.
- Updated root certificate bundle to latest Mozilla-based bundle
provided by https://curl.haxx.se/ca/
- Removed whole IsCipherAvailable() API and reenabled IDEA, MDC2 and RC5
ciphers as the protecting patents have expired during 2012 and 2015.
- Enabled all PPC ASM optimizations in OpenSSL.
- Switched build system to exclusively use GCC-based cross compilers for all
platforms using proper baserel support for using the amissl shared library
in a multi-application environment.
General
-------
AmiSSL is a shared library package, port of OpenSSL which is "an open source
project that provides a robust, commercial-grade, and full-featured toolkit
for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL)
protocols. It is also a general-purpose cryptography library."
AmiSSL contains three major components: the libraries, the certificate files
and a port of the OpenSSL tool.
Libraries
---------
The main library is "amisslmaster.library" which acts as a proxy which opens
the appropriate AmiSSL library (with compatibility to a certain OpenSSL
version) for the programs using AmiSSL. It is possible to have different
AmiSSL versions installed at the same time since amisslmaster.library will
make sure that the correct libraries are opened. However, since a certain
version of amisslmaster.library cannot know about the future releases of
AmiSSL, it is important that the latest version of amisslmaster.library is
always installed.
The amisslmaster.library was introduced with AmiSSL v2, but since none of
AmiSSL v1 file names collide with later AmiSSL releases, they can coexist on
the same system with the later versions.
The rest of the libraries are found inside the AmiSSL directory (assigned to
AMISSL:Libs/AmiSSL). With the exception of AmiSSL v1 libraries there, none of
them should be opened directly, but through amisslmaster.library. The
technical details on this can be found in AmiSSL SDK documentation (see
https://github.com/jens-maus/amissl/blob/master/dist/README-SDK).
The previous versions of libraries in AmiSSL directory should be kept when a
new version of AmiSSL is released since they may still be used. For example,
IBrowse v2.3 uses AmiSSLv2 libraries through amisslmaster.library. These
libraries are named "AmiSSL:Libs/AmiSSL/amissl_v2.library",
"AmiSSL:Libs/AmiSSL/blowfish_v2.library", etc. and are based on OpenSSL
0.9.6g. The first release of AmiSSLv3 is based on OpenSSL 0.9.7g, latest
available at the time. It includes "AmiSSL:Libs/AmiSSL/amissl_v097g.library"
(all other libraries like blowfish, cast etc are now included in it and the
name reflects the OpenSSL version number). Since OpenSSL 0.9.6g and 0.9.7g
have incompatible API's and public structures, when IBrowse v2.3 tries to open
AmiSSL through amisslmaster.library v3, amisslmaster.library will honor its
request and open AmiSSLv2 libraries even though AmiSSLv3 library is available.
The same applies to AmiSSLv4, the successor of AmiSSLv3.
Another example: suppose that a program is compiled for OpenSSL 0.9.7g API.
When it asks amisslmaster.library to open AmiSSL with that API,
amisslmaster.library will open "AmiSSL:Libs/AmiSSL/amissl_097g.library". If a
bugfix version of OpenSSL 0.9.7g called 0.9.7h with compatible API is
released, AmiSSL could be updated to include
"AmiSSL:Libs/AmiSSL/amissl_097h.library". The amisslmaster.library would then
open "amissl_097h.library" on behalf of the program even though it was
compiled for and asked for version 0.9.7g. The program would thus benefit from
the fixed version without having to be recompiled.
Certificates
------------
AmiSSL includes root certificate files which are installed into "AmiSSL:Certs"
directory (Note: the AmiSSL: assign must exist - it is usually added to
S:User-Startup by the install script).
Each AmiSSL version comes with a full set of root certificates and has those
that have expired removed. If you had some earlier versions of AmiSSL
installed, it is suggested that the old AmiSSL:Certs directory is replaced
with the certs directory from the latest AmiSSL archive (The installer script
should usually take care of that). Please note that it is not suggested to
manually add own certificates to "AmiSSL:Certs". You should rather add and
maintain them in "AmiSSL:UserCerts" so that no future AmiSSL release will
delete your own certificates. In addition, please note that usually
applications providing SSL/TLS functionality should provide you a way to
install your own certificates in this directory path.
The OpenSSL command-line tool
-----------------------------
A port of the OpenSSL command-line tool is also included and usually installed
to AmiSSL: during installation. It is a "command line tool for using the
various cryptography functions of OpenSSL's crypto library from the shell".
The documentation for the OpenSSL tool is included in the archive and can also
be reviewed online: https://www.openssl.org/docs/man1.1.1/man1/openssl.html.
A sample openssl.cnf file is also installed to AmiSSL:, if it doesn't already
exist, along with the CA.pl helper script, both of which aid the certificate
generation features of the OpenSSL tool.
IMPORTANT NOTE:
--------------
This release comes with binaries for the AmigaOS4/PPC and AmigaOS3/m68k
platform only. Unfortunately, due to lack of motivated developers we couldn't
provide native binaries for the MorphOS/PPC or AROS (PPC, i386, x86_64)
platform in time. If you are, however, interested in seeing AmiSSL v4 being
ported for these other Amiga-based platforms, please try to find motivated and
talented developers who could join our team as proper maintainers for these
alternative platforms. In addition, if you are a MorphOS or AROS developer
yourself, feel free to send proper pull requests to see your platform
supported in one of the next releases or please consider joining our team.
Legal information
-----------------
AmiSSL v1 Copyright (c) 1999-2006 Andrija Antonijevic.
AmiSSL v2/v3 Copyright (c) 2002-2006 Andrija Antonijevic and Stefan Burstroem.
AmiSSL v4 Copyright (c) 2014-2021 AmiSSL Open Source Team.
All Rights Reserved.
AmiSSL IS PROVIDED "AS IS" AND ANY WARRANTIES, EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
AmiSSL AUTHORS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The OpenSSL toolkit itself stays under a dual license, i.e. both the
conditions of the OpenSSL License and the original SSLeay license apply to
the toolkit. See below for the actual license texts.
OpenSSL License
---------------
====================================================================
Copyright (c) 1998-2021 The OpenSSL Project. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. All advertising materials mentioning features or use of this
software must display the following acknowledgment:
"This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
endorse or promote products derived from this software without
prior written permission. For written permission, please contact
openssl-coreopenssl.org.
5. Products derived from this software may not be called "OpenSSL"
nor may "OpenSSL" appear in their names without prior written
permission of the OpenSSL Project.
6. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/)"
THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
====================================================================
This product includes cryptographic software written by Eric Young
(eaycryptsoft.com). This product includes software written by Tim
Hudson (tjhcryptsoft.com).
Original SSLeay License
-----------------------
Copyright (C) 1995-1998 Eric Young (eaycryptsoft.com)
All rights reserved.
This package is an SSL implementation written
by Eric Young (eaycryptsoft.com).
The implementation was written so as to conform with Netscapes SSL.
This library is free for commercial and non-commercial use as long as
the following conditions are aheared to. The following conditions
apply to all code found in this distribution, be it the RC4, RSA,
lhash, DES, etc., code; not just the SSL code. The SSL documentation
included with this distribution is covered by the same copyright terms
except that the holder is Tim Hudson (tjhcryptsoft.com).
Copyright remains Eric Young's, and as such any Copyright notices in
the code are not to be removed.
If this package is used in a product, Eric Young should be given attribution
as the author of the parts of the library used.
This can be in the form of a textual message at program startup or
in documentation (online or textual) provided with the package.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
"This product includes cryptographic software written by
Eric Young (eaycryptsoft.com)"
The word 'cryptographic' can be left out if the rouines from the library
being used are not cryptographic related :-).
4. If you include any Windows specific code (or a derivative thereof) from
the apps directory (application code) you must include an acknowledgement:
"This product includes software written by Tim Hudson (tjhcryptsoft.com)"
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
The licence and distribution terms for any publically available version or
derivative of this code cannot be changed. i.e. this code cannot simply be
copied and put under another distribution licence
[including the GNU Public Licence.]
|