2024-10-31 23:05 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002583NetSurfAmiga-specificpublic2019-07-19 08:30
ReporterChris Young 
Assigned ToChris Young 
SeveritymajorReproducibilityalways 
StatusclosedResolutionfixed 
PlatformAmigaOSAmigaOSOS Version3.5
Product Version3.8 
Target Version3.9Fixed in Version3.9 
Summary0002583: SSL not working in OS3 build
DescriptionSSL is not working in OS3 build since OpenSSL upgrade.
TagsNo tags attached.
Fixed in CI build #4584
Reported in CI build #4250
URL of problem pagehttps://www.howsmyssl.com
Attached Files
  • diff file icon openssl.diff (177,615 bytes) 2018-07-23 22:01 -
    Only in openssl-1.1.0g/apps: app_rand.d
    Only in openssl-1.1.0g/apps: app_rand.o
    diff -upr openssl-1.1.0g/apps/apps.c /home/chris/amissl/openssl/apps/apps.c
    --- openssl-1.1.0g/apps/apps.c	2018-07-23 22:47:02.293423409 +0100
    +++ /home/chris/amissl/openssl/apps/apps.c	2018-07-23 20:12:10.859081687 +0100
    @@ -65,6 +65,40 @@ static int set_multi_opts(unsigned long
     
     int app_init(long mesgwin);
     
    +#if defined(OPENSSL_SYS_AMIGA)
    +
    +#if !defined(__MORPHOS__)
    +#include <sys/select.h>
    +#endif
    +
    +#include <internal/amissl.h>
    +
    +#define XMKSTR(x) #x
    +#define MKSTR(x)  XMKSTR(x)
    +
    +// stack cookie for shell v45+
    +static const char USED_VAR openssl_stack_size[] = "$STACK:" MKSTR(MIN_STACKSIZE) "\n";
    +
    +#if defined(__amigaos4__)
    +  long __stack_size = MIN_STACKSIZE;        // set the minimum startup stack for clib2
    +  long __default_pool_size = 128*1024;   // set the pool & puddle size for the
    +  long __default_puddle_size = 32*1024;  // AllocPool() functions to something more reasonable.
    +#elif defined(__SASC) || defined(__GNUC__)
    +  #if defined(__libnix__) || defined(__SASC)
    +  // GCC (libnix) supports the same as SAS/C!
    +  long NEAR __stack = MIN_STACKSIZE;
    +  long NEAR __buffsize = 8192;
    +  long NEAR _MSTEP = 16384;
    +  #else
    +  long __stack_size = MIN_STACKSIZE;    // set the minimum startup stack for clib2
    +  #endif
    +#elif defined(__VBCC__) /* starting with VBCC 0.8 release */
    +  long __stack = MIN_STACKSIZE;
    +#else
    +  #error "initial stack/memory specification failed"
    +#endif
    +#endif
    +
     int chopup_args(ARGS *arg, char *buf)
     {
         int quoted;
    @@ -1968,6 +2002,13 @@ static X509_CRL *load_crl_crldp(STACK_OF
         return NULL;
     }
     
    +#if defined(OPENSSL_SYS_AMIGA)
    +static void D_POINT_free(DIST_POINT *a)
    +{
    +  DIST_POINT_free(a);
    +}
    +#endif
    +
     /*
      * Example of downloading CRLs from CRLDP: not usable for real world as it
      * always downloads, doesn't support non-blocking I/O and doesn't cache
    @@ -1987,7 +2028,11 @@ static STACK_OF(X509_CRL) *crls_http_cb(
         x = X509_STORE_CTX_get_current_cert(ctx);
         crldp = X509_get_ext_d2i(x, NID_crl_distribution_points, NULL, NULL);
         crl = load_crl_crldp(crldp);
    +    #if defined(OPENSSL_SYS_AMIGA)
    +    sk_DIST_POINT_pop_free(crldp, D_POINT_free);
    +    #else
         sk_DIST_POINT_pop_free(crldp, DIST_POINT_free);
    +    #endif
         if (!crl) {
             sk_X509_CRL_free(crls);
             return NULL;
    @@ -1996,7 +2041,11 @@ static STACK_OF(X509_CRL) *crls_http_cb(
         /* Try to download delta CRL */
         crldp = X509_get_ext_d2i(x, NID_freshest_crl, NULL, NULL);
         crl = load_crl_crldp(crldp);
    +    #if defined(OPENSSL_SYS_AMIGA)
    +    sk_DIST_POINT_pop_free(crldp, D_POINT_free);
    +    #else
         sk_DIST_POINT_pop_free(crldp, DIST_POINT_free);
    +    #endif
         if (crl)
             sk_X509_CRL_push(crls, crl);
         return crls;
    @@ -2191,7 +2240,7 @@ double app_tminterval(int stop, int user
         return (ret);
     }
     
    -#elif defined(_SC_CLK_TCK)      /* by means of unistd.h */
    +#elif defined(_SC_CLK_TCK) && !defined(OPENSSL_SYS_AMIGA)      /* by means of unistd.h */
     # include <sys/times.h>
     
     double app_tminterval(int stop, int usertime)
    @@ -2221,14 +2270,17 @@ double app_tminterval(int stop, int user
     double app_tminterval(int stop, int usertime)
     {
         double ret = 0;
    +    #if !defined(OPENSSL_SYS_AMIGA)
         struct rusage rus;
    +    #endif
         struct timeval now;
         static struct timeval tmstart;
    -#if !defined(OPENSSL_SYS_AMIGAOS3)
    +
    +    #if !defined(OPENSSL_SYS_AMIGA)
         if (usertime)
             getrusage(RUSAGE_SELF, &rus), now = rus.ru_utime;
         else
    -#endif
    +    #endif
             gettimeofday(&now, NULL);
     
         if (stop == TM_START)
    @@ -2596,7 +2648,13 @@ void wait_for_async(SSL *s)
     }
     
     /* if OPENSSL_SYS_WINDOWS is defined then so is OPENSSL_SYS_MSDOS */
    -#if defined(OPENSSL_SYS_MSDOS)
    +#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_AMIGA)
    +
    +#ifdef OPENSSL_SYS_AMIGA
    +#include <proto/dos.h>
    +static int _kbhit(void) { return(WaitForChar(Input(), 0)); }
    +#endif
    +
     int has_stdin_waiting(void)
     {
     # if defined(OPENSSL_SYS_WINDOWS)
    Only in openssl-1.1.0g/apps: apps.c.orig
    Only in openssl-1.1.0g/apps: apps.d
    Only in openssl-1.1.0g/apps: apps.o
    Only in openssl-1.1.0g/apps: asn1pars.d
    Only in openssl-1.1.0g/apps: asn1pars.o
    diff -upr openssl-1.1.0g/apps/ca.c /home/chris/amissl/openssl/apps/ca.c
    --- openssl-1.1.0g/apps/ca.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/apps/ca.c	2018-07-23 20:12:10.867104534 +0100
    @@ -33,11 +33,15 @@
     #  else
     #   include <unixlib.h>
     #  endif
    -# elif !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_WINDOWS)
    +# elif !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_AMIGA)
     #  include <sys/file.h>
     # endif
     #endif
     
    +#ifdef OPENSSL_SYS_AMIGA
    +#include <proto/dos.h>
    +#endif /* OPENSSL_SYS_AMIGA */
    +
     #include "apps.h"
     
     #ifndef W_OK
    @@ -998,11 +1002,21 @@ end_of_options:
     
                 strcpy(buf[2], outdir);
     
    +#ifndef OPENSSL_SYS_AMIGA
     #ifndef OPENSSL_SYS_VMS
                 OPENSSL_strlcat(buf[2], "/", sizeof(buf[2]));
     #endif
     
                 n = (char *)&(buf[2][strlen(buf[2])]);
    +#else /* OPENSSL_SYS_AMIGA */
    +            if (AddPart(buf[2], "z", sizeof(buf[2])))
    +            {
    +              n = &buf[2][strlen(buf[2])];
    +              *n-- = '\0'; /* Remove the 'z' that was just added to the end */
    +            }
    +            else
    +              n = &buf[2][strlen(buf[2])];
    +#endif /* !OPENSSL_SYS_AMIGA */
                 if (j > 0) {
                     for (k = 0; k < j; k++) {
                         if (n >= &(buf[2][sizeof(buf[2])]))
    Only in openssl-1.1.0g/apps: ca.d
    Only in openssl-1.1.0g/apps: ca.o
    Only in openssl-1.1.0g/apps: CA.pl
    Only in openssl-1.1.0g/apps: ciphers.d
    Only in openssl-1.1.0g/apps: ciphers.o
    Only in openssl-1.1.0g/apps: cms.d
    Only in openssl-1.1.0g/apps: cms.o
    Only in openssl-1.1.0g/apps: crl2p7.d
    Only in openssl-1.1.0g/apps: crl2p7.o
    Only in openssl-1.1.0g/apps: crl.d
    Only in openssl-1.1.0g/apps: crl.o
    Only in openssl-1.1.0g/apps: dgst.d
    Only in openssl-1.1.0g/apps: dgst.o
    Only in openssl-1.1.0g/apps: dhparam.d
    Only in openssl-1.1.0g/apps: dhparam.o
    Only in openssl-1.1.0g/apps: dsa.d
    Only in openssl-1.1.0g/apps: dsa.o
    Only in openssl-1.1.0g/apps: dsaparam.d
    Only in openssl-1.1.0g/apps: dsaparam.o
    Only in openssl-1.1.0g/apps: ec.d
    Only in openssl-1.1.0g/apps: ec.o
    Only in openssl-1.1.0g/apps: ecparam.d
    Only in openssl-1.1.0g/apps: ecparam.o
    Only in openssl-1.1.0g/apps: enc.d
    Only in openssl-1.1.0g/apps: enc.o
    Only in openssl-1.1.0g/apps: engine.d
    Only in openssl-1.1.0g/apps: engine.o
    Only in openssl-1.1.0g/apps: errstr.d
    Only in openssl-1.1.0g/apps: errstr.o
    Only in openssl-1.1.0g/apps: gendsa.d
    Only in openssl-1.1.0g/apps: gendsa.o
    Only in openssl-1.1.0g/apps: genpkey.d
    Only in openssl-1.1.0g/apps: genpkey.o
    Only in openssl-1.1.0g/apps: genrsa.d
    Only in openssl-1.1.0g/apps: genrsa.o
    Only in openssl-1.1.0g/apps: nseq.d
    Only in openssl-1.1.0g/apps: nseq.o
    Only in openssl-1.1.0g/apps: ocsp.d
    Only in openssl-1.1.0g/apps: ocsp.o
    Only in openssl-1.1.0g/apps: openssl
    diff -upr openssl-1.1.0g/apps/openssl.c /home/chris/amissl/openssl/apps/openssl.c
    --- openssl-1.1.0g/apps/openssl.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/apps/openssl.c	2018-07-23 20:12:10.883150228 +0100
    @@ -108,6 +108,10 @@ static char *make_config_name()
         return p;
     }
     
    +#if defined(OPENSSL_SYS_AMIGA)
    +const char * const ProgramVersion = "\0$VER: " OPENSSL_VERSION_TEXT "\r\n";
    +#endif /* OPENSSL_SYS_AMIGA */
    +
     int main(int argc, char *argv[])
     {
         FUNCTION f, *fp;
    Only in openssl-1.1.0g/apps: openssl.d
    Only in openssl-1.1.0g/apps: openssl.o
    diff -upr openssl-1.1.0g/apps/opt.c /home/chris/amissl/openssl/apps/opt.c
    --- openssl-1.1.0g/apps/opt.c	2018-07-23 22:47:02.093795895 +0100
    +++ /home/chris/amissl/openssl/apps/opt.c	2018-07-23 20:12:10.883150228 +0100
    @@ -353,11 +353,6 @@ int opt_long(const char *value, long *re
     #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \
         defined(INTMAX_MAX) && defined(UINTMAX_MAX)
     
    -#if defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4)
    -# define strtoimax strtol
    -# define strtoumax strtoul
    -#endif
    -
     /* Parse an intmax_t, put it into *result; return 0 on failure, else 1. */
     int opt_imax(const char *value, intmax_t *result)
     {
    Only in openssl-1.1.0g/apps: opt.d
    Only in openssl-1.1.0g/apps: opt.o
    Only in openssl-1.1.0g/apps: passwd.d
    Only in openssl-1.1.0g/apps: passwd.o
    Only in openssl-1.1.0g/apps: pkcs12.d
    Only in openssl-1.1.0g/apps: pkcs12.o
    Only in openssl-1.1.0g/apps: pkcs7.d
    Only in openssl-1.1.0g/apps: pkcs7.o
    Only in openssl-1.1.0g/apps: pkcs8.d
    Only in openssl-1.1.0g/apps: pkcs8.o
    Only in openssl-1.1.0g/apps: pkey.d
    Only in openssl-1.1.0g/apps: pkey.o
    Only in openssl-1.1.0g/apps: pkeyparam.d
    Only in openssl-1.1.0g/apps: pkeyparam.o
    Only in openssl-1.1.0g/apps: pkeyutl.d
    Only in openssl-1.1.0g/apps: pkeyutl.o
    Only in openssl-1.1.0g/apps: prime.d
    Only in openssl-1.1.0g/apps: prime.o
    Only in openssl-1.1.0g/apps: progs.h
    Only in openssl-1.1.0g/apps: rand.d
    Only in openssl-1.1.0g/apps: rand.o
    Only in openssl-1.1.0g/apps: rehash.d
    Only in openssl-1.1.0g/apps: rehash.o
    Only in openssl-1.1.0g/apps: req.d
    Only in openssl-1.1.0g/apps: req.o
    Only in openssl-1.1.0g/apps: rsa.d
    Only in openssl-1.1.0g/apps: rsa.o
    Only in openssl-1.1.0g/apps: rsautl.d
    Only in openssl-1.1.0g/apps: rsautl.o
    diff -upr openssl-1.1.0g/apps/s_apps.h /home/chris/amissl/openssl/apps/s_apps.h
    --- openssl-1.1.0g/apps/s_apps.h	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/apps/s_apps.h	2018-07-23 20:12:10.891173074 +0100
    @@ -17,6 +17,10 @@
     # define _kbhit kbhit
     #endif
     
    +#if defined(OPENSSL_SYS_AMIGA) && defined(__amigaos4__) && defined(__CLIB2__) && defined(__NO_NET_API) && !defined(FD_SET)
    +#include <sys/select.h>
    +#endif
    +
     #if defined(OPENSSL_SYS_VMS) && !defined(FD_SET)
     /*
      * VAX C does not defined fd_set and friends, but it's actually quite simple
    Only in openssl-1.1.0g/apps: s_cb.d
    Only in openssl-1.1.0g/apps: s_cb.o
    diff -upr openssl-1.1.0g/apps/s_client.c /home/chris/amissl/openssl/apps/s_client.c
    --- openssl-1.1.0g/apps/s_client.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/apps/s_client.c	2018-07-23 20:12:10.899195921 +0100
    @@ -827,7 +827,7 @@ int s_client_main(int argc, char **argv)
         ENGINE *ssl_client_engine = NULL;
     #endif
         ENGINE *e = NULL;
    -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
    +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_AMIGA)
         struct timeval tv;
     #endif
         char *servername = NULL;
    @@ -2166,7 +2166,7 @@ int s_client_main(int argc, char **argv)
             ssl_pending = read_ssl && SSL_has_pending(con);
     
             if (!ssl_pending) {
    -#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS)
    +#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_AMIGA)
                 if (tty_on) {
                     /*
                      * Note that select() returns when read _would not block_,
    @@ -2200,7 +2200,7 @@ int s_client_main(int argc, char **argv)
                  * if you do have a cast then you can either go for (int *) or
                  * (void *).
                  */
    -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
    +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_AMIGA)
                 /*
                  * Under Windows/DOS we make the assumption that we can always
                  * write to the tty: therefore if we need to write to the tty we
    @@ -2304,7 +2304,7 @@ int s_client_main(int argc, char **argv)
                     goto shut;
                 }
             }
    -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VMS)
    +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_AMIGA)
             /* Assume Windows/DOS/BeOS can always write */
             else if (!ssl_pending && write_tty)
     #else
    @@ -2394,7 +2394,7 @@ int s_client_main(int argc, char **argv)
                 }
             }
     /* OPENSSL_SYS_MSDOS includes OPENSSL_SYS_WINDOWS */
    -#if defined(OPENSSL_SYS_MSDOS)
    +#if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_AMIGA)
             else if (has_stdin_waiting())
     #else
             else if (FD_ISSET(fileno_stdin(), &readfds))
    Only in openssl-1.1.0g/apps: s_client.d
    Only in openssl-1.1.0g/apps: s_client.o
    Only in openssl-1.1.0g/apps: sess_id.d
    Only in openssl-1.1.0g/apps: sess_id.o
    Only in openssl-1.1.0g/apps: smime.d
    Only in openssl-1.1.0g/apps: smime.o
    diff -upr openssl-1.1.0g/apps/speed.c /home/chris/amissl/openssl/apps/speed.c
    --- openssl-1.1.0g/apps/speed.c	2018-07-23 22:47:02.077499772 +0100
    +++ /home/chris/amissl/openssl/apps/speed.c	2018-07-23 20:12:10.911230192 +0100
    @@ -44,6 +44,10 @@
     # include OPENSSL_UNISTD
     #endif
     
    +#ifdef OPENSSL_SYS_AMIGA
    +# include <sys/time.h>
    +#endif
    +
     #if defined(_WIN32)
     # include <windows.h>
     #endif
    @@ -111,14 +115,8 @@
     #endif
     #include <openssl/modes.h>
     
    -
    -#if defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4)
    -# define HAVE_FORK 0
    -# undef SIGALRM
    -#endif
    -
     #ifndef HAVE_FORK
    -# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS)
    +# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_AMIGA)
     #  define HAVE_FORK 0
     # else
     #  define HAVE_FORK 1
    @@ -346,10 +344,10 @@ static double Time_F(int s)
     static double Time_F(int s)
     {
         double ret = app_tminterval(s, usertime);
    -    #ifdef SIGALRM
    +#if defined(SIGALRM) && !defined(OPENSSL_SYS_AMIGA)
         if (s == STOP)
             alarm(0);
    -    #endif
    +#endif
         return ret;
     }
     #endif
    @@ -586,7 +584,7 @@ static OPT_PAIR ecdh_choices[] = {
     };
     #endif
     
    -#ifndef SIGALRM
    +#if !defined(SIGALRM) && !defined(OPENSSL_SYS_AMIGA)
     # define COND(d) (count < (d))
     # define COUNT(d) (d)
     #else
    @@ -2832,7 +2830,7 @@ int speed_main(int argc, char **argv)
     
     static void print_message(const char *s, long num, int length)
     {
    -#ifdef SIGALRM
    +#if defined(SIGALRM) && !defined(OPENSSL_SYS_AMIGA)
         BIO_printf(bio_err,
                    mr ? "+DT:%s:%d:%d\n"
                    : "Doing %s for %ds on %d size blocks: ", s, SECONDS, length);
    @@ -2849,7 +2847,7 @@ static void print_message(const char *s,
     static void pkey_print_message(const char *str, const char *str2, long num,
                                    int bits, int tm)
     {
    -#ifdef SIGALRM
    +#if defined(SIGALRM) && !defined(OPENSSL_SYS_AMIGA)
         BIO_printf(bio_err,
                    mr ? "+DTP:%d:%s:%s:%d\n"
                    : "Doing %d bit %s %s's for %ds: ", bits, str, str2, tm);
    Only in openssl-1.1.0g/apps: speed.d
    Only in openssl-1.1.0g/apps: speed.o
    Only in openssl-1.1.0g/apps: spkac.d
    Only in openssl-1.1.0g/apps: spkac.o
    Only in openssl-1.1.0g/apps: srp.d
    Only in openssl-1.1.0g/apps: srp.o
    diff -upr openssl-1.1.0g/apps/s_server.c /home/chris/amissl/openssl/apps/s_server.c
    --- openssl-1.1.0g/apps/s_server.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/apps/s_server.c	2018-07-23 20:12:10.899195921 +0100
    @@ -134,6 +134,11 @@ static int async = 0;
     
     static const char *session_id_prefix = NULL;
     
    +#ifdef OPENSSL_SYS_AMIGA
    +#include <proto/dos.h>
    +static int _kbhit(void) { return(WaitForChar(Input(), 0)); }
    +#endif
    +
     #ifndef OPENSSL_NO_DTLS
     static int enable_timeouts = 0;
     static long socket_mtu;
    @@ -2008,7 +2013,7 @@ static int sv_body(int s, int stype, uns
         SSL *con = NULL;
         BIO *sbio;
         struct timeval timeout;
    -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
    +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_AMIGA)
         struct timeval tv;
     #else
         struct timeval *timeoutp;
    @@ -2127,7 +2132,7 @@ static int sv_body(int s, int stype, uns
     
             if (!read_from_sslcon) {
                 FD_ZERO(&readfds);
    -#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS)
    +#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_AMIGA)
                 openssl_fdset(fileno_stdin(), &readfds);
     #endif
                 openssl_fdset(s, &readfds);
    @@ -2138,7 +2143,7 @@ static int sv_body(int s, int stype, uns
                  * if you do have a cast then you can either go for (int *) or
                  * (void *).
                  */
    -#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
    +#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_AMIGA)
                 /*
                  * Under DOS (non-djgpp) and Windows we can't select on stdin:
                  * only on sockets. As a workaround we timeout the select every
    Only in openssl-1.1.0g/apps: s_server.d
    Only in openssl-1.1.0g/apps: s_server.o
    Only in openssl-1.1.0g/apps: s_socket.d
    Only in openssl-1.1.0g/apps: s_socket.o
    Only in openssl-1.1.0g/apps: s_time.d
    Only in openssl-1.1.0g/apps: s_time.o
    Only in openssl-1.1.0g/apps: ts.d
    Only in openssl-1.1.0g/apps: tsget
    Only in openssl-1.1.0g/apps: ts.o
    Only in openssl-1.1.0g/apps: verify.d
    Only in openssl-1.1.0g/apps: verify.o
    Only in openssl-1.1.0g/apps: version.d
    Only in openssl-1.1.0g/apps: version.o
    Only in openssl-1.1.0g/apps: x509.d
    Only in openssl-1.1.0g/apps: x509.o
    Only in openssl-1.1.0g/: configdata.pm
    diff -upr openssl-1.1.0g/Configurations/10-main.conf /home/chris/amissl/openssl/Configurations/10-main.conf
    --- openssl-1.1.0g/Configurations/10-main.conf	2017-11-02 14:29:01.000000000 +0000
    +++ /home/chris/amissl/openssl/Configurations/10-main.conf	2018-07-23 20:12:10.831001723 +0100
    @@ -1891,4 +1891,59 @@ sub vms_info {
             pointer_size     => sub { return vms_info(64)->{pointer_size} },
         },
     
    +#### Amiga-OS3 Configurations
    +    "amiga-os3" => {
    +        cc               => "gcc",
    +        ranlib           => "m68k-amigaos-ranlib",
    +        cflags           => picker(default => "-mcrt=clib2 -m68020-60 -DNO_INLINE_VARARGS -D__NO_NET_API -DB_ENDIAN -DOPENSSL_SYS_AMIGA -D__amigaos3__ -DOPENSSL_NO_STDIO -D__C_MACROS__ -I../../include -I../../include/netinclude -W -Wall -Wno-unused",
    +                                   debug   => "-O0 -g -gstabs -DBN_DEBUG -DCONF_DEBUG -DDEBUG",
    +                                   release => "-O1 -DNDEBUG"), # only -O1 and only without omit-frame-pointer works with GCC 2.95.3. See https://github.com/jens-maus/amissl/issues/8
    +        lib_cflags       => "-resident32 -DAMISSL_COMPILE -I../../libcmt",
    +        bin_cflags       => "-I../../openssl",
    +        thread_scheme    => "amissl",
    +        sys_id           => "AMIGA",
    +        bn_ops           => "THIRTY_TWO_BIT BN_LLONG RC4_CHAR EXPORT_VAR_AS_FN",
    +        bn_asm_src       => "asm/bn_m68k.s",
    +        shared_extension => ".library",
    +        shared_ldflag    => add("-mcrt=clib2 -resident32"),
    +        ex_libs          => add('../libamisslauto.a ../libamisslstubs.a ../libamissldebug.a -lm'),
    +    },
    +
    +#### Amiga-OS4 Configurations
    +    "amiga-os4" => {
    +        inherit_from     => [ asm("ppc32_asm") ],
    +        perlasm_scheme   => "linux32",
    +        cc               => "gcc-4.0.4",
    +        ranlib           => "ppc-amigaos-ranlib",
    +        cflags           => picker(default => "-mcrt=clib2 -mcpu=powerpc -mstrict-align -D__USE_INLINE__ -D__NEW_TIMEVAL_DEFINITION_USED__ -D__NO_NET_API -DB_ENDIAN -DOPENSSL_SYS_AMIGA -D__amigaos4__ -DOPENSSL_NO_STDIO -D__C_MACROS__ -I../../include -W -Wall -Wno-unused-parameter -Wno-missing-field-initializers",
    +                                   debug   => "-O2 -g -gstabs -DBN_DEBUG -DCONF_DEBUG -DDEBUG",
    +                                   release => "-O3 -fomit-frame-pointer -DNDEBUG"),
    +        lib_cflags       => "-mbaserel -mcheck68kfuncptr -DAMISSL_COMPILE -I../../libcmt",
    +        bin_cflags       => "-I../../openssl",
    +        thread_scheme    => "amissl",
    +        sys_id           => "AMIGA",
    +        bn_ops           => "THIRTY_TWO_BIT BN_LLONG RC4_CHAR EXPORT_VAR_AS_FN",
    +        shared_extension => ".library",
    +        shared_ldflag    => add("-mcrt=clib2"),
    +        ex_libs          => add('../libamisslauto.a ../libamisslstubs.a ../libamissldebug.a -lm'),
    +    },
    +
    +#### Amiga-MOS Configurations
    +    "amiga-mos" => {
    +        #inherit_from     => [ asm("ppc32_asm") ],
    +        #perlasm_scheme   => "linux32",
    +        cc               => "gcc",
    +        ranlib           => "ppc-morphos-ranlib",
    +        cflags           => picker(default => "-mcpu=powerpc -mstrict-align -noixemul -DNO_INLINE_VARARGS -D__NO_NET_API -DB_ENDIAN -DOPENSSL_SYS_AMIGA -D__MORPHOS__ -DOPENSSL_NO_STDIO -D__C_MACROS__ -I../../include -W -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_PPCINLINE_SOCKET_H -D_INET_H_",
    +                                   debug   => "-O0 -g -gstabs -DBN_DEBUG -DCONF_DEBUG -DDEBUG",
    +                                   release => "-O3 -fomit-frame-pointer -DNDEBUG"),
    +        lib_cflags       => "-mresident32 -DAMISSL_COMPILE -I../../libcmt",
    +        bin_cflags       => "-I../../openssl",
    +        lflags           => "-noixemul",
    +        thread_scheme    => "amissl",
    +        sys_id           => "AMIGA",
    +        bn_ops           => "THIRTY_TWO_BIT BN_LLONG RC4_CHAR EXPORT_VAR_AS_FN",
    +        shared_extension => ".library",
    +        ex_libs          => add('../libamisslauto.a ../libamisslstubs.a ../libamissldebug.a -lm'),
    +    },
     );
    Only in openssl-1.1.0g/Configurations: 50-amigaos.conf
    Only in openssl-1.1.0g/Configurations: 50-riscos.conf
    Only in openssl-1.1.0g/Configurations: 50-windows.conf
    diff -upr openssl-1.1.0g/Configurations/unix-Makefile.tmpl /home/chris/amissl/openssl/Configurations/unix-Makefile.tmpl
    --- openssl-1.1.0g/Configurations/unix-Makefile.tmpl	2017-11-02 14:29:01.000000000 +0000
    +++ /home/chris/amissl/openssl/Configurations/unix-Makefile.tmpl	2018-07-23 20:12:10.839024570 +0100
    @@ -179,7 +179,7 @@ CFLAGS_Q={- $cflags2 =~ s|([\\"])|\\$1|g
     LDFLAGS= {- $target{lflags} -}
     PLIB_LDFLAGS= {- $target{plib_lflags} -}
     EX_LIBS= {- $target{ex_libs} -} {- $config{ex_libs} -}
    -LIB_CFLAGS={- $target{shared_cflag} || "" -}
    +LIB_CFLAGS={- join(" ", $target{lib_cflags}, $target{shared_cflag}) || "" -}
     LIB_LDFLAGS={- $target{shared_ldflag}." ".$config{shared_ldflag} -}
     DSO_CFLAGS={- $target{shared_cflag} || "" -}
     DSO_LDFLAGS=$(LIB_LDFLAGS)
    @@ -863,7 +863,7 @@ EOF
     EOF
           } else {
               $recipe .= <<"EOF";
    -	\$(CC) $incs \$(CFLAGS) $ecflags -c -o \$\@ $srcs
    +	\$(CC) \$(CFLAGS) $incs $ecflags -c -o \$\@ $srcs
     EOF
               if (!$disabled{makedepend} && $makedepprog =~ /\/makedepend/) {
                   $recipe .= <<"EOF";
    @@ -983,7 +983,7 @@ $bin$exeext: $objs $deps
     	\$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
     		PERL="\$(PERL)" SRCDIR=\$(SRCDIR) \\
     		APPNAME=$bin$exeext OBJECTS="$objs" \\
    -		LIBDEPS='\$(PLIB_LDFLAGS) '"$linklibs"' \$(EX_LIBS)' \\
    +		LIBDEPS='\$(PLIB_LDFLAGS) \$(EX_LIBS)' \\
     		CC='\$(CC)' CFLAGS='\$(CFLAGS) \$(BIN_CFLAGS)' \\
     		LDFLAGS='\$(LDFLAGS)' \\
     		link_app.$shlib_target
    diff -upr openssl-1.1.0g/Configure /home/chris/amissl/openssl/Configure
    --- openssl-1.1.0g/Configure	2018-07-23 22:47:02.154906359 +0100
    +++ /home/chris/amissl/openssl/Configure	2018-07-23 20:12:10.839024570 +0100
    @@ -944,7 +944,6 @@ $target{exe_extension}="";
     $target{exe_extension}=".exe" if ($config{target} eq "DJGPP"
                                       || $config{target} =~ /^(?:Cygwin|mingw)/);
     $target{exe_extension}=".pm"  if ($config{target} =~ /vos/);
    -$target{exe_extension}=",e1f" if ($config{target} eq "arm-unknown-riscos");
     
     ($target{shared_extension_simple}=$target{shared_extension})
         =~ s|\.\$\(SHLIB_MAJOR\)\.\$\(SHLIB_MINOR\)||;
    Only in openssl-1.1.0g/: Configure.orig
    Only in openssl-1.1.0g/crypto/aes: aes_cbc.d
    Only in openssl-1.1.0g/crypto/aes: aes_cbc.o
    Only in openssl-1.1.0g/crypto/aes: aes_cfb.d
    Only in openssl-1.1.0g/crypto/aes: aes_cfb.o
    Only in openssl-1.1.0g/crypto/aes: aes_core.d
    Only in openssl-1.1.0g/crypto/aes: aes_core.o
    Only in openssl-1.1.0g/crypto/aes: aes_ecb.d
    Only in openssl-1.1.0g/crypto/aes: aes_ecb.o
    Only in openssl-1.1.0g/crypto/aes: aes_ige.d
    Only in openssl-1.1.0g/crypto/aes: aes_ige.o
    Only in openssl-1.1.0g/crypto/aes: aes_misc.d
    Only in openssl-1.1.0g/crypto/aes: aes_misc.o
    Only in openssl-1.1.0g/crypto/aes: aes_ofb.d
    Only in openssl-1.1.0g/crypto/aes: aes_ofb.o
    Only in openssl-1.1.0g/crypto/aes: aes_wrap.d
    Only in openssl-1.1.0g/crypto/aes: aes_wrap.o
    Only in openssl-1.1.0g/crypto/asn1: a_bitstr.d
    Only in openssl-1.1.0g/crypto/asn1: a_bitstr.o
    Only in openssl-1.1.0g/crypto/asn1: a_d2i_fp.d
    Only in openssl-1.1.0g/crypto/asn1: a_d2i_fp.o
    Only in openssl-1.1.0g/crypto/asn1: a_digest.d
    Only in openssl-1.1.0g/crypto/asn1: a_digest.o
    Only in openssl-1.1.0g/crypto/asn1: a_dup.d
    Only in openssl-1.1.0g/crypto/asn1: a_dup.o
    Only in openssl-1.1.0g/crypto/asn1: a_gentm.d
    Only in openssl-1.1.0g/crypto/asn1: a_gentm.o
    Only in openssl-1.1.0g/crypto/asn1: a_i2d_fp.d
    Only in openssl-1.1.0g/crypto/asn1: a_i2d_fp.o
    Only in openssl-1.1.0g/crypto/asn1: a_int.d
    Only in openssl-1.1.0g/crypto/asn1: a_int.o
    Only in openssl-1.1.0g/crypto/asn1: a_mbstr.d
    Only in openssl-1.1.0g/crypto/asn1: a_mbstr.o
    Only in openssl-1.1.0g/crypto/asn1: ameth_lib.d
    Only in openssl-1.1.0g/crypto/asn1: ameth_lib.o
    Only in openssl-1.1.0g/crypto/asn1: a_object.d
    Only in openssl-1.1.0g/crypto/asn1: a_object.o
    Only in openssl-1.1.0g/crypto/asn1: a_octet.d
    Only in openssl-1.1.0g/crypto/asn1: a_octet.o
    Only in openssl-1.1.0g/crypto/asn1: a_print.d
    Only in openssl-1.1.0g/crypto/asn1: a_print.o
    Only in openssl-1.1.0g/crypto/asn1: a_sign.d
    Only in openssl-1.1.0g/crypto/asn1: a_sign.o
    Only in openssl-1.1.0g/crypto/asn1: asn1_err.d
    Only in openssl-1.1.0g/crypto/asn1: asn1_err.o
    Only in openssl-1.1.0g/crypto/asn1: asn1_gen.d
    Only in openssl-1.1.0g/crypto/asn1: asn1_gen.o
    Only in openssl-1.1.0g/crypto/asn1: asn1_lib.d
    Only in openssl-1.1.0g/crypto/asn1: asn1_lib.o
    Only in openssl-1.1.0g/crypto/asn1: asn1_par.d
    Only in openssl-1.1.0g/crypto/asn1: asn1_par.o
    Only in openssl-1.1.0g/crypto/asn1: asn_mime.d
    Only in openssl-1.1.0g/crypto/asn1: asn_mime.o
    Only in openssl-1.1.0g/crypto/asn1: asn_moid.d
    Only in openssl-1.1.0g/crypto/asn1: asn_moid.o
    Only in openssl-1.1.0g/crypto/asn1: asn_mstbl.d
    Only in openssl-1.1.0g/crypto/asn1: asn_mstbl.o
    Only in openssl-1.1.0g/crypto/asn1: asn_pack.d
    Only in openssl-1.1.0g/crypto/asn1: asn_pack.o
    Only in openssl-1.1.0g/crypto/asn1: a_strex.d
    Only in openssl-1.1.0g/crypto/asn1: a_strex.o
    Only in openssl-1.1.0g/crypto/asn1: a_strnid.d
    Only in openssl-1.1.0g/crypto/asn1: a_strnid.o
    Only in openssl-1.1.0g/crypto/asn1: a_time.d
    Only in openssl-1.1.0g/crypto/asn1: a_time.o
    Only in openssl-1.1.0g/crypto/asn1: a_type.d
    Only in openssl-1.1.0g/crypto/asn1: a_type.o
    Only in openssl-1.1.0g/crypto/asn1: a_utctm.d
    Only in openssl-1.1.0g/crypto/asn1: a_utctm.o
    Only in openssl-1.1.0g/crypto/asn1: a_utf8.d
    Only in openssl-1.1.0g/crypto/asn1: a_utf8.o
    Only in openssl-1.1.0g/crypto/asn1: a_verify.d
    Only in openssl-1.1.0g/crypto/asn1: a_verify.o
    Only in openssl-1.1.0g/crypto/asn1: bio_asn1.d
    Only in openssl-1.1.0g/crypto/asn1: bio_asn1.o
    Only in openssl-1.1.0g/crypto/asn1: bio_ndef.d
    Only in openssl-1.1.0g/crypto/asn1: bio_ndef.o
    Only in openssl-1.1.0g/crypto/asn1: d2i_pr.d
    Only in openssl-1.1.0g/crypto/asn1: d2i_pr.o
    Only in openssl-1.1.0g/crypto/asn1: d2i_pu.d
    Only in openssl-1.1.0g/crypto/asn1: d2i_pu.o
    Only in openssl-1.1.0g/crypto/asn1: evp_asn1.d
    Only in openssl-1.1.0g/crypto/asn1: evp_asn1.o
    Only in openssl-1.1.0g/crypto/asn1: f_int.d
    Only in openssl-1.1.0g/crypto/asn1: f_int.o
    Only in openssl-1.1.0g/crypto/asn1: f_string.d
    Only in openssl-1.1.0g/crypto/asn1: f_string.o
    Only in openssl-1.1.0g/crypto/asn1: i2d_pr.d
    Only in openssl-1.1.0g/crypto/asn1: i2d_pr.o
    Only in openssl-1.1.0g/crypto/asn1: i2d_pu.d
    Only in openssl-1.1.0g/crypto/asn1: i2d_pu.o
    Only in openssl-1.1.0g/crypto/asn1: n_pkey.d
    Only in openssl-1.1.0g/crypto/asn1: n_pkey.o
    Only in openssl-1.1.0g/crypto/asn1: nsseq.d
    Only in openssl-1.1.0g/crypto/asn1: nsseq.o
    Only in openssl-1.1.0g/crypto/asn1: p5_pbe.d
    Only in openssl-1.1.0g/crypto/asn1: p5_pbe.o
    Only in openssl-1.1.0g/crypto/asn1: p5_pbev2.d
    Only in openssl-1.1.0g/crypto/asn1: p5_pbev2.o
    Only in openssl-1.1.0g/crypto/asn1: p5_scrypt.d
    Only in openssl-1.1.0g/crypto/asn1: p5_scrypt.o
    Only in openssl-1.1.0g/crypto/asn1: p8_pkey.d
    Only in openssl-1.1.0g/crypto/asn1: p8_pkey.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_dec.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_dec.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_enc.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_enc.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_fre.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_fre.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_new.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_new.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_prn.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_prn.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_scn.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_scn.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_typ.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_typ.o
    Only in openssl-1.1.0g/crypto/asn1: tasn_utl.d
    Only in openssl-1.1.0g/crypto/asn1: tasn_utl.o
    Only in openssl-1.1.0g/crypto/asn1: t_bitst.d
    Only in openssl-1.1.0g/crypto/asn1: t_bitst.o
    Only in openssl-1.1.0g/crypto/asn1: t_pkey.d
    Only in openssl-1.1.0g/crypto/asn1: t_pkey.o
    Only in openssl-1.1.0g/crypto/asn1: t_spki.d
    Only in openssl-1.1.0g/crypto/asn1: t_spki.o
    Only in openssl-1.1.0g/crypto/asn1: x_algor.d
    Only in openssl-1.1.0g/crypto/asn1: x_algor.o
    Only in openssl-1.1.0g/crypto/asn1: x_bignum.d
    Only in openssl-1.1.0g/crypto/asn1: x_bignum.o
    Only in openssl-1.1.0g/crypto/asn1: x_info.d
    Only in openssl-1.1.0g/crypto/asn1: x_info.o
    Only in openssl-1.1.0g/crypto/asn1: x_int64.d
    Only in openssl-1.1.0g/crypto/asn1: x_int64.o
    Only in openssl-1.1.0g/crypto/asn1: x_long.d
    Only in openssl-1.1.0g/crypto/asn1: x_long.o
    Only in openssl-1.1.0g/crypto/asn1: x_pkey.d
    Only in openssl-1.1.0g/crypto/asn1: x_pkey.o
    Only in openssl-1.1.0g/crypto/asn1: x_sig.d
    Only in openssl-1.1.0g/crypto/asn1: x_sig.o
    Only in openssl-1.1.0g/crypto/asn1: x_spki.d
    Only in openssl-1.1.0g/crypto/asn1: x_spki.o
    Only in openssl-1.1.0g/crypto/asn1: x_val.d
    Only in openssl-1.1.0g/crypto/asn1: x_val.o
    Only in openssl-1.1.0g/crypto/async/arch: async_null.d
    Only in openssl-1.1.0g/crypto/async/arch: async_null.o
    Only in openssl-1.1.0g/crypto/async/arch: async_posix.d
    Only in openssl-1.1.0g/crypto/async/arch: async_posix.o
    Only in openssl-1.1.0g/crypto/async/arch: async_win.d
    Only in openssl-1.1.0g/crypto/async/arch: async_win.o
    Only in openssl-1.1.0g/crypto/async: async.d
    Only in openssl-1.1.0g/crypto/async: async_err.d
    Only in openssl-1.1.0g/crypto/async: async_err.o
    Only in openssl-1.1.0g/crypto/async: async.o
    Only in openssl-1.1.0g/crypto/async: async_wait.d
    Only in openssl-1.1.0g/crypto/async: async_wait.o
    Only in openssl-1.1.0g/crypto/bf: bf_cfb64.d
    Only in openssl-1.1.0g/crypto/bf: bf_cfb64.o
    Only in openssl-1.1.0g/crypto/bf: bf_ecb.d
    Only in openssl-1.1.0g/crypto/bf: bf_ecb.o
    Only in openssl-1.1.0g/crypto/bf: bf_enc.d
    Only in openssl-1.1.0g/crypto/bf: bf_enc.o
    Only in openssl-1.1.0g/crypto/bf: bf_ofb64.d
    Only in openssl-1.1.0g/crypto/bf: bf_ofb64.o
    Only in openssl-1.1.0g/crypto/bf: bf_skey.d
    Only in openssl-1.1.0g/crypto/bf: bf_skey.o
    diff -upr openssl-1.1.0g/crypto/bio/b_addr.c /home/chris/amissl/openssl/crypto/bio/b_addr.c
    --- openssl-1.1.0g/crypto/bio/b_addr.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/b_addr.c	2018-07-23 20:12:10.979424390 +0100
    @@ -743,7 +743,11 @@ int BIO_lookup(const char *host, const c
                 he = &he_fallback;
                 switch(lookup_type) {
                 case BIO_LOOKUP_CLIENT:
    +#ifdef OPENSSL_SYS_AMIGA
    +                he_fallback_address = INADDR_ANY;
    +#else
                     he_fallback_address = INADDR_LOOPBACK;
    +#endif
                     break;
                 case BIO_LOOKUP_SERVER:
                     he_fallback_address = INADDR_ANY;
    @@ -768,8 +772,13 @@ int BIO_lookup(const char *host, const c
                      * anyway [above getaddrinfo/gai_strerror is]. We just let
                      * system administrator figure this out...
                      */
    +#ifndef OPENSSL_SYS_AMIGA
                     SYSerr(SYS_F_GETHOSTBYNAME, 1000 + h_errno);
     #else
    +                #warning is there a way to get h_errno for AmigaOS?
    +                SYSerr(SYS_F_GETHOSTBYNAME, 1000);
    +#endif
    +#else
                     SYSerr(SYS_F_GETHOSTBYNAME, WSAGetLastError());
     #endif
                     ret = 0;
    @@ -854,7 +863,7 @@ int BIO_lookup(const char *host, const c
                     addrlistp++)
                     ;
     
    -            for(addresses = addrlistp - he->h_addr_list;
    +            for(addresses = addrlistp - (char **)he->h_addr_list;
                     addrlistp--, addresses-- > 0; ) {
                     if (!addrinfo_wrap(he->h_addrtype, socktype,
                                        *addrlistp, he->h_length,
    Only in openssl-1.1.0g/crypto/bio: b_addr.d
    Only in openssl-1.1.0g/crypto/bio: b_addr.o
    Only in openssl-1.1.0g/crypto/bio: b_dump.d
    Only in openssl-1.1.0g/crypto/bio: b_dump.o
    Only in openssl-1.1.0g/crypto/bio: bf_buff.d
    Only in openssl-1.1.0g/crypto/bio: bf_buff.o
    Only in openssl-1.1.0g/crypto/bio: bf_lbuf.d
    Only in openssl-1.1.0g/crypto/bio: bf_lbuf.o
    Only in openssl-1.1.0g/crypto/bio: bf_nbio.d
    Only in openssl-1.1.0g/crypto/bio: bf_nbio.o
    Only in openssl-1.1.0g/crypto/bio: bf_null.d
    Only in openssl-1.1.0g/crypto/bio: bf_null.o
    diff -upr openssl-1.1.0g/crypto/bio/bio_cb.c /home/chris/amissl/openssl/crypto/bio/bio_cb.c
    --- openssl-1.1.0g/crypto/bio/bio_cb.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/bio_cb.c	2018-07-23 20:12:10.983435813 +0100
    @@ -91,7 +91,7 @@ long BIO_debug_callback(BIO *bio, int cm
         b = (BIO *)bio->cb_arg;
         if (b != NULL)
             BIO_write(b, buf, strlen(buf));
    -#if !defined(OPENSSL_NO_STDIO)
    +#if !defined(OPENSSL_NO_STDIO) && !defined(OPENSSL_SYS_AMIGA)
         else
             fputs(buf, stderr);
     #endif
    Only in openssl-1.1.0g/crypto/bio: bio_cb.d
    Only in openssl-1.1.0g/crypto/bio: bio_cb.o
    Only in openssl-1.1.0g/crypto/bio: bio_err.d
    Only in openssl-1.1.0g/crypto/bio: bio_err.o
    diff -upr openssl-1.1.0g/crypto/bio/bio_lcl.h /home/chris/amissl/openssl/crypto/bio/bio_lcl.h
    --- openssl-1.1.0g/crypto/bio/bio_lcl.h	2018-07-23 22:47:02.097869926 +0100
    +++ /home/chris/amissl/openssl/crypto/bio/bio_lcl.h	2018-07-23 20:12:10.983435813 +0100
    @@ -36,7 +36,7 @@
     /*
      * Undefine AF_UNIX on systems that define it but don't support it.
      */
    -# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_RISCOS) || defined(OPENSSL_SYS_AMIGAOS3)  || defined(OPENSSL_SYS_AMIGAOS4)
    +# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_AMIGA)
     #  undef AF_UNIX
     # endif
     
    @@ -135,6 +135,10 @@ struct bio_st {
     # ifdef OPENSSL_SYS_VMS
     typedef unsigned int socklen_t;
     # endif
    +# if defined(OPENSSL_SYS_AMIGA) && defined(__MORPHOS__)
    +typedef int socklen_t;
    +typedef unsigned long in_addr_t;
    +# endif
     
     extern CRYPTO_RWLOCK *bio_lookup_lock;
     
    diff -upr openssl-1.1.0g/crypto/bio/bio_lib.c /home/chris/amissl/openssl/crypto/bio/bio_lib.c
    --- openssl-1.1.0g/crypto/bio/bio_lib.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/bio_lib.c	2018-07-23 20:12:10.983435813 +0100
    @@ -385,12 +385,12 @@ long BIO_callback_ctrl(BIO *b, int cmd,
      */
     size_t BIO_ctrl_pending(BIO *bio)
     {
    -    return BIO_ctrl(bio, BIO_CTRL_PENDING, 0, NULL);
    +    return (size_t)BIO_ctrl(bio, BIO_CTRL_PENDING, 0, NULL);
     }
     
     size_t BIO_ctrl_wpending(BIO *bio)
     {
    -    return BIO_ctrl(bio, BIO_CTRL_WPENDING, 0, NULL);
    +    return (size_t)BIO_ctrl(bio, BIO_CTRL_WPENDING, 0, NULL);
     }
     
     /* put the 'bio' on the end of b's list of operators */
    Only in openssl-1.1.0g/crypto/bio: bio_lib.d
    Only in openssl-1.1.0g/crypto/bio: bio_lib.o
    Only in openssl-1.1.0g/crypto/bio: bio_meth.d
    Only in openssl-1.1.0g/crypto/bio: bio_meth.o
    Only in openssl-1.1.0g/crypto/bio: b_print.d
    Only in openssl-1.1.0g/crypto/bio: b_print.o
    diff -upr openssl-1.1.0g/crypto/bio/b_sock2.c /home/chris/amissl/openssl/crypto/bio/b_sock2.c
    --- openssl-1.1.0g/crypto/bio/b_sock2.c	2018-07-23 22:47:02.427866428 +0100
    +++ /home/chris/amissl/openssl/crypto/bio/b_sock2.c	2018-07-23 20:12:10.979424390 +0100
    @@ -94,7 +94,6 @@ int BIO_connect(int sock, const BIO_ADDR
             }
         }
     
    -#if defined(TCP_NODELAY)
         if (options & BIO_SOCK_NODELAY) {
             if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) != 0) {
                 SYSerr(SYS_F_SETSOCKOPT, get_last_socket_error());
    @@ -102,7 +101,6 @@ int BIO_connect(int sock, const BIO_ADDR
                 return 0;
             }
         }
    -#endif
     
         if (connect(sock, BIO_ADDR_sockaddr(addr),
                     BIO_ADDR_sockaddr_size(addr)) == -1) {
    @@ -193,7 +191,6 @@ int BIO_listen(int sock, const BIO_ADDR
             }
         }
     
    -#if defined(TCP_NODELAY)
         if (options & BIO_SOCK_NODELAY) {
             if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) != 0) {
                 SYSerr(SYS_F_SETSOCKOPT, get_last_socket_error());
    @@ -201,7 +198,6 @@ int BIO_listen(int sock, const BIO_ADDR
                 return 0;
             }
         }
    -#endif
     
     # ifdef IPV6_V6ONLY
         if ((options & BIO_SOCK_V6_ONLY) && BIO_ADDR_family(addr) == AF_INET6) {
    Only in openssl-1.1.0g/crypto/bio: b_sock2.d
    Only in openssl-1.1.0g/crypto/bio: b_sock2.o
    Only in openssl-1.1.0g/crypto/bio: b_sock.d
    Only in openssl-1.1.0g/crypto/bio: b_sock.o
    Only in openssl-1.1.0g/crypto/bio: bss_acpt.d
    Only in openssl-1.1.0g/crypto/bio: bss_acpt.o
    diff -upr openssl-1.1.0g/crypto/bio/bss_bio.c /home/chris/amissl/openssl/crypto/bio/bss_bio.c
    --- openssl-1.1.0g/crypto/bio/bss_bio.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/bss_bio.c	2018-07-23 20:12:10.983435813 +0100
    @@ -182,7 +182,7 @@ static int bio_read(BIO *bio, char *buf,
         }
         while (rest);
     
    -    return size;
    +    return (int)size;
     }
     
     /*-
    @@ -331,7 +331,7 @@ static int bio_write(BIO *bio, const cha
         }
         while (rest);
     
    -    return num;
    +    return (int)num;
     }
     
     /*-
    @@ -386,7 +386,7 @@ static ossl_ssize_t bio_nwrite0(BIO *bio
             *buf = b->buf + write_offset;
         assert(write_offset + num <= b->size);
     
    -    return num;
    +    return (ossl_ssize_t)num;
     }
     
     static ossl_ssize_t bio_nwrite(BIO *bio, char **buf, size_t num_)
    @@ -724,12 +724,12 @@ int BIO_new_bio_pair(BIO **bio1_p, size_
     
     size_t BIO_ctrl_get_write_guarantee(BIO *bio)
     {
    -    return BIO_ctrl(bio, BIO_C_GET_WRITE_GUARANTEE, 0, NULL);
    +    return (size_t)BIO_ctrl(bio, BIO_C_GET_WRITE_GUARANTEE, 0, NULL);
     }
     
     size_t BIO_ctrl_get_read_request(BIO *bio)
     {
    -    return BIO_ctrl(bio, BIO_C_GET_READ_REQUEST, 0, NULL);
    +    return (size_t)BIO_ctrl(bio, BIO_C_GET_READ_REQUEST, 0, NULL);
     }
     
     int BIO_ctrl_reset_read_request(BIO *bio)
    Only in openssl-1.1.0g/crypto/bio: bss_bio.d
    Only in openssl-1.1.0g/crypto/bio: bss_bio.o
    Only in openssl-1.1.0g/crypto/bio: bss_conn.d
    Only in openssl-1.1.0g/crypto/bio: bss_conn.o
    Only in openssl-1.1.0g/crypto/bio: bss_dgram.d
    Only in openssl-1.1.0g/crypto/bio: bss_dgram.o
    Only in openssl-1.1.0g/crypto/bio: bss_fd.d
    Only in openssl-1.1.0g/crypto/bio: bss_fd.o
    Only in /home/chris/amissl/openssl/crypto/bio: bss_file_amiga.c
    diff -upr openssl-1.1.0g/crypto/bio/bss_file.c /home/chris/amissl/openssl/crypto/bio/bss_file.c
    --- openssl-1.1.0g/crypto/bio/bss_file.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/bss_file.c	2018-07-23 20:12:10.987447237 +0100
    @@ -16,6 +16,8 @@
     #ifndef HEADER_BSS_FILE_C
     # define HEADER_BSS_FILE_C
     
    +# ifndef OPENSSL_SYS_AMIGA
    +
     # if defined(__linux) || defined(__sun) || defined(__hpux)
     /*
      * Following definition aliases fopen to fopen64 on above mentioned
    @@ -421,4 +423,6 @@ BIO *BIO_new_file(const char *filename,
     
     # endif                         /* OPENSSL_NO_STDIO */
     
    +# endif                         /* !OPENSSL_SYS_AMIGA */
    +
     #endif                          /* HEADER_BSS_FILE_C */
    Only in openssl-1.1.0g/crypto/bio: bss_file.d
    Only in openssl-1.1.0g/crypto/bio: bss_file.o
    diff -upr openssl-1.1.0g/crypto/bio/bss_log.c /home/chris/amissl/openssl/crypto/bio/bss_log.c
    --- openssl-1.1.0g/crypto/bio/bss_log.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/bss_log.c	2018-07-23 20:12:10.987447237 +0100
    @@ -16,6 +16,10 @@
      *
      */
     
    +#ifdef OPENSSL_SYS_AMIGA
    +#define PRAGMAS_SOCKET_PRAGMAS_H /* Make sure that we don't enable SocketBase calls */
    +#endif
    +
     #include <stdio.h>
     #include <errno.h>
     
    @@ -73,6 +77,23 @@ void *_malloc32(__size_t);
     #  define LOG_DEBUG       7
     
     #  define LOG_DAEMON      OPC$M_NM_NTWORK
    +
    +# elif defined(OPENSSL_SYS_AMIGA)
    +
    +#  define LOG_EMERG       0
    +#  define LOG_ALERT       1
    +#  define LOG_CRIT        2
    +#  define LOG_ERR         3
    +#  define LOG_WARNING     4
    +#  define LOG_NOTICE      5
    +#  define LOG_INFO        6
    +#  define LOG_DEBUG       7
    +
    +#  define LOG_DAEMON      (3<<3)
    +
    +#  define LOG_PID         0
    +#  define LOG_CONS        0
    +
     # endif
     
     static int slg_write(BIO *h, const char *buf, int num);
    Only in openssl-1.1.0g/crypto/bio: bss_log.d
    Only in openssl-1.1.0g/crypto/bio: bss_log.o
    Only in openssl-1.1.0g/crypto/bio: bss_mem.d
    Only in openssl-1.1.0g/crypto/bio: bss_mem.o
    diff -upr openssl-1.1.0g/crypto/bio/bss_null.c /home/chris/amissl/openssl/crypto/bio/bss_null.c
    --- openssl-1.1.0g/crypto/bio/bss_null.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/bss_null.c	2018-07-23 20:12:10.987447237 +0100
    @@ -96,5 +96,5 @@ static int null_puts(BIO *bp, const char
     {
         if (str == NULL)
             return (0);
    -    return (strlen(str));
    +    return ((int)strlen(str));
     }
    Only in openssl-1.1.0g/crypto/bio: bss_null.d
    Only in openssl-1.1.0g/crypto/bio: bss_null.o
    Only in openssl-1.1.0g/crypto/bio: bss_sock.d
    Only in openssl-1.1.0g/crypto/bio: bss_sock.o
    diff -upr openssl-1.1.0g/crypto/bio/build.info /home/chris/amissl/openssl/crypto/bio/build.info
    --- openssl-1.1.0g/crypto/bio/build.info	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bio/build.info	2018-07-23 20:12:10.987447237 +0100
    @@ -2,7 +2,7 @@ LIBS=../../libcrypto
     SOURCE[../../libcrypto]=\
             bio_lib.c bio_cb.c bio_err.c \
             bss_mem.c bss_null.c bss_fd.c \
    -        bss_file.c bss_sock.c bss_conn.c \
    +        bss_file.c bss_file_amiga.c bss_sock.c bss_conn.c \
             bf_null.c bf_buff.c b_print.c b_dump.c b_addr.c \
             b_sock.c b_sock2.c bss_acpt.c bf_nbio.c bss_log.c bss_bio.c \
             bss_dgram.c bio_meth.c bf_lbuf.c
    Only in openssl-1.1.0g/crypto/blake2: blake2b.d
    Only in openssl-1.1.0g/crypto/blake2: blake2b.o
    Only in openssl-1.1.0g/crypto/blake2: blake2s.d
    Only in openssl-1.1.0g/crypto/blake2: blake2s.o
    Only in openssl-1.1.0g/crypto/blake2: m_blake2b.d
    Only in openssl-1.1.0g/crypto/blake2: m_blake2b.o
    Only in openssl-1.1.0g/crypto/blake2: m_blake2s.d
    Only in openssl-1.1.0g/crypto/blake2: m_blake2s.o
    Only in openssl-1.1.0g/crypto/bn/asm: bn_m68k.d
    Only in openssl-1.1.0g/crypto/bn/asm: bn_m68k.o
    Only in openssl-1.1.0g/crypto/bn: bn_add.d
    Only in openssl-1.1.0g/crypto/bn: bn_add.o
    diff -upr openssl-1.1.0g/crypto/bn/bn_asm.c /home/chris/amissl/openssl/crypto/bn/bn_asm.c
    --- openssl-1.1.0g/crypto/bn/bn_asm.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bn/bn_asm.c	2018-07-23 20:12:11.003493327 +0100
    @@ -417,7 +417,7 @@ BN_ULONG bn_sub_words(BN_ULONG *r, const
             r++;
             n--;
         }
    -    return (c);
    +    return ((BN_ULONG)c);
     }
     
     #if defined(BN_MUL_COMBA) && !defined(OPENSSL_SMALL_FOOTPRINT)
    Only in openssl-1.1.0g/crypto/bn: bn_blind.d
    Only in openssl-1.1.0g/crypto/bn: bn_blind.o
    Only in openssl-1.1.0g/crypto/bn: bn_const.d
    Only in openssl-1.1.0g/crypto/bn: bn_const.o
    Only in openssl-1.1.0g/crypto/bn: bn_ctx.d
    Only in openssl-1.1.0g/crypto/bn: bn_ctx.o
    Only in openssl-1.1.0g/crypto/bn: bn_depr.d
    Only in openssl-1.1.0g/crypto/bn: bn_depr.o
    Only in openssl-1.1.0g/crypto/bn: bn_dh.d
    Only in openssl-1.1.0g/crypto/bn: bn_dh.o
    diff -upr openssl-1.1.0g/crypto/bn/bn_div.c /home/chris/amissl/openssl/crypto/bn/bn_div.c
    --- openssl-1.1.0g/crypto/bn/bn_div.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bn/bn_div.c	2018-07-23 20:12:11.003493327 +0100
    @@ -125,6 +125,22 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, cons
                 q;                                  \
             })
     #    define REMAINDER_IS_ALREADY_CALCULATED
    +#   elif defined(__mc68020__)
    +   /* Same rationale as for i386. On the 68020-60/CPU32 the divu
    +    * instruction will take a 64 bit dividend in a register pair
    +    * and overwrite that pair with the remainder:quotient.
    +    *                                  Howard Chu
    +    */
    +#    undef bn_div_words
    +#    define bn_div_words(n0,n1,d0)              \
    +       ({ asm volatile (                       \
    +               "divu.l %4,%2:%3"               \
    +               : "=d"(rem), "=d"(q)            \
    +               : "0"(n0), "1"(n1), "d"(d0)     \
    +               : "cc");                        \
    +           q;                                  \
    +       })
    +#    define REMAINDER_IS_ALREADY_CALCULATED
     #   endif                       /* __<cpu> */
     #  endif                        /* __GNUC__ */
     # endif                         /* OPENSSL_NO_ASM */
    Only in openssl-1.1.0g/crypto/bn: bn_div.d
    Only in openssl-1.1.0g/crypto/bn: bn_div.o
    Only in openssl-1.1.0g/crypto/bn: bn_err.d
    Only in openssl-1.1.0g/crypto/bn: bn_err.o
    Only in openssl-1.1.0g/crypto/bn: bn_exp2.d
    Only in openssl-1.1.0g/crypto/bn: bn_exp2.o
    Only in openssl-1.1.0g/crypto/bn: bn_exp.d
    Only in openssl-1.1.0g/crypto/bn: bn_exp.o
    Only in openssl-1.1.0g/crypto/bn: bn_gcd.d
    Only in openssl-1.1.0g/crypto/bn: bn_gcd.o
    Only in openssl-1.1.0g/crypto/bn: bn_gf2m.d
    Only in openssl-1.1.0g/crypto/bn: bn_gf2m.o
    Only in openssl-1.1.0g/crypto/bn: bn_intern.d
    Only in openssl-1.1.0g/crypto/bn: bn_intern.o
    diff -upr openssl-1.1.0g/crypto/bn/bn_kron.c /home/chris/amissl/openssl/crypto/bn/bn_kron.c
    --- openssl-1.1.0g/crypto/bn/bn_kron.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bn/bn_kron.c	2018-07-23 20:12:11.011513639 +0100
    @@ -35,7 +35,7 @@ int BN_kronecker(const BIGNUM *a, const
         BN_CTX_start(ctx);
         A = BN_CTX_get(ctx);
         B = BN_CTX_get(ctx);
    -    if (B == NULL)
    +    if (B == 0)
             goto end;
     
         err = !BN_copy(A, a);
    Only in openssl-1.1.0g/crypto/bn: bn_kron.d
    Only in openssl-1.1.0g/crypto/bn: bn_kron.o
    diff -upr openssl-1.1.0g/crypto/bn/bn_lcl.h /home/chris/amissl/openssl/crypto/bn/bn_lcl.h
    --- openssl-1.1.0g/crypto/bn/bn_lcl.h	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/bn/bn_lcl.h	2018-07-23 20:12:11.011513639 +0100
    @@ -17,7 +17,7 @@
      */
     # include <openssl/opensslconf.h>
     
    -# if !defined(OPENSSL_SYS_UEFI)
    +# if !defined(OPENSSL_SYS_UEFI) && !defined(OPENSSL_SYS_AMIGA)
     #  include "internal/bn_conf.h"
     # endif
     
    Only in openssl-1.1.0g/crypto/bn: bn_lib.d
    Only in openssl-1.1.0g/crypto/bn: bn_lib.o
    Only in openssl-1.1.0g/crypto/bn: bn_mod.d
    Only in openssl-1.1.0g/crypto/bn: bn_mod.o
    Only in openssl-1.1.0g/crypto/bn: bn_mont.d
    Only in openssl-1.1.0g/crypto/bn: bn_mont.o
    Only in openssl-1.1.0g/crypto/bn: bn_mpi.d
    Only in openssl-1.1.0g/crypto/bn: bn_mpi.o
    Only in openssl-1.1.0g/crypto/bn: bn_mul.d
    Only in openssl-1.1.0g/crypto/bn: bn_mul.o
    Only in openssl-1.1.0g/crypto/bn: bn_nist.d
    Only in openssl-1.1.0g/crypto/bn: bn_nist.o
    Only in openssl-1.1.0g/crypto/bn: bn_prime.d
    Only in openssl-1.1.0g/crypto/bn: bn_prime.o
    Only in openssl-1.1.0g/crypto/bn: bn_print.d
    Only in openssl-1.1.0g/crypto/bn: bn_print.o
    Only in openssl-1.1.0g/crypto/bn: bn_rand.d
    Only in openssl-1.1.0g/crypto/bn: bn_rand.o
    Only in openssl-1.1.0g/crypto/bn: bn_recp.d
    Only in openssl-1.1.0g/crypto/bn: bn_recp.o
    Only in openssl-1.1.0g/crypto/bn: bn_shift.d
    Only in openssl-1.1.0g/crypto/bn: bn_shift.o
    Only in openssl-1.1.0g/crypto/bn: bn_sqr.d
    Only in openssl-1.1.0g/crypto/bn: bn_sqr.o
    Only in openssl-1.1.0g/crypto/bn: bn_sqrt.d
    Only in openssl-1.1.0g/crypto/bn: bn_sqrt.o
    Only in openssl-1.1.0g/crypto/bn: bn_srp.d
    Only in openssl-1.1.0g/crypto/bn: bn_srp.o
    Only in openssl-1.1.0g/crypto/bn: bn_word.d
    Only in openssl-1.1.0g/crypto/bn: bn_word.o
    Only in openssl-1.1.0g/crypto/bn: bn_x931p.d
    Only in openssl-1.1.0g/crypto/bn: bn_x931p.o
    Only in openssl-1.1.0g/crypto/buffer: buf_err.d
    Only in openssl-1.1.0g/crypto/buffer: buf_err.o
    Only in openssl-1.1.0g/crypto/buffer: buffer.d
    Only in openssl-1.1.0g/crypto/buffer: buffer.o
    Only in openssl-1.1.0g/crypto: buildinf.h
    diff -upr openssl-1.1.0g/crypto/build.info /home/chris/amissl/openssl/crypto/build.info
    --- openssl-1.1.0g/crypto/build.info	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/build.info	2018-07-23 20:12:11.023544375 +0100
    @@ -3,7 +3,7 @@ LIBS=../libcrypto
     SOURCE[../libcrypto]=\
             cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c cpt_err.c \
             ebcdic.c uid.c o_time.c o_str.c o_dir.c o_fopen.c \
    -        threads_pthread.c threads_win.c threads_none.c \
    +        threads_pthread.c threads_win.c threads_amissl.c threads_none.c \
             o_init.c o_fips.c mem_sec.c init.c {- $target{cpuid_asm_src} -} \
             {- $target{uplink_aux_src} -}
     EXTRA=  ../ms/uplink-x86.pl ../ms/uplink.c ../ms/applink.c \
    Only in openssl-1.1.0g/crypto/camellia: camellia.d
    Only in openssl-1.1.0g/crypto/camellia: camellia.o
    Only in openssl-1.1.0g/crypto/camellia: cmll_cbc.d
    Only in openssl-1.1.0g/crypto/camellia: cmll_cbc.o
    Only in openssl-1.1.0g/crypto/camellia: cmll_cfb.d
    Only in openssl-1.1.0g/crypto/camellia: cmll_cfb.o
    Only in openssl-1.1.0g/crypto/camellia: cmll_ctr.d
    Only in openssl-1.1.0g/crypto/camellia: cmll_ctr.o
    Only in openssl-1.1.0g/crypto/camellia: cmll_ecb.d
    Only in openssl-1.1.0g/crypto/camellia: cmll_ecb.o
    Only in openssl-1.1.0g/crypto/camellia: cmll_misc.d
    Only in openssl-1.1.0g/crypto/camellia: cmll_misc.o
    Only in openssl-1.1.0g/crypto/camellia: cmll_ofb.d
    Only in openssl-1.1.0g/crypto/camellia: cmll_ofb.o
    Only in openssl-1.1.0g/crypto/cast: c_cfb64.d
    Only in openssl-1.1.0g/crypto/cast: c_cfb64.o
    Only in openssl-1.1.0g/crypto/cast: c_ecb.d
    Only in openssl-1.1.0g/crypto/cast: c_ecb.o
    Only in openssl-1.1.0g/crypto/cast: c_enc.d
    Only in openssl-1.1.0g/crypto/cast: c_enc.o
    Only in openssl-1.1.0g/crypto/cast: c_ofb64.d
    Only in openssl-1.1.0g/crypto/cast: c_ofb64.o
    Only in openssl-1.1.0g/crypto/cast: c_skey.d
    Only in openssl-1.1.0g/crypto/cast: c_skey.o
    Only in openssl-1.1.0g/crypto/chacha: chacha_enc.d
    Only in openssl-1.1.0g/crypto/chacha: chacha_enc.o
    Only in openssl-1.1.0g/crypto/cmac: cmac.d
    Only in openssl-1.1.0g/crypto/cmac: cmac.o
    Only in openssl-1.1.0g/crypto/cmac: cm_ameth.d
    Only in openssl-1.1.0g/crypto/cmac: cm_ameth.o
    Only in openssl-1.1.0g/crypto/cmac: cm_pmeth.d
    Only in openssl-1.1.0g/crypto/cmac: cm_pmeth.o
    Only in openssl-1.1.0g/crypto/cms: cms_asn1.d
    Only in openssl-1.1.0g/crypto/cms: cms_asn1.o
    Only in openssl-1.1.0g/crypto/cms: cms_att.d
    Only in openssl-1.1.0g/crypto/cms: cms_att.o
    Only in openssl-1.1.0g/crypto/cms: cms_cd.d
    Only in openssl-1.1.0g/crypto/cms: cms_cd.o
    Only in openssl-1.1.0g/crypto/cms: cms_dd.d
    Only in openssl-1.1.0g/crypto/cms: cms_dd.o
    Only in openssl-1.1.0g/crypto/cms: cms_enc.d
    Only in openssl-1.1.0g/crypto/cms: cms_enc.o
    Only in openssl-1.1.0g/crypto/cms: cms_env.d
    Only in openssl-1.1.0g/crypto/cms: cms_env.o
    Only in openssl-1.1.0g/crypto/cms: cms_err.d
    Only in openssl-1.1.0g/crypto/cms: cms_err.o
    Only in openssl-1.1.0g/crypto/cms: cms_ess.d
    Only in openssl-1.1.0g/crypto/cms: cms_ess.o
    Only in openssl-1.1.0g/crypto/cms: cms_io.d
    Only in openssl-1.1.0g/crypto/cms: cms_io.o
    Only in openssl-1.1.0g/crypto/cms: cms_kari.d
    Only in openssl-1.1.0g/crypto/cms: cms_kari.o
    Only in openssl-1.1.0g/crypto/cms: cms_lib.d
    Only in openssl-1.1.0g/crypto/cms: cms_lib.o
    Only in openssl-1.1.0g/crypto/cms: cms_pwri.d
    Only in openssl-1.1.0g/crypto/cms: cms_pwri.o
    Only in openssl-1.1.0g/crypto/cms: cms_sd.d
    Only in openssl-1.1.0g/crypto/cms: cms_sd.o
    Only in openssl-1.1.0g/crypto/cms: cms_smime.d
    Only in openssl-1.1.0g/crypto/cms: cms_smime.o
    Only in openssl-1.1.0g/crypto/comp: comp_err.d
    Only in openssl-1.1.0g/crypto/comp: comp_err.o
    Only in openssl-1.1.0g/crypto/comp: comp_lib.d
    Only in openssl-1.1.0g/crypto/comp: comp_lib.o
    Only in openssl-1.1.0g/crypto/comp: c_zlib.d
    Only in openssl-1.1.0g/crypto/comp: c_zlib.o
    Only in openssl-1.1.0g/crypto/conf: conf_api.d
    Only in openssl-1.1.0g/crypto/conf: conf_api.o
    Only in openssl-1.1.0g/crypto/conf: conf_def.d
    Only in openssl-1.1.0g/crypto/conf: conf_def.o
    Only in openssl-1.1.0g/crypto/conf: conf_err.d
    Only in openssl-1.1.0g/crypto/conf: conf_err.o
    Only in openssl-1.1.0g/crypto/conf: conf_lib.d
    Only in openssl-1.1.0g/crypto/conf: conf_lib.o
    Only in openssl-1.1.0g/crypto/conf: conf_mall.d
    Only in openssl-1.1.0g/crypto/conf: conf_mall.o
    diff -upr openssl-1.1.0g/crypto/conf/conf_mod.c /home/chris/amissl/openssl/crypto/conf/conf_mod.c
    --- openssl-1.1.0g/crypto/conf/conf_mod.c	2017-11-02 14:29:02.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/conf/conf_mod.c	2018-07-23 20:12:11.039585358 +0100
    @@ -471,6 +471,10 @@ void CONF_module_set_usr_data(CONF_MODUL
         pmod->usr_data = usr_data;
     }
     
    +#ifdef OPENSSL_SYS_AMIGA
    +#include <proto/dos.h>
    +#endif /* OPENSSL_SYS_AMIGA */
    +
     /* Return default config file name */
     
     char *CONF_get1_default_config_file(void)
    @@ -493,10 +497,14 @@ char *CONF_get1_default_config_file(void
         if (file == NULL)
             return NULL;
         OPENSSL_strlcpy(file, X509_get_default_cert_area(), len + 1);
    +#ifndef OPENSSL_SYS_AMIGA
     #ifndef OPENSSL_SYS_VMS
         OPENSSL_strlcat(file, "/", len + 1);
     #endif
         OPENSSL_strlcat(file, OPENSSL_CONF, len + 1);
    +#else
    +    AddPart(file, OPENSSL_CONF, len + 1);
    +#endif
     
         return file;
     }
    Only in openssl-1.1.0g/crypto/conf: conf_mod.d
    Only in openssl-1.1.0g/crypto/conf: conf_mod.o
    Only in openssl-1.1.0g/crypto/conf: conf_sap.d
    Only in openssl-1.1.0g/crypto/conf: conf_sap.o
    Only in openssl-1.1.0g/crypto: cpt_err.d
    Only in openssl-1.1.0g/crypto: cpt_err.o
    diff -upr openssl-1.1.0g/crypto/cryptlib.c /home/chris/amissl/openssl/crypto/cryptlib.c
    --- openssl-1.1.0g/crypto/cryptlib.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/cryptlib.c	2018-07-23 20:12:11.047605850 +0100
    @@ -287,6 +287,7 @@ void OPENSSL_showfatal(const char *fmta,
             MessageBox(NULL, buf, _T("OpenSSL: FATAL"), MB_OK | MB_ICONERROR);
     }
     #else
    +#ifndef OPENSSL_SYS_AMIGA
     void OPENSSL_showfatal(const char *fmta, ...)
     {
     #ifndef OPENSSL_NO_STDIO
    @@ -297,6 +298,31 @@ void OPENSSL_showfatal(const char *fmta,
         va_end(ap);
     #endif
     }
    +#else
    +#include <proto/exec.h>
    +#include <proto/intuition.h>
    +#include <intuition/intuition.h>
    +
    +void OPENSSL_showfatal(const char *fmta, ...)
    +{
    +  va_list ap;
    +  struct EasyStruct ErrReq;
    +  char error[512];
    +
    +  va_start(ap, fmta);
    +  BIO_vsnprintf(error, sizeof(error), fmta, ap);
    +  va_end(ap);
    +
    +  ErrReq.es_StructSize   = sizeof(struct EasyStruct);
    +  ErrReq.es_Flags        = 0;
    +  ErrReq.es_Title        = "AmiSSL/OpenSSL internal error";
    +  ErrReq.es_TextFormat   = error;
    +  ErrReq.es_GadgetFormat = "Abort";
    +
    +  // Open an Easy Requester
    +  EasyRequestArgs(NULL, &ErrReq, NULL, NULL);
    +}
    +#endif /* !OPENSSL_SYS_AMIGA */
     
     int OPENSSL_isservice(void)
     {
    Only in openssl-1.1.0g/crypto: cryptlib.d
    Only in openssl-1.1.0g/crypto: cryptlib.o
    Only in openssl-1.1.0g/crypto/ct: ct_b64.d
    Only in openssl-1.1.0g/crypto/ct: ct_b64.o
    Only in openssl-1.1.0g/crypto/ct: ct_err.d
    Only in openssl-1.1.0g/crypto/ct: ct_err.o
    Only in openssl-1.1.0g/crypto/ct: ct_log.d
    Only in openssl-1.1.0g/crypto/ct: ct_log.o
    Only in openssl-1.1.0g/crypto/ct: ct_oct.d
    Only in openssl-1.1.0g/crypto/ct: ct_oct.o
    Only in openssl-1.1.0g/crypto/ct: ct_policy.d
    Only in openssl-1.1.0g/crypto/ct: ct_policy.o
    Only in openssl-1.1.0g/crypto/ct: ct_prn.d
    Only in openssl-1.1.0g/crypto/ct: ct_prn.o
    Only in openssl-1.1.0g/crypto/ct: ct_sct_ctx.d
    Only in openssl-1.1.0g/crypto/ct: ct_sct_ctx.o
    Only in openssl-1.1.0g/crypto/ct: ct_sct.d
    Only in openssl-1.1.0g/crypto/ct: ct_sct.o
    Only in openssl-1.1.0g/crypto/ct: ct_vfy.d
    Only in openssl-1.1.0g/crypto/ct: ct_vfy.o
    Only in openssl-1.1.0g/crypto/ct: ct_x509v3.d
    Only in openssl-1.1.0g/crypto/ct: ct_x509v3.o
    Only in openssl-1.1.0g/crypto: cversion.d
    Only in openssl-1.1.0g/crypto: cversion.o
    Only in openssl-1.1.0g/crypto/des: cbc_cksm.d
    Only in openssl-1.1.0g/crypto/des: cbc_cksm.o
    Only in openssl-1.1.0g/crypto/des: cbc_enc.d
    Only in openssl-1.1.0g/crypto/des: cbc_enc.o
    Only in openssl-1.1.0g/crypto/des: cfb64ede.d
    Only in openssl-1.1.0g/crypto/des: cfb64ede.o
    Only in openssl-1.1.0g/crypto/des: cfb64enc.d
    Only in openssl-1.1.0g/crypto/des: cfb64enc.o
    Only in openssl-1.1.0g/crypto/des: cfb_enc.d
    Only in openssl-1.1.0g/crypto/des: cfb_enc.o
    Only in openssl-1.1.0g/crypto/des: des_enc.d
    Only in openssl-1.1.0g/crypto/des: des_enc.o
    Only in openssl-1.1.0g/crypto/des: ecb3_enc.d
    Only in openssl-1.1.0g/crypto/des: ecb3_enc.o
    Only in openssl-1.1.0g/crypto/des: ecb_enc.d
    Only in openssl-1.1.0g/crypto/des: ecb_enc.o
    Only in openssl-1.1.0g/crypto/des: fcrypt_b.d
    Only in openssl-1.1.0g/crypto/des: fcrypt_b.o
    Only in openssl-1.1.0g/crypto/des: fcrypt.d
    Only in openssl-1.1.0g/crypto/des: fcrypt.o
    Only in openssl-1.1.0g/crypto/des: ofb64ede.d
    Only in openssl-1.1.0g/crypto/des: ofb64ede.o
    Only in openssl-1.1.0g/crypto/des: ofb64enc.d
    Only in openssl-1.1.0g/crypto/des: ofb64enc.o
    Only in openssl-1.1.0g/crypto/des: ofb_enc.d
    Only in openssl-1.1.0g/crypto/des: ofb_enc.o
    Only in openssl-1.1.0g/crypto/des: pcbc_enc.d
    Only in openssl-1.1.0g/crypto/des: pcbc_enc.o
    Only in openssl-1.1.0g/crypto/des: qud_cksm.d
    Only in openssl-1.1.0g/crypto/des: qud_cksm.o
    Only in openssl-1.1.0g/crypto/des: rand_key.d
    Only in openssl-1.1.0g/crypto/des: rand_key.o
    Only in openssl-1.1.0g/crypto/des: rpc_enc.d
    Only in openssl-1.1.0g/crypto/des: rpc_enc.o
    Only in openssl-1.1.0g/crypto/des: set_key.d
    Only in openssl-1.1.0g/crypto/des: set_key.o
    Only in openssl-1.1.0g/crypto/des: str2key.d
    Only in openssl-1.1.0g/crypto/des: str2key.o
    Only in openssl-1.1.0g/crypto/des: xcbc_enc.d
    Only in openssl-1.1.0g/crypto/des: xcbc_enc.o
    Only in openssl-1.1.0g/crypto/dh: dh_ameth.d
    Only in openssl-1.1.0g/crypto/dh: dh_ameth.o
    Only in openssl-1.1.0g/crypto/dh: dh_asn1.d
    Only in openssl-1.1.0g/crypto/dh: dh_asn1.o
    Only in openssl-1.1.0g/crypto/dh: dh_check.d
    Only in openssl-1.1.0g/crypto/dh: dh_check.o
    Only in openssl-1.1.0g/crypto/dh: dh_depr.d
    Only in openssl-1.1.0g/crypto/dh: dh_depr.o
    Only in openssl-1.1.0g/crypto/dh: dh_err.d
    Only in openssl-1.1.0g/crypto/dh: dh_err.o
    Only in openssl-1.1.0g/crypto/dh: dh_gen.d
    Only in openssl-1.1.0g/crypto/dh: dh_gen.o
    Only in openssl-1.1.0g/crypto/dh: dh_kdf.d
    Only in openssl-1.1.0g/crypto/dh: dh_kdf.o
    diff -upr openssl-1.1.0g/crypto/dh/dh_key.c /home/chris/amissl/openssl/crypto/dh/dh_key.c
    --- openssl-1.1.0g/crypto/dh/dh_key.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/dh/dh_key.c	2018-07-23 20:12:11.075677571 +0100
    @@ -44,7 +44,7 @@ int DH_compute_key_padded(unsigned char
         return rv + pad;
     }
     
    -static DH_METHOD dh_ossl = {
    +static const DH_METHOD dh_ossl = {
         "OpenSSL DH Method",
         generate_key,
         compute_key,
    Only in openssl-1.1.0g/crypto/dh: dh_key.d
    Only in openssl-1.1.0g/crypto/dh: dh_key.o
    Only in openssl-1.1.0g/crypto/dh: dh_lib.d
    Only in openssl-1.1.0g/crypto/dh: dh_lib.o
    Only in openssl-1.1.0g/crypto/dh: dh_meth.d
    Only in openssl-1.1.0g/crypto/dh: dh_meth.o
    Only in openssl-1.1.0g/crypto/dh: dh_pmeth.d
    Only in openssl-1.1.0g/crypto/dh: dh_pmeth.o
    Only in openssl-1.1.0g/crypto/dh: dh_prn.d
    Only in openssl-1.1.0g/crypto/dh: dh_prn.o
    Only in openssl-1.1.0g/crypto/dh: dh_rfc5114.d
    Only in openssl-1.1.0g/crypto/dh: dh_rfc5114.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_ameth.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_ameth.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_asn1.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_asn1.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_depr.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_depr.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_err.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_err.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_gen.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_gen.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_key.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_key.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_lib.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_lib.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_meth.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_meth.o
    diff -upr openssl-1.1.0g/crypto/dsa/dsa_ossl.c /home/chris/amissl/openssl/crypto/dsa/dsa_ossl.c
    --- openssl-1.1.0g/crypto/dsa/dsa_ossl.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/dsa/dsa_ossl.c	2018-07-23 20:12:11.079687817 +0100
    @@ -26,7 +26,7 @@ static int dsa_do_verify(const unsigned
     static int dsa_init(DSA *dsa);
     static int dsa_finish(DSA *dsa);
     
    -static DSA_METHOD openssl_dsa_meth = {
    +static const DSA_METHOD openssl_dsa_meth = {
         "OpenSSL DSA method",
         dsa_do_sign,
         dsa_sign_setup_no_digest,
    Only in openssl-1.1.0g/crypto/dsa: dsa_ossl.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_ossl.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_pmeth.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_pmeth.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_prn.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_prn.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_sign.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_sign.o
    Only in openssl-1.1.0g/crypto/dsa: dsa_vrf.d
    Only in openssl-1.1.0g/crypto/dsa: dsa_vrf.o
    Only in openssl-1.1.0g/crypto/dso: dso_dl.d
    Only in openssl-1.1.0g/crypto/dso: dso_dlfcn.d
    Only in openssl-1.1.0g/crypto/dso: dso_dlfcn.o
    Only in openssl-1.1.0g/crypto/dso: dso_dl.o
    Only in openssl-1.1.0g/crypto/dso: dso_err.d
    Only in openssl-1.1.0g/crypto/dso: dso_err.o
    Only in openssl-1.1.0g/crypto/dso: dso_lib.d
    Only in openssl-1.1.0g/crypto/dso: dso_lib.o
    Only in openssl-1.1.0g/crypto/dso: dso_openssl.d
    Only in openssl-1.1.0g/crypto/dso: dso_openssl.o
    Only in openssl-1.1.0g/crypto/dso: dso_vms.d
    Only in openssl-1.1.0g/crypto/dso: dso_vms.o
    Only in openssl-1.1.0g/crypto/dso: dso_win32.d
    Only in openssl-1.1.0g/crypto/dso: dso_win32.o
    Only in openssl-1.1.0g/crypto: ebcdic.d
    Only in openssl-1.1.0g/crypto: ebcdic.o
    Only in openssl-1.1.0g/crypto/ec: curve25519.d
    Only in openssl-1.1.0g/crypto/ec: curve25519.o
    Only in openssl-1.1.0g/crypto/ec: ec2_mult.d
    Only in openssl-1.1.0g/crypto/ec: ec2_mult.o
    Only in openssl-1.1.0g/crypto/ec: ec2_oct.d
    Only in openssl-1.1.0g/crypto/ec: ec2_oct.o
    Only in openssl-1.1.0g/crypto/ec: ec2_smpl.d
    Only in openssl-1.1.0g/crypto/ec: ec2_smpl.o
    Only in openssl-1.1.0g/crypto/ec: ec_ameth.d
    Only in openssl-1.1.0g/crypto/ec: ec_ameth.o
    Only in openssl-1.1.0g/crypto/ec: ec_asn1.d
    Only in openssl-1.1.0g/crypto/ec: ec_asn1.o
    Only in openssl-1.1.0g/crypto/ec: ec_check.d
    Only in openssl-1.1.0g/crypto/ec: ec_check.o
    diff -upr openssl-1.1.0g/crypto/ec/ec_curve.c /home/chris/amissl/openssl/crypto/ec/ec_curve.c
    --- openssl-1.1.0g/crypto/ec/ec_curve.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/ec/ec_curve.c	2018-07-23 20:12:11.123800521 +0100
    @@ -3130,7 +3130,7 @@ typedef struct {
         int nid;                    /* Curve NID */
     } EC_NIST_NAME;
     
    -static EC_NIST_NAME nist_curves[] = {
    +static const EC_NIST_NAME nist_curves[] = {
         {"B-163", NID_sect163r2},
         {"B-233", NID_sect233r1},
         {"B-283", NID_sect283r1},
    Only in openssl-1.1.0g/crypto/ec: ec_curve.d
    Only in openssl-1.1.0g/crypto/ec: ec_curve.o
    Only in openssl-1.1.0g/crypto/ec: ec_cvt.d
    Only in openssl-1.1.0g/crypto/ec: ec_cvt.o
    Only in openssl-1.1.0g/crypto/ec: ecdh_kdf.d
    Only in openssl-1.1.0g/crypto/ec: ecdh_kdf.o
    Only in openssl-1.1.0g/crypto/ec: ecdh_ossl.d
    Only in openssl-1.1.0g/crypto/ec: ecdh_ossl.o
    Only in openssl-1.1.0g/crypto/ec: ecdsa_ossl.d
    Only in openssl-1.1.0g/crypto/ec: ecdsa_ossl.o
    Only in openssl-1.1.0g/crypto/ec: ecdsa_sign.d
    Only in openssl-1.1.0g/crypto/ec: ecdsa_sign.o
    Only in openssl-1.1.0g/crypto/ec: ecdsa_vrf.d
    Only in openssl-1.1.0g/crypto/ec: ecdsa_vrf.o
    Only in openssl-1.1.0g/crypto/ec: ec_err.d
    Only in openssl-1.1.0g/crypto/ec: ec_err.o
    Only in openssl-1.1.0g/crypto/ec: ec_key.d
    Only in openssl-1.1.0g/crypto/ec: ec_key.o
    Only in openssl-1.1.0g/crypto/ec: ec_kmeth.d
    Only in openssl-1.1.0g/crypto/ec: ec_kmeth.o
    Only in openssl-1.1.0g/crypto/ec: eck_prn.d
    Only in openssl-1.1.0g/crypto/ec: eck_prn.o
    Only in openssl-1.1.0g/crypto/ec: ec_lib.d
    Only in openssl-1.1.0g/crypto/ec: ec_lib.o
    Only in openssl-1.1.0g/crypto/ec: ec_mult.d
    Only in openssl-1.1.0g/crypto/ec: ec_mult.o
    Only in openssl-1.1.0g/crypto/ec: ec_oct.d
    Only in openssl-1.1.0g/crypto/ec: ec_oct.o
    Only in openssl-1.1.0g/crypto/ec: ec_pmeth.d
    Only in openssl-1.1.0g/crypto/ec: ec_pmeth.o
    Only in openssl-1.1.0g/crypto/ec: ecp_mont.d
    Only in openssl-1.1.0g/crypto/ec: ecp_mont.o
    Only in openssl-1.1.0g/crypto/ec: ecp_nist.d
    Only in openssl-1.1.0g/crypto/ec: ecp_nist.o
    Only in openssl-1.1.0g/crypto/ec: ecp_nistp224.d
    Only in openssl-1.1.0g/crypto/ec: ecp_nistp224.o
    Only in openssl-1.1.0g/crypto/ec: ecp_nistp256.d
    Only in openssl-1.1.0g/crypto/ec: ecp_nistp256.o
    Only in openssl-1.1.0g/crypto/ec: ecp_nistp521.d
    Only in openssl-1.1.0g/crypto/ec: ecp_nistp521.o
    Only in openssl-1.1.0g/crypto/ec: ecp_nistputil.d
    Only in openssl-1.1.0g/crypto/ec: ecp_nistputil.o
    Only in openssl-1.1.0g/crypto/ec: ecp_oct.d
    Only in openssl-1.1.0g/crypto/ec: ecp_oct.o
    Only in openssl-1.1.0g/crypto/ec: ec_print.d
    Only in openssl-1.1.0g/crypto/ec: ec_print.o
    Only in openssl-1.1.0g/crypto/ec: ecp_smpl.d
    Only in openssl-1.1.0g/crypto/ec: ecp_smpl.o
    Only in openssl-1.1.0g/crypto/ec: ecx_meth.d
    Only in openssl-1.1.0g/crypto/ec: ecx_meth.o
    Only in openssl-1.1.0g/crypto/engine: eng_all.d
    Only in openssl-1.1.0g/crypto/engine: eng_all.o
    Only in openssl-1.1.0g/crypto/engine: eng_cnf.d
    Only in openssl-1.1.0g/crypto/engine: eng_cnf.o
    Only in openssl-1.1.0g/crypto/engine: eng_cryptodev.d
    Only in openssl-1.1.0g/crypto/engine: eng_cryptodev.o
    Only in openssl-1.1.0g/crypto/engine: eng_ctrl.d
    Only in openssl-1.1.0g/crypto/engine: eng_ctrl.o
    Only in openssl-1.1.0g/crypto/engine: eng_dyn.d
    Only in openssl-1.1.0g/crypto/engine: eng_dyn.o
    Only in openssl-1.1.0g/crypto/engine: eng_err.d
    Only in openssl-1.1.0g/crypto/engine: eng_err.o
    Only in openssl-1.1.0g/crypto/engine: eng_fat.d
    Only in openssl-1.1.0g/crypto/engine: eng_fat.o
    Only in openssl-1.1.0g/crypto/engine: eng_init.d
    Only in openssl-1.1.0g/crypto/engine: eng_init.o
    Only in openssl-1.1.0g/crypto/engine: eng_lib.d
    Only in openssl-1.1.0g/crypto/engine: eng_lib.o
    Only in openssl-1.1.0g/crypto/engine: eng_list.d
    Only in openssl-1.1.0g/crypto/engine: eng_list.o
    Only in openssl-1.1.0g/crypto/engine: eng_openssl.d
    Only in openssl-1.1.0g/crypto/engine: eng_openssl.o
    Only in openssl-1.1.0g/crypto/engine: eng_pkey.d
    Only in openssl-1.1.0g/crypto/engine: eng_pkey.o
    Only in openssl-1.1.0g/crypto/engine: eng_rdrand.d
    Only in openssl-1.1.0g/crypto/engine: eng_rdrand.o
    Only in openssl-1.1.0g/crypto/engine: eng_table.d
    Only in openssl-1.1.0g/crypto/engine: eng_table.o
    Only in openssl-1.1.0g/crypto/engine: tb_asnmth.d
    Only in openssl-1.1.0g/crypto/engine: tb_asnmth.o
    Only in openssl-1.1.0g/crypto/engine: tb_cipher.d
    Only in openssl-1.1.0g/crypto/engine: tb_cipher.o
    Only in openssl-1.1.0g/crypto/engine: tb_dh.d
    Only in openssl-1.1.0g/crypto/engine: tb_dh.o
    Only in openssl-1.1.0g/crypto/engine: tb_digest.d
    Only in openssl-1.1.0g/crypto/engine: tb_digest.o
    Only in openssl-1.1.0g/crypto/engine: tb_dsa.d
    Only in openssl-1.1.0g/crypto/engine: tb_dsa.o
    Only in openssl-1.1.0g/crypto/engine: tb_eckey.d
    Only in openssl-1.1.0g/crypto/engine: tb_eckey.o
    Only in openssl-1.1.0g/crypto/engine: tb_pkmeth.d
    Only in openssl-1.1.0g/crypto/engine: tb_pkmeth.o
    Only in openssl-1.1.0g/crypto/engine: tb_rand.d
    Only in openssl-1.1.0g/crypto/engine: tb_rand.o
    Only in openssl-1.1.0g/crypto/engine: tb_rsa.d
    Only in openssl-1.1.0g/crypto/engine: tb_rsa.o
    Only in openssl-1.1.0g/crypto/err: err_all.d
    Only in openssl-1.1.0g/crypto/err: err_all.o
    Only in openssl-1.1.0g/crypto/err: err.d
    Only in openssl-1.1.0g/crypto/err: err.o
    Only in openssl-1.1.0g/crypto/err: err_prn.d
    Only in openssl-1.1.0g/crypto/err: err_prn.o
    Only in openssl-1.1.0g/crypto/evp: bio_b64.d
    Only in openssl-1.1.0g/crypto/evp: bio_b64.o
    Only in openssl-1.1.0g/crypto/evp: bio_enc.d
    Only in openssl-1.1.0g/crypto/evp: bio_enc.o
    Only in openssl-1.1.0g/crypto/evp: bio_md.d
    Only in openssl-1.1.0g/crypto/evp: bio_md.o
    Only in openssl-1.1.0g/crypto/evp: bio_ok.d
    Only in openssl-1.1.0g/crypto/evp: bio_ok.o
    Only in openssl-1.1.0g/crypto/evp: c_allc.d
    Only in openssl-1.1.0g/crypto/evp: c_allc.o
    Only in openssl-1.1.0g/crypto/evp: c_alld.d
    Only in openssl-1.1.0g/crypto/evp: c_alld.o
    Only in openssl-1.1.0g/crypto/evp: cmeth_lib.d
    Only in openssl-1.1.0g/crypto/evp: cmeth_lib.o
    Only in openssl-1.1.0g/crypto/evp: digest.d
    Only in openssl-1.1.0g/crypto/evp: digest.o
    Only in openssl-1.1.0g/crypto/evp: e_aes_cbc_hmac_sha1.d
    Only in openssl-1.1.0g/crypto/evp: e_aes_cbc_hmac_sha1.o
    Only in openssl-1.1.0g/crypto/evp: e_aes_cbc_hmac_sha256.d
    Only in openssl-1.1.0g/crypto/evp: e_aes_cbc_hmac_sha256.o
    Only in openssl-1.1.0g/crypto/evp: e_aes.d
    Only in openssl-1.1.0g/crypto/evp: e_aes.o
    Only in openssl-1.1.0g/crypto/evp: e_bf.d
    Only in openssl-1.1.0g/crypto/evp: e_bf.o
    Only in openssl-1.1.0g/crypto/evp: e_camellia.d
    Only in openssl-1.1.0g/crypto/evp: e_camellia.o
    Only in openssl-1.1.0g/crypto/evp: e_cast.d
    Only in openssl-1.1.0g/crypto/evp: e_cast.o
    Only in openssl-1.1.0g/crypto/evp: e_chacha20_poly1305.d
    Only in openssl-1.1.0g/crypto/evp: e_chacha20_poly1305.o
    Only in openssl-1.1.0g/crypto/evp: e_des3.d
    Only in openssl-1.1.0g/crypto/evp: e_des3.o
    Only in openssl-1.1.0g/crypto/evp: e_des.d
    Only in openssl-1.1.0g/crypto/evp: e_des.o
    Only in openssl-1.1.0g/crypto/evp: e_idea.d
    Only in openssl-1.1.0g/crypto/evp: e_idea.o
    Only in openssl-1.1.0g/crypto/evp: encode.d
    Only in openssl-1.1.0g/crypto/evp: encode.o
    Only in openssl-1.1.0g/crypto/evp: e_null.d
    Only in openssl-1.1.0g/crypto/evp: e_null.o
    Only in openssl-1.1.0g/crypto/evp: e_old.d
    Only in openssl-1.1.0g/crypto/evp: e_old.o
    Only in openssl-1.1.0g/crypto/evp: e_rc2.d
    Only in openssl-1.1.0g/crypto/evp: e_rc2.o
    Only in openssl-1.1.0g/crypto/evp: e_rc4.d
    Only in openssl-1.1.0g/crypto/evp: e_rc4_hmac_md5.d
    Only in openssl-1.1.0g/crypto/evp: e_rc4_hmac_md5.o
    Only in openssl-1.1.0g/crypto/evp: e_rc4.o
    Only in openssl-1.1.0g/crypto/evp: e_rc5.d
    Only in openssl-1.1.0g/crypto/evp: e_rc5.o
    Only in openssl-1.1.0g/crypto/evp: e_seed.d
    Only in openssl-1.1.0g/crypto/evp: e_seed.o
    Only in openssl-1.1.0g/crypto/evp: evp_cnf.d
    Only in openssl-1.1.0g/crypto/evp: evp_cnf.o
    Only in openssl-1.1.0g/crypto/evp: evp_enc.d
    Only in openssl-1.1.0g/crypto/evp: evp_enc.o
    Only in openssl-1.1.0g/crypto/evp: evp_err.d
    Only in openssl-1.1.0g/crypto/evp: evp_err.o
    Only in openssl-1.1.0g/crypto/evp: evp_key.d
    Only in openssl-1.1.0g/crypto/evp: evp_key.o
    Only in openssl-1.1.0g/crypto/evp: evp_lib.d
    Only in openssl-1.1.0g/crypto/evp: evp_lib.o
    Only in openssl-1.1.0g/crypto/evp: evp_pbe.d
    Only in openssl-1.1.0g/crypto/evp: evp_pbe.o
    Only in openssl-1.1.0g/crypto/evp: evp_pkey.d
    Only in openssl-1.1.0g/crypto/evp: evp_pkey.o
    Only in openssl-1.1.0g/crypto/evp: e_xcbc_d.d
    Only in openssl-1.1.0g/crypto/evp: e_xcbc_d.o
    Only in openssl-1.1.0g/crypto/evp: m_md2.d
    Only in openssl-1.1.0g/crypto/evp: m_md2.o
    Only in openssl-1.1.0g/crypto/evp: m_md4.d
    Only in openssl-1.1.0g/crypto/evp: m_md4.o
    Only in openssl-1.1.0g/crypto/evp: m_md5.d
    Only in openssl-1.1.0g/crypto/evp: m_md5.o
    Only in openssl-1.1.0g/crypto/evp: m_md5_sha1.d
    Only in openssl-1.1.0g/crypto/evp: m_md5_sha1.o
    Only in openssl-1.1.0g/crypto/evp: m_mdc2.d
    Only in openssl-1.1.0g/crypto/evp: m_mdc2.o
    Only in openssl-1.1.0g/crypto/evp: m_null.d
    Only in openssl-1.1.0g/crypto/evp: m_null.o
    Only in openssl-1.1.0g/crypto/evp: m_ripemd.d
    Only in openssl-1.1.0g/crypto/evp: m_ripemd.o
    Only in openssl-1.1.0g/crypto/evp: m_sha1.d
    Only in openssl-1.1.0g/crypto/evp: m_sha1.o
    Only in openssl-1.1.0g/crypto/evp: m_sigver.d
    Only in openssl-1.1.0g/crypto/evp: m_sigver.o
    Only in openssl-1.1.0g/crypto/evp: m_wp.d
    Only in openssl-1.1.0g/crypto/evp: m_wp.o
    Only in openssl-1.1.0g/crypto/evp: names.d
    Only in openssl-1.1.0g/crypto/evp: names.o
    Only in openssl-1.1.0g/crypto/evp: p5_crpt2.d
    Only in openssl-1.1.0g/crypto/evp: p5_crpt2.o
    Only in openssl-1.1.0g/crypto/evp: p5_crpt.d
    Only in openssl-1.1.0g/crypto/evp: p5_crpt.o
    Only in openssl-1.1.0g/crypto/evp: p_dec.d
    Only in openssl-1.1.0g/crypto/evp: p_dec.o
    Only in openssl-1.1.0g/crypto/evp: p_enc.d
    Only in openssl-1.1.0g/crypto/evp: p_enc.o
    Only in openssl-1.1.0g/crypto/evp: p_lib.d
    Only in openssl-1.1.0g/crypto/evp: p_lib.o
    Only in openssl-1.1.0g/crypto/evp: pmeth_fn.d
    Only in openssl-1.1.0g/crypto/evp: pmeth_fn.o
    Only in openssl-1.1.0g/crypto/evp: pmeth_gn.d
    Only in openssl-1.1.0g/crypto/evp: pmeth_gn.o
    Only in openssl-1.1.0g/crypto/evp: pmeth_lib.d
    Only in openssl-1.1.0g/crypto/evp: pmeth_lib.o
    Only in openssl-1.1.0g/crypto/evp: p_open.d
    Only in openssl-1.1.0g/crypto/evp: p_open.o
    Only in openssl-1.1.0g/crypto/evp: p_seal.d
    Only in openssl-1.1.0g/crypto/evp: p_seal.o
    Only in openssl-1.1.0g/crypto/evp: p_sign.d
    Only in openssl-1.1.0g/crypto/evp: p_sign.o
    Only in openssl-1.1.0g/crypto/evp: p_verify.d
    Only in openssl-1.1.0g/crypto/evp: p_verify.o
    Only in openssl-1.1.0g/crypto/evp: scrypt.d
    Only in openssl-1.1.0g/crypto/evp: scrypt.o
    Only in openssl-1.1.0g/crypto: ex_data.d
    Only in openssl-1.1.0g/crypto: ex_data.o
    Only in openssl-1.1.0g/crypto/hmac: hmac.d
    Only in openssl-1.1.0g/crypto/hmac: hmac.o
    Only in openssl-1.1.0g/crypto/hmac: hm_ameth.d
    Only in openssl-1.1.0g/crypto/hmac: hm_ameth.o
    Only in openssl-1.1.0g/crypto/hmac: hm_pmeth.d
    Only in openssl-1.1.0g/crypto/hmac: hm_pmeth.o
    Only in openssl-1.1.0g/crypto/idea: i_cbc.d
    Only in openssl-1.1.0g/crypto/idea: i_cbc.o
    Only in openssl-1.1.0g/crypto/idea: i_cfb64.d
    Only in openssl-1.1.0g/crypto/idea: i_cfb64.o
    Only in openssl-1.1.0g/crypto/idea: i_ecb.d
    Only in openssl-1.1.0g/crypto/idea: i_ecb.o
    Only in openssl-1.1.0g/crypto/idea: i_ofb64.d
    Only in openssl-1.1.0g/crypto/idea: i_ofb64.o
    Only in openssl-1.1.0g/crypto/idea: i_skey.d
    Only in openssl-1.1.0g/crypto/idea: i_skey.o
    Only in openssl-1.1.0g/crypto/include/internal: bn_conf.h
    diff -upr openssl-1.1.0g/crypto/include/internal/cryptlib.h /home/chris/amissl/openssl/crypto/include/internal/cryptlib.h
    --- openssl-1.1.0g/crypto/include/internal/cryptlib.h	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/include/internal/cryptlib.h	2018-07-23 20:12:11.228066913 +0100
    @@ -41,10 +41,17 @@ DEFINE_LHASH_OF(MEM);
     
     # ifndef OPENSSL_SYS_VMS
     #  define X509_CERT_AREA          OPENSSLDIR
    -#  define X509_CERT_DIR           OPENSSLDIR "/certs"
    -#  define X509_CERT_FILE          OPENSSLDIR "/cert.pem"
    -#  define X509_PRIVATE_DIR        OPENSSLDIR "/private"
    -#  define CTLOG_FILE              OPENSSLDIR "/ct_log_list.cnf"
    +#  ifndef OPENSSL_SYS_AMIGA
    +#   define X509_CERT_DIR           OPENSSLDIR "/certs"
    +#   define X509_CERT_FILE          OPENSSLDIR "/cert.pem"
    +#   define X509_PRIVATE_DIR        OPENSSLDIR "/private"
    +#   define CTLOG_FILE              OPENSSLDIR "/ct_log_list.cnf"
    +#  else
    +#   define X509_CERT_DIR           OPENSSLDIR "certs"
    +#   define X509_CERT_FILE          OPENSSLDIR "cert.pem"
    +#   define X509_PRIVATE_DIR        OPENSSLDIR "private"
    +#   define CTLOG_FILE              OPENSSLDIR "ct_log_list.cnf"
    +#  endif
     # else
     #  define X509_CERT_AREA          "OSSL$DATAROOT:[000000]"
     #  define X509_CERT_DIR           "OSSL$DATAROOT:[CERTS]"
    Only in openssl-1.1.0g/crypto/include/internal: dso_conf.h
    diff -upr openssl-1.1.0g/crypto/include/internal/md32_common.h /home/chris/amissl/openssl/crypto/include/internal/md32_common.h
    --- openssl-1.1.0g/crypto/include/internal/md32_common.h	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/include/internal/md32_common.h	2018-07-23 20:12:11.228066913 +0100
    @@ -182,6 +182,9 @@
     #      define HOST_l2c(l,c)      (*((unsigned int *)(c))=(l), (c)+=4, (l))
     #     endif
     #    endif
    +#   elif defined(__mc68020)
    +#    define HOST_c2l(c,l) ({ asm volatile ("movel %0@+,%1" : "=a"(c), "=d"(l) : "0"(c)); })
    +#    define HOST_l2c(l,c) ({ asm volatile ("movel %1,%0@+" : "=a"(c) : "d"(l), "0"(c)); })
     #   endif
     #  endif
     #  if defined(__s390__) || defined(__s390x__)
    @@ -215,6 +218,22 @@
     #    define HOST_l2c(l,c)        ({ asm ("strv   %1,%0"                  \
                                        :"=m"(*(unsigned int *)(c)) :"d"(l));\
                                        (c)+=4; (l);                         })
    +#   elif defined(__mc68020)
    +#    define HOST_c2l(c,l)        ({ unsigned int r;                      \
    +                                    asm volatile ("movel  %1@+,%0\n"     \
    +                                                  "rorw   #8,%0\n"       \
    +                                                  "swap   %0\n"          \
    +                                                  "rorw   #8,%0\n"       \
    +                                    : "=d"(r), "=a"(c)                   \
    +                                    : "1"(c));                           \
    +                                    (l)=r; })
    +#    define HOST_l2c(l,c)        ({ unsigned int r=(l);                  \
    +                                    asm volatile ("rorw   #8,%0\n"       \
    +                                                  "swap   %0\n"          \
    +                                                  "rorw   #8,%0\n"       \
    +                                                  "movel  %0,%1@+\n"     \
    +                                    : "=d"(r), "=a"(c)                   \
    +                                    : "0"(r), "1"(c)); })
     #   endif
     #  endif
     #  if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
    diff -upr openssl-1.1.0g/crypto/init.c /home/chris/amissl/openssl/crypto/init.c
    --- openssl-1.1.0g/crypto/init.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/init.c	2018-07-23 20:12:11.240097651 +0100
    @@ -76,7 +76,7 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_base)
          * when the thread is going to stop (where that feature is available)
          */
         CRYPTO_THREAD_init_local(&threadstopkey, ossl_init_thread_stop_wrap);
    -#ifndef OPENSSL_SYS_UEFI
    +#if !defined(OPENSSL_SYS_UEFI) && !defined(OPENSSL_SYS_AMIGA)
         atexit(OPENSSL_cleanup);
     #endif
         if ((init_lock = CRYPTO_THREAD_lock_new()) == NULL)
    Only in openssl-1.1.0g/crypto: init.d
    Only in openssl-1.1.0g/crypto: init.o
    Only in openssl-1.1.0g/crypto/kdf: hkdf.d
    Only in openssl-1.1.0g/crypto/kdf: hkdf.o
    Only in openssl-1.1.0g/crypto/kdf: kdf_err.d
    Only in openssl-1.1.0g/crypto/kdf: kdf_err.o
    Only in openssl-1.1.0g/crypto/kdf: tls1_prf.d
    Only in openssl-1.1.0g/crypto/kdf: tls1_prf.o
    Only in openssl-1.1.0g/crypto/lhash: lhash.d
    Only in openssl-1.1.0g/crypto/lhash: lhash.o
    Only in openssl-1.1.0g/crypto/lhash: lh_stats.d
    Only in openssl-1.1.0g/crypto/lhash: lh_stats.o
    Only in openssl-1.1.0g/crypto/md4: md4_dgst.d
    Only in openssl-1.1.0g/crypto/md4: md4_dgst.o
    Only in openssl-1.1.0g/crypto/md4: md4_one.d
    Only in openssl-1.1.0g/crypto/md4: md4_one.o
    Only in openssl-1.1.0g/crypto/md5: md5_dgst.d
    Only in openssl-1.1.0g/crypto/md5: md5_dgst.o
    Only in openssl-1.1.0g/crypto/md5: md5_one.d
    Only in openssl-1.1.0g/crypto/md5: md5_one.o
    Only in openssl-1.1.0g/crypto/mdc2: mdc2dgst.d
    Only in openssl-1.1.0g/crypto/mdc2: mdc2dgst.o
    Only in openssl-1.1.0g/crypto/mdc2: mdc2_one.d
    Only in openssl-1.1.0g/crypto/mdc2: mdc2_one.o
    Only in openssl-1.1.0g/crypto: mem_clr.d
    Only in openssl-1.1.0g/crypto: mem_clr.o
    Only in openssl-1.1.0g/crypto: mem.d
    Only in openssl-1.1.0g/crypto: mem_dbg.d
    Only in openssl-1.1.0g/crypto: mem_dbg.o
    Only in openssl-1.1.0g/crypto: mem.o
    diff -upr openssl-1.1.0g/crypto/mem_sec.c /home/chris/amissl/openssl/crypto/mem_sec.c
    --- openssl-1.1.0g/crypto/mem_sec.c	2018-07-23 22:47:02.187498606 +0100
    +++ /home/chris/amissl/openssl/crypto/mem_sec.c	2018-07-23 20:12:11.240097651 +0100
    @@ -24,7 +24,7 @@
     
     #include <string.h>
     
    -#if ! defined(OPENSSL_SYS_RISCOS) && ! defined(OPENSSL_SYS_AMIGAOS3) && ! defined(OPENSSL_SYS_AMIGAOS4) && (defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX))
    +#if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX)
     # define IMPLEMENTED
     # include <stdlib.h>
     # include <assert.h>
    Only in openssl-1.1.0g/crypto: mem_sec.d
    Only in openssl-1.1.0g/crypto: mem_sec.o
    Only in openssl-1.1.0g/crypto/modes: cbc128.d
    Only in openssl-1.1.0g/crypto/modes: cbc128.o
    Only in openssl-1.1.0g/crypto/modes: ccm128.d
    Only in openssl-1.1.0g/crypto/modes: ccm128.o
    Only in openssl-1.1.0g/crypto/modes: cfb128.d
    Only in openssl-1.1.0g/crypto/modes: cfb128.o
    Only in openssl-1.1.0g/crypto/modes: ctr128.d
    Only in openssl-1.1.0g/crypto/modes: ctr128.o
    Only in openssl-1.1.0g/crypto/modes: cts128.d
    Only in openssl-1.1.0g/crypto/modes: cts128.o
    Only in openssl-1.1.0g/crypto/modes: gcm128.d
    Only in openssl-1.1.0g/crypto/modes: gcm128.o
    Only in openssl-1.1.0g/crypto/modes: ocb128.d
    Only in openssl-1.1.0g/crypto/modes: ocb128.o
    Only in openssl-1.1.0g/crypto/modes: ofb128.d
    Only in openssl-1.1.0g/crypto/modes: ofb128.o
    Only in openssl-1.1.0g/crypto/modes: wrap128.d
    Only in openssl-1.1.0g/crypto/modes: wrap128.o
    Only in openssl-1.1.0g/crypto/modes: xts128.d
    Only in openssl-1.1.0g/crypto/modes: xts128.o
    Only in openssl-1.1.0g/crypto/objects: obj_dat.d
    Only in openssl-1.1.0g/crypto/objects: obj_dat.o
    Only in openssl-1.1.0g/crypto/objects: obj_err.d
    Only in openssl-1.1.0g/crypto/objects: obj_err.o
    Only in openssl-1.1.0g/crypto/objects: obj_lib.d
    Only in openssl-1.1.0g/crypto/objects: obj_lib.o
    Only in openssl-1.1.0g/crypto/objects: obj_xref.d
    Only in openssl-1.1.0g/crypto/objects: obj_xref.o
    Only in openssl-1.1.0g/crypto/objects: o_names.d
    Only in openssl-1.1.0g/crypto/objects: o_names.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_asn.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_asn.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_cl.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_cl.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_err.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_err.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_ext.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_ext.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_ht.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_ht.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_lib.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_lib.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_prn.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_prn.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_srv.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_srv.o
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_vfy.d
    Only in openssl-1.1.0g/crypto/ocsp: ocsp_vfy.o
    Only in openssl-1.1.0g/crypto/ocsp: v3_ocsp.d
    Only in openssl-1.1.0g/crypto/ocsp: v3_ocsp.o
    Only in openssl-1.1.0g/crypto: o_dir.d
    Only in openssl-1.1.0g/crypto: o_dir.o
    Only in openssl-1.1.0g/crypto: o_fips.d
    Only in openssl-1.1.0g/crypto: o_fips.o
    Only in openssl-1.1.0g/crypto: o_fopen.d
    Only in openssl-1.1.0g/crypto: o_fopen.o
    Only in openssl-1.1.0g/crypto: o_init.d
    Only in openssl-1.1.0g/crypto: o_init.o
    Only in openssl-1.1.0g/crypto: o_str.d
    Only in openssl-1.1.0g/crypto: o_str.o
    Only in openssl-1.1.0g/crypto: o_time.d
    Only in openssl-1.1.0g/crypto: o_time.o
    Only in openssl-1.1.0g/crypto/pem: pem_all.d
    Only in openssl-1.1.0g/crypto/pem: pem_all.o
    Only in openssl-1.1.0g/crypto/pem: pem_err.d
    Only in openssl-1.1.0g/crypto/pem: pem_err.o
    Only in openssl-1.1.0g/crypto/pem: pem_info.d
    Only in openssl-1.1.0g/crypto/pem: pem_info.o
    Only in openssl-1.1.0g/crypto/pem: pem_lib.d
    Only in openssl-1.1.0g/crypto/pem: pem_lib.o
    Only in openssl-1.1.0g/crypto/pem: pem_oth.d
    Only in openssl-1.1.0g/crypto/pem: pem_oth.o
    Only in openssl-1.1.0g/crypto/pem: pem_pk8.d
    Only in openssl-1.1.0g/crypto/pem: pem_pk8.o
    Only in openssl-1.1.0g/crypto/pem: pem_pkey.d
    Only in openssl-1.1.0g/crypto/pem: pem_pkey.o
    Only in openssl-1.1.0g/crypto/pem: pem_sign.d
    Only in openssl-1.1.0g/crypto/pem: pem_sign.o
    Only in openssl-1.1.0g/crypto/pem: pem_x509.d
    Only in openssl-1.1.0g/crypto/pem: pem_x509.o
    Only in openssl-1.1.0g/crypto/pem: pem_xaux.d
    Only in openssl-1.1.0g/crypto/pem: pem_xaux.o
    Only in openssl-1.1.0g/crypto/pem: pvkfmt.d
    Only in openssl-1.1.0g/crypto/pem: pvkfmt.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_add.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_add.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_asn.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_asn.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_attr.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_attr.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_crpt.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_crpt.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_crt.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_crt.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_decr.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_decr.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_init.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_init.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_key.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_key.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_kiss.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_kiss.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_mutl.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_mutl.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_npas.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_npas.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_p8d.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_p8d.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_p8e.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_p8e.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_sbag.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_sbag.o
    Only in openssl-1.1.0g/crypto/pkcs12: p12_utl.d
    Only in openssl-1.1.0g/crypto/pkcs12: p12_utl.o
    Only in openssl-1.1.0g/crypto/pkcs12: pk12err.d
    Only in openssl-1.1.0g/crypto/pkcs12: pk12err.o
    diff -upr openssl-1.1.0g/crypto/pkcs7/bio_pk7.c /home/chris/amissl/openssl/crypto/pkcs7/bio_pk7.c
    --- openssl-1.1.0g/crypto/pkcs7/bio_pk7.c	2018-07-23 22:47:02.158980390 +0100
    +++ /home/chris/amissl/openssl/crypto/pkcs7/bio_pk7.c	2018-07-23 20:12:11.424568959 +0100
    @@ -11,12 +11,8 @@
     #include <openssl/pkcs7.h>
     #include <openssl/bio.h>
     
    -#if !defined(OPENSSL_SYS_VXWORKS)
    -# if !defined(OPENSSL_SYS_AMIGAOS3) && !defined(OPENSSL_SYS_AMIGAOS4)
    -#  include <memory.h>
    -# else
    -#  include <string.h>
    -# endif
    +#if !defined(OPENSSL_SYS_VXWORKS) && !defined(OPENSSL_SYS_AMIGA)
    +# include <memory.h>
     #endif
     #include <stdio.h>
     
    Only in openssl-1.1.0g/crypto/pkcs7: bio_pk7.d
    Only in openssl-1.1.0g/crypto/pkcs7: bio_pk7.o
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_asn1.d
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_asn1.o
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_attr.d
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_attr.o
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_doit.d
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_doit.o
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_lib.d
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_lib.o
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_mime.d
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_mime.o
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_smime.d
    Only in openssl-1.1.0g/crypto/pkcs7: pk7_smime.o
    Only in openssl-1.1.0g/crypto/pkcs7: pkcs7err.d
    Only in openssl-1.1.0g/crypto/pkcs7: pkcs7err.o
    Only in openssl-1.1.0g/crypto/poly1305: poly1305.d
    Only in openssl-1.1.0g/crypto/poly1305: poly1305.o
    diff -upr openssl-1.1.0g/crypto/ppccap.c /home/chris/amissl/openssl/crypto/ppccap.c
    --- openssl-1.1.0g/crypto/ppccap.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/ppccap.c	2018-07-23 20:12:11.540866089 +0100
    @@ -135,6 +135,7 @@ int poly1305_init(void *ctx, const unsig
     }
     #endif
     
    +#if !defined(OPENSSL_SYS_AMIGA)
     static sigjmp_buf ill_jmp;
     static void ill_handler(int sig)
     {
    @@ -341,3 +342,23 @@ void OPENSSL_cpuid_setup(void)
         sigaction(SIGILL, &ill_oact, NULL);
         sigprocmask(SIG_SETMASK, &oset, NULL);
     }
    +#else
    +#include <proto/exec.h>
    +void OPENSSL_cpuid_setup(void)
    +{
    +    uint32 family, vec;
    +
    +    GetCPUInfoTags(GCIT_Family, &family, GCIT_VectorUnit, &vec, TAG_DONE);
    +
    +    OPENSSL_ppccap_P = PPC_FPU;
    +
    +    if((family == CPUFAMILY_PA6T) || (family == CPUFAMILY_E5500))
    +        OPENSSL_ppccap_P |= PPC_FPU64;
    +
    +    if((vec == VECTORTYPE_ALTIVEC) &&
    +       ((SysBase->lib_Version == 51 && SysBase->lib_Revision >= 12) || SysBase->lib_Version > 51))
    +    {
    +        OPENSSL_ppccap_P |= PPC_ALTIVEC;
    +    }
    +}
    +#endif
    diff -upr openssl-1.1.0g/crypto/rand/build.info /home/chris/amissl/openssl/crypto/rand/build.info
    --- openssl-1.1.0g/crypto/rand/build.info	2018-07-23 22:47:02.692678436 +0100
    +++ /home/chris/amissl/openssl/crypto/rand/build.info	2018-07-23 20:12:11.540866089 +0100
    @@ -1,4 +1,4 @@
     LIBS=../../libcrypto
     SOURCE[../../libcrypto]=\
    -        md_rand.c randfile.c rand_lib.c rand_err.c rand_amiga.c \
    -        rand_egd.c rand_win.c rand_unix.c rand_vms.c
    +        md_rand.c randfile.c rand_lib.c rand_err.c rand_egd.c \
    +        rand_win.c rand_unix.c rand_vms.c rand_amiga.c
    Only in openssl-1.1.0g/crypto/rand: md_rand.d
    Only in openssl-1.1.0g/crypto/rand: md_rand.o
    diff -upr openssl-1.1.0g/crypto/rand/rand_amiga.c /home/chris/amissl/openssl/crypto/rand/rand_amiga.c
    --- openssl-1.1.0g/crypto/rand/rand_amiga.c	2018-07-23 22:47:02.802677270 +0100
    +++ /home/chris/amissl/openssl/crypto/rand/rand_amiga.c	2018-07-23 20:12:11.540866089 +0100
    @@ -2,12 +2,12 @@
     #include <openssl/sha.h>
     #include "rand_lcl.h"
     
    -#if defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4)
    -#define __USE_INLINE__ 1
    +#ifdef OPENSSL_SYS_AMIGA
     
     #include <proto/exec.h>
     #include <proto/timer.h>
     #include <devices/timer.h>
    +#include <timeval.h>
     
     /* Maximum number of attempts to get a delay of 1 microsecond that is not equal to 0 */
     #define MAX_ATTEMPTS 1000
    @@ -36,20 +36,6 @@
     #define GetInterface(a, b, c, d) 1
     #define DropInterface(x)
     
    -/* OS3 has a different but compatible TimeVal definition */
    -struct TimeVal
    -{
    -    ULONG Seconds;
    -    ULONG Microseconds;
    -};
    -
    -/* ...and ditto for TimeRequest */
    -struct TimeRequest
    -{
    -    struct IORequest Request;
    -    struct TimeVal Time;
    -};
    -
     #endif /* !__amigaos4__ */
     
     int RAND_poll(void)
    @@ -154,7 +140,7 @@ int RAND_poll(void)
     						temp_buffer[i] = (unsigned char)(curr_eclock.ev_lo - prev_ev_lo);
     					}
     
    -					GetSysTime(&tv);
    +					GetSysTime(TIMEVAL(&tv));
     
     					if (sizeof(temp_buffer) > sizeof(ULONG))
     						*(ULONG *)&temp_buffer[sizeof(temp_buffer) - sizeof(ULONG)]
    Only in openssl-1.1.0g/crypto/rand: rand_amiga.c~
    Only in openssl-1.1.0g/crypto/rand: rand_amiga.d
    Only in openssl-1.1.0g/crypto/rand: rand_amiga.o
    diff -upr openssl-1.1.0g/crypto/rand/rand_egd.c /home/chris/amissl/openssl/crypto/rand/rand_egd.c
    --- openssl-1.1.0g/crypto/rand/rand_egd.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/rand/rand_egd.c	2018-07-23 20:12:11.540866089 +0100
    @@ -53,7 +53,7 @@ NON_EMPTY_TRANSLATION_UNIT
      *   RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255.
      */
     
    -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_VOS) || defined(OPENSSL_SYS_UEFI)
    +# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_VOS) || defined(OPENSSL_SYS_UEFI) || defined(OPENSSL_SYS_AMIGA)
     int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
     {
         return (-1);
    Only in openssl-1.1.0g/crypto/rand: rand_egd.d
    Only in openssl-1.1.0g/crypto/rand: rand_egd.o
    Only in openssl-1.1.0g/crypto/rand: rand_err.d
    Only in openssl-1.1.0g/crypto/rand: rand_err.o
    diff -upr openssl-1.1.0g/crypto/rand/randfile.c /home/chris/amissl/openssl/crypto/rand/randfile.c
    --- openssl-1.1.0g/crypto/rand/randfile.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/rand/randfile.c	2018-07-23 20:12:11.544876335 +0100
    @@ -59,6 +59,11 @@
     # define fileno  _fileno
     #endif
     
    +#ifdef OPENSSL_SYS_AMIGA
    +# define fstat   stat
    +# define fileno
    +#endif
    +
     #undef BUFSIZE
     #define BUFSIZE 1024
     #define RAND_DATA 1024
    @@ -151,7 +156,11 @@ int RAND_load_file(const char *file, lon
              * because we will waste system entropy.
              */
             bytes = (bytes == -1) ? 2048 : bytes; /* ok, is 2048 enough? */
    +#  ifndef OPENSSL_SYS_AMIGA
    +        setbuf(stdin, NULL); /* don't do buffered reads */
    +#  else
             setbuf(in, NULL); /* don't do buffered reads */
    +#  endif
         }
     # endif
     #endif
    @@ -211,7 +220,7 @@ int RAND_write_file(const char *file)
     #endif
     
     #if defined(O_CREAT) && !defined(OPENSSL_NO_POSIX_IO) && \
    -    !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_WINDOWS)
    +    !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_AMIGA)
         {
     # ifndef O_BINARY
     #  define O_BINARY 0
    @@ -277,6 +286,10 @@ int RAND_write_file(const char *file)
         return (rand_err ? -1 : ret);
     }
     
    +#ifdef OPENSSL_SYS_AMIGA
    +#include <proto/dos.h>
    +#endif /* OPENSSL_SYS_AMIGA */
    +
     const char *RAND_file_name(char *buf, size_t size)
     {
         char *s = NULL;
    @@ -337,10 +350,14 @@ const char *RAND_file_name(char *buf, si
                     return NULL;
             } else if (len + strlen(RFILE) + 2 < size) {
                 OPENSSL_strlcpy(buf, s, size);
    +#ifndef OPENSSL_SYS_AMIGA
     #ifndef OPENSSL_SYS_VMS
                 OPENSSL_strlcat(buf, "/", size);
     #endif
                 OPENSSL_strlcat(buf, RFILE, size);
    +#else
    +            AddPart(buf, RFILE, size);
    +#endif
             }
         } else {
             buf[0] = '\0';      /* no file name */
    Only in openssl-1.1.0g/crypto/rand: randfile.d
    Only in openssl-1.1.0g/crypto/rand: randfile.o
    Only in openssl-1.1.0g/crypto/rand: rand_lib.d
    Only in openssl-1.1.0g/crypto/rand: rand_lib.o
    diff -upr openssl-1.1.0g/crypto/rand/rand_unix.c /home/chris/amissl/openssl/crypto/rand/rand_unix.c
    --- openssl-1.1.0g/crypto/rand/rand_unix.c	2018-07-23 22:47:02.163054420 +0100
    +++ /home/chris/amissl/openssl/crypto/rand/rand_unix.c	2018-07-23 20:12:11.540866089 +0100
    @@ -15,7 +15,7 @@
     #include <openssl/rand.h>
     #include "rand_lcl.h"
     
    -#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) || defined(OPENSSL_SYS_AMIGAOS3) || defined(OPENSSL_SYS_AMIGAOS4))
    +#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) || defined(OPENSSL_SYS_AMIGA))
     
     # include <sys/types.h>
     # include <sys/time.h>
    Only in openssl-1.1.0g/crypto/rand: rand_unix.d
    Only in openssl-1.1.0g/crypto/rand: rand_unix.o
    Only in openssl-1.1.0g/crypto/rand: rand_vms.d
    Only in openssl-1.1.0g/crypto/rand: rand_vms.o
    Only in openssl-1.1.0g/crypto/rand: rand_win.d
    Only in openssl-1.1.0g/crypto/rand: rand_win.o
    Only in openssl-1.1.0g/crypto/rc2: rc2_cbc.d
    Only in openssl-1.1.0g/crypto/rc2: rc2_cbc.o
    Only in openssl-1.1.0g/crypto/rc2: rc2cfb64.d
    Only in openssl-1.1.0g/crypto/rc2: rc2cfb64.o
    Only in openssl-1.1.0g/crypto/rc2: rc2_ecb.d
    Only in openssl-1.1.0g/crypto/rc2: rc2_ecb.o
    Only in openssl-1.1.0g/crypto/rc2: rc2ofb64.d
    Only in openssl-1.1.0g/crypto/rc2: rc2ofb64.o
    Only in openssl-1.1.0g/crypto/rc2: rc2_skey.d
    Only in openssl-1.1.0g/crypto/rc2: rc2_skey.o
    Only in openssl-1.1.0g/crypto/rc4: rc4_enc.d
    Only in openssl-1.1.0g/crypto/rc4: rc4_enc.o
    Only in openssl-1.1.0g/crypto/rc4: rc4_skey.d
    Only in openssl-1.1.0g/crypto/rc4: rc4_skey.o
    Only in openssl-1.1.0g/crypto/ripemd: rmd_dgst.d
    Only in openssl-1.1.0g/crypto/ripemd: rmd_dgst.o
    Only in openssl-1.1.0g/crypto/ripemd: rmd_one.d
    Only in openssl-1.1.0g/crypto/ripemd: rmd_one.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_ameth.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_ameth.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_asn1.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_asn1.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_chk.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_chk.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_crpt.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_crpt.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_depr.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_depr.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_err.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_err.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_gen.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_gen.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_lib.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_lib.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_meth.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_meth.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_none.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_none.o
    diff -upr openssl-1.1.0g/crypto/rsa/rsa_null.c /home/chris/amissl/openssl/crypto/rsa/rsa_null.c
    --- openssl-1.1.0g/crypto/rsa/rsa_null.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/rsa/rsa_null.c	2018-07-23 20:12:11.548886581 +0100
    @@ -30,7 +30,7 @@ static int RSA_null_private_decrypt(int
                                         unsigned char *to, RSA *rsa, int padding);
     static int RSA_null_init(RSA *rsa);
     static int RSA_null_finish(RSA *rsa);
    -static RSA_METHOD rsa_null_meth = {
    +static const RSA_METHOD rsa_null_meth = {
         "Null RSA",
         RSA_null_public_encrypt,
         RSA_null_public_decrypt,
    Only in openssl-1.1.0g/crypto/rsa: rsa_null.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_null.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_oaep.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_oaep.o
    diff -upr openssl-1.1.0g/crypto/rsa/rsa_ossl.c /home/chris/amissl/openssl/crypto/rsa/rsa_ossl.c
    --- openssl-1.1.0g/crypto/rsa/rsa_ossl.c	2017-11-02 14:29:03.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/rsa/rsa_ossl.c	2018-07-23 20:12:11.552896827 +0100
    @@ -23,7 +23,7 @@ static int rsa_ossl_mod_exp(BIGNUM *r0,
                                BN_CTX *ctx);
     static int rsa_ossl_init(RSA *rsa);
     static int rsa_ossl_finish(RSA *rsa);
    -static RSA_METHOD rsa_pkcs1_ossl_meth = {
    +static const RSA_METHOD rsa_pkcs1_ossl_meth = {
         "OpenSSL PKCS#1 RSA",
         rsa_ossl_public_encrypt,
         rsa_ossl_public_decrypt,     /* signature verification */
    Only in openssl-1.1.0g/crypto/rsa: rsa_ossl.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_ossl.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_pk1.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_pk1.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_pmeth.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_pmeth.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_prn.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_prn.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_pss.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_pss.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_saos.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_saos.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_sign.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_sign.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_ssl.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_ssl.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_x931.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_x931g.d
    Only in openssl-1.1.0g/crypto/rsa: rsa_x931g.o
    Only in openssl-1.1.0g/crypto/rsa: rsa_x931.o
    Only in openssl-1.1.0g/crypto/seed: seed_cbc.d
    Only in openssl-1.1.0g/crypto/seed: seed_cbc.o
    Only in openssl-1.1.0g/crypto/seed: seed_cfb.d
    Only in openssl-1.1.0g/crypto/seed: seed_cfb.o
    Only in openssl-1.1.0g/crypto/seed: seed.d
    Only in openssl-1.1.0g/crypto/seed: seed_ecb.d
    Only in openssl-1.1.0g/crypto/seed: seed_ecb.o
    Only in openssl-1.1.0g/crypto/seed: seed.o
    Only in openssl-1.1.0g/crypto/seed: seed_ofb.d
    Only in openssl-1.1.0g/crypto/seed: seed_ofb.o
    Only in openssl-1.1.0g/crypto/sha: sha1dgst.d
    Only in openssl-1.1.0g/crypto/sha: sha1dgst.o
    Only in openssl-1.1.0g/crypto/sha: sha1_one.d
    Only in openssl-1.1.0g/crypto/sha: sha1_one.o
    diff -upr openssl-1.1.0g/crypto/sha/sha256.c /home/chris/amissl/openssl/crypto/sha/sha256.c
    --- openssl-1.1.0g/crypto/sha/sha256.c	2017-11-02 14:29:04.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/sha/sha256.c	2018-07-23 20:12:11.601019777 +0100
    @@ -309,6 +309,16 @@ static void sha256_block_data_order(SHA2
             } else {
                 SHA_LONG l;
     
    +            E(DBF_ALWAYS, "LITTLE ENDIAN BRANCH!!!: is_endian.little = %ld, in=%08lx, (in %% 4) = %ld, sizeof(SHA_LONG) = %ld", is_endian.little, in, ((size_t)in % 4), sizeof(SHA_LONG));
    +            E(DBF_ALWAYS, "a=%08lx b=%08lx c=%08lx d=%08lx e=%08lx f=%08lx g=%08lx h=%08lx", a, b, c, d, e, f, g, h);
    +            #if defined(DEBUG)
    +            for(i=0; i < 16; i++)
    +            {
    +              const unsigned char *d = data + (i*4);
    +              D(DBF_ALWAYS, "%ld: %02lx %02lx %02lx %02lx", i, d[0], d[1], d[2], d[3]);
    +            }
    +            #endif
    +
                 (void)HOST_c2l(data, l);
                 T1 = X[0] = l;
                 ROUND_00_15(0, a, b, c, d, e, f, g, h);
    @@ -357,6 +367,12 @@ static void sha256_block_data_order(SHA2
                 (void)HOST_c2l(data, l);
                 T1 = X[15] = l;
                 ROUND_00_15(15, b, c, d, e, f, g, h, a);
    +
    +            E(DBF_ALWAYS, "a=%08lx b=%08lx c=%08lx d=%08lx e=%08lx f=%08lx g=%08lx h=%08lx", a, b, c, d, e, f, g, h);
    +            #if defined(DEBUG)
    +            for(i=0; i < 16; i++)
    +              D(DBF_ALWAYS, "X[%ld] = %08lx", i, X[i]);
    +            #endif
             }
     
             for (i = 16; i < 64; i += 8) {
    @@ -370,6 +386,8 @@ static void sha256_block_data_order(SHA2
                 ROUND_16_63(i + 7, b, c, d, e, f, g, h, a, X);
             }
     
    +        E(DBF_ALWAYS, "FINAL: a=%08lx b=%08lx c=%08lx d=%08lx e=%08lx f=%08lx g=%08lx h=%08lx", a, b, c, d, e, f, g, h);
    +
             ctx->h[0] += a;
             ctx->h[1] += b;
             ctx->h[2] += c;
    Only in openssl-1.1.0g/crypto/sha: sha256.d
    Only in openssl-1.1.0g/crypto/sha: sha256.o
    Only in openssl-1.1.0g/crypto/sha: sha512.d
    Only in openssl-1.1.0g/crypto/sha: sha512.o
    Only in openssl-1.1.0g/crypto/srp: srp_lib.d
    Only in openssl-1.1.0g/crypto/srp: srp_lib.o
    Only in openssl-1.1.0g/crypto/srp: srp_vfy.d
    Only in openssl-1.1.0g/crypto/srp: srp_vfy.o
    Only in openssl-1.1.0g/crypto/stack: stack.d
    Only in openssl-1.1.0g/crypto/stack: stack.o
    Only in /home/chris/amissl/openssl/crypto: threads_amissl.c
    Only in openssl-1.1.0g/crypto: threads_none.d
    Only in openssl-1.1.0g/crypto: threads_none.o
    diff -upr openssl-1.1.0g/crypto/threads_pthread.c /home/chris/amissl/openssl/crypto/threads_pthread.c
    --- openssl-1.1.0g/crypto/threads_pthread.c	2017-11-02 14:29:04.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/threads_pthread.c	2018-07-23 20:12:11.605030022 +0100
    @@ -9,7 +9,7 @@
     
     #include <openssl/crypto.h>
     
    -#if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) && !defined(OPENSSL_SYS_WINDOWS)
    +#if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) && !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_AMIGA)
     
     # ifdef PTHREAD_RWLOCK_INITIALIZER
     #  define USE_RWLOCK
    Only in openssl-1.1.0g/crypto: threads_pthread.d
    Only in openssl-1.1.0g/crypto: threads_pthread.o
    Only in openssl-1.1.0g/crypto: threads_win.d
    Only in openssl-1.1.0g/crypto: threads_win.o
    Only in openssl-1.1.0g/crypto/ts: ts_asn1.d
    Only in openssl-1.1.0g/crypto/ts: ts_asn1.o
    Only in openssl-1.1.0g/crypto/ts: ts_conf.d
    Only in openssl-1.1.0g/crypto/ts: ts_conf.o
    Only in openssl-1.1.0g/crypto/ts: ts_err.d
    Only in openssl-1.1.0g/crypto/ts: ts_err.o
    Only in openssl-1.1.0g/crypto/ts: ts_lib.d
    Only in openssl-1.1.0g/crypto/ts: ts_lib.o
    Only in openssl-1.1.0g/crypto/ts: ts_req_print.d
    Only in openssl-1.1.0g/crypto/ts: ts_req_print.o
    Only in openssl-1.1.0g/crypto/ts: ts_req_utils.d
    Only in openssl-1.1.0g/crypto/ts: ts_req_utils.o
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_print.d
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_print.o
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_sign.d
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_sign.o
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_utils.d
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_utils.o
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_verify.d
    Only in openssl-1.1.0g/crypto/ts: ts_rsp_verify.o
    Only in openssl-1.1.0g/crypto/ts: ts_verify_ctx.d
    Only in openssl-1.1.0g/crypto/ts: ts_verify_ctx.o
    Only in openssl-1.1.0g/crypto/txt_db: txt_db.d
    Only in openssl-1.1.0g/crypto/txt_db: txt_db.o
    diff -upr openssl-1.1.0g/crypto/ui/build.info /home/chris/amissl/openssl/crypto/ui/build.info
    --- openssl-1.1.0g/crypto/ui/build.info	2017-11-02 14:29:04.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/ui/build.info	2018-07-23 20:12:11.609040268 +0100
    @@ -1,3 +1,3 @@
     LIBS=../../libcrypto
     SOURCE[../../libcrypto]=\
    -        ui_err.c ui_lib.c ui_openssl.c ui_util.c
    +        ui_err.c ui_lib.c ui_openssl.c ui_util.c ui_amissl.c
    Only in /home/chris/amissl/openssl/crypto/ui: ui_amissl.c
    Only in openssl-1.1.0g/crypto/ui: ui_err.d
    Only in openssl-1.1.0g/crypto/ui: ui_err.o
    diff -upr openssl-1.1.0g/crypto/ui/ui_lib.c /home/chris/amissl/openssl/crypto/ui/ui_lib.c
    --- openssl-1.1.0g/crypto/ui/ui_lib.c	2017-11-02 14:29:04.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/ui/ui_lib.c	2018-07-23 20:12:11.609040268 +0100
    @@ -354,9 +354,15 @@ char *UI_construct_prompt(UI *ui, const
         if (ui->meth->ui_construct_prompt != NULL)
             prompt = ui->meth->ui_construct_prompt(ui, object_desc, object_name);
         else {
    +#ifndef OPENSSL_SYS_AMIGA
             char prompt1[] = "Enter ";
             char prompt2[] = " for ";
             char prompt3[] = ":";
    +#else
    +        char prompt1[] = "Please enter ";
    +        char prompt2[] = " for ";
    +        char prompt3[] = "";
    +#endif
             int len = 0;
     
             if (object_desc == NULL)
    Only in openssl-1.1.0g/crypto/ui: ui_lib.d
    Only in openssl-1.1.0g/crypto/ui: ui_lib.o
    diff -upr openssl-1.1.0g/crypto/ui/ui_openssl.c /home/chris/amissl/openssl/crypto/ui/ui_openssl.c
    --- openssl-1.1.0g/crypto/ui/ui_openssl.c	2018-07-23 22:47:02.692678436 +0100
    +++ /home/chris/amissl/openssl/crypto/ui/ui_openssl.c	2018-07-23 20:12:11.613050514 +0100
    @@ -7,6 +7,7 @@
      * https://www.openssl.org/source/license.html
      */
     
    +#if !defined(OPENSSL_SYS_AMIGA)
     #include <openssl/e_os2.h>
     #include <openssl/err.h>
     
    @@ -99,18 +100,6 @@
     
     #endif
     
    -#if defined(OPENSSL_SYS_AMIGAOS3)
    -#undef TERMIOS
    -#undef TERMIO
    -#undef SGTTY
    -struct termios { int foo; };
    -# define TTY_STRUCT             struct termios
    -# define TTY_FLAGS              foo
    -# define TTY_get(tty,data)      /* tcgetattr(tty,data) */ -1
    -# define TTY_set(tty,data)      /* tcsetattr(tty,TCSANOW,data) */ 0
    -# define ECHO 0
    -#endif
    -
     #ifdef TERMIOS
     # include <termios.h>
     # define TTY_STRUCT             struct termios
    @@ -722,3 +711,4 @@ static int noecho_fgets(char *buf, int s
         return (strlen(buf));
     }
     #endif
    +#endif
    Only in openssl-1.1.0g/crypto/ui: ui_openssl.d
    Only in openssl-1.1.0g/crypto/ui: ui_openssl.o
    Only in openssl-1.1.0g/crypto/ui: ui_util.d
    Only in openssl-1.1.0g/crypto/ui: ui_util.o
    diff -upr openssl-1.1.0g/crypto/uid.c /home/chris/amissl/openssl/crypto/uid.c
    --- openssl-1.1.0g/crypto/uid.c	2017-11-02 14:29:04.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/uid.c	2018-07-23 20:12:11.613050514 +0100
    @@ -19,7 +19,7 @@ int OPENSSL_issetugid(void)
         return issetugid();
     }
     
    -#elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS)
    +#elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_AMIGA)
     
     int OPENSSL_issetugid(void)
     {
    Only in openssl-1.1.0g/crypto: uid.d
    Only in openssl-1.1.0g/crypto: uid.o
    Only in openssl-1.1.0g/crypto/whrlpool: wp_block.d
    Only in openssl-1.1.0g/crypto/whrlpool: wp_block.o
    Only in openssl-1.1.0g/crypto/whrlpool: wp_dgst.d
    Only in openssl-1.1.0g/crypto/whrlpool: wp_dgst.o
    Only in openssl-1.1.0g/crypto/x509: by_dir.d
    Only in openssl-1.1.0g/crypto/x509: by_dir.o
    Only in openssl-1.1.0g/crypto/x509: by_file.d
    Only in openssl-1.1.0g/crypto/x509: by_file.o
    Only in openssl-1.1.0g/crypto/x509: t_crl.d
    Only in openssl-1.1.0g/crypto/x509: t_crl.o
    Only in openssl-1.1.0g/crypto/x509: t_req.d
    Only in openssl-1.1.0g/crypto/x509: t_req.o
    Only in openssl-1.1.0g/crypto/x509: t_x509.d
    Only in openssl-1.1.0g/crypto/x509: t_x509.o
    Only in openssl-1.1.0g/crypto/x509: x509_att.d
    Only in openssl-1.1.0g/crypto/x509: x509_att.o
    Only in openssl-1.1.0g/crypto/x509: x509_cmp.d
    Only in openssl-1.1.0g/crypto/x509: x509_cmp.o
    Only in openssl-1.1.0g/crypto/x509: x509cset.d
    Only in openssl-1.1.0g/crypto/x509: x509cset.o
    Only in openssl-1.1.0g/crypto/x509: x509_d2.d
    Only in openssl-1.1.0g/crypto/x509: x509_d2.o
    Only in openssl-1.1.0g/crypto/x509: x509_def.d
    Only in openssl-1.1.0g/crypto/x509: x509_def.o
    Only in openssl-1.1.0g/crypto/x509: x509_err.d
    Only in openssl-1.1.0g/crypto/x509: x509_err.o
    Only in openssl-1.1.0g/crypto/x509: x509_ext.d
    Only in openssl-1.1.0g/crypto/x509: x509_ext.o
    Only in openssl-1.1.0g/crypto/x509: x509_lu.d
    Only in openssl-1.1.0g/crypto/x509: x509_lu.o
    Only in openssl-1.1.0g/crypto/x509: x509name.d
    Only in openssl-1.1.0g/crypto/x509: x509name.o
    Only in openssl-1.1.0g/crypto/x509: x509_obj.d
    Only in openssl-1.1.0g/crypto/x509: x509_obj.o
    Only in openssl-1.1.0g/crypto/x509: x509_r2x.d
    Only in openssl-1.1.0g/crypto/x509: x509_r2x.o
    Only in openssl-1.1.0g/crypto/x509: x509_req.d
    Only in openssl-1.1.0g/crypto/x509: x509_req.o
    Only in openssl-1.1.0g/crypto/x509: x509rset.d
    Only in openssl-1.1.0g/crypto/x509: x509rset.o
    Only in openssl-1.1.0g/crypto/x509: x509_set.d
    Only in openssl-1.1.0g/crypto/x509: x509_set.o
    Only in openssl-1.1.0g/crypto/x509: x509spki.d
    Only in openssl-1.1.0g/crypto/x509: x509spki.o
    diff -upr openssl-1.1.0g/crypto/x509/x509_trs.c /home/chris/amissl/openssl/crypto/x509/x509_trs.c
    --- openssl-1.1.0g/crypto/x509/x509_trs.c	2017-11-02 14:29:04.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/x509/x509_trs.c	2018-07-23 20:12:11.625081252 +0100
    @@ -82,7 +82,7 @@ int X509_TRUST_get_count(void)
     {
         if (!trtable)
             return X509_TRUST_COUNT;
    -    return sk_X509_TRUST_num(trtable) + X509_TRUST_COUNT;
    +    return (int)(sk_X509_TRUST_num(trtable) + X509_TRUST_COUNT);
     }
     
     X509_TRUST *X509_TRUST_get0(int idx)
    @@ -106,7 +106,7 @@ int X509_TRUST_get_by_id(int id)
         idx = sk_X509_TRUST_find(trtable, &tmp);
         if (idx == -1)
             return -1;
    -    return idx + X509_TRUST_COUNT;
    +    return (int)(idx + X509_TRUST_COUNT);
     }
     
     int X509_TRUST_set(int *t, int trust)
    Only in openssl-1.1.0g/crypto/x509: x509_trs.d
    Only in openssl-1.1.0g/crypto/x509: x509_trs.o
    Only in openssl-1.1.0g/crypto/x509: x509_txt.d
    Only in openssl-1.1.0g/crypto/x509: x509_txt.o
    Only in openssl-1.1.0g/crypto/x509: x509type.d
    Only in openssl-1.1.0g/crypto/x509: x509type.o
    Only in openssl-1.1.0g/crypto/x509: x509_v3.d
    Only in openssl-1.1.0g/crypto/x509: x509_v3.o
    Only in openssl-1.1.0g/crypto/x509: x509_vfy.d
    Only in openssl-1.1.0g/crypto/x509: x509_vfy.o
    Only in openssl-1.1.0g/crypto/x509: x509_vpm.d
    Only in openssl-1.1.0g/crypto/x509: x509_vpm.o
    Only in openssl-1.1.0g/crypto/x509: x_all.d
    Only in openssl-1.1.0g/crypto/x509: x_all.o
    Only in openssl-1.1.0g/crypto/x509: x_attrib.d
    Only in openssl-1.1.0g/crypto/x509: x_attrib.o
    Only in openssl-1.1.0g/crypto/x509: x_crl.d
    Only in openssl-1.1.0g/crypto/x509: x_crl.o
    Only in openssl-1.1.0g/crypto/x509: x_exten.d
    Only in openssl-1.1.0g/crypto/x509: x_exten.o
    Only in openssl-1.1.0g/crypto/x509: x_name.d
    Only in openssl-1.1.0g/crypto/x509: x_name.o
    Only in openssl-1.1.0g/crypto/x509: x_pubkey.d
    Only in openssl-1.1.0g/crypto/x509: x_pubkey.o
    Only in openssl-1.1.0g/crypto/x509: x_req.d
    Only in openssl-1.1.0g/crypto/x509: x_req.o
    Only in openssl-1.1.0g/crypto/x509: x_x509a.d
    Only in openssl-1.1.0g/crypto/x509: x_x509a.o
    Only in openssl-1.1.0g/crypto/x509: x_x509.d
    Only in openssl-1.1.0g/crypto/x509: x_x509.o
    Only in openssl-1.1.0g/crypto/x509v3: pcy_cache.d
    Only in openssl-1.1.0g/crypto/x509v3: pcy_cache.o
    Only in openssl-1.1.0g/crypto/x509v3: pcy_data.d
    Only in openssl-1.1.0g/crypto/x509v3: pcy_data.o
    Only in openssl-1.1.0g/crypto/x509v3: pcy_lib.d
    Only in openssl-1.1.0g/crypto/x509v3: pcy_lib.o
    Only in openssl-1.1.0g/crypto/x509v3: pcy_map.d
    Only in openssl-1.1.0g/crypto/x509v3: pcy_map.o
    Only in openssl-1.1.0g/crypto/x509v3: pcy_node.d
    Only in openssl-1.1.0g/crypto/x509v3: pcy_node.o
    Only in openssl-1.1.0g/crypto/x509v3: pcy_tree.d
    Only in openssl-1.1.0g/crypto/x509v3: pcy_tree.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_addr.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_addr.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_akeya.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_akeya.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_akey.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_akey.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_alt.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_alt.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_asid.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_asid.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_bcons.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_bcons.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_bitst.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_bitst.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_conf.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_conf.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_cpols.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_cpols.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_crld.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_crld.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_enum.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_enum.o
    Only in openssl-1.1.0g/crypto/x509v3: v3err.d
    Only in openssl-1.1.0g/crypto/x509v3: v3err.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_extku.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_extku.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_genn.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_genn.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_ia5.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_ia5.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_info.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_info.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_int.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_int.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_lib.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_lib.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_ncons.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_ncons.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_pcia.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_pcia.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_pci.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_pci.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_pcons.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_pcons.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_pku.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_pku.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_pmaps.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_pmaps.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_prn.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_prn.o
    diff -upr openssl-1.1.0g/crypto/x509v3/v3_purp.c /home/chris/amissl/openssl/crypto/x509v3/v3_purp.c
    --- openssl-1.1.0g/crypto/x509v3/v3_purp.c	2017-11-02 14:29:04.000000000 +0000
    +++ /home/chris/amissl/openssl/crypto/x509v3/v3_purp.c	2018-07-23 20:12:11.673204202 +0100
    @@ -107,7 +107,7 @@ int X509_PURPOSE_get_count(void)
     {
         if (!xptable)
             return X509_PURPOSE_COUNT;
    -    return sk_X509_PURPOSE_num(xptable) + X509_PURPOSE_COUNT;
    +    return (int)(sk_X509_PURPOSE_num(xptable) + X509_PURPOSE_COUNT);
     }
     
     X509_PURPOSE *X509_PURPOSE_get0(int idx)
    @@ -143,7 +143,7 @@ int X509_PURPOSE_get_by_id(int purpose)
         idx = sk_X509_PURPOSE_find(xptable, &tmp);
         if (idx == -1)
             return -1;
    -    return idx + X509_PURPOSE_COUNT;
    +    return (int)(idx + X509_PURPOSE_COUNT);
     }
     
     int X509_PURPOSE_add(int id, int trust, int flags,
    Only in openssl-1.1.0g/crypto/x509v3: v3_purp.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_purp.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_skey.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_skey.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_sxnet.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_sxnet.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_tlsf.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_tlsf.o
    Only in openssl-1.1.0g/crypto/x509v3: v3_utl.d
    Only in openssl-1.1.0g/crypto/x509v3: v3_utl.o
    Only in openssl-1.1.0g/engines: e_capi.d
    Only in openssl-1.1.0g/engines: e_capi.o
    Only in openssl-1.1.0g/engines: e_padlock.d
    Only in openssl-1.1.0g/engines: e_padlock.o
    diff -upr openssl-1.1.0g/e_os.h /home/chris/amissl/openssl/e_os.h
    --- openssl-1.1.0g/e_os.h	2018-07-23 22:47:02.183424575 +0100
    +++ /home/chris/amissl/openssl/e_os.h	2018-07-23 20:12:11.781480840 +0100
    @@ -77,6 +77,17 @@ extern "C" {
     #  define NO_SYSLOG
     # endif
     
    +#if defined(OPENSSL_SYS_AMIGA)
    +#  define NO_CHMOD
    +#  undef  DEVRANDOM
    +#  ifdef __CLIB2__
    +#    define __USE_NETINET_IN_H
    +#    define NO_SYS_PARAM_H
    +#    define NO_SYS_UN_H
    +#  endif
    +#  include <internal/debug.h>
    +#endif
    +
     /********************************************************************
      The Microsoft section
      ********************************************************************/
    @@ -101,6 +112,11 @@ extern "C" {
     #  if !defined(WINNT)
     #   define WIN_CONSOLE_BUG
     #  endif
    +# elif defined(AMISSL_COMPILE)
    +STDARGS void SetAmiSSLerrno(int);
    +STDARGS int GetAmiSSLerrno(void);
    +#  define get_last_sys_error()    GetAmiSSLerrno()
    +#  define clear_sys_error()       SetAmiSSLerrno(0)
     # else
     #  define get_last_sys_error()    errno
     #  define clear_sys_error()       errno=0
    @@ -133,6 +149,25 @@ extern "C" {
     #  define closesocket(s)              close(s)
     #  define readsocket(s,b,n)           read((s),(b),(n))
     #  define writesocket(s,b,n)          write((s),(char *)(b),(n))
    +# elif defined(OPENSSL_SYS_AMIGA)
    +#  define readsocket(s,b,n)          recv((s),(b),(n), 0)
    +#  define writesocket(s,b,n)         send((s),(b),(n), 0)
    +#  if defined(AMISSL_COMPILE)
    +#   define get_last_socket_error()   GetAmiSSLerrno()
    +#   define clear_socket_error()      SetAmiSSLerrno(0)
    +#   include "../libcmt/libcmt.h"
    +#  else
    +#   define get_last_socket_error()   errno
    +#   define clear_socket_error()      errno=0
    +#   include <stdio.h>
    +#   if !defined(__MORPHOS__)
    +#    include <proto/socket.h>
    +#   endif
    +#   define ioctlsocket(a,b,c)        IoctlSocket((a),(b),(c))
    +#   define closesocket(s)            CloseSocket((s))
    +#   undef select
    +#   define select(a,b,c,d,e)         WaitSelect(a,b,c,d,e,NULL)
    +#  endif
     # else
     #  define get_last_socket_error() errno
     #  define clear_socket_error()    errno=0
    @@ -339,7 +374,9 @@ extern FILE *_imp___iob;
     #  else
          /* !defined VMS */
     #   ifdef OPENSSL_UNISTD
    -#    include OPENSSL_UNISTD
    +#    if !defined(OPENSSL_SYS_AMIGA) && !defined(__MORPHOS__)
    +#     include OPENSSL_UNISTD
    +#    endif
     #   else
     #    include <unistd.h>
     #   endif
    @@ -349,7 +386,11 @@ extern FILE *_imp___iob;
     #    include <fcntl.h>
     #   endif
     
    -#   define LIST_SEPARATOR_CHAR ':'
    +#   if defined(OPENSSL_SYS_AMIGA)
    +#    define LIST_SEPARATOR_CHAR ';'
    +#   else
    +#    define LIST_SEPARATOR_CHAR ':'
    +#   endif
     #   define EXIT(n)             exit(n)
     #  endif
     
    @@ -391,6 +432,10 @@ struct servent *PASCAL getservbyname(con
     
     #  else
     
    +#   ifdef AMISSL_COMPILE
    +#    define PRAGMAS_SOCKET_PRAGMAS_H /* Make sure that we don't enable SocketBase calls */
    +#   endif
    +
     #   ifndef NO_SYS_PARAM_H
     #    include <sys/param.h>
     #   endif
    @@ -420,9 +465,7 @@ struct servent *PASCAL getservbyname(con
     #    endif
     #    include <netinet/in.h>
     #    include <arpa/inet.h>
    -#    if !defined(OPENSSL_SYS_AMIGAOS3)
     #    include <netinet/tcp.h>
    -#    endif
     #   endif
     
     #   ifdef OPENSSL_SYS_AIX
    @@ -433,6 +476,12 @@ struct servent *PASCAL getservbyname(con
     #    include <sys/select.h>
     #   endif
     
    +#   ifdef OPENSSL_SYS_AMIGA
    +#    ifndef __MORPHOS__
    +#     include <sys/select.h>
    +#    endif
    +#   endif
    +
     #   ifndef VMS
     #    include <sys/ioctl.h>
     #   else
    Only in openssl-1.1.0g/: e_os.h.orig
    Only in openssl-1.1.0g/fuzz: asn1.d
    Only in openssl-1.1.0g/fuzz: asn1.o
    Only in openssl-1.1.0g/fuzz: asn1parse.d
    Only in openssl-1.1.0g/fuzz: asn1parse.o
    Only in openssl-1.1.0g/fuzz: asn1parse-test
    Only in openssl-1.1.0g/fuzz: asn1-test
    Only in openssl-1.1.0g/fuzz: bignum.d
    Only in openssl-1.1.0g/fuzz: bignum.o
    Only in openssl-1.1.0g/fuzz: bignum-test
    Only in openssl-1.1.0g/fuzz: bndiv.d
    Only in openssl-1.1.0g/fuzz: bndiv.o
    Only in openssl-1.1.0g/fuzz: bndiv-test
    Only in openssl-1.1.0g/fuzz: cms.d
    Only in openssl-1.1.0g/fuzz: cms.o
    Only in openssl-1.1.0g/fuzz: cms-test
    Only in openssl-1.1.0g/fuzz: conf.d
    Only in openssl-1.1.0g/fuzz: conf.o
    Only in openssl-1.1.0g/fuzz: conf-test
    Only in /home/chris/amissl/openssl/fuzz: corpora
    Only in openssl-1.1.0g/fuzz: crl.d
    Only in openssl-1.1.0g/fuzz: crl.o
    Only in openssl-1.1.0g/fuzz: crl-test
    Only in openssl-1.1.0g/fuzz: ct.d
    Only in openssl-1.1.0g/fuzz: ct.o
    Only in openssl-1.1.0g/fuzz: ct-test
    Only in openssl-1.1.0g/fuzz: server.d
    Only in openssl-1.1.0g/fuzz: server.o
    Only in openssl-1.1.0g/fuzz: server-test
    Only in openssl-1.1.0g/fuzz: test-corpus.d
    Only in openssl-1.1.0g/fuzz: test-corpus.o
    Only in openssl-1.1.0g/fuzz: x509.d
    Only in openssl-1.1.0g/fuzz: x509.o
    Only in openssl-1.1.0g/fuzz: x509-test
    diff -upr openssl-1.1.0g/include/openssl/asn1t.h /home/chris/amissl/openssl/include/openssl/asn1t.h
    --- openssl-1.1.0g/include/openssl/asn1t.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/asn1t.h	2018-07-23 20:12:12.427035256 +0100
    @@ -32,8 +32,12 @@ extern "C" {
     
     /* Macros for start and end of ASN1_ITEM definition */
     
    +#  ifndef OPENSSL_SYS_AMIGA
     #  define ASN1_ITEM_start(itname) \
             OPENSSL_GLOBAL const ASN1_ITEM itname##_it = {
    +#  else
    +#   error "Logic error!"
    +#  endif /* !OPENSSL_SYS_AMIGA */
     
     #  define static_ASN1_ITEM_start(itname) \
             static const ASN1_ITEM itname##_it = {
    diff -upr openssl-1.1.0g/include/openssl/bio.h /home/chris/amissl/openssl/include/openssl/bio.h
    --- openssl-1.1.0g/include/openssl/bio.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/bio.h	2018-07-23 20:12:12.427035256 +0100
    @@ -12,7 +12,7 @@
     
     # include <openssl/e_os2.h>
     
    -# ifndef OPENSSL_NO_STDIO
    +# if !defined(OPENSSL_NO_STDIO) || defined(OPENSSL_SYS_AMIGA)
     #  include <stdio.h>
     # endif
     # include <stdarg.h>
    @@ -400,8 +400,15 @@ struct bio_dgram_sctp_prinfo {
     # define BIO_get_fd(b,c)         BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c)
     
     /* BIO_s_file() */
    -# define BIO_set_fp(b,fp,c)      BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp)
    -# define BIO_get_fp(b,fpp)       BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp)
    +# ifndef OPENSSL_SYS_AMIGA
    +#  ifndef OPENSSL_NO_STDIO
    +#   define BIO_set_fp(b,fp,c)      BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp)
    +#   define BIO_get_fp(b,fpp)       BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp)
    +#  endif
    +# else
    +#  define BIO_set_fp_amiga(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp)
    +#  define BIO_get_fp_amiga(b,fpp)  BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp)
    +# endif
     
     /* BIO_s_fd() and BIO_s_file() */
     # define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL)
    @@ -528,9 +535,13 @@ int BIO_asn1_get_suffix(BIO *b, asn1_ps_
     
     const BIO_METHOD *BIO_s_file(void);
     BIO *BIO_new_file(const char *filename, const char *mode);
    -# ifndef OPENSSL_NO_STDIO
    +# if !defined(OPENSSL_NO_STDIO) || defined(OPENSSL_SYS_AMIGA)
     BIO *BIO_new_fp(FILE *stream, int close_flag);
     # endif
    +# ifdef OPENSSL_SYS_AMIGA
    +#  include <dos/dos.h>
    +BIO *BIO_new_fp_amiga(BPTR stream, int close_flag);
    +# endif
     BIO *BIO_new(const BIO_METHOD *type);
     int BIO_free(BIO *a);
     void BIO_set_data(BIO *a, void *ptr);
    @@ -719,12 +730,22 @@ void BIO_copy_next_retry(BIO *b);
     # endif
     int BIO_printf(BIO *bio, const char *format, ...)
     __bio_h__attr__((__format__(__printf__, 2, 3)));
    +# if !defined(OPENSSL_SYS_AMIGA) || defined(AMISSL_COMPILE)
     int BIO_vprintf(BIO *bio, const char *format, va_list args)
     __bio_h__attr__((__format__(__printf__, 2, 0)));
    +# else
    +int BIO_vprintf(BIO *bio, const char *format, long * args)
    +__bio_h__attr__((__format__(__printf__, 2, 0)));
    +# endif
     int BIO_snprintf(char *buf, size_t n, const char *format, ...)
     __bio_h__attr__((__format__(__printf__, 3, 4)));
    +# if !defined(OPENSSL_SYS_AMIGA) || defined(AMISSL_COMPILE)
     int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
     __bio_h__attr__((__format__(__printf__, 3, 0)));
    +# else
    +int BIO_vsnprintf(char *buf, size_t n, const char *format, long * args)
    +__bio_h__attr__((__format__(__printf__, 3, 0)));
    +# endif
     # undef __bio_h__attr__
     
     
    @@ -738,10 +759,10 @@ int BIO_meth_set_read(BIO_METHOD *biom,
                           int (*read) (BIO *, char *, int));
     int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *);
     int BIO_meth_set_puts(BIO_METHOD *biom,
    -                      int (*puts) (BIO *, const char *));
    +                      int (*func) (BIO *, const char *));
     int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int);
     int BIO_meth_set_gets(BIO_METHOD *biom,
    -                      int (*gets) (BIO *, char *, int));
    +                      int (*func) (BIO *, char *, int));
     long (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *);
     int BIO_meth_set_ctrl(BIO_METHOD *biom,
                           long (*ctrl) (BIO *, int, long, void *));
    diff -upr openssl-1.1.0g/include/openssl/bn.h /home/chris/amissl/openssl/include/openssl/bn.h
    --- openssl-1.1.0g/include/openssl/bn.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/bn.h	2018-07-23 20:12:12.431044471 +0100
    @@ -25,7 +25,7 @@
     # define HEADER_BN_H
     
     # include <openssl/e_os2.h>
    -# ifndef OPENSSL_NO_STDIO
    +# if !defined(OPENSSL_NO_STDIO) || defined(OPENSSL_SYS_AMIGA)
     #  include <stdio.h>
     # endif
     # include <openssl/opensslconf.h>
    @@ -253,7 +253,7 @@ int BN_mod_exp_simple(BIGNUM *r, const B
                           const BIGNUM *m, BN_CTX *ctx);
     
     int BN_mask_bits(BIGNUM *a, int n);
    -# ifndef OPENSSL_NO_STDIO
    +# if !defined(OPENSSL_NO_STDIO) || defined(OPENSSL_SYS_AMIGA)
     int BN_print_fp(FILE *fp, const BIGNUM *a);
     # endif
     int BN_print(BIO *bio, const BIGNUM *a);
    diff -upr openssl-1.1.0g/include/openssl/crypto.h /home/chris/amissl/openssl/include/openssl/crypto.h
    --- openssl-1.1.0g/include/openssl/crypto.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/crypto.h	2018-07-23 20:12:12.431044471 +0100
    @@ -69,6 +69,34 @@ typedef struct {
     
     # endif /* OPENSSL_API_COMPAT */
     
    +# if !defined(OPENSSL_THREADS) || defined(CRYPTO_TDEBUG) || defined(OPENSSL_SYS_AMIGA)
    +typedef unsigned int CRYPTO_ONCE;
    +typedef unsigned int CRYPTO_THREAD_LOCAL;
    +typedef unsigned int CRYPTO_THREAD_ID;
    +
    +#  define CRYPTO_ONCE_STATIC_INIT 0
    +# elif defined(OPENSSL_SYS_WINDOWS)
    +#  include <windows.h>
    +typedef DWORD CRYPTO_THREAD_LOCAL;
    +typedef DWORD CRYPTO_THREAD_ID;
    +
    +#  if _WIN32_WINNT < 0x0600
    +typedef LONG CRYPTO_ONCE;
    +#   define CRYPTO_ONCE_STATIC_INIT 0
    +#  else
    +typedef INIT_ONCE CRYPTO_ONCE;
    +#   define CRYPTO_ONCE_STATIC_INIT INIT_ONCE_STATIC_INIT
    +#  endif
    +
    +# else
    +#  include <pthread.h>
    +typedef pthread_once_t CRYPTO_ONCE;
    +typedef pthread_key_t CRYPTO_THREAD_LOCAL;
    +typedef pthread_t CRYPTO_THREAD_ID;
    +
    +#  define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT
    +# endif
    +
     typedef void CRYPTO_RWLOCK;
     
     CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void);
    @@ -396,7 +424,7 @@ int OPENSSL_INIT_set_config_appname(OPEN
     # endif
     void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings);
     
    -# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG)
    +# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) && !defined(OPENSSL_SYS_AMIGA)
     #  if defined(_WIN32)
     #   if defined(BASETYPES) || defined(_WINDEF_H)
     /* application has to include <windows.h> in order to use this */
    diff -upr openssl-1.1.0g/include/openssl/e_os2.h /home/chris/amissl/openssl/include/openssl/e_os2.h
    --- openssl-1.1.0g/include/openssl/e_os2.h	2018-07-23 22:47:02.696752467 +0100
    +++ /home/chris/amissl/openssl/include/openssl/e_os2.h	2018-07-23 20:12:12.435053686 +0100
    @@ -133,6 +133,14 @@ extern "C" {
     #  endif
     # endif
     
    +/* -------------------------------- Amiga --------------------------------- */
    +# if defined(OPENSSL_SYS_AMIGA) || defined(__amigaos3__) || defined(__amigaos4__) || defined(__MORPHOS__)
    +#  undef OPENSSL_SYS_UNIX
    +#  if defined(AMISSL_COMPILE)
    +#   include <internal/amissl_compiler.h>
    +#  endif
    +# endif
    +
     /**
      * That's it for OS-specific stuff
      *****************************************************************************/
    @@ -219,12 +227,12 @@ extern "C" {
     
     # ifndef ossl_ssize_t
     #  define ossl_ssize_t ssize_t
    -#  if defined(SSIZE_MAX)
    +#  if defined(OPENSSL_SYS_AMIGA) && (defined(__MORPHOS__) || defined(__SASC))
    +#   define OSSL_SSIZE_MAX INT_MAX
    +#  elif defined(SSIZE_MAX)
     #   define OSSL_SSIZE_MAX SSIZE_MAX
     #  elif defined(_POSIX_SSIZE_MAX)
     #   define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX
    -#  else
    -#   define OSSL_SSIZE_MAX INT_MAX
     #  endif
     # endif
     
    diff -upr openssl-1.1.0g/include/openssl/err.h /home/chris/amissl/openssl/include/openssl/err.h
    --- openssl-1.1.0g/include/openssl/err.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/err.h	2018-07-23 20:12:12.443072116 +0100
    @@ -228,7 +228,7 @@ const char *ERR_func_error_string(unsign
     const char *ERR_reason_error_string(unsigned long e);
     void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u),
                              void *u);
    -# ifndef OPENSSL_NO_STDIO
    +# if !defined(OPENSSL_NO_STDIO) || defined(OPENSSL_SYS_AMIGA)
     void ERR_print_errors_fp(FILE *fp);
     # endif
     void ERR_print_errors(BIO *bp);
    diff -upr openssl-1.1.0g/include/openssl/lhash.h /home/chris/amissl/openssl/include/openssl/lhash.h
    --- openssl-1.1.0g/include/openssl/lhash.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/lhash.h	2018-07-23 20:12:12.443072116 +0100
    @@ -118,6 +118,10 @@ void OPENSSL_LH_node_usage_stats_bio(con
     
     # define LHASH_OF(type) struct lhash_st_##type
     
    +# if defined(OPENSSL_SYS_AMIGA) && !defined(AMISSL_COMPILE)
    +# define DEFINE_LHASH_OF(type) \
    +    LHASH_OF(type)
    +# else
     # define DEFINE_LHASH_OF(type) \
         LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \
         static ossl_inline LHASH_OF(type) * \
    @@ -177,6 +181,7 @@ void OPENSSL_LH_node_usage_stats_bio(con
             OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \
         } \
         LHASH_OF(type)
    +#endif
     
     #define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \
         int_implement_lhash_doall(type, argtype, const type)
    diff -upr openssl-1.1.0g/include/openssl/modes.h /home/chris/amissl/openssl/include/openssl/modes.h
    --- openssl-1.1.0g/include/openssl/modes.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/modes.h	2018-07-23 20:12:12.443072116 +0100
    @@ -7,6 +7,9 @@
      * https://www.openssl.org/source/license.html
      */
     
    +#ifndef HEADER_MODES_H
    +#define HEADER_MODES_H
    +
     #include <stddef.h>
     
     #ifdef  __cplusplus
    @@ -201,3 +204,5 @@ void CRYPTO_ocb128_cleanup(OCB128_CONTEX
     #ifdef  __cplusplus
     }
     #endif
    +
    +#endif /* HEADER_MODES_H */
    Only in openssl-1.1.0g/include/openssl: opensslconf.h
    diff -upr openssl-1.1.0g/include/openssl/safestack.h /home/chris/amissl/openssl/include/openssl/safestack.h
    --- openssl-1.1.0g/include/openssl/safestack.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/safestack.h	2018-07-23 20:12:12.455099761 +0100
    @@ -19,6 +19,10 @@ extern "C" {
     
     # define STACK_OF(type) struct stack_st_##type
     
    +# if defined(OPENSSL_SYS_AMIGA) && !defined(AMISSL_COMPILE)
    +# define SKM_DEFINE_STACK_OF(t1, t2, t3) \
    +    STACK_OF(t1);
    +#else
     # define SKM_DEFINE_STACK_OF(t1, t2, t3) \
         STACK_OF(t1); \
         typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \
    @@ -117,6 +121,7 @@ extern "C" {
         { \
             return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \
         }
    +#endif
     
     # define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2)
     # define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t)
    diff -upr openssl-1.1.0g/include/openssl/ssl.h /home/chris/amissl/openssl/include/openssl/ssl.h
    --- openssl-1.1.0g/include/openssl/ssl.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/ssl.h	2018-07-23 20:12:12.455099761 +0100
    @@ -1342,6 +1342,14 @@ __owur int SSL_clear(SSL *s);
     
     void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm);
     
    +# ifdef OPENSSL_SYS_AMIGA
    +__owur const char *SSL_CIPHER_get_mac(const SSL_CIPHER *c);
    +__owur const char *SSL_CIPHER_get_encryption(const SSL_CIPHER *c);
    +__owur const char *SSL_CIPHER_get_authentication(const SSL_CIPHER *c);
    +__owur const char *SSL_CIPHER_get_key_exchange(const SSL_CIPHER *c);
    +__owur const char *SSL_CIPHER_get_export(const SSL_CIPHER *c);
    +# endif
    +
     __owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
     __owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits);
     __owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c);
    diff -upr openssl-1.1.0g/include/openssl/x509.h /home/chris/amissl/openssl/include/openssl/x509.h
    --- openssl-1.1.0g/include/openssl/x509.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/include/openssl/x509.h	2018-07-23 20:12:12.467127406 +0100
    @@ -756,7 +756,7 @@ unsigned long X509_NAME_hash_old(X509_NA
     int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
     int X509_CRL_match(const X509_CRL *a, const X509_CRL *b);
     int X509_aux_print(BIO *out, X509 *x, int indent);
    -# ifndef OPENSSL_NO_STDIO
    +# if !defined(OPENSSL_NO_STDIO) || defined(OPENSSL_SYS_AMIGA)
     int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag,
                          unsigned long cflag);
     int X509_print_fp(FILE *bp, X509 *x);
    Only in openssl-1.1.0g/: libcrypto.a
    Only in openssl-1.1.0g/: libcrypto.pc
    Only in openssl-1.1.0g/: libssl.a
    Only in openssl-1.1.0g/: libssl.pc
    Only in openssl-1.1.0g/: Makefile
    Only in openssl-1.1.0g/: openssl.pc
    Only in openssl-1.1.0g/: pod2htmd.tmp
    Only in openssl-1.1.0g/ssl: bio_ssl.d
    Only in openssl-1.1.0g/ssl: bio_ssl.o
    Only in openssl-1.1.0g/ssl: d1_lib.d
    Only in openssl-1.1.0g/ssl: d1_lib.o
    Only in openssl-1.1.0g/ssl: d1_msg.d
    Only in openssl-1.1.0g/ssl: d1_msg.o
    diff -upr openssl-1.1.0g/ssl/d1_srtp.c /home/chris/amissl/openssl/ssl/d1_srtp.c
    --- openssl-1.1.0g/ssl/d1_srtp.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/ssl/d1_srtp.c	2018-07-23 20:12:12.523256417 +0100
    @@ -19,7 +19,7 @@
     
     #ifndef OPENSSL_NO_SRTP
     
    -static SRTP_PROTECTION_PROFILE srtp_known_profiles[] = {
    +static const SRTP_PROTECTION_PROFILE srtp_known_profiles[] = {
         {
          "SRTP_AES128_CM_SHA1_80",
          SRTP_AES128_CM_SHA1_80,
    @@ -40,9 +40,9 @@ static SRTP_PROTECTION_PROFILE srtp_know
     };
     
     static int find_profile_by_name(char *profile_name,
    -                                SRTP_PROTECTION_PROFILE **pptr, unsigned len)
    +                                const SRTP_PROTECTION_PROFILE **pptr, unsigned len)
     {
    -    SRTP_PROTECTION_PROFILE *p;
    +    const SRTP_PROTECTION_PROFILE *p;
     
         p = srtp_known_profiles;
         while (p->name) {
    @@ -65,7 +65,7 @@ static int ssl_ctx_make_profiles(const c
     
         char *col;
         char *ptr = (char *)profiles_string;
    -    SRTP_PROTECTION_PROFILE *p;
    +    const SRTP_PROTECTION_PROFILE *p;
     
         if ((profiles = sk_SRTP_PROTECTION_PROFILE_new_null()) == NULL) {
             SSLerr(SSL_F_SSL_CTX_MAKE_PROFILES,
    Only in openssl-1.1.0g/ssl: d1_srtp.d
    Only in openssl-1.1.0g/ssl: d1_srtp.o
    Only in openssl-1.1.0g/ssl: methods.d
    Only in openssl-1.1.0g/ssl: methods.o
    Only in openssl-1.1.0g/ssl: pqueue.d
    Only in openssl-1.1.0g/ssl: pqueue.o
    Only in openssl-1.1.0g/ssl/record: dtls1_bitmap.d
    Only in openssl-1.1.0g/ssl/record: dtls1_bitmap.o
    Only in openssl-1.1.0g/ssl/record: rec_layer_d1.d
    Only in openssl-1.1.0g/ssl/record: rec_layer_d1.o
    Only in openssl-1.1.0g/ssl/record: rec_layer_s3.d
    Only in openssl-1.1.0g/ssl/record: rec_layer_s3.o
    Only in openssl-1.1.0g/ssl/record: ssl3_buffer.d
    Only in openssl-1.1.0g/ssl/record: ssl3_buffer.o
    Only in openssl-1.1.0g/ssl/record: ssl3_record.d
    Only in openssl-1.1.0g/ssl/record: ssl3_record.o
    Only in openssl-1.1.0g/ssl: s3_cbc.d
    Only in openssl-1.1.0g/ssl: s3_cbc.o
    Only in openssl-1.1.0g/ssl: s3_enc.d
    Only in openssl-1.1.0g/ssl: s3_enc.o
    diff -upr openssl-1.1.0g/ssl/s3_lib.c /home/chris/amissl/openssl/ssl/s3_lib.c
    --- openssl-1.1.0g/ssl/s3_lib.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/ssl/s3_lib.c	2018-07-23 20:12:12.535284062 +0100
    @@ -2773,7 +2773,16 @@ int ssl3_num_ciphers(void)
     const SSL_CIPHER *ssl3_get_cipher(unsigned int u)
     {
         if (u < SSL3_NUM_CIPHERS)
    +    {
    +        #if defined(DEBUG)
    +        const SSL_CIPHER *ciph = &(ssl3_ciphers[SSL3_NUM_CIPHERS - 1 - u]);
    +        const SSL_CIPHER *ciph2 = &(ssl3_ciphers[0]);
    +        D(DBF_ALWAYS, "ciph2: %08lx %08lx - '%s'", ciph2, ciph2->id, ciph2->name);
    +        D(DBF_ALWAYS, "ssl3_ciphers[%ld] = %08lx - id: %08lx - str: '%s'", SSL3_NUM_CIPHERS - 1 - u, &(ssl3_ciphers[SSL3_NUM_CIPHERS - 1 - u]), ciph->id, ciph->name);
    +        #endif
    +
             return (&(ssl3_ciphers[SSL3_NUM_CIPHERS - 1 - u]));
    +    }
         else
             return (NULL);
     }
    Only in openssl-1.1.0g/ssl: s3_lib.d
    Only in openssl-1.1.0g/ssl: s3_lib.o
    Only in openssl-1.1.0g/ssl: s3_msg.d
    Only in openssl-1.1.0g/ssl: s3_msg.o
    Only in openssl-1.1.0g/ssl: ssl_asn1.d
    Only in openssl-1.1.0g/ssl: ssl_asn1.o
    Only in openssl-1.1.0g/ssl: ssl_cert.d
    Only in openssl-1.1.0g/ssl: ssl_cert.o
    diff -upr openssl-1.1.0g/ssl/ssl_ciph.c /home/chris/amissl/openssl/ssl/ssl_ciph.c
    --- openssl-1.1.0g/ssl/ssl_ciph.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/ssl/ssl_ciph.c	2018-07-23 20:12:12.535284062 +0100
    @@ -1528,7 +1528,9 @@ char *SSL_CIPHER_description(const SSL_C
     {
         const char *ver;
         const char *kx, *au, *enc, *mac;
    +#if !defined(OPENSSL_SYS_AMIGA)
         uint32_t alg_mkey, alg_auth, alg_enc, alg_mac;
    +#endif
         static const char *format = "%-23s %s Kx=%-8s Au=%-4s Enc=%-9s Mac=%-4s\n";
     
         if (buf == NULL) {
    @@ -1539,171 +1541,19 @@ char *SSL_CIPHER_description(const SSL_C
         } else if (len < 128)
             return NULL;
     
    +#if !defined(OPENSSL_SYS_AMIGA)
         alg_mkey = cipher->algorithm_mkey;
         alg_auth = cipher->algorithm_auth;
         alg_enc = cipher->algorithm_enc;
         alg_mac = cipher->algorithm_mac;
    +#endif
     
         ver = ssl_protocol_to_string(cipher->min_tls);
     
    -    switch (alg_mkey) {
    -    case SSL_kRSA:
    -        kx = "RSA";
    -        break;
    -    case SSL_kDHE:
    -        kx = "DH";
    -        break;
    -    case SSL_kECDHE:
    -        kx = "ECDH";
    -        break;
    -    case SSL_kPSK:
    -        kx = "PSK";
    -        break;
    -    case SSL_kRSAPSK:
    -        kx = "RSAPSK";
    -        break;
    -    case SSL_kECDHEPSK:
    -        kx = "ECDHEPSK";
    -        break;
    -    case SSL_kDHEPSK:
    -        kx = "DHEPSK";
    -        break;
    -    case SSL_kSRP:
    -        kx = "SRP";
    -        break;
    -    case SSL_kGOST:
    -        kx = "GOST";
    -        break;
    -    default:
    -        kx = "unknown";
    -    }
    -
    -    switch (alg_auth) {
    -    case SSL_aRSA:
    -        au = "RSA";
    -        break;
    -    case SSL_aDSS:
    -        au = "DSS";
    -        break;
    -    case SSL_aNULL:
    -        au = "None";
    -        break;
    -    case SSL_aECDSA:
    -        au = "ECDSA";
    -        break;
    -    case SSL_aPSK:
    -        au = "PSK";
    -        break;
    -    case SSL_aSRP:
    -        au = "SRP";
    -        break;
    -    case SSL_aGOST01:
    -        au = "GOST01";
    -        break;
    -        /* New GOST ciphersuites have both SSL_aGOST12 and SSL_aGOST01 bits */
    -    case (SSL_aGOST12 | SSL_aGOST01):
    -        au = "GOST12";
    -        break;
    -    default:
    -        au = "unknown";
    -        break;
    -    }
    -
    -    switch (alg_enc) {
    -    case SSL_DES:
    -        enc = "DES(56)";
    -        break;
    -    case SSL_3DES:
    -        enc = "3DES(168)";
    -        break;
    -    case SSL_RC4:
    -        enc = "RC4(128)";
    -        break;
    -    case SSL_RC2:
    -        enc = "RC2(128)";
    -        break;
    -    case SSL_IDEA:
    -        enc = "IDEA(128)";
    -        break;
    -    case SSL_eNULL:
    -        enc = "None";
    -        break;
    -    case SSL_AES128:
    -        enc = "AES(128)";
    -        break;
    -    case SSL_AES256:
    -        enc = "AES(256)";
    -        break;
    -    case SSL_AES128GCM:
    -        enc = "AESGCM(128)";
    -        break;
    -    case SSL_AES256GCM:
    -        enc = "AESGCM(256)";
    -        break;
    -    case SSL_AES128CCM:
    -        enc = "AESCCM(128)";
    -        break;
    -    case SSL_AES256CCM:
    -        enc = "AESCCM(256)";
    -        break;
    -    case SSL_AES128CCM8:
    -        enc = "AESCCM8(128)";
    -        break;
    -    case SSL_AES256CCM8:
    -        enc = "AESCCM8(256)";
    -        break;
    -    case SSL_CAMELLIA128:
    -        enc = "Camellia(128)";
    -        break;
    -    case SSL_CAMELLIA256:
    -        enc = "Camellia(256)";
    -        break;
    -    case SSL_SEED:
    -        enc = "SEED(128)";
    -        break;
    -    case SSL_eGOST2814789CNT:
    -    case SSL_eGOST2814789CNT12:
    -        enc = "GOST89(256)";
    -        break;
    -    case SSL_CHACHA20POLY1305:
    -        enc = "CHACHA20/POLY1305(256)";
    -        break;
    -    default:
    -        enc = "unknown";
    -        break;
    -    }
    -
    -    switch (alg_mac) {
    -    case SSL_MD5:
    -        mac = "MD5";
    -        break;
    -    case SSL_SHA1:
    -        mac = "SHA1";
    -        break;
    -    case SSL_SHA256:
    -        mac = "SHA256";
    -        break;
    -    case SSL_SHA384:
    -        mac = "SHA384";
    -        break;
    -    case SSL_AEAD:
    -        mac = "AEAD";
    -        break;
    -    case SSL_GOST89MAC:
    -    case SSL_GOST89MAC12:
    -        mac = "GOST89";
    -        break;
    -    case SSL_GOST94:
    -        mac = "GOST94";
    -        break;
    -    case SSL_GOST12_256:
    -    case SSL_GOST12_512:
    -        mac = "GOST2012";
    -        break;
    -    default:
    -        mac = "unknown";
    -        break;
    -    }
    +    kx = SSL_CIPHER_get_key_exchange(cipher);
    +    au = SSL_CIPHER_get_authentication(cipher);
    +    enc = SSL_CIPHER_get_encryption(cipher);
    +    mac = SSL_CIPHER_get_mac(cipher);
     
         BIO_snprintf(buf, len, format, cipher->name, ver, kx, au, enc, mac);
     
    @@ -1869,6 +1719,205 @@ const char *SSL_COMP_get_name(const COMP
     #endif
     }
     
    +#ifdef OPENSSL_SYS_AMIGA
    +
    +/* The following five functions are AmiSSL specific, but are used
    + * by the code to make sure that the future changes in OpenSSL
    + * don't go unnoticed.
    + */
    +const char *SSL_CIPHER_get_mac(const SSL_CIPHER *cipher)
    +{
    +  const char *mac;
    +  unsigned long alg_mac=cipher->algorithm_mac;
    +
    +  switch (alg_mac) {
    +  case SSL_MD5:
    +      mac = "MD5";
    +      break;
    +  case SSL_SHA1:
    +      mac = "SHA1";
    +      break;
    +  case SSL_SHA256:
    +      mac = "SHA256";
    +      break;
    +  case SSL_SHA384:
    +      mac = "SHA384";
    +      break;
    +  case SSL_AEAD:
    +      mac = "AEAD";
    +      break;
    +  case SSL_GOST89MAC:
    +  case SSL_GOST89MAC12:
    +      mac = "GOST89";
    +      break;
    +  case SSL_GOST94:
    +      mac = "GOST94";
    +      break;
    +  case SSL_GOST12_256:
    +  case SSL_GOST12_512:
    +      mac = "GOST2012";
    +      break;
    +  default:
    +      mac = "unknown";
    +      break;
    +  }
    +
    +  return mac;
    +}
    +
    +const char *SSL_CIPHER_get_encryption(const SSL_CIPHER *cipher)
    +{
    +  const char *enc;
    +  unsigned long alg_enc=cipher->algorithm_enc;
    +
    +  switch (alg_enc) {
    +  case SSL_DES:
    +      enc = "DES(56)";
    +      break;
    +  case SSL_3DES:
    +      enc = "3DES(168)";
    +      break;
    +  case SSL_RC4:
    +      enc = "RC4(128)";
    +      break;
    +  case SSL_RC2:
    +      enc = "RC2(128)";
    +      break;
    +  case SSL_IDEA:
    +      enc = "IDEA(128)";
    +      break;
    +  case SSL_eNULL:
    +      enc = "None";
    +      break;
    +  case SSL_AES128:
    +      enc = "AES(128)";
    +      break;
    +  case SSL_AES256:
    +      enc = "AES(256)";
    +      break;
    +  case SSL_AES128GCM:
    +      enc = "AESGCM(128)";
    +      break;
    +  case SSL_AES256GCM:
    +      enc = "AESGCM(256)";
    +      break;
    +  case SSL_AES128CCM:
    +      enc = "AESCCM(128)";
    +      break;
    +  case SSL_AES256CCM:
    +      enc = "AESCCM(256)";
    +      break;
    +  case SSL_AES128CCM8:
    +      enc = "AESCCM8(128)";
    +      break;
    +  case SSL_AES256CCM8:
    +      enc = "AESCCM8(256)";
    +      break;
    +  case SSL_CAMELLIA128:
    +      enc = "Camellia(128)";
    +      break;
    +  case SSL_CAMELLIA256:
    +      enc = "Camellia(256)";
    +      break;
    +  case SSL_SEED:
    +      enc = "SEED(128)";
    +      break;
    +  case SSL_eGOST2814789CNT:
    +  case SSL_eGOST2814789CNT12:
    +      enc = "GOST89(256)";
    +      break;
    +  case SSL_CHACHA20POLY1305:
    +      enc = "CHACHA20/POLY1305(256)";
    +      break;
    +  default:
    +      enc = "unknown";
    +      break;
    +  }
    +
    +  return enc;
    +}
    +
    +const char *SSL_CIPHER_get_authentication(const SSL_CIPHER *cipher)
    +{
    +  const char *au;
    +  unsigned long alg_auth=cipher->algorithm_auth;
    +
    +  switch (alg_auth) {
    +  case SSL_aRSA:
    +      au = "RSA";
    +      break;
    +  case SSL_aDSS:
    +      au = "DSS";
    +      break;
    +  case SSL_aNULL:
    +      au = "None";
    +      break;
    +  case SSL_aECDSA:
    +      au = "ECDSA";
    +      break;
    +  case SSL_aPSK:
    +      au = "PSK";
    +      break;
    +  case SSL_aSRP:
    +      au = "SRP";
    +      break;
    +  case SSL_aGOST01:
    +      au = "GOST01";
    +      break;
    +      /* New GOST ciphersuites have both SSL_aGOST12 and SSL_aGOST01 bits */
    +  case (SSL_aGOST12 | SSL_aGOST01):
    +      au = "GOST12";
    +      break;
    +  default:
    +      au = "unknown";
    +      break;
    +  }
    +
    +  return au;
    +}
    +
    +const char *SSL_CIPHER_get_key_exchange(const SSL_CIPHER *cipher)
    +{
    +  const char *kx;
    +  unsigned long alg_mkey=cipher->algorithm_mkey;
    +
    +  switch (alg_mkey) {
    +  case SSL_kRSA:
    +      kx = "RSA";
    +      break;
    +  case SSL_kDHE:
    +      kx = "DH";
    +      break;
    +  case SSL_kECDHE:
    +      kx = "ECDH";
    +      break;
    +  case SSL_kPSK:
    +      kx = "PSK";
    +      break;
    +  case SSL_kRSAPSK:
    +      kx = "RSAPSK";
    +      break;
    +  case SSL_kECDHEPSK:
    +      kx = "ECDHEPSK";
    +      break;
    +  case SSL_kDHEPSK:
    +      kx = "DHEPSK";
    +      break;
    +  case SSL_kSRP:
    +      kx = "SRP";
    +      break;
    +  case SSL_kGOST:
    +      kx = "GOST";
    +      break;
    +  default:
    +      kx = "unknown";
    +  }
    +
    +  return kx;
    +}
    +
    +#endif
    +
     const char *SSL_COMP_get0_name(const SSL_COMP *comp)
     {
     #ifndef OPENSSL_NO_COMP
    Only in openssl-1.1.0g/ssl: ssl_ciph.d
    Only in openssl-1.1.0g/ssl: ssl_ciph.o
    Only in openssl-1.1.0g/ssl: ssl_conf.d
    Only in openssl-1.1.0g/ssl: ssl_conf.o
    Only in openssl-1.1.0g/ssl: ssl_err.d
    Only in openssl-1.1.0g/ssl: ssl_err.o
    Only in openssl-1.1.0g/ssl: ssl_init.d
    Only in openssl-1.1.0g/ssl: ssl_init.o
    diff -upr openssl-1.1.0g/ssl/ssl_lib.c /home/chris/amissl/openssl/ssl/ssl_lib.c
    --- openssl-1.1.0g/ssl/ssl_lib.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/ssl/ssl_lib.c	2018-07-23 20:12:12.539293277 +0100
    @@ -54,7 +54,7 @@
     
     const char SSL_version_str[] = OPENSSL_VERSION_TEXT;
     
    -SSL3_ENC_METHOD ssl3_undef_enc_method = {
    +const SSL3_ENC_METHOD ssl3_undef_enc_method = {
         /*
          * evil casts, but these functions are only called if there's a library
          * bug
    Only in openssl-1.1.0g/ssl: ssl_lib.d
    Only in openssl-1.1.0g/ssl: ssl_lib.o
    diff -upr openssl-1.1.0g/ssl/ssl_locl.h /home/chris/amissl/openssl/ssl/ssl_locl.h
    --- openssl-1.1.0g/ssl/ssl_locl.h	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/ssl/ssl_locl.h	2018-07-23 20:12:12.543302492 +0100
    @@ -45,6 +45,7 @@
     # include <time.h>
     # include <string.h>
     # include <errno.h>
    +# include <sys/time.h>
     
     # include "e_os.h"
     # if defined(__unix) || defined(__unix__)
    @@ -1625,7 +1626,7 @@ typedef struct ssl3_comp_st {
     } SSL3_COMP;
     # endif
     
    -extern SSL3_ENC_METHOD ssl3_undef_enc_method;
    +extern const SSL3_ENC_METHOD ssl3_undef_enc_method;
     
     __owur const SSL_METHOD *ssl_bad_method(int ver);
     __owur const SSL_METHOD *sslv3_method(void);
    Only in openssl-1.1.0g/ssl: ssl_mcnf.d
    Only in openssl-1.1.0g/ssl: ssl_mcnf.o
    diff -upr openssl-1.1.0g/ssl/ssl_rsa.c /home/chris/amissl/openssl/ssl/ssl_rsa.c
    --- openssl-1.1.0g/ssl/ssl_rsa.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/ssl/ssl_rsa.c	2018-07-23 20:12:12.543302492 +0100
    @@ -15,6 +15,10 @@
     #include <openssl/x509.h>
     #include <openssl/pem.h>
     
    +#ifdef OPENSSL_SYS_AMIGA
    + #undef OPENSSL_NO_STDIO
    +#endif
    +
     static int ssl_set_cert(CERT *c, X509 *x509);
     static int ssl_set_pkey(CERT *c, EVP_PKEY *pkey);
     int SSL_use_certificate(SSL *ssl, X509 *x)
    Only in openssl-1.1.0g/ssl: ssl_rsa.d
    Only in openssl-1.1.0g/ssl: ssl_rsa.o
    Only in openssl-1.1.0g/ssl: ssl_sess.d
    Only in openssl-1.1.0g/ssl: ssl_sess.o
    Only in openssl-1.1.0g/ssl: ssl_stat.d
    Only in openssl-1.1.0g/ssl: ssl_stat.o
    Only in openssl-1.1.0g/ssl: ssl_txt.d
    Only in openssl-1.1.0g/ssl: ssl_txt.o
    Only in openssl-1.1.0g/ssl: ssl_utst.d
    Only in openssl-1.1.0g/ssl: ssl_utst.o
    Only in openssl-1.1.0g/ssl/statem: statem_clnt.d
    Only in openssl-1.1.0g/ssl/statem: statem_clnt.o
    Only in openssl-1.1.0g/ssl/statem: statem.d
    diff -upr openssl-1.1.0g/ssl/statem/statem_dtls.c /home/chris/amissl/openssl/ssl/statem/statem_dtls.c
    --- openssl-1.1.0g/ssl/statem/statem_dtls.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/ssl/statem/statem_dtls.c	2018-07-23 20:12:12.551320922 +0100
    @@ -38,9 +38,9 @@
                             if (is_complete) for (ii = (((msg_len) - 1) >> 3) - 1; ii >= 0 ; ii--) \
                                     if (bitmask[ii] != 0xff) { is_complete = 0; break; } }
     
    -static unsigned char bitmask_start_values[] =
    +static const unsigned char bitmask_start_values[] =
         { 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80 };
    -static unsigned char bitmask_end_values[] =
    +static const unsigned char bitmask_end_values[] =
         { 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f };
     
     static void dtls1_fix_message_header(SSL *s, unsigned long frag_off,
    Only in openssl-1.1.0g/ssl/statem: statem_dtls.d
    Only in openssl-1.1.0g/ssl/statem: statem_dtls.o
    Only in openssl-1.1.0g/ssl/statem: statem_lib.d
    Only in openssl-1.1.0g/ssl/statem: statem_lib.o
    Only in openssl-1.1.0g/ssl/statem: statem.o
    Only in openssl-1.1.0g/ssl/statem: statem_srvr.d
    Only in openssl-1.1.0g/ssl/statem: statem_srvr.o
    Only in openssl-1.1.0g/ssl: t1_enc.d
    Only in openssl-1.1.0g/ssl: t1_enc.o
    Only in openssl-1.1.0g/ssl: t1_ext.d
    Only in openssl-1.1.0g/ssl: t1_ext.o
    Only in openssl-1.1.0g/ssl: t1_lib.d
    Only in openssl-1.1.0g/ssl: t1_lib.o
    Only in openssl-1.1.0g/ssl: t1_reneg.d
    Only in openssl-1.1.0g/ssl: t1_reneg.o
    Only in openssl-1.1.0g/ssl: t1_trce.d
    Only in openssl-1.1.0g/ssl: t1_trce.o
    Only in openssl-1.1.0g/ssl: tls_srp.d
    Only in openssl-1.1.0g/ssl: tls_srp.o
    Only in openssl-1.1.0g/test: aborttest
    Only in openssl-1.1.0g/test: aborttest.d
    Only in openssl-1.1.0g/test: aborttest.o
    Only in openssl-1.1.0g/test: afalgtest
    Only in openssl-1.1.0g/test: afalgtest.d
    Only in openssl-1.1.0g/test: afalgtest.o
    Only in openssl-1.1.0g/test: asynciotest
    Only in openssl-1.1.0g/test: asynciotest.d
    Only in openssl-1.1.0g/test: asynciotest.o
    Only in openssl-1.1.0g/test: asynctest
    Only in openssl-1.1.0g/test: asynctest.d
    Only in openssl-1.1.0g/test: asynctest.o
    Only in openssl-1.1.0g/test: bad_dtls_test
    Only in openssl-1.1.0g/test: bad_dtls_test.d
    Only in openssl-1.1.0g/test: bad_dtls_test.o
    Only in openssl-1.1.0g/test: bftest
    Only in openssl-1.1.0g/test: bftest.d
    Only in openssl-1.1.0g/test: bftest.o
    Only in openssl-1.1.0g/test: bio_enc_test
    Only in openssl-1.1.0g/test: bio_enc_test.d
    Only in openssl-1.1.0g/test: bio_enc_test.o
    Only in openssl-1.1.0g/test: bioprinttest
    Only in openssl-1.1.0g/test: bioprinttest.d
    Only in openssl-1.1.0g/test: bioprinttest.o
    Only in openssl-1.1.0g/test: bntest
    Only in openssl-1.1.0g/test: bntest.d
    Only in openssl-1.1.0g/test: bntest.o
    Only in openssl-1.1.0g/test: buildtest_aes
    Only in openssl-1.1.0g/test: buildtest_aes.c
    Only in openssl-1.1.0g/test: buildtest_aes.d
    Only in openssl-1.1.0g/test: buildtest_aes.o
    Only in openssl-1.1.0g/test: buildtest_asn1
    Only in openssl-1.1.0g/test: buildtest_asn1.c
    Only in openssl-1.1.0g/test: buildtest_asn1.d
    Only in openssl-1.1.0g/test: buildtest_asn1.o
    Only in openssl-1.1.0g/test: buildtest_asn1t
    Only in openssl-1.1.0g/test: buildtest_asn1t.c
    Only in openssl-1.1.0g/test: buildtest_asn1t.d
    Only in openssl-1.1.0g/test: buildtest_asn1t.o
    Only in openssl-1.1.0g/test: buildtest_async
    Only in openssl-1.1.0g/test: buildtest_async.c
    Only in openssl-1.1.0g/test: buildtest_async.d
    Only in openssl-1.1.0g/test: buildtest_async.o
    Only in openssl-1.1.0g/test: buildtest_bio
    Only in openssl-1.1.0g/test: buildtest_bio.c
    Only in openssl-1.1.0g/test: buildtest_bio.d
    Only in openssl-1.1.0g/test: buildtest_bio.o
    Only in openssl-1.1.0g/test: buildtest_blowfish
    Only in openssl-1.1.0g/test: buildtest_blowfish.c
    Only in openssl-1.1.0g/test: buildtest_blowfish.d
    Only in openssl-1.1.0g/test: buildtest_blowfish.o
    Only in openssl-1.1.0g/test: buildtest_bn
    Only in openssl-1.1.0g/test: buildtest_bn.c
    Only in openssl-1.1.0g/test: buildtest_bn.d
    Only in openssl-1.1.0g/test: buildtest_bn.o
    Only in openssl-1.1.0g/test: buildtest_buffer
    Only in openssl-1.1.0g/test: buildtest_buffer.c
    Only in openssl-1.1.0g/test: buildtest_buffer.d
    Only in openssl-1.1.0g/test: buildtest_buffer.o
    Only in openssl-1.1.0g/test: buildtest_camellia
    Only in openssl-1.1.0g/test: buildtest_camellia.c
    Only in openssl-1.1.0g/test: buildtest_camellia.d
    Only in openssl-1.1.0g/test: buildtest_camellia.o
    Only in openssl-1.1.0g/test: buildtest_cast
    Only in openssl-1.1.0g/test: buildtest_cast.c
    Only in openssl-1.1.0g/test: buildtest_cast.d
    Only in openssl-1.1.0g/test: buildtest_cast.o
    Only in openssl-1.1.0g/test: buildtest_cmac
    Only in openssl-1.1.0g/test: buildtest_cmac.c
    Only in openssl-1.1.0g/test: buildtest_cmac.d
    Only in openssl-1.1.0g/test: buildtest_cmac.o
    Only in openssl-1.1.0g/test: buildtest_cms
    Only in openssl-1.1.0g/test: buildtest_cms.c
    Only in openssl-1.1.0g/test: buildtest_cms.d
    Only in openssl-1.1.0g/test: buildtest_cms.o
    Only in openssl-1.1.0g/test: buildtest_comp
    Only in openssl-1.1.0g/test: buildtest_comp.c
    Only in openssl-1.1.0g/test: buildtest_comp.d
    Only in openssl-1.1.0g/test: buildtest_comp.o
    Only in openssl-1.1.0g/test: buildtest_conf
    Only in openssl-1.1.0g/test: buildtest_conf_api
    Only in openssl-1.1.0g/test: buildtest_conf_api.c
    Only in openssl-1.1.0g/test: buildtest_conf_api.d
    Only in openssl-1.1.0g/test: buildtest_conf_api.o
    Only in openssl-1.1.0g/test: buildtest_conf.c
    Only in openssl-1.1.0g/test: buildtest_conf.d
    Only in openssl-1.1.0g/test: buildtest_conf.o
    Only in openssl-1.1.0g/test: buildtest_crypto
    Only in openssl-1.1.0g/test: buildtest_crypto.c
    Only in openssl-1.1.0g/test: buildtest_crypto.d
    Only in openssl-1.1.0g/test: buildtest_crypto.o
    Only in openssl-1.1.0g/test: buildtest_ct
    Only in openssl-1.1.0g/test: buildtest_ct.c
    Only in openssl-1.1.0g/test: buildtest_ct.d
    Only in openssl-1.1.0g/test: buildtest_ct.o
    Only in openssl-1.1.0g/test: buildtest_des
    Only in openssl-1.1.0g/test: buildtest_des.c
    Only in openssl-1.1.0g/test: buildtest_des.d
    Only in openssl-1.1.0g/test: buildtest_des.o
    Only in openssl-1.1.0g/test: buildtest_dh
    Only in openssl-1.1.0g/test: buildtest_dh.c
    Only in openssl-1.1.0g/test: buildtest_dh.d
    Only in openssl-1.1.0g/test: buildtest_dh.o
    Only in openssl-1.1.0g/test: buildtest_dsa
    Only in openssl-1.1.0g/test: buildtest_dsa.c
    Only in openssl-1.1.0g/test: buildtest_dsa.d
    Only in openssl-1.1.0g/test: buildtest_dsa.o
    Only in openssl-1.1.0g/test: buildtest_dtls1
    Only in openssl-1.1.0g/test: buildtest_dtls1.c
    Only in openssl-1.1.0g/test: buildtest_dtls1.d
    Only in openssl-1.1.0g/test: buildtest_dtls1.o
    Only in openssl-1.1.0g/test: buildtest_ebcdic
    Only in openssl-1.1.0g/test: buildtest_ebcdic.c
    Only in openssl-1.1.0g/test: buildtest_ebcdic.d
    Only in openssl-1.1.0g/test: buildtest_ebcdic.o
    Only in openssl-1.1.0g/test: buildtest_ec
    Only in openssl-1.1.0g/test: buildtest_ec.c
    Only in openssl-1.1.0g/test: buildtest_ec.d
    Only in openssl-1.1.0g/test: buildtest_ecdh
    Only in openssl-1.1.0g/test: buildtest_ecdh.c
    Only in openssl-1.1.0g/test: buildtest_ecdh.d
    Only in openssl-1.1.0g/test: buildtest_ecdh.o
    Only in openssl-1.1.0g/test: buildtest_ecdsa
    Only in openssl-1.1.0g/test: buildtest_ecdsa.c
    Only in openssl-1.1.0g/test: buildtest_ecdsa.d
    Only in openssl-1.1.0g/test: buildtest_ecdsa.o
    Only in openssl-1.1.0g/test: buildtest_ec.o
    Only in openssl-1.1.0g/test: buildtest_engine
    Only in openssl-1.1.0g/test: buildtest_engine.c
    Only in openssl-1.1.0g/test: buildtest_engine.d
    Only in openssl-1.1.0g/test: buildtest_engine.o
    Only in openssl-1.1.0g/test: buildtest_e_os2
    Only in openssl-1.1.0g/test: buildtest_e_os2.c
    Only in openssl-1.1.0g/test: buildtest_e_os2.d
    Only in openssl-1.1.0g/test: buildtest_e_os2.o
    Only in openssl-1.1.0g/test: buildtest_err
    Only in openssl-1.1.0g/test: buildtest_err.c
    Only in openssl-1.1.0g/test: buildtest_err.d
    Only in openssl-1.1.0g/test: buildtest_err.o
    Only in openssl-1.1.0g/test: buildtest_evp
    Only in openssl-1.1.0g/test: buildtest_evp.c
    Only in openssl-1.1.0g/test: buildtest_evp.d
    Only in openssl-1.1.0g/test: buildtest_evp.o
    Only in openssl-1.1.0g/test: buildtest_hmac
    Only in openssl-1.1.0g/test: buildtest_hmac.c
    Only in openssl-1.1.0g/test: buildtest_hmac.d
    Only in openssl-1.1.0g/test: buildtest_hmac.o
    Only in openssl-1.1.0g/test: buildtest_idea
    Only in openssl-1.1.0g/test: buildtest_idea.c
    Only in openssl-1.1.0g/test: buildtest_idea.d
    Only in openssl-1.1.0g/test: buildtest_idea.o
    Only in openssl-1.1.0g/test: buildtest_kdf
    Only in openssl-1.1.0g/test: buildtest_kdf.c
    Only in openssl-1.1.0g/test: buildtest_kdf.d
    Only in openssl-1.1.0g/test: buildtest_kdf.o
    Only in openssl-1.1.0g/test: buildtest_lhash
    Only in openssl-1.1.0g/test: buildtest_lhash.c
    Only in openssl-1.1.0g/test: buildtest_lhash.d
    Only in openssl-1.1.0g/test: buildtest_lhash.o
    Only in openssl-1.1.0g/test: buildtest_md4
    Only in openssl-1.1.0g/test: buildtest_md4.c
    Only in openssl-1.1.0g/test: buildtest_md4.d
    Only in openssl-1.1.0g/test: buildtest_md4.o
    Only in openssl-1.1.0g/test: buildtest_md5
    Only in openssl-1.1.0g/test: buildtest_md5.c
    Only in openssl-1.1.0g/test: buildtest_md5.d
    Only in openssl-1.1.0g/test: buildtest_md5.o
    Only in openssl-1.1.0g/test: buildtest_mdc2
    Only in openssl-1.1.0g/test: buildtest_mdc2.c
    Only in openssl-1.1.0g/test: buildtest_mdc2.d
    Only in openssl-1.1.0g/test: buildtest_mdc2.o
    Only in openssl-1.1.0g/test: buildtest_modes
    Only in openssl-1.1.0g/test: buildtest_modes.c
    Only in openssl-1.1.0g/test: buildtest_modes.d
    Only in openssl-1.1.0g/test: buildtest_modes.o
    Only in openssl-1.1.0g/test: buildtest_objects
    Only in openssl-1.1.0g/test: buildtest_objects.c
    Only in openssl-1.1.0g/test: buildtest_objects.d
    Only in openssl-1.1.0g/test: buildtest_objects.o
    Only in openssl-1.1.0g/test: buildtest_obj_mac
    Only in openssl-1.1.0g/test: buildtest_obj_mac.c
    Only in openssl-1.1.0g/test: buildtest_obj_mac.d
    Only in openssl-1.1.0g/test: buildtest_obj_mac.o
    Only in openssl-1.1.0g/test: buildtest_ocsp
    Only in openssl-1.1.0g/test: buildtest_ocsp.c
    Only in openssl-1.1.0g/test: buildtest_ocsp.d
    Only in openssl-1.1.0g/test: buildtest_ocsp.o
    Only in openssl-1.1.0g/test: buildtest_opensslv
    Only in openssl-1.1.0g/test: buildtest_opensslv.c
    Only in openssl-1.1.0g/test: buildtest_opensslv.d
    Only in openssl-1.1.0g/test: buildtest_opensslv.o
    Only in openssl-1.1.0g/test: buildtest_ossl_typ
    Only in openssl-1.1.0g/test: buildtest_ossl_typ.c
    Only in openssl-1.1.0g/test: buildtest_ossl_typ.d
    Only in openssl-1.1.0g/test: buildtest_ossl_typ.o
    Only in openssl-1.1.0g/test: buildtest_pem
    Only in openssl-1.1.0g/test: buildtest_pem2
    Only in openssl-1.1.0g/test: buildtest_pem2.c
    Only in openssl-1.1.0g/test: buildtest_pem2.d
    Only in openssl-1.1.0g/test: buildtest_pem2.o
    Only in openssl-1.1.0g/test: buildtest_pem.c
    Only in openssl-1.1.0g/test: buildtest_pem.d
    Only in openssl-1.1.0g/test: buildtest_pem.o
    Only in openssl-1.1.0g/test: buildtest_pkcs12
    Only in openssl-1.1.0g/test: buildtest_pkcs12.c
    Only in openssl-1.1.0g/test: buildtest_pkcs12.d
    Only in openssl-1.1.0g/test: buildtest_pkcs12.o
    Only in openssl-1.1.0g/test: buildtest_pkcs7
    Only in openssl-1.1.0g/test: buildtest_pkcs7.c
    Only in openssl-1.1.0g/test: buildtest_pkcs7.d
    Only in openssl-1.1.0g/test: buildtest_pkcs7.o
    Only in openssl-1.1.0g/test: buildtest_rand
    Only in openssl-1.1.0g/test: buildtest_rand.c
    Only in openssl-1.1.0g/test: buildtest_rand.d
    Only in openssl-1.1.0g/test: buildtest_rand.o
    Only in openssl-1.1.0g/test: buildtest_rc2
    Only in openssl-1.1.0g/test: buildtest_rc2.c
    Only in openssl-1.1.0g/test: buildtest_rc2.d
    Only in openssl-1.1.0g/test: buildtest_rc2.o
    Only in openssl-1.1.0g/test: buildtest_rc4
    Only in openssl-1.1.0g/test: buildtest_rc4.c
    Only in openssl-1.1.0g/test: buildtest_rc4.d
    Only in openssl-1.1.0g/test: buildtest_rc4.o
    Only in openssl-1.1.0g/test: buildtest_ripemd
    Only in openssl-1.1.0g/test: buildtest_ripemd.c
    Only in openssl-1.1.0g/test: buildtest_ripemd.d
    Only in openssl-1.1.0g/test: buildtest_ripemd.o
    Only in openssl-1.1.0g/test: buildtest_rsa
    Only in openssl-1.1.0g/test: buildtest_rsa.c
    Only in openssl-1.1.0g/test: buildtest_rsa.d
    Only in openssl-1.1.0g/test: buildtest_rsa.o
    Only in openssl-1.1.0g/test: buildtest_safestack
    Only in openssl-1.1.0g/test: buildtest_safestack.c
    Only in openssl-1.1.0g/test: buildtest_safestack.d
    Only in openssl-1.1.0g/test: buildtest_safestack.o
    Only in openssl-1.1.0g/test: buildtest_seed
    Only in openssl-1.1.0g/test: buildtest_seed.c
    Only in openssl-1.1.0g/test: buildtest_seed.d
    Only in openssl-1.1.0g/test: buildtest_seed.o
    Only in openssl-1.1.0g/test: buildtest_sha
    Only in openssl-1.1.0g/test: buildtest_sha.c
    Only in openssl-1.1.0g/test: buildtest_sha.d
    Only in openssl-1.1.0g/test: buildtest_sha.o
    Only in openssl-1.1.0g/test: buildtest_srp
    Only in openssl-1.1.0g/test: buildtest_srp.c
    Only in openssl-1.1.0g/test: buildtest_srp.d
    Only in openssl-1.1.0g/test: buildtest_srp.o
    Only in openssl-1.1.0g/test: buildtest_srtp
    Only in openssl-1.1.0g/test: buildtest_srtp.c
    Only in openssl-1.1.0g/test: buildtest_srtp.d
    Only in openssl-1.1.0g/test: buildtest_srtp.o
    Only in openssl-1.1.0g/test: buildtest_ssl
    Only in openssl-1.1.0g/test: buildtest_ssl2
    Only in openssl-1.1.0g/test: buildtest_ssl2.c
    Only in openssl-1.1.0g/test: buildtest_ssl2.d
    Only in openssl-1.1.0g/test: buildtest_ssl2.o
    Only in openssl-1.1.0g/test: buildtest_ssl.c
    Only in openssl-1.1.0g/test: buildtest_ssl.d
    Only in openssl-1.1.0g/test: buildtest_ssl.o
    Only in openssl-1.1.0g/test: buildtest_stack
    Only in openssl-1.1.0g/test: buildtest_stack.c
    Only in openssl-1.1.0g/test: buildtest_stack.d
    Only in openssl-1.1.0g/test: buildtest_stack.o
    Only in openssl-1.1.0g/test: buildtest_symhacks
    Only in openssl-1.1.0g/test: buildtest_symhacks.c
    Only in openssl-1.1.0g/test: buildtest_symhacks.d
    Only in openssl-1.1.0g/test: buildtest_symhacks.o
    Only in openssl-1.1.0g/test: buildtest_tls1
    Only in openssl-1.1.0g/test: buildtest_tls1.c
    Only in openssl-1.1.0g/test: buildtest_tls1.d
    Only in openssl-1.1.0g/test: buildtest_tls1.o
    Only in openssl-1.1.0g/test: buildtest_ts
    Only in openssl-1.1.0g/test: buildtest_ts.c
    Only in openssl-1.1.0g/test: buildtest_ts.d
    Only in openssl-1.1.0g/test: buildtest_ts.o
    Only in openssl-1.1.0g/test: buildtest_txt_db
    Only in openssl-1.1.0g/test: buildtest_txt_db.c
    Only in openssl-1.1.0g/test: buildtest_txt_db.d
    Only in openssl-1.1.0g/test: buildtest_txt_db.o
    Only in openssl-1.1.0g/test: buildtest_ui
    Only in openssl-1.1.0g/test: buildtest_ui.c
    Only in openssl-1.1.0g/test: buildtest_ui.d
    Only in openssl-1.1.0g/test: buildtest_ui.o
    Only in openssl-1.1.0g/test: buildtest_whrlpool
    Only in openssl-1.1.0g/test: buildtest_whrlpool.c
    Only in openssl-1.1.0g/test: buildtest_whrlpool.d
    Only in openssl-1.1.0g/test: buildtest_whrlpool.o
    Only in openssl-1.1.0g/test: buildtest_x509
    Only in openssl-1.1.0g/test: buildtest_x509.c
    Only in openssl-1.1.0g/test: buildtest_x509.d
    Only in openssl-1.1.0g/test: buildtest_x509.o
    Only in openssl-1.1.0g/test: buildtest_x509v3
    Only in openssl-1.1.0g/test: buildtest_x509v3.c
    Only in openssl-1.1.0g/test: buildtest_x509v3.d
    Only in openssl-1.1.0g/test: buildtest_x509v3.o
    Only in openssl-1.1.0g/test: buildtest_x509_vfy
    Only in openssl-1.1.0g/test: buildtest_x509_vfy.c
    Only in openssl-1.1.0g/test: buildtest_x509_vfy.d
    Only in openssl-1.1.0g/test: buildtest_x509_vfy.o
    Only in openssl-1.1.0g/test: casttest
    Only in openssl-1.1.0g/test: casttest.d
    Only in openssl-1.1.0g/test: casttest.o
    Only in openssl-1.1.0g/test: cipherlist_test
    Only in openssl-1.1.0g/test: cipherlist_test.d
    Only in openssl-1.1.0g/test: cipherlist_test.o
    Only in openssl-1.1.0g/test: clienthellotest
    Only in openssl-1.1.0g/test: clienthellotest.d
    Only in openssl-1.1.0g/test: clienthellotest.o
    Only in openssl-1.1.0g/test: constant_time_test
    Only in openssl-1.1.0g/test: constant_time_test.d
    Only in openssl-1.1.0g/test: constant_time_test.o
    Only in openssl-1.1.0g/test: crltest
    Only in openssl-1.1.0g/test: crltest.d
    Only in openssl-1.1.0g/test: crltest.o
    Only in openssl-1.1.0g/test: ct_test
    Only in openssl-1.1.0g/test: ct_test.d
    Only in openssl-1.1.0g/test: ct_test.o
    Only in openssl-1.1.0g/test: d2i_test
    Only in openssl-1.1.0g/test: d2i_test.d
    Only in openssl-1.1.0g/test: d2i_test.o
    Only in openssl-1.1.0g/test: danetest
    diff -upr openssl-1.1.0g/test/danetest.c /home/chris/amissl/openssl/test/danetest.c
    --- openssl-1.1.0g/test/danetest.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/test/danetest.c	2018-07-23 20:12:12.747772460 +0100
    @@ -133,9 +133,11 @@ static STACK_OF(X509) *load_chain(BIO *f
             if (strcmp(name, PEM_STRING_X509) == 0
                 || strcmp(name, PEM_STRING_X509_TRUSTED) == 0
                 || strcmp(name, PEM_STRING_X509_OLD) == 0) {
    -            d2i_X509_t d = strcmp(name, PEM_STRING_X509_TRUSTED) ?
    -                d2i_X509_AUX : d2i_X509;
    -            X509 *cert = d(0, &p, len);
    +            X509 *cert;
    +            if (strcmp(name, PEM_STRING_X509_TRUSTED) == 0)
    +                cert = d2i_X509(0, &p, len);
    +            else
    +                cert = d2i_X509_AUX(0, &p, len);
     
                 if (cert == 0 || (p - data) != len)
                     errtype = "certificate";
    @@ -317,6 +319,7 @@ static int allws(const char *cp)
         return 1;
     }
     
    +#ifndef OPENSSL_NO_STDIO
     static int test_tlsafile(SSL_CTX *ctx, const char *base_name,
                              BIO *f, const char *path)
     {
    @@ -423,6 +426,7 @@ static int test_tlsafile(SSL_CTX *ctx, c
     
         return ret;
     }
    +#endif
     
     int main(int argc, char *argv[])
     {
    @@ -476,10 +480,12 @@ int main(int argc, char *argv[])
             goto end;
         }
     
    +#ifndef OPENSSL_NO_STDIO
         if (test_tlsafile(ctx, basedomain, f, tlsafile) <= 0) {
             print_errors();
             goto end;
         }
    +#endif
     
         ret = 0;
     
    Only in openssl-1.1.0g/test: danetest.d
    Only in openssl-1.1.0g/test: danetest.o
    Only in openssl-1.1.0g/test: destest
    Only in openssl-1.1.0g/test: destest.d
    Only in openssl-1.1.0g/test: destest.o
    Only in openssl-1.1.0g/test: dhtest
    diff -upr openssl-1.1.0g/test/dhtest.c /home/chris/amissl/openssl/test/dhtest.c
    --- openssl-1.1.0g/test/dhtest.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/test/dhtest.c	2018-07-23 20:12:12.747772460 +0100
    @@ -481,6 +481,33 @@ typedef struct {
         size_t Z_len;
     } rfc5114_td;
     
    +# if defined(OPENSSL_SYS_AMIGA)
    +static DH * DH_1024_160(void)
    +{
    +  return DH_get_1024_160();
    +}
    +
    +static DH * DH_2048_224(void)
    +{
    +  return DH_get_2048_224();
    +}
    +
    +static DH * DH_2048_256(void)
    +{
    +  return DH_get_2048_256();
    +}
    +
    +# define make_rfc5114_td(pre) { \
    +        DH_##pre, \
    +        dhtest_##pre##_xA, sizeof(dhtest_##pre##_xA), \
    +        dhtest_##pre##_yA, sizeof(dhtest_##pre##_yA), \
    +        dhtest_##pre##_xB, sizeof(dhtest_##pre##_xB), \
    +        dhtest_##pre##_yB, sizeof(dhtest_##pre##_yB), \
    +        dhtest_##pre##_Z, sizeof(dhtest_##pre##_Z) \
    +        }
    +
    +# else
    +
     # define make_rfc5114_td(pre) { \
             DH_get_##pre, \
             dhtest_##pre##_xA, sizeof(dhtest_##pre##_xA), \
    @@ -490,6 +517,8 @@ typedef struct {
             dhtest_##pre##_Z, sizeof(dhtest_##pre##_Z) \
             }
     
    +# endif
    +#
     static const rfc5114_td rfctd[] = {
             make_rfc5114_td(1024_160),
             make_rfc5114_td(2048_224),
    Only in openssl-1.1.0g/test: dhtest.d
    Only in openssl-1.1.0g/test: dhtest.o
    Only in openssl-1.1.0g/test: dsatest
    Only in openssl-1.1.0g/test: dsatest.d
    Only in openssl-1.1.0g/test: dsatest.o
    Only in openssl-1.1.0g/test: dtlstest
    Only in openssl-1.1.0g/test: dtlstest.d
    Only in openssl-1.1.0g/test: dtlstest.o
    Only in openssl-1.1.0g/test: dtlsv1listentest
    Only in openssl-1.1.0g/test: dtlsv1listentest.d
    Only in openssl-1.1.0g/test: dtlsv1listentest.o
    Only in openssl-1.1.0g/test: ecdsatest
    Only in openssl-1.1.0g/test: ecdsatest.d
    Only in openssl-1.1.0g/test: ecdsatest.o
    Only in openssl-1.1.0g/test: ectest
    Only in openssl-1.1.0g/test: ectest.d
    Only in openssl-1.1.0g/test: ectest.o
    Only in openssl-1.1.0g/test: enginetest
    Only in openssl-1.1.0g/test: enginetest.d
    Only in openssl-1.1.0g/test: enginetest.o
    Only in openssl-1.1.0g/test: evp_extra_test
    Only in openssl-1.1.0g/test: evp_extra_test.d
    Only in openssl-1.1.0g/test: evp_extra_test.o
    Only in openssl-1.1.0g/test: evp_test
    diff -upr openssl-1.1.0g/test/evp_test.c /home/chris/amissl/openssl/test/evp_test.c
    --- openssl-1.1.0g/test/evp_test.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/test/evp_test.c	2018-07-23 20:12:12.755790890 +0100
    @@ -523,6 +523,7 @@ static int process_test(struct evp_test
             fputs(buf, stdout);
         if (!parse_line(&keyword, &value, buf))
             return 1;
    +#ifndef OPENSSL_NO_STDIO
         if (strcmp(keyword, "PrivateKey") == 0) {
             if (!read_key(t))
                 return 0;
    @@ -547,6 +548,7 @@ static int process_test(struct evp_test
             lst = &t->public;
             add_key = 1;
         }
    +#endif
         /* If we have a key add to list */
         if (add_key) {
             if (find_key(NULL, value, *lst)) {
    Only in openssl-1.1.0g/test: evp_test.d
    Only in openssl-1.1.0g/test: evp_test.o
    Only in openssl-1.1.0g/test: exdatatest
    Only in openssl-1.1.0g/test: exdatatest.d
    Only in openssl-1.1.0g/test: exdatatest.o
    Only in openssl-1.1.0g/test: exptest
    Only in openssl-1.1.0g/test: exptest.d
    Only in openssl-1.1.0g/test: exptest.o
    Only in openssl-1.1.0g/test: gmdifftest
    Only in openssl-1.1.0g/test: gmdifftest.d
    Only in openssl-1.1.0g/test: gmdifftest.o
    Only in openssl-1.1.0g/test: handshake_helper.d
    Only in openssl-1.1.0g/test: handshake_helper.o
    Only in openssl-1.1.0g/test: heartbeat_test
    Only in openssl-1.1.0g/test: heartbeat_test.d
    Only in openssl-1.1.0g/test: heartbeat_test.o
    Only in openssl-1.1.0g/test: hmactest
    Only in openssl-1.1.0g/test: hmactest.d
    Only in openssl-1.1.0g/test: hmactest.o
    Only in openssl-1.1.0g/test: ideatest
    Only in openssl-1.1.0g/test: ideatest.d
    Only in openssl-1.1.0g/test: ideatest.o
    Only in openssl-1.1.0g/test: igetest
    Only in openssl-1.1.0g/test: igetest.d
    Only in openssl-1.1.0g/test: igetest.o
    Only in openssl-1.1.0g/test: md2test
    diff -upr openssl-1.1.0g/test/md2test.c /home/chris/amissl/openssl/test/md2test.c
    --- openssl-1.1.0g/test/md2test.c	2017-11-02 14:29:05.000000000 +0000
    +++ /home/chris/amissl/openssl/test/md2test.c	2018-07-23 20:12:12.779846180 +0100
    @@ -11,7 +11,7 @@
     #include <stdlib.h>
     #include <string.h>
     
    -#include "../e_os.h"
    +#include "e_os.h"
     
     #ifdef OPENSSL_NO_MD2
     int main(int argc, char *argv[])
    Only in openssl-1.1.0g/test: md2test.d
    Only in openssl-1.1.0g/test: md2test.o
    Only in openssl-1.1.0g/test: md4test
    Only in openssl-1.1.0g/test: md4test.d
    Only in openssl-1.1.0g/test: md4test.o
    Only in openssl-1.1.0g/test: md5test
    Only in openssl-1.1.0g/test: md5test.d
    Only in openssl-1.1.0g/test: md5test.o
    Only in openssl-1.1.0g/test: mdc2test
    Only in openssl-1.1.0g/test: mdc2test.d
    Only in openssl-1.1.0g/test: mdc2test.o
    Only in openssl-1.1.0g/test: memleaktest
    Only in openssl-1.1.0g/test: memleaktest.d
    Only in openssl-1.1.0g/test: memleaktest.o
    Only in openssl-1.1.0g/test: p5_crpt2_test
    Only in openssl-1.1.0g/test: p5_crpt2_test.d
    Only in openssl-1.1.0g/test: p5_crpt2_test.o
    Only in openssl-1.1.0g/test: packettest
    Only in openssl-1.1.0g/test: packettest.d
    Only in openssl-1.1.0g/test: packettest.o
    Only in openssl-1.1.0g/test: pbelutest
    Only in openssl-1.1.0g/test: pbelutest.d
    Only in openssl-1.1.0g/test: pbelutest.o
    Only in openssl-1.1.0g/test: randtest
    Only in openssl-1.1.0g/test: randtest.d
    Only in openssl-1.1.0g/test: randtest.o
    Only in openssl-1.1.0g/test: rc2test
    Only in openssl-1.1.0g/test: rc2test.d
    Only in openssl-1.1.0g/test: rc2test.o
    Only in openssl-1.1.0g/test: rc4test
    Only in openssl-1.1.0g/test: rc4test.d
    Only in openssl-1.1.0g/test: rc4test.o
    Only in openssl-1.1.0g/test: rc5test
    Only in openssl-1.1.0g/test: rc5test.d
    Only in openssl-1.1.0g/test: rc5test.o
    Only in openssl-1.1.0g/test: rmdtest
    Only in openssl-1.1.0g/test: rmdtest.d
    Only in openssl-1.1.0g/test: rmdtest.o
    Only in openssl-1.1.0g/test: rsa_test
    Only in openssl-1.1.0g/test: rsa_test.d
    Only in openssl-1.1.0g/test: rsa_test.o
    Only in openssl-1.1.0g/test: sanitytest
    Only in openssl-1.1.0g/test: sanitytest.d
    Only in openssl-1.1.0g/test: sanitytest.o
    Only in openssl-1.1.0g/test: secmemtest
    Only in openssl-1.1.0g/test: secmemtest.d
    Only in openssl-1.1.0g/test: secmemtest.o
    Only in openssl-1.1.0g/test: sha1test
    Only in openssl-1.1.0g/test: sha1test.d
    Only in openssl-1.1.0g/test: sha1test.o
    Only in openssl-1.1.0g/test: sha256t
    Only in openssl-1.1.0g/test: sha256t.d
    Only in openssl-1.1.0g/test: sha256t.o
    Only in openssl-1.1.0g/test: sha512t
    Only in openssl-1.1.0g/test: sha512t.d
    Only in openssl-1.1.0g/test: sha512t.o
    Only in openssl-1.1.0g/test: srptest
    Only in openssl-1.1.0g/test: srptest.d
    Only in openssl-1.1.0g/test: srptest.o
    Only in openssl-1.1.0g/test: sslapitest
    Only in openssl-1.1.0g/test: sslapitest.d
    Only in openssl-1.1.0g/test: sslapitest.o
    Only in openssl-1.1.0g/test: sslcorrupttest
    Only in openssl-1.1.0g/test: sslcorrupttest.d
    Only in openssl-1.1.0g/test: sslcorrupttest.o
    Only in openssl-1.1.0g/test: ssl_test
    Only in openssl-1.1.0g/test: ssl_test_ctx.d
    Only in openssl-1.1.0g/test: ssl_test_ctx.o
    Only in openssl-1.1.0g/test: ssl_test_ctx_test
    Only in openssl-1.1.0g/test: ssl_test_ctx_test.d
    Only in openssl-1.1.0g/test: ssl_test_ctx_test.o
    Only in openssl-1.1.0g/test: ssl_test.d
    Only in openssl-1.1.0g/test: ssltestlib.d
    Only in openssl-1.1.0g/test: ssltestlib.o
    Only in openssl-1.1.0g/test: ssl_test.o
    Only in openssl-1.1.0g/test: ssltest_old
    Only in openssl-1.1.0g/test: ssltest_old.d
    Only in openssl-1.1.0g/test: ssltest_old.o
    Only in openssl-1.1.0g/test: testutil.d
    Only in openssl-1.1.0g/test: testutil.o
    Only in openssl-1.1.0g/test: threadstest
    diff -upr openssl-1.1.0g/test/threadstest.c /home/chris/amissl/openssl/test/threadstest.c
    --- openssl-1.1.0g/test/threadstest.c	2017-11-02 14:29:06.000000000 +0000
    +++ /home/chris/amissl/openssl/test/threadstest.c	2018-07-23 20:12:12.880076557 +0100
    @@ -30,6 +30,86 @@ static int wait_for_thread(thread_t thre
         return 1;
     }
     
    +#elif defined(OPENSSL_SYS_AMIGA)
    +
    +#include <dos/dostags.h>
    +#include <proto/exec.h>
    +#include <proto/dos.h>
    +
    +typedef struct Process *thread_t;
    +
    +struct ThreadArgsMsg {
    +   struct Message tp_ExecMessage;
    +   void *tp_Arg;
    +};
    +
    +static void *thread_run(void *arg)
    +{
    +    void (*f)(void);
    +    struct Process *thisproc = (struct Process *)FindTask(NULL);
    +
    +#if defined(__amigaos4__)
    +    arg = thisproc->pr_Task.tc_UserData;
    +#else
    +    struct ThreadArgsMsg *msg;
    +    struct Task *parent;
    +
    +    WaitPort(&(thisproc->pr_MsgPort));
    +    msg = (struct ThreadArgsMsg *)GetMsg(&(thisproc->pr_MsgPort));
    +    arg = msg->tp_Arg;
    +    parent = msg->tp_ExecMessage.mn_ReplyPort->mp_SigTask;
    +    ReplyMsg((struct Message *)msg);
    +#endif
    +
    +    *(void **) (&f) = arg;
    +    f();
    +
    +#if !defined(__amigaos4__)
    +    Signal(parent,SIGF_SINGLE);
    +#endif
    +
    +    return NULL;
    +}
    +
    +static int run_thread(thread_t *t, void (*f)(void))
    +{
    +#if defined(__amigaos4__)
    +    *t = CreateNewProcTags(NP_Entry, (ULONG)thread_run,
    +                           NP_Child, TRUE,
    +                           NP_NotifyOnDeathSigTask, FindTask(NULL),
    +                           NP_UserData, (ULONG)f,
    +                           NP_StackSize, 8192,
    +                           TAG_END);
    +#else
    +    if ((*t = CreateNewProcTags(NP_Entry, (ULONG)thread_run,
    +                                NP_StackSize, 8192,
    +                                TAG_END)))
    +    {
    +        struct Process *thisproc = (struct Process *)FindTask(NULL);
    +        struct ThreadArgsMsg argsmsg;
    +        argsmsg.tp_ExecMessage.mn_Node.ln_Type = NT_MESSAGE;
    +        argsmsg.tp_ExecMessage.mn_ReplyPort = &(thisproc->pr_MsgPort);
    +        argsmsg.tp_ExecMessage.mn_Length = sizeof(struct ThreadArgsMsg);
    +        argsmsg.tp_Arg = f;
    +        PutMsg(&((*t)->pr_MsgPort),(struct Message *)&argsmsg);
    +        WaitPort(&(thisproc->pr_MsgPort));
    +        GetMsg(&(thisproc->pr_MsgPort));
    +    }
    +#endif
    +
    +    return *t != NULL;
    +}
    +
    +static int wait_for_thread(thread_t thread)
    +{
    +#if defined(__amigaos4__)
    +    Wait(SIGF_CHILD);
    +#else
    +    Wait(SIGF_SINGLE);
    +#endif
    +    return 1;
    +}
    +
     #elif defined(OPENSSL_SYS_WINDOWS)
     
     typedef HANDLE thread_t;
    @@ -212,7 +292,7 @@ static int test_thread_local(void)
             return 0;
         }
     
    -# if !defined(OPENSSL_SYS_WINDOWS)
    +# if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_AMIGA)
         if (destructor_run_count != 1) {
             fprintf(stderr, "thread-local destructor run %u times\n",
                     destructor_run_count);
    Only in openssl-1.1.0g/test: threadstest.d
    Only in openssl-1.1.0g/test: threadstest.o
    Only in openssl-1.1.0g/test: v3ext
    Only in openssl-1.1.0g/test: v3ext.d
    Only in openssl-1.1.0g/test: v3ext.o
    Only in openssl-1.1.0g/test: v3nametest
    Only in openssl-1.1.0g/test: v3nametest.d
    Only in openssl-1.1.0g/test: v3nametest.o
    Only in openssl-1.1.0g/test: verify_extra_test
    Only in openssl-1.1.0g/test: verify_extra_test.d
    Only in openssl-1.1.0g/test: verify_extra_test.o
    Only in openssl-1.1.0g/test: wp_test
    Only in openssl-1.1.0g/test: wp_test.d
    Only in openssl-1.1.0g/test: wp_test.o
    Only in openssl-1.1.0g/test: x509aux
    Only in openssl-1.1.0g/test: x509aux.d
    Only in openssl-1.1.0g/test: x509aux.o
    Only in openssl-1.1.0g/tools: c_rehash
    Only in openssl-1.1.0g/util: shlib_wrap.sh
    
    diff file icon openssl.diff (177,615 bytes) 2018-07-23 22:01 +
  • jpg file icon Annotation 2019-03-14 201208.jpg (163,753 bytes) 2019-03-14 20:26 -
    jpg file icon Annotation 2019-03-14 201208.jpg (163,753 bytes) 2019-03-14 20:26 +

-Relationships
+Relationships

-Notes
Chris Young

~0001694

Chris Young (developer)

curl command-line is not working:

curl: (35) error:14195006:SSL routines:tls_construct_cke_ecdhe:EVP lib
Chris Young

~0001699

Chris Young (developer)

As far as I can tell, this error is being thrown up because evp_pkey_asn1_ctrl() returns <0.
This suggests the problem lies somewhere in the ASN1 code, but I have no idea what I'm looking for.
Chris Young

~0001703

Chris Young (developer)

Suspect the answer to this might be to upgrade the version of GCC we are using in the toolchain. There is a patched GCC6 here: https://github.com/bebbo/gcc
At the moment, I'm unable to even rebuild the ppc-amigaos toolchain (GCC 5 or 6) due to conflicting autotools dependencies, and m68k-amigaos is stuck on an even older version of binutils, so I'm not going to attempt switching to GCC6 until I at least get it building for ppc-amigaos.
Chris Young

~0001740

Chris Young (developer)

GCC6 for OS3 here: http://git.netsurf-browser.org/toolchains.git/log/?h=chris/gcc6-os3

Unable to build much as it appears to have some header dependency issue - conflicting gettimeofday in sys/time.h when building libiconv, for example.
Chris Young

~0001743

Chris Young (developer)

gcc6 build fixed to the extent it now builds working binaries without include errors.

A couple of outstanding issues:
* gcc-ranlib does not delete - this needs to be deleted otherwise libtool tries to use it and it calls our old ranlib with an option that hadn't been invented back then. (rm command in makefile not working)
* locale_t needs fixing - this is a problem with the clib2 includes which Olaf is aware of. (quick fix is to addd typedef void* locale_t to wchar.h)
* openssl e_os.h tries to include netinet/tcp.h - this doesn't exist in clib2, looks like OpenSSL doesn't actually need anything from it anyway. (quick fix is to touch netinet/tcp.h)

Even with this new version of gcc, OpenSSL still doesn't work. New error message is:
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to howsmyssl.com
Chris Young

~0001781

Chris Young (developer)

Attached diff between our OpenSSL and the one used by AmiSSL (which works), in case the problem is with our patches rather than the compiler.
Chris Young

~0001782

Chris Young (developer)

Applied a patch which looked important but hasn't resolved this issue (at least from curl; didn't try netsurf). Will need to check file for other patches we might be missing.
Chris Young

~0001783

Chris Young (developer)

Last edited: 2018-07-24 21:35

View 2 revisions

Can't see anything else important that we're missing :(

Chris Young

~0001844

Chris Young (developer)

Last edited: 2018-09-09 13:44

View 2 revisions

Turns out that SSL is largely working (netsurf-browser.org domains work with latest CI build), but https://www.howsmyssl.com still gives "unable to fetch document" (as does https://en.wikipedia.org)

So there's something wrong, but it isn't all SSL/TLS as previously thought.

Vincent Sanders

~0001845

Vincent Sanders (administrator)

it is not something as simple as the OS3 port using the default certificate verification prompt code? (which simply says the user refused the certificate)
Chris Young

~0001846

Chris Young (developer)

I don't think so, as the certificate prompt worked last time I checked and there shouldn't be any reason for those sites to prompt.
Chris Young

~0001896

Chris Young (developer)

Last edited: 2019-03-11 00:05

View 2 revisions

I've built Curl against AmiSSL and the Curl executable gives me the same error, however it also fails downloading from sites that work in NetSurf (OS3 build with OpenSSL), so not sure if this is Curl not working properly with AmiSSL or AmiSSL having similar - but more severe - problems as our OpenSSL build.

curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to www.howsmyssl.com:443

refs: https://github.com/jens-maus/amissl/issues/15#issuecomment-471366123

update: doesn't work in OS4 either, which suggests the libcurl-AmiSSL interface is broken.

Chris Young

~0001897

Chris Young (developer)

and... an experimental build of NetSurf using libcurl built against AmiSSL doesn't connect to any secure sites either.
Chris Young

~0001898

Chris Young (developer)

Last edited: 2019-03-14 20:35

View 2 revisions

Fixed Curl+AmiSSL which now downloads pages from sites which Curl+OpenSSL didn't.
I'm confident that this will fix the problem with NetSurf downloading these pages.
At the moment a test build of NetSurf against libcurl-AmiSSL crashes before the main window opens. The same binary run on OS4 opens and allows browsing of secure pages.

Chris Young

~0001899

Chris Young (developer)

chris/amissl branches contain a working build with AmiSSL.
Chris Young

~0001911

Chris Young (developer)

Now built against AmiSSL instead of OpenSSL.
Vincent Sanders

~0002009

Vincent Sanders (administrator)

we believe this issue has been resolved in NetSurf 3.9
+Notes

-Issue History
Date Modified Username Field Change
2017-12-10 17:14 Chris Young New Issue
2017-12-10 17:14 Chris Young Status new => assigned
2017-12-10 17:14 Chris Young Assigned To => Chris Young
2017-12-10 17:16 Chris Young Status assigned => confirmed
2017-12-10 17:16 Chris Young Note Added: 0001694
2017-12-10 17:16 Chris Young Relationship added related to 0002582
2017-12-10 23:24 Chris Young Relationship deleted related to 0002582
2017-12-11 22:31 Chris Young Note Added: 0001699
2018-01-12 12:41 Chris Young Note Added: 0001703
2018-01-27 17:42 Chris Young Note Added: 0001740
2018-01-29 21:58 Chris Young Note Added: 0001743
2018-07-23 22:01 Chris Young File Added: openssl.diff
2018-07-23 22:01 Chris Young Note Added: 0001781
2018-07-23 23:10 Chris Young Note Added: 0001782
2018-07-24 21:34 Chris Young Note Added: 0001783
2018-07-24 21:35 Chris Young Note Edited: 0001783 View Revisions
2018-08-28 10:40 Vincent Sanders Target Version 3.8 => 3.9
2018-09-09 13:43 Chris Young Note Added: 0001844
2018-09-09 13:44 Chris Young Note Edited: 0001844 View Revisions
2018-09-10 21:23 Vincent Sanders Note Added: 0001845
2018-09-10 22:47 Chris Young Note Added: 0001846
2019-03-10 23:47 Chris Young Note Added: 0001896
2019-03-10 23:59 Chris Young Note Added: 0001897
2019-03-11 00:05 Chris Young Note Edited: 0001896 View Revisions
2019-03-14 20:26 Chris Young File Added: Annotation 2019-03-14 201208.jpg
2019-03-14 20:26 Chris Young Note Added: 0001898
2019-03-14 20:35 Chris Young Note Edited: 0001898 View Revisions
2019-03-30 15:12 Chris Young Note Added: 0001899
2019-05-07 10:24 Chris Young Status confirmed => resolved
2019-05-07 10:24 Chris Young Resolution open => fixed
2019-05-07 10:24 Chris Young Fixed in Version => 3.9
2019-05-07 10:24 Chris Young Fixed in CI build # => 4584
2019-05-07 10:24 Chris Young Note Added: 0001911
2019-07-19 08:30 Vincent Sanders Status resolved => closed
2019-07-19 08:30 Vincent Sanders Note Added: 0002009
+Issue History