Hello Salvatore Bonaccorso,
just tried to find some information without deeper knowledge
of spice or openssl.

In the end I think the update of openssl from 1.1.0h-4 to
1.1.1-4 makes the difference.

Since some 1.1.1 version /etc/ssl/openssl.cnf seems to contain:
    CipherString = DEFAULT@SECLEVEL=2

This level is responsible to not accept the 80 bits used in
the certificate in this test, while we need at least 112 bits.

Therefore I assume upstream should replace this certificate.

"Generating self-signed certificates" ([1],[2]) may give some
pointers how these files were generated.

[1] https://www.spice-space.org/spice-user-manual.html
[2] 
https://cgit.freedesktop.org/spice/spice/commit/server/tests/pki?id=7b5e294a363e1500ab1a5b143da1602c9fed0547

More information in following links:
 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907015
 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907518
 https://wiki.debian.org/ContinuousIntegration/TriagingTips/openssl-1.1.1

Kind regards,
Bernhard
apt update
apt dist-ugprade
apt build-dep spice
apt install devscripts gdb

mkdir spice/orig -p
cd    spice/orig
apt source spice
cd ../..

mkdir libssl1.1/orig -p
cd    libssl1.1/orig
apt source libssl1.1
cd ../..

mkdir libssl1.1-buster/orig -p
cd    libssl1.1-buster/orig
dget http://http.debian.net/debian/pool/main/o/openssl/openssl_1.1.0h-4.dsc
cd ../..

cd spice
cp -a orig try1
cd try1/spice-0.14.0/
dpkg-buildpackage

-> Builds in buster


-> Switch to unstable

apt update
apt dist-upgrade

Die folgenden Pakete werden aktualisiert (Upgrade):
  autopoint ca-certificates console-setup console-setup-linux cpp debhelper 
dirmngr dmidecode dpkg dpkg-dev g++ gcc gettext gettext-base gnupg gnupg-l10n 
gnupg-utils gpg gpg-agent gpg-wks-client
  gpg-wks-server gpgconf gpgsm gpgv gzip ifupdown keyboard-configuration 
libdpkg-perl libegl-mesa0 libegl1-mesa-dev libgbm1 libgl1-mesa-dev 
libgl1-mesa-dri libglapi-mesa libgles2-mesa-dev libglx-mesa0
  libgnutls-dane0 libgnutls30 libgpgme11 libio-socket-ssl-perl libltdl7 
libnet-dns-sec-perl libnet-ssleay-perl libnghttp2-14 libpython3.6-minimal 
libpython3.6-stdlib libsoup2.4-1 libssl-dev libssl1.1
  libtool linux-image-4.18.0-1-amd64 linux-image-amd64 linux-libc-dev 
mesa-common-dev openssl publicsuffix python3-gpg python3.6 python3.6-minimal 
wget

apt autoremove
reboot

apt install libglib2.0-0-dbgsym

cd spice
cp -a orig try2
cd try2/spice-0.14.0/
dpkg-buildpackage


PASS: test-stat-file
../../test-driver: Zeile 107: 14389 Trace/Breakpoint ausgelöst   "$@" > 
$log_file 2>&1
FAIL: test-leaks
PASS: test-vdagent
PASS: test-fail-on-null-core-interface
PASS: test-empty-success
PASS: test-channel
===============================================
   spice 0.14.0: server/tests/test-suite.log
===============================================

# TOTAL: 13
# PASS:  12
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: test-leaks
================

/server/server leaks: 
(./test-leaks:14389): Spice-WARNING **: 10:38:37.328: 
reds.c:2860:reds_init_ssl: Could not load certificates from 
/home/benutzer/spice/try2/spice-0.14.0/server/tests/pki/server-cert.pem
FAIL test-leaks (exit status: 133)

============================================================================
Testsuite summary for spice 0.14.0
============================================================================
# TOTAL: 13
# PASS:  12
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See server/tests/test-suite.log
Please report to spice-de...@lists.freedesktop.org
============================================================================
make[8]: *** [Makefile:1301: test-suite.log] Fehler 1













cd server/tests
gdb -q --args ./test-leaks

set height 0
set width 0
set pagination off
directory /home/benutzer/spice/try2/spice-0.14.0/server
directory /home/benutzer/libssl1.1/orig/openssl-1.1.1/ssl
run

benutzer@debian:~/spice/try2/spice-0.14.0/server/tests$ gdb -q --args 
./test-leaks
Reading symbols from ./test-leaks...done.
(gdb) set height 0
(gdb) set width 0
(gdb) set pagination off
(gdb) run
Starting program: 
/home/benutzer/spice/try2/spice-0.14.0/server/tests/test-leaks 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
/server/server leaks: 
(/home/benutzer/spice/try2/spice-0.14.0/server/tests/test-leaks:14700): 
Spice-WARNING **: 10:45:48.291: reds.c:2860:reds_init_ssl: Could not load 
certificates from 
/home/benutzer/spice/try2/spice-0.14.0/server/tests/pki/server-cert.pem

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff6add9f5 in _g_log_abort () at ../../../../glib/gmessages.c:554
554     ../../../../glib/gmessages.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  0x00007ffff6add9f5 in _g_log_abort (breakpoint=1) at 
../../../../glib/gmessages.c:554
#1  0x00007ffff6aded0d in g_logv (log_domain=0x55555562a029 "Spice", 
log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, 
args=args@entry=0x7fffffffe050) at ../../../../glib/gmessages.c:1371
#2  0x00007ffff6adeedf in g_log (log_domain=log_domain@entry=0x55555562a029 
"Spice", log_level=log_level@entry=G_LOG_LEVEL_WARNING, 
format=format@entry=0x555555639eb5 "%s") at ../../../../glib/gmessages.c:1413
#3  0x0000555555566b22 in spice_logv (log_domain=0x55555562a029 "Spice", 
args=0x7fffffffe130, format=0x55555562ca80 "Could not load certificates from 
%s", function=0x55555562d2f8 <__FUNCTION__.50618> "reds_init_ssl", 
strloc=0x55555562ba39 "reds.c:2860", log_level=G_LOG_LEVEL_WARNING) at log.c:178
#4  0x0000555555566b22 in spice_log 
(log_level=log_level@entry=G_LOG_LEVEL_WARNING, 
strloc=strloc@entry=0x55555562ba39 "reds.c:2860", 
function=function@entry=0x55555562d2f8 <__FUNCTION__.50618> "reds_init_ssl", 
format=format@entry=0x55555562ca80 "Could not load certificates from %s") at 
log.c:196
#5  0x000055555556ed87 in reds_init_ssl (reds=0x555555696f70) at reds.c:2860
#6  0x000055555556ed87 in do_spice_init (core_interface=<optimized out>, 
reds=0x555555696f70) at reds.c:3457
#7  0x000055555556ed87 in spice_server_init (reds=0x555555696f70, 
core=<optimized out>) at reds.c:3694
#8  0x0000555555564d16 in server_leaks () at test-leaks.c:60
#9  0x00007ffff6afee7a in test_case_run (tc=0x555555695e00) at 
../../../../glib/gtestutils.c:2318
#10 0x00007ffff6afee7a in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e40, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2403
#11 0x00007ffff6afed34 in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e20, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2415
#12 0x00007ffff6aff132 in g_test_run_suite (suite=0x555555694e20) at 
../../../../glib/gtestutils.c:2490
#13 0x00007ffff6aff151 in g_test_run () at ../../../../glib/gtestutils.c:1755
#14 0x000055555555fb08 in main (argc=<optimized out>, argv=<optimized out>) at 
test-leaks.c:153



(gdb) list reds.c:2824,2908
2824    static int reds_init_ssl(RedsState *reds)
2825    {
2826        static GOnce openssl_once = G_ONCE_INIT;
2827    #if OPENSSL_VERSION_NUMBER >= 0x10000000L
2828        const SSL_METHOD *ssl_method;
2829    #else
2830        SSL_METHOD *ssl_method;
2831    #endif
2832        int return_code;
2833        /* When some other SSL/TLS version becomes obsolete, add it to this
2834         * variable. */
2835        long ssl_options = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3;
2836
2837        /* Global system initialization*/
2838        g_once(&openssl_once, openssl_global_init, NULL);
2839
2840        /* Create our context*/
2841        /* SSLv23_method() handles TLSv1.x in addition to SSLv2/v3 */
2842        ssl_method = SSLv23_method();
2843        reds->ctx = SSL_CTX_new(ssl_method);
2844        if (!reds->ctx) {
2845            spice_warning("Could not allocate new SSL context");
2846            return -1;
2847        }
2848
2849        /* Limit connection to TLSv1 only */
2850    #ifdef SSL_OP_NO_COMPRESSION
2851        ssl_options |= SSL_OP_NO_COMPRESSION;
2852    #endif
2853        SSL_CTX_set_options(reds->ctx, ssl_options);
2854
2855        /* Load our keys and certificates*/
2856        return_code = SSL_CTX_use_certificate_chain_file(reds->ctx, 
reds->config->ssl_parameters.certs_file);
2857        if (return_code == 1) {
2858            spice_debug("Loaded certificates from %s", 
reds->config->ssl_parameters.certs_file);
2859        } else {
2860            spice_warning("Could not load certificates from %s", 
reds->config->ssl_parameters.certs_file);
2861            return -1;
2862        }
2863
2864        SSL_CTX_set_default_passwd_cb(reds->ctx, ssl_password_cb);
2865        SSL_CTX_set_default_passwd_cb_userdata(reds->ctx, reds);
2866
2867        return_code = SSL_CTX_use_PrivateKey_file(reds->ctx, 
reds->config->ssl_parameters.private_key_file,
2868                                                  SSL_FILETYPE_PEM);
2869        if (return_code == 1) {
2870            spice_debug("Using private key from %s", 
reds->config->ssl_parameters.private_key_file);
2871        } else {
2872            spice_warning("Could not use private key file");
2873            return -1;
2874        }
2875
2876        /* Load the CAs we trust*/
2877        return_code = SSL_CTX_load_verify_locations(reds->ctx, 
reds->config->ssl_parameters.ca_certificate_file, 0);
2878        if (return_code == 1) {
2879            spice_debug("Loaded CA certificates from %s", 
reds->config->ssl_parameters.ca_certificate_file);
2880        } else {
2881            spice_warning("Could not use CA file %s", 
reds->config->ssl_parameters.ca_certificate_file);
2882            return -1;
2883        }
2884
2885    #if (OPENSSL_VERSION_NUMBER < 0x00905100L)
2886        SSL_CTX_set_verify_depth(reds->ctx, 1);
2887    #endif
2888
2889        if (strlen(reds->config->ssl_parameters.dh_key_file) > 0) {
2890            if (load_dh_params(reds->ctx, 
reds->config->ssl_parameters.dh_key_file) < 0) {
2891                return -1;
2892            }
2893        }
2894
2895        SSL_CTX_set_session_id_context(reds->ctx, (const unsigned char 
*)"SPICE", 5);
2896        if (strlen(reds->config->ssl_parameters.ciphersuite) > 0) {
2897            if (!SSL_CTX_set_cipher_list(reds->ctx, 
reds->config->ssl_parameters.ciphersuite)) {
2898                return -1;
2899            }
2900        }
2901
2902    #ifndef SSL_OP_NO_COMPRESSION
2903        STACK *cmp_stack = SSL_COMP_get_compression_methods();
2904        sk_zero(cmp_stack);
2905    #endif
2906
2907        return 0;
2908    }

(gdb) list reds.c:3429,3490
3429    static int do_spice_init(RedsState *reds, SpiceCoreInterface 
*core_interface)
3430    {
3431        spice_debug("starting %s", VERSION);
3432
3433        if (core_interface->base.major_version != 
SPICE_INTERFACE_CORE_MAJOR) {
3434            spice_warning("bad core interface version");
3435            goto err;
3436        }
3437        reds->core = core_interface_adapter;
3438        reds->core.public_interface = core_interface;
3439        reds->agent_dev = red_char_device_vdi_port_new(reds);
3440        reds_update_agent_properties(reds);
3441        reds->clients = NULL;
3442        reds->main_dispatcher = main_dispatcher_new(reds, &reds->core);
3443        reds->channels = NULL;
3444        reds->mig_target_clients = NULL;
3445        reds->char_devices = NULL;
3446        reds->mig_wait_disconnect_clients = NULL;
3447        reds->vm_running = TRUE; /* for backward compatibility */
3448
3449        if (!(reds->mig_timer = reds->core.timer_add(&reds->core, 
migrate_timeout, reds))) {
3450            spice_error("migration timer create failed");
3451        }
3452
3453        if (reds_init_net(reds) < 0) {
3454            goto err;
3455        }
3456        if (reds->secure_listen_socket != -1) {
3457            if (reds_init_ssl(reds) < 0) {
3458                goto err;
3459            }
3460        }
3461    #if HAVE_SASL
3462        int saslerr;
3463        if ((saslerr = sasl_server_init(NULL, reds->config->sasl_appname ?
3464                                        reds->config->sasl_appname : 
"spice")) != SASL_OK) {
3465            spice_error("Failed to initialize SASL auth %s",
3466                      sasl_errstring(saslerr, NULL, NULL));
3467            goto err;
3468        }
3469    #endif
3470
3471        reds->main_channel = main_channel_new(reds);
3472        reds->inputs_channel = inputs_channel_new(reds);
3473
3474        reds->mouse_mode = SPICE_MOUSE_MODE_SERVER;
3475
3476        spice_buffer_free(&reds->client_monitors_config);
3477
3478        reds->allow_multiple_clients = getenv(SPICE_DEBUG_ALLOW_MC_ENV) != 
NULL;
3479        if (reds->allow_multiple_clients) {
3480            spice_warning("spice: allowing multiple client connections");
3481        }
3482        pthread_mutex_lock(&global_reds_lock);
3483        servers = g_list_prepend(servers, reds);
3484        pthread_mutex_unlock(&global_reds_lock);
3485        return 0;
3486
3487    err:
3488        return -1;
3489    }
3490














(gdb) run
Starting program: 
/home/benutzer/spice/try2/spice-0.14.0/server/tests/test-leaks 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
/server/server leaks: 
Breakpoint 7, ssl_security_default_callback (s=0x0, ctx=0x5555556c2df0, 
op=393232, bits=80, nid=0, other=0x5555556c44f0, ex=0x0) at 
../ssl/ssl_cert.c:915
915         if (ctx)
(gdb) next
916             level = SSL_CTX_get_security_level(ctx);
(gdb) 
920         if (level <= 0) {
(gdb) 
929         if (level > 5)
(gdb) 
931         minbits = minbits_table[level - 1];
(gdb) 
932         switch (op) {
(gdb) print minbits
$8 = 112
(gdb) next
986             if (bits < minbits)
(gdb) print bits
$9 = 80
(gdb) print level
$10 = 2
(gdb) print/x op
$12 = 0x60010



(gdb) bt
#0  0x00007ffff7357f43 in ssl_security_default_callback (s=0x0, ctx=<optimized 
out>, op=393232, bits=80, nid=0, other=0x5555556c44f0, ex=0x0) at 
../ssl/ssl_cert.c:986
#1  0x00007ffff7359bc6 in ssl_ctx_security (ctx=ctx@entry=0x5555556c2df0, 
op=<optimized out>, bits=<optimized out>, nid=<optimized out>, other=<optimized 
out>) at ../ssl/ssl_cert.c:999
#2  0x00007ffff738a0ba in ssl_security_cert_key (s=s@entry=0x0, 
ctx=ctx@entry=0x5555556c2df0, x=x@entry=0x5555556c44f0, op=op@entry=393232) at 
../ssl/t1_lib.c:2400
#3  0x00007ffff738dc75 in ssl_security_cert (s=s@entry=0x0, 
ctx=ctx@entry=0x5555556c2df0, x=x@entry=0x5555556c44f0, vfy=vfy@entry=0, 
is_ee=is_ee@entry=1) at ../ssl/t1_lib.c:2426
#4  0x00007ffff73673e6 in SSL_CTX_use_certificate (ctx=0x5555556c2df0, 
x=0x5555556c44f0) at ../ssl/ssl_rsa.c:308
#5  0x00007ffff7367509 in use_certificate_chain_file (ctx=0x5555556c2df0, 
ssl=ssl@entry=0x0, file=<optimized out>) at ../ssl/ssl_rsa.c:627
#6  0x00007ffff7367e0a in SSL_CTX_use_certificate_chain_file (ctx=<optimized 
out>, file=<optimized out>) at ../ssl/ssl_rsa.c:688
#7  0x000055555556e9e6 in reds_init_ssl (reds=0x555555696f70) at reds.c:2856
#8  0x000055555556e9e6 in do_spice_init (core_interface=<optimized out>, 
reds=0x555555696f70) at reds.c:3457
#9  0x000055555556e9e6 in spice_server_init (reds=0x555555696f70, 
core=<optimized out>) at reds.c:3694
#10 0x0000555555564d16 in server_leaks () at test-leaks.c:60
#11 0x00007ffff6afee7a in test_case_run (tc=0x555555695e00) at 
../../../../glib/gtestutils.c:2318
#12 0x00007ffff6afee7a in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e40, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2403
#13 0x00007ffff6afed34 in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e20, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2415
#14 0x00007ffff6aff132 in g_test_run_suite (suite=0x555555694e20) at 
../../../../glib/gtestutils.c:2490
#15 0x00007ffff6aff151 in g_test_run () at ../../../../glib/gtestutils.c:1755
#16 0x000055555555fb08 in main (argc=<optimized out>, argv=<optimized out>) at 
test-leaks.c:153



(gdb) list ssl_cert.c:909,990
909     static int ssl_security_default_callback(const SSL *s, const SSL_CTX 
*ctx,
910                                              int op, int bits, int nid, 
void *other,
911                                              void *ex)
912     {
913         int level, minbits;
914         static const int minbits_table[5] = { 80, 112, 128, 192, 256 };
915         if (ctx)
916             level = SSL_CTX_get_security_level(ctx);
917         else
918             level = SSL_get_security_level(s);
919
920         if (level <= 0) {
921             /*
922              * No EDH keys weaker than 1024-bits even at level 0, otherwise,
923              * anything goes.
924              */
925             if (op == SSL_SECOP_TMP_DH && bits < 80)
926                 return 0;
927             return 1;
928         }
929         if (level > 5)
930             level = 5;
931         minbits = minbits_table[level - 1];
932         switch (op) {
933         case SSL_SECOP_CIPHER_SUPPORTED:
934         case SSL_SECOP_CIPHER_SHARED:
935         case SSL_SECOP_CIPHER_CHECK:
936             {
937                 const SSL_CIPHER *c = other;
938                 /* No ciphers below security level */
939                 if (bits < minbits)
940                     return 0;
941                 /* No unauthenticated ciphersuites */
942                 if (c->algorithm_auth & SSL_aNULL)
943                     return 0;
944                 /* No MD5 mac ciphersuites */
945                 if (c->algorithm_mac & SSL_MD5)
946                     return 0;
947                 /* SHA1 HMAC is 160 bits of security */
948                 if (minbits > 160 && c->algorithm_mac & SSL_SHA1)
949                     return 0;
950                 /* Level 2: no RC4 */
951                 if (level >= 2 && c->algorithm_enc == SSL_RC4)
952                     return 0;
953                 /* Level 3: forward secure ciphersuites only */
954                 if (level >= 3 && (c->min_tls != TLS1_3_VERSION ||
955                                    !(c->algorithm_mkey & (SSL_kEDH | 
SSL_kEECDH))))
956                     return 0;
957                 break;
958             }
959         case SSL_SECOP_VERSION:
960             if (!SSL_IS_DTLS(s)) {
961                 /* SSLv3 not allowed at level 2 */
962                 if (nid <= SSL3_VERSION && level >= 2)
963                     return 0;
964                 /* TLS v1.1 and above only for level 3 */
965                 if (nid <= TLS1_VERSION && level >= 3)
966                     return 0;
967                 /* TLS v1.2 only for level 4 and above */
968                 if (nid <= TLS1_1_VERSION && level >= 4)
969                     return 0;
970             } else {
971                 /* DTLS v1.2 only for level 4 and above */
972                 if (DTLS_VERSION_LT(nid, DTLS1_2_VERSION) && level >= 4)
973                     return 0;
974             }
975             break;
976
977         case SSL_SECOP_COMPRESSION:
978             if (level >= 2)
979                 return 0;
980             break;
981         case SSL_SECOP_TICKET:
982             if (level >= 3)
983                 return 0;
984             break;
985         default:
986             if (bits < minbits)
987                 return 0;
988         }
989         return 1;
990     }



(gdb) 
#3  0x00007ffff738dc75 in ssl_security_cert (s=s@entry=0x0, 
ctx=ctx@entry=0x5555556c2df0, x=x@entry=0x5555556c44f0, vfy=vfy@entry=0, 
is_ee=is_ee@entry=1) at ../ssl/t1_lib.c:2426
2426            if (!ssl_security_cert_key(s, ctx, x, SSL_SECOP_EE_KEY | vfy))
(gdb) list ssl.h:2255
2255    # define SSL_SECOP_OTHER_CERT    (6 << 16)
(gdb) list ssl.h:2292
2292    # define SSL_SECOP_EE_KEY                (16 | SSL_SECOP_OTHER_CERT)



benutzer@debian:~$ openssl x509 -in 
/home/benutzer/spice/try2/spice-0.14.0/server/tests/pki/server-cert.pem -text
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 1 (0x1)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = XX, L = Default City, O = Default Company Ltd
        Validity
            Not Before: Mar 23 10:40:45 2017 GMT
            Not After : Mar 16 10:40:45 2047 GMT
        Subject: C = XX, L = Default City, O = Default Company Ltd
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (1024 bit)
                Modulus:
                    00:c5:c3:3c:c6:4b:b1:ef:02:b8:4c:09:28:c9:2f:
                    11:d9:81:c0:af:b7:dd:3d:23:38:c9:14:24:fb:7c:
                    2e:c7:8b:0a:35:e6:60:e8:ab:da:05:ab:b2:73:f9:
                    7e:0c:69:c3:1f:d7:c5:be:b5:8a:fc:21:02:d0:b6:
                    98:57:32:df:15:e9:44:d9:03:1e:4d:c5:d9:7a:46:
                    c0:3d:0c:b2:3f:6d:47:d0:d8:89:dc:91:cf:fa:cd:
                    d4:14:6d:87:96:4b:9b:44:ef:8e:6c:16:70:16:fb:
                    a9:62:02:21:54:cb:b2:9e:b3:5e:e3:3f:7a:b0:37:
                    13:4d:2c:ed:50:0d:06:56:8f
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha256WithRSAEncryption
         d8:e9:b4:d5:06:af:d8:e4:1c:66:32:0f:52:69:6a:4b:36:3d:
         eb:1c:93:f2:0c:c2:20:ec:90:8a:40:ae:27:74:1d:7a:6e:10:
         bf:57:3d:47:10:c5:c4:d4:ab:9c:d2:0d:c7:b4:6b:b6:4a:a9:
         ed:d3:3b:b2:df:a0:52:a7:4a:73:68:ef:6f:7d:35:4d:b4:be:
         4a:50:da:2b:53:6b:7b:9b:c1:f1:b3:e0:d5:c2:71:53:05:97:
         d5:f0:f2:da:28:08:a2:4d:0a:98:cd:4f:ed:2f:0c:8a:c6:bf:
         aa:6a:1b:45:be:2b:ce:f9:f7:6e:54:e1:7a:ca:85:7b:3f:71:
         46:19
-----BEGIN CERTIFICATE-----
MIIB8zCCAVwCAQEwDQYJKoZIhvcNAQELBQAwQjELMAkGA1UEBhMCWFgxFTATBgNV
BAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAe
Fw0xNzAzMjMxMDQwNDVaFw00NzAzMTYxMDQwNDVaMEIxCzAJBgNVBAYTAlhYMRUw
EwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBM
dGQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMXDPMZLse8CuEwJKMkvEdmB
wK+33T0jOMkUJPt8LseLCjXmYOir2gWrsnP5fgxpwx/Xxb61ivwhAtC2mFcy3xXp
RNkDHk3F2XpGwD0Msj9tR9DYidyRz/rN1BRth5ZLm0TvjmwWcBb7qWICIVTLsp6z
XuM/erA3E00s7VANBlaPAgMBAAEwDQYJKoZIhvcNAQELBQADgYEA2Om01Qav2OQc
ZjIPUmlqSzY96xyT8gzCIOyQikCuJ3Qdem4Qv1c9RxDFxNSrnNINx7Rrtkqp7dM7
st+gUqdKc2jvb301TbS+SlDaK1Nre5vB8bPg1cJxUwWX1fDy2igIok0KmM1P7S8M
isa/qmobRb4rzvn3blThesqFez9xRhk=
-----END CERTIFICATE-----


https://cgit.freedesktop.org/spice/spice/commit/server/tests/pki/server-cert.pem?id=7b5e294a363e1500ab1a5b143da1602c9fed0547






Where does this 80 come from ?

(gdb) bt
#0  0x00007ffff71158b0 in BN_security_bits (L=1024, N=-1) at 
../crypto/bn/bn_lib.c:834
#1  0x00007ffff738a080 in ssl_security_cert_key (s=s@entry=0x0, 
ctx=ctx@entry=0x5555556c2df0, x=x@entry=0x5555556c44f0, op=op@entry=393232) at 
../ssl/t1_lib.c:2395
#2  0x00007ffff738dc75 in ssl_security_cert (s=s@entry=0x0, 
ctx=ctx@entry=0x5555556c2df0, x=x@entry=0x5555556c44f0, vfy=vfy@entry=0, 
is_ee=is_ee@entry=1) at ../ssl/t1_lib.c:2426
#3  0x00007ffff73673e6 in SSL_CTX_use_certificate (ctx=0x5555556c2df0, 
x=0x5555556c44f0) at ../ssl/ssl_rsa.c:308
#4  0x00007ffff7367509 in use_certificate_chain_file (ctx=0x5555556c2df0, 
ssl=ssl@entry=0x0, file=<optimized out>) at ../ssl/ssl_rsa.c:627
#5  0x00007ffff7367e0a in SSL_CTX_use_certificate_chain_file (ctx=<optimized 
out>, file=<optimized out>) at ../ssl/ssl_rsa.c:688
#6  0x000055555556e9e6 in reds_init_ssl (reds=0x555555696f70) at reds.c:2856
#7  0x000055555556e9e6 in do_spice_init (core_interface=<optimized out>, 
reds=0x555555696f70) at reds.c:3457
#8  0x000055555556e9e6 in spice_server_init (reds=0x555555696f70, 
core=<optimized out>) at reds.c:3694
#9  0x0000555555564d16 in server_leaks () at test-leaks.c:60
#10 0x00007ffff6afee7a in test_case_run (tc=0x555555695e00) at 
../../../../glib/gtestutils.c:2318
#11 0x00007ffff6afee7a in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e40, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2403
#12 0x00007ffff6afed34 in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e20, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2415
#13 0x00007ffff6aff132 in g_test_run_suite (suite=0x555555694e20) at 
../../../../glib/gtestutils.c:2490
#14 0x00007ffff6aff151 in g_test_run () at ../../../../glib/gtestutils.c:1755
#15 0x000055555555fb08 in main (argc=<optimized out>, argv=<optimized out>) at 
test-leaks.c:153

(gdb) list bn_lib.c:831,900
831     int BN_security_bits(int L, int N)
832     {
833         int secbits, bits;
834         if (L >= 15360)
835             secbits = 256;
836         else if (L >= 7680)
837             secbits = 192;
838         else if (L >= 3072)
839             secbits = 128;
840         else if (L >= 2048)
841             secbits = 112;
842         else if (L >= 1024)
843             secbits = 80;
844         else
845             return 0;
846         if (N == -1)
847             return secbits;
848         bits = N / 2;
849         if (bits < 80)
850             return 0;
851         return bits >= secbits ? secbits : bits;
852     }

(gdb) print L
$25 = 1024
(gdb) print N
$26 = -1

(gdb) print secbits
$27 = 80









Back to buster openssh:

wget 
http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.0h-4_amd64.deb
wget 
http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.0h-4_amd64.deb
wget 
http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.1.0h-4_amd64.deb
wget 
http://debug.mirrors.debian.org/debian-debug/pool/main/o/openssl/libssl1.1-dbgsym_1.1.0h-4_amd64.deb
dpkg -i *1.1.0h-4*.deb


cd spice
cp -a orig try3
cd try3/spice-0.14.0/
dpkg-buildpackage


--> Test does not fail

directory /home/benutzer/spice/try3/spice-0.14.0/server
directory /home/benutzer/libssl1.1-buster/orig/openssl-1.1.0h/ssl


(gdb) 
1003            level = SSL_CTX_get_security_level(ctx);
(gdb) 
1007        if (level <= 0) {
(gdb) print level
$2 = 1



--> 1.1.0h-4 returns level == 1, 1.1.1-1 returns level == 2


1.1.0h-4: ssl/ssl_lib.c:4023
(gdb) list SSL_CTX_get_security_level
4021    int SSL_CTX_get_security_level(const SSL_CTX *ctx)
4022    {
4023        return ctx->cert->sec_level;
4024    }



--> With 1.1.0h-4 sec_level gets initialized with 1

(gdb) bt
#0  0x00007ffff717e24b in SSL_CTX_new (meth=0x7ffff73b2680 
<TLS_method_data.21235>) at ../ssl/ssl_lib.c:2568
#1  0x000055555556e9b3 in reds_init_ssl (reds=0x555555696f70) at reds.c:2843
#2  0x000055555556e9b3 in do_spice_init (core_interface=<optimized out>, 
reds=0x555555696f70) at reds.c:3457
#3  0x000055555556e9b3 in spice_server_init (reds=0x555555696f70, 
core=<optimized out>) at reds.c:3694
#4  0x0000555555564d16 in server_leaks () at test-leaks.c:60
#5  0x00007ffff677ae7a in test_case_run (tc=0x555555695e00) at 
../../../../glib/gtestutils.c:2318
#6  0x00007ffff677ae7a in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e40, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2403
#7  0x00007ffff677ad34 in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e20, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2415
#8  0x00007ffff677b132 in g_test_run_suite (suite=0x555555694e20) at 
../../../../glib/gtestutils.c:2490
#9  0x00007ffff677b151 in g_test_run () at ../../../../glib/gtestutils.c:1755
#10 0x000055555555fb08 in main (argc=<optimized out>, argv=<optimized out>) at 
test-leaks.c:153

(gdb) 
2565        if ((ret->cert = ssl_cert_new()) == NULL)
(gdb) 
2568        ret->sessions = lh_SSL_SESSION_new(ssl_session_hash, 
ssl_session_cmp);
(gdb) print ret->cert->sec_level 
$19 = 1






--> Where do we get the level 2 with 1.1.1-1 ?


apt install -f
apt dist-upgrade


cd spice
cp -a orig try4
cd try4/spice-0.14.0/
dpkg-buildpackage

cd server/tests/
gdb -q --args ./test-leaks

set height 0
set width 0
set pagination off
directory /home/benutzer/spice/try4/spice-0.14.0/server
directory /home/benutzer/libssl1.1/orig/openssl-1.1.1/ssl
b SSL_CTX_new
run




benutzer@debian:~/spice/try4/spice-0.14.0/server/tests$ gdb -q --args 
./test-leaks
Reading symbols from ./test-leaks...done.
(gdb) set height 0
(gdb) set width 0
(gdb) set pagination off
(gdb) directory /home/benutzer/spice/try4/spice-0.14.0/server
Source directories searched: 
/home/benutzer/spice/try4/spice-0.14.0/server:$cdir:$cwd
(gdb) directory /home/benutzer/libssl1.1/orig/openssl-1.1.1/ssl
Source directories searched: 
/home/benutzer/libssl1.1/orig/openssl-1.1.1/ssl:/home/benutzer/spice/try4/spice-0.14.0/server:$cdir:$cwd
(gdb) b SSL_CTX_new
Breakpoint 1 at 0xadc0
(gdb) run
Starting program: 
/home/benutzer/spice/try4/spice-0.14.0/server/tests/test-leaks 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
/server/server leaks: 
Breakpoint 1, SSL_CTX_new (meth=0x7ffff73b2d40 <TLS_method_data.23193>) at 
../ssl/ssl_lib.c:2878
2878        if (meth == NULL) {
(gdb) bt
#0  0x00007ffff7361820 in SSL_CTX_new (meth=0x7ffff73b2d40 
<TLS_method_data.23193>) at ../ssl/ssl_lib.c:2878
#1  0x000055555556e9b3 in reds_init_ssl (reds=0x555555696f70) at reds.c:2843
#2  0x000055555556e9b3 in do_spice_init (core_interface=<optimized out>, 
reds=0x555555696f70) at reds.c:3457
#3  0x000055555556e9b3 in spice_server_init (reds=0x555555696f70, 
core=<optimized out>) at reds.c:3694
#4  0x0000555555564d16 in server_leaks () at test-leaks.c:60
#5  0x00007ffff6afee7a in test_case_run (tc=0x555555695e00) at 
../../../../glib/gtestutils.c:2318
#6  0x00007ffff6afee7a in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e40, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2403
#7  0x00007ffff6afed34 in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e20, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2415
#8  0x00007ffff6aff132 in g_test_run_suite (suite=0x555555694e20) at 
../../../../glib/gtestutils.c:2490
#9  0x00007ffff6aff151 in g_test_run () at ../../../../glib/gtestutils.c:1755
#10 0x000055555555fb08 in main (argc=<optimized out>, argv=<optimized out>) at 
test-leaks.c:153
(gdb) next
2883        if (!OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL))
(gdb) 
2886        if (SSL_get_ex_data_X509_STORE_CTX_idx() < 0) {
(gdb) 
2890        ret = OPENSSL_zalloc(sizeof(*ret));
(gdb) 
2891        if (ret == NULL)
(gdb) 
2894        ret->method = meth;
(gdb) 
2897        ret->mode = SSL_MODE_AUTO_RETRY;
(gdb) next
2898        ret->session_cache_mode = SSL_SESS_CACHE_SERVER;
(gdb) 
2899        ret->session_cache_size = SSL_SESSION_CACHE_MAX_SIZE_DEFAULT;
(gdb) 
2901        ret->session_timeout = meth->get_timeout();
(gdb) 
2902        ret->references = 1;
(gdb) 
2903        ret->lock = CRYPTO_THREAD_lock_new();
(gdb) 
2904        if (ret->lock == NULL) {
(gdb) 
2909        ret->max_cert_list = SSL_MAX_CERT_LIST_DEFAULT;
(gdb) 
2910        ret->verify_mode = SSL_VERIFY_NONE;
(gdb) 
2911        if ((ret->cert = ssl_cert_new()) == NULL)
(gdb) 
2914        ret->sessions = lh_SSL_SESSION_new(ssl_session_hash, 
ssl_session_cmp);
(gdb) print ret->cert->sec_level
$1 = 1
(gdb) print &(ret->cert->sec_level)
$2 = (int *) 0x555555696a00
(gdb) watch *0x555555696a00
Hardware watchpoint 2: *0x555555696a00

(gdb) cont
Continuing.

Hardware watchpoint 2: *0x555555696a00

Old value = 1
New value = 2
ssl_cipher_process_rulestr (rule_str=rule_str@entry=0x5555556bc867 
"@SECLEVEL=2", head_p=head_p@entry=0x7fffffffe0c8, 
tail_p=tail_p@entry=0x7fffffffe0d0, ca_list=ca_list@entry=0x5555556c3a30, 
c=<optimized out>) at ../ssl/ssl_ciph.c:1193
1193                if (ok == 0)
(gdb) bt
#0  0x00007ffff735a9b5 in ssl_cipher_process_rulestr 
(rule_str=rule_str@entry=0x5555556bc867 "@SECLEVEL=2", 
head_p=head_p@entry=0x7fffffffe0c8, tail_p=tail_p@entry=0x7fffffffe0d0, 
ca_list=ca_list@entry=0x5555556c3a30, c=<optimized out>) at 
../ssl/ssl_ciph.c:1193
#1  0x00007ffff735b94d in ssl_create_cipher_list (ssl_method=<optimized out>, 
tls13_ciphersuites=0x5555556c3210, cipher_list=0x5555556c2df8, 
cipher_list_by_id=0x5555556c2e00, rule_str=<optimized out>, 
rule_str@entry=0x5555556bc860 "DEFAULT@SECLEVEL=2", c=0x555555696800) at 
../ssl/ssl_ciph.c:1579
#2  0x00007ffff73610b2 in SSL_CTX_set_cipher_list (ctx=<optimized out>, 
str=str@entry=0x5555556bc860 "DEFAULT@SECLEVEL=2") at ../ssl/ssl_lib.c:2511
#3  0x00007ffff735cf0f in cmd_CipherString (cctx=0x5555556c3970, 
value=0x5555556bc860 "DEFAULT@SECLEVEL=2") at ../ssl/ssl_conf.c:262
#4  0x00007ffff735d37f in SSL_CONF_cmd (cctx=cctx@entry=0x5555556c3970, 
cmd=<optimized out>, value=0x5555556bc860 "DEFAULT@SECLEVEL=2") at 
../ssl/ssl_conf.c:812
#5  0x00007ffff7366072 in ssl_do_config (s=s@entry=0x0, 
ctx=ctx@entry=0x5555556c2df0, name=<optimized out>, name@entry=0x0, 
system=system@entry=1) at ../ssl/ssl_mcnf.c:69
#6  0x00007ffff73661b1 in ssl_ctx_system_config (ctx=ctx@entry=0x5555556c2df0) 
at ../ssl/ssl_mcnf.c:98
#7  0x00007ffff7361ad5 in SSL_CTX_new (meth=0x7ffff73b2d40 
<TLS_method_data.23193>) at ../ssl/ssl_lib.c:3050
#8  0x000055555556e9b3 in reds_init_ssl (reds=0x555555696f70) at reds.c:2843
#9  0x000055555556e9b3 in do_spice_init (core_interface=<optimized out>, 
reds=0x555555696f70) at reds.c:3457
#10 0x000055555556e9b3 in spice_server_init (reds=0x555555696f70, 
core=<optimized out>) at reds.c:3694
#11 0x0000555555564d16 in server_leaks () at test-leaks.c:60
#12 0x00007ffff6afee7a in test_case_run (tc=0x555555695e00) at 
../../../../glib/gtestutils.c:2318
#13 0x00007ffff6afee7a in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e40, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2403
#14 0x00007ffff6afed34 in g_test_run_suite_internal 
(suite=suite@entry=0x555555694e20, path=path@entry=0x0) at 
../../../../glib/gtestutils.c:2415
#15 0x00007ffff6aff132 in g_test_run_suite (suite=0x555555694e20) at 
../../../../glib/gtestutils.c:2490
#16 0x00007ffff6aff151 in g_test_run () at ../../../../glib/gtestutils.c:1755
#17 0x000055555555fb08 in main (argc=<optimized out>, argv=<optimized out>) at 
test-leaks.c:153

(gdb) print rule_str
$7 = 0x5555556bc867 "@SECLEVEL=2"

(gdb) list ssl_ciph.c:955,1200
955     static int ssl_cipher_process_rulestr(const char *rule_str,
956                                           CIPHER_ORDER **head_p,
957                                           CIPHER_ORDER **tail_p,
958                                           const SSL_CIPHER **ca_list, CERT 
*c)
959     {
960         uint32_t alg_mkey, alg_auth, alg_enc, alg_mac, algo_strength;
961         int min_tls;
962         const char *l, *buf;
963         int j, multi, found, rule, retval, ok, buflen;
964         uint32_t cipher_id = 0;
965         char ch;
966
967         retval = 1;
968         l = rule_str;
969         for ( ; ; ) {
970             ch = *l;
971
972             if (ch == '\0')
973                 break;              /* done */
974             if (ch == '-') {
975                 rule = CIPHER_DEL;
976                 l++;
977             } else if (ch == '+') {
978                 rule = CIPHER_ORD;
979                 l++;
980             } else if (ch == '!') {
981                 rule = CIPHER_KILL;
982                 l++;
983             } else if (ch == '@') {
984                 rule = CIPHER_SPECIAL;
985                 l++;
986             } else {
987                 rule = CIPHER_ADD;
988             }
989
990             if (ITEM_SEP(ch)) {
991                 l++;
992                 continue;
993             }
994
995             alg_mkey = 0;
996             alg_auth = 0;
997             alg_enc = 0;
998             alg_mac = 0;
999             min_tls = 0;
1000            algo_strength = 0;
1001
1002            for (;;) {
1003                ch = *l;
1004                buf = l;
1005                buflen = 0;
1006    #ifndef CHARSET_EBCDIC
1007                while (((ch >= 'A') && (ch <= 'Z')) ||
1008                       ((ch >= '0') && (ch <= '9')) ||
1009                       ((ch >= 'a') && (ch <= 'z')) ||
1010                       (ch == '-') || (ch == '.') || (ch == '='))
1011    #else
1012                while (isalnum((unsigned char)ch) || (ch == '-') || (ch == 
'.')
1013                       || (ch == '='))
1014    #endif
1015                {
1016                    ch = *(++l);
1017                    buflen++;
1018                }
1019
1020                if (buflen == 0) {
1021                    /*
1022                     * We hit something we cannot deal with,
1023                     * it is no command or separator nor
1024                     * alphanumeric, so we call this an error.
1025                     */
1026                    SSLerr(SSL_F_SSL_CIPHER_PROCESS_RULESTR, 
SSL_R_INVALID_COMMAND);
1027                    retval = found = 0;
1028                    l++;
1029                    break;
1030                }
1031
1032                if (rule == CIPHER_SPECIAL) {
1033                    found = 0;      /* unused -- avoid compiler warning */
1034                    break;          /* special treatment */
1035                }
1036
1037                /* check for multi-part specification */
1038                if (ch == '+') {
1039                    multi = 1;
1040                    l++;
1041                } else {
1042                    multi = 0;
1043                }
1044
1045                /*
1046                 * Now search for the cipher alias in the ca_list. Be 
careful
1047                 * with the strncmp, because the "buflen" limitation
1048                 * will make the rule "ADH:SOME" and the cipher
1049                 * "ADH-MY-CIPHER" look like a match for buflen=3.
1050                 * So additionally check whether the cipher name found
1051                 * has the correct length. We can save a strlen() call:
1052                 * just checking for the '\0' at the right place is
1053                 * sufficient, we have to strncmp() anyway. (We cannot
1054                 * use strcmp(), because buf is not '\0' terminated.)
1055                 */
1056                j = found = 0;
1057                cipher_id = 0;
1058                while (ca_list[j]) {
1059                    if (strncmp(buf, ca_list[j]->name, buflen) == 0
1060                        && (ca_list[j]->name[buflen] == '\0')) {
1061                        found = 1;
1062                        break;
1063                    } else
1064                        j++;
1065                }
1066
1067                if (!found)
1068                    break;          /* ignore this entry */
1069
1070                if (ca_list[j]->algorithm_mkey) {
1071                    if (alg_mkey) {
1072                        alg_mkey &= ca_list[j]->algorithm_mkey;
1073                        if (!alg_mkey) {
1074                            found = 0;
1075                            break;
1076                        }
1077                    } else {
1078                        alg_mkey = ca_list[j]->algorithm_mkey;
1079                    }
1080                }
1081
1082                if (ca_list[j]->algorithm_auth) {
1083                    if (alg_auth) {
1084                        alg_auth &= ca_list[j]->algorithm_auth;
1085                        if (!alg_auth) {
1086                            found = 0;
1087                            break;
1088                        }
1089                    } else {
1090                        alg_auth = ca_list[j]->algorithm_auth;
1091                    }
1092                }
1093
1094                if (ca_list[j]->algorithm_enc) {
1095                    if (alg_enc) {
1096                        alg_enc &= ca_list[j]->algorithm_enc;
1097                        if (!alg_enc) {
1098                            found = 0;
1099                            break;
1100                        }
1101                    } else {
1102                        alg_enc = ca_list[j]->algorithm_enc;
1103                    }
1104                }
1105
1106                if (ca_list[j]->algorithm_mac) {
1107                    if (alg_mac) {
1108                        alg_mac &= ca_list[j]->algorithm_mac;
1109                        if (!alg_mac) {
1110                            found = 0;
1111                            break;
1112                        }
1113                    } else {
1114                        alg_mac = ca_list[j]->algorithm_mac;
1115                    }
1116                }
1117
1118                if (ca_list[j]->algo_strength & SSL_STRONG_MASK) {
1119                    if (algo_strength & SSL_STRONG_MASK) {
1120                        algo_strength &=
1121                            (ca_list[j]->algo_strength & SSL_STRONG_MASK) |
1122                            ~SSL_STRONG_MASK;
1123                        if (!(algo_strength & SSL_STRONG_MASK)) {
1124                            found = 0;
1125                            break;
1126                        }
1127                    } else {
1128                        algo_strength = ca_list[j]->algo_strength & 
SSL_STRONG_MASK;
1129                    }
1130                }
1131
1132                if (ca_list[j]->algo_strength & SSL_DEFAULT_MASK) {
1133                    if (algo_strength & SSL_DEFAULT_MASK) {
1134                        algo_strength &=
1135                            (ca_list[j]->algo_strength & SSL_DEFAULT_MASK) |
1136                            ~SSL_DEFAULT_MASK;
1137                        if (!(algo_strength & SSL_DEFAULT_MASK)) {
1138                            found = 0;
1139                            break;
1140                        }
1141                    } else {
1142                        algo_strength |=
1143                            ca_list[j]->algo_strength & SSL_DEFAULT_MASK;
1144                    }
1145                }
1146
1147                if (ca_list[j]->valid) {
1148                    /*
1149                     * explicit ciphersuite found; its protocol version 
does not
1150                     * become part of the search pattern!
1151                     */
1152
1153                    cipher_id = ca_list[j]->id;
1154                } else {
1155                    /*
1156                     * not an explicit ciphersuite; only in this case, the
1157                     * protocol version is considered part of the search 
pattern
1158                     */
1159
1160                    if (ca_list[j]->min_tls) {
1161                        if (min_tls != 0 && min_tls != ca_list[j]->min_tls) 
{
1162                            found = 0;
1163                            break;
1164                        } else {
1165                            min_tls = ca_list[j]->min_tls;
1166                        }
1167                    }
1168                }
1169
1170                if (!multi)
1171                    break;
1172            }
1173
1174            /*
1175             * Ok, we have the rule, now apply it
1176             */
1177            if (rule == CIPHER_SPECIAL) { /* special command */
1178                ok = 0;
1179                if ((buflen == 8) && strncmp(buf, "STRENGTH", 8) == 0) {
1180                    ok = ssl_cipher_strength_sort(head_p, tail_p);
1181                } else if (buflen == 10 && strncmp(buf, "SECLEVEL=", 9) == 
0) {
1182                    int level = buf[9] - '0';
1183                    if (level < 0 || level > 5) {
1184                        SSLerr(SSL_F_SSL_CIPHER_PROCESS_RULESTR,
1185                               SSL_R_INVALID_COMMAND);
1186                    } else {
1187                        c->sec_level = level;
1188                        ok = 1;
1189                    }
1190                } else {
1191                    SSLerr(SSL_F_SSL_CIPHER_PROCESS_RULESTR, 
SSL_R_INVALID_COMMAND);
1192                }
1193                if (ok == 0)
1194                    retval = 0;
1195                /*
1196                 * We do not support any "multi" options
1197                 * together with "@", so throw away the
1198                 * rest of the command, if any left, until
1199                 * end or ':' is found.
1200                 */

(gdb) print *cmds
$12 = {cmd = 0x5555556bc800 "MinProtocol", arg = 0x5555556bc820 "TLSv1.2"}

root@debian:/etc# grep MinProtocol . -R
./ssl/openssl.cnf:MinProtocol = TLSv1.2

root@debian:/etc# grep SECLEVEL /etc/ssl/openssl.cnf
CipherString = DEFAULT@SECLEVEL=2






https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907015
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907518
https://wiki.debian.org/ContinuousIntegration/TriagingTips/openssl-1.1.1

Reply via email to