Package: release.debian.org Severity: normal Tags: buster User: release.debian....@packages.debian.org Usertags: pu
This fixes the problem that was mentioned in #964435. I have verified that with the new glib-networking, balsa fails to check the certs, asking the user to accept/reject it (IMAP is not affected but SMTP and POP are). With this patched version, it works again. The new version also works with the old glib-networking, so there's no bumped dependency here. A breaks could be added to glib-networking, but let's discuss that on the other bug. Thanks, Emilio
diff -Nru balsa-2.5.6/debian/changelog balsa-2.5.6/debian/changelog --- balsa-2.5.6/debian/changelog 2018-12-23 23:17:25.000000000 +0100 +++ balsa-2.5.6/debian/changelog 2020-07-11 09:22:22.000000000 +0200 @@ -1,3 +1,11 @@ +balsa (2.5.6-2+deb10u1) buster; urgency=medium + + * Provide server identity when validating certificates (allows to verify + certs with a glib-networking patch for CVE-2020-13645). + Patch taken from Ubuntu. Closes: #961792. + + -- Emilio Pozuelo Monfort <po...@debian.org> Sat, 11 Jul 2020 09:22:22 +0200 + balsa (2.5.6-2) unstable; urgency=medium * Restore -Wl,-O1 to our LDFLAGS diff -Nru balsa-2.5.6/debian/patches/CVE-2020-13645.patch balsa-2.5.6/debian/patches/CVE-2020-13645.patch --- balsa-2.5.6/debian/patches/CVE-2020-13645.patch 1970-01-01 01:00:00.000000000 +0100 +++ balsa-2.5.6/debian/patches/CVE-2020-13645.patch 2020-07-11 09:20:22.000000000 +0200 @@ -0,0 +1,596 @@ +Backport of upstream patch +From e8952e3ccb1bb5094a6f8920e7c274e2e7dae184 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Albrecht=20Dre=C3=9F?= <albrecht.dr...@arcor.de> +Date: Sat, 18 Apr 2020 18:25:30 +0200 +Subject: [PATCH] fix NULL server-identity TLS warning with recent gio + +- libnetclient/net-client.c: use the remote host name as expected server + identity for TLS connections. This fixes a strange warning when using + recent GIO versions (see issue #34) +- libnetclient/test: replace the snakeoil test certificates as the old ones + are not accepted any more by GnuTLS for security reasons; fix unit tests; + add some more Valgrind suppressions for false-positives +--- + libnetclient/net-client.c | 27 +++++-- + libnetclient/test/ca_cert.pem | 106 +++++++++++++++---------- + libnetclient/test/cert.pem | 134 ++++++++++++++++++++------------ + libnetclient/test/cert_u.pem | 130 ++++++++++++++++++++----------- + libnetclient/test/tests.c | 28 +++---- + libnetclient/test/valgrind.supp | 15 ++++ + 6 files changed, 280 insertions(+), 160 deletions(-) + +--- a/libnetclient/net-client.c ++++ b/libnetclient/net-client.c +@@ -25,6 +25,7 @@ struct _NetClientPrivate { + gsize max_line_len; + + GSocketClient *sock; ++ GSocketConnectable *remote_address; + GSocketConnection *plain_conn; + GIOStream *tls_conn; + GDataInputStream *istream; +@@ -115,13 +116,19 @@ net_client_connect(NetClient *client, GE + if (priv->plain_conn != NULL) { + g_set_error(error, NET_CLIENT_ERROR_QUARK, (gint) NET_CLIENT_ERROR_CONNECTED, _("network client is already connected")); + } else { +- priv->plain_conn = g_socket_client_connect_to_host(priv->sock, priv->host_and_port, priv->default_port, NULL, error); +- if (priv->plain_conn != NULL) { +- g_debug("connected to %s", priv->host_and_port); +- priv->istream = g_data_input_stream_new(g_io_stream_get_input_stream(G_IO_STREAM(priv->plain_conn))); +- g_data_input_stream_set_newline_type(priv->istream, G_DATA_STREAM_NEWLINE_TYPE_CR_LF); +- priv->ostream = g_io_stream_get_output_stream(G_IO_STREAM(priv->plain_conn)); +- result = TRUE; ++ priv->remote_address = g_network_address_parse(priv->host_and_port, priv->default_port, error); ++ if (priv->remote_address != NULL) { ++ priv->plain_conn = g_socket_client_connect(priv->sock, priv->remote_address, NULL, error); ++ if (priv->plain_conn != NULL) { ++ g_debug("connected to %s", priv->host_and_port); ++ priv->istream = g_data_input_stream_new(g_io_stream_get_input_stream(G_IO_STREAM(priv->plain_conn))); ++ g_data_input_stream_set_newline_type(priv->istream, G_DATA_STREAM_NEWLINE_TYPE_CR_LF); ++ priv->ostream = g_io_stream_get_output_stream(G_IO_STREAM(priv->plain_conn)); ++ result = TRUE; ++ } else { ++ g_object_unref(priv->remote_address); ++ priv->remote_address = NULL; ++ } + } + } + +@@ -146,6 +153,10 @@ net_client_shutdown(const NetClient *cli + g_object_unref(G_OBJECT(client->priv->plain_conn)); + client->priv->plain_conn = NULL; + } ++ if (client->priv->remote_address != NULL) { ++ g_object_unref(client->priv->remote_address); ++ client->priv->remote_address = NULL; ++ } + } + } + +@@ -450,7 +461,7 @@ net_client_start_tls(NetClient *client, + } else if (client->priv->tls_conn != NULL) { + g_set_error(error, NET_CLIENT_ERROR_QUARK, (gint) NET_CLIENT_ERROR_TLS_ACTIVE, _("connection is already encrypted")); + } else { +- client->priv->tls_conn = g_tls_client_connection_new(G_IO_STREAM(client->priv->plain_conn), NULL, error); ++ client->priv->tls_conn = g_tls_client_connection_new(G_IO_STREAM(client->priv->plain_conn), client->priv->remote_address, error); + if (client->priv->tls_conn != NULL) { + if (client->priv->certificate != NULL) { + g_tls_connection_set_certificate(G_TLS_CONNECTION(client->priv->tls_conn), client->priv->certificate); +--- a/libnetclient/test/ca_cert.pem ++++ b/libnetclient/test/ca_cert.pem +@@ -1,46 +1,68 @@ + -----BEGIN CERTIFICATE----- +-MIIDxjCCAq6gAwIBAgIBATANBgkqhkiG9w0BAQUFADB0MRMwEQYKCZImiZPyLGQB +-GRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApTaW1wbGUg +-SW5jMRcwFQYDVQQLDA5TaW1wbGUgUm9vdCBDQTEXMBUGA1UEAwwOU2ltcGxlIFJv +-b3QgQ0EwHhcNMTYwNTI0MTYxNjU4WhcNMjYwNTI0MTYxNjU4WjB0MRMwEQYKCZIm +-iZPyLGQBGRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApT +-aW1wbGUgSW5jMRcwFQYDVQQLDA5TaW1wbGUgUm9vdCBDQTEXMBUGA1UEAwwOU2lt +-cGxlIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPn/T4 +-w9Ggb9aXhZ5stchfb+gZAnLkYKSZZC/+SryGwToK2HouWCwMUx8Jgg9DeuIjjVEx +-gnuTveVWWWL7QWdIWOrcDYN8XDjS/Rx0brhmDY5q19/CuNPDWMPb5/8SboOmEM4b +-D/S0gsBUI8N7yJ6qYzvtAB5GDBy8LcK+RBp197R5aFlqIUDy5neH2NoA6XU5NcfS +-cHpqs/oJkg0zVksrZ279mGEHJTxtpPVlm7/z153DgxB1XDWUGIbkmzzl8FPrLGWo +-o1gUFs3TfxnYuFl4r2NhwYeVEUcuBYFhJGVbeisV47ynFUV8gHqxaH03DfghaR+6 +-WGe4MBmYpM3NTi6jAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E +-BTADAQH/MB0GA1UdDgQWBBQ+k/H1yqCqwMnESs4nzdqhHI2IkDAfBgNVHSMEGDAW +-gBQ+k/H1yqCqwMnESs4nzdqhHI2IkDANBgkqhkiG9w0BAQUFAAOCAQEAswaE/9XS +-uVbWyY6CsMry1dfTCzEaTe3odrVe2GM3nU4nowAUqJfqR4JAYjqJim37997n6jbZ +-lK168uFwI/mj4QCY72KixbaSpl7I54MUNXtBtb1/kTwXDeCMFO0Iw1f60Kr8QOeM +-d+aktreCqE+Gss3nmJJ6TT7b/X1UHywlBcO0ZX4y0aDlVWgMqOHxAYF4+Ayxq4El +-MH3+aDItPqnYp1WXfIn/8cYKhdbKjPgZWXVtIzmPHPrAbLQT3DxvPEv4MIwmWx24 +-/c4mAvM8TStB+m2/tYZfRflPZ133Nw5zbKHaP1OJgqErIAZCUCHU8tVVBnc/uFHm +-sS+pZL8j9zrzhg== ++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 ++RczkgYKIzmZd7Q== + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- +-MIIDzzCCAregAwIBAgIBAjANBgkqhkiG9w0BAQUFADB0MRMwEQYKCZImiZPyLGQB +-GRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApTaW1wbGUg +-SW5jMRcwFQYDVQQLDA5TaW1wbGUgUm9vdCBDQTEXMBUGA1UEAwwOU2ltcGxlIFJv +-b3QgQ0EwHhcNMTYwNTI0MTYxOTAyWhcNMjYwNTI0MTYxOTAyWjB6MRMwEQYKCZIm +-iZPyLGQBGRYDb3JnMRYwFAYKCZImiZPyLGQBGRYGc2ltcGxlMRMwEQYDVQQKDApT +-aW1wbGUgSW5jMRowGAYDVQQLDBFTaW1wbGUgU2lnbmluZyBDQTEaMBgGA1UEAwwR +-U2ltcGxlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +-AQDQXD9AyJJwmx7Ng/Jo6dJy8xLJnWMWi8MmHOhqig5GPuOPff/iNRnhdU6xdr2j +-v5BCdmHbosnOxPq3RJ9r9wyQv6PukCkPvD/2bePQV+ObqegTR5VlNVBhPoWLda5Y +-hMnLTX/mVjC0duz2x+UcS/hd3Yd/QdVdFMJ0LJvJ96SplyfOAowTmw4jii/dtkl+ +-hTGp8xl9+wyi1c/ZFKhq3efgC5ozh5oyMMJ6iziaxecq/Rehk4KWDxlPQ5usFU6n +-ls1lBuBszJfNR1XGTCzlvBR/TWNu1WiZmpXgizIoSehOgc/27G4EvkEa4PlEp6I6 +-r5CQrDebSlzJSkyhFnkMZQT/AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV +-HRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTuAfbK98FLKXj/yBvsD5owPDo5ijAf +-BgNVHSMEGDAWgBQ+k/H1yqCqwMnESs4nzdqhHI2IkDANBgkqhkiG9w0BAQUFAAOC +-AQEAZYWaIHK+09tQN7IHJZatoeE/06QM/pNZBe5/er3C95zOgis7jCOC+Au4srLf +-+oi8y+i4WPqRQAJKOOIf7nLMQfGqEV1UVfEOiP40I5WmNQDk3E5jFqTRZC42mf1v +-u2XL3FkjSj+LQyLCz80JdYFUn+I6lyvNSkAC2f5IA+aleX628LtyiuLF0T3Vtjul +-95vgaGd8m3Zr3/rGUeTMhMHPEGvTjTcXyOC1Sc85PhChZtGDehhafosJU8vXmVeH +-dCk3xxx2sjBvWxwTM1pdCJ0HzP7vveLhB22b2aPu8dVAiGJVKtWrnVj1whQeC3qr +-IjagpJLKKVbRnz1plUtXsO6YdA== ++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 ++wduu/4nH3sMBsLVBa9a0a0bGdw== + -----END CERTIFICATE----- +--- a/libnetclient/test/tests.c ++++ b/libnetclient/test/tests.c +@@ -222,7 +222,7 @@ test_basic_crypt(void) + g_clear_error(&error); + sput_fail_unless(net_client_set_cert_from_file(basic, "cert_u.pem", NULL) == TRUE, "load cert file w/ plain key ok"); + sput_fail_unless(net_client_connect(basic, NULL) == TRUE, "connect ok"); +- sput_fail_unless(net_client_start_tls(basic, NULL) == TRUE, "start tls: ok"); ++ sput_fail_unless(net_client_start_tls(basic, &error) == TRUE, "start tls: ok"); + sput_fail_unless(net_client_is_encrypted(basic) == TRUE, "encrypted"); + g_object_unref(basic); + +@@ -350,15 +350,15 @@ test_smtp(void) + sput_fail_unless(net_client_smtp_can_dsn(NULL) == FALSE, "NULL client: no dsn"); + sput_fail_unless(net_client_smtp_can_dsn(smtp) == TRUE, "inetsim: can dsn"); + +- sput_fail_unless(net_client_smtp_send_msg(NULL, msg, NULL) == FALSE, "send msg, NULL client"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, NULL, NULL) == FALSE, "send msg, NULL message"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == FALSE, "send msg: error, no sender"); ++ sput_fail_unless(net_client_smtp_send_msg(NULL, msg, NULL, NULL) == FALSE, "send msg, NULL client"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, NULL, NULL, NULL) == FALSE, "send msg, NULL message"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == FALSE, "send msg: error, no sender"); + sput_fail_unless(net_client_smtp_msg_set_sender(msg, "s...@sender.com") == TRUE, "set sender ok"); + sput_fail_unless(net_client_smtp_msg_set_sender(msg, "m...@here.com") == TRUE, "replace sender ok"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == FALSE, "send msg: error, no recipient"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == FALSE, "send msg: error, no recipient"); + sput_fail_unless(net_client_smtp_msg_add_recipient(msg, "y...@there.com", NET_CLIENT_SMTP_DSN_NEVER) == TRUE, + "add recipient ok (no dsn)"); +- op_res = net_client_smtp_send_msg(smtp, msg, &error); ++ op_res = net_client_smtp_send_msg(smtp, msg, NULL, &error); + sput_fail_unless((op_res == FALSE) && (error->code == NET_CLIENT_ERROR_SMTP_PERMANENT), "send failed: not authenticated"); + g_clear_error(&error); + g_object_unref(smtp); +@@ -391,7 +391,7 @@ test_smtp(void) + g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp); + sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success"); + msg_buf.sim_error = TRUE; +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == FALSE, "send msg: error in callback"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == FALSE, "send msg: error in callback"); + msg_buf.sim_error = FALSE; + g_object_unref(smtp); + +@@ -401,7 +401,7 @@ test_smtp(void) + sput_fail_unless(net_client_smtp_allow_auth(smtp, FALSE, NET_CLIENT_SMTP_AUTH_PLAIN) == TRUE, "force auth meth PLAIN"); + g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp); + sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success"); + g_object_unref(smtp); + + // STARTTLS required, LOGIN auth +@@ -413,7 +413,7 @@ test_smtp(void) + g_signal_connect(G_OBJECT(smtp), "cert-check", G_CALLBACK(check_cert), NULL); + g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp); + sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success"); + g_object_unref(smtp); + + // STARTTLS optional, CRAM-MD5 auth +@@ -426,7 +426,7 @@ test_smtp(void) + g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp); + sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success"); + sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, "20170113212711.19...@here.com", FALSE) == TRUE, "dsn: envid, headers"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success"); + g_object_unref(smtp); + + // STARTTLS, CRAM-SHA1 auth +@@ -438,7 +438,7 @@ test_smtp(void) + g_signal_connect(G_OBJECT(smtp), "auth", G_CALLBACK(get_auth), smtp); + sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success"); + sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, NULL, TRUE) == TRUE, "dsn: no envid, message"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success"); + g_object_unref(smtp); + + // STARTTLS, auto select auth +@@ -450,7 +450,7 @@ test_smtp(void) + sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success"); + sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, "20170113212711.19...@here.com", TRUE) == TRUE, + "dsn: envid, message"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success"); + g_object_unref(smtp); + + // SSL, auto select auth +@@ -462,7 +462,7 @@ test_smtp(void) + sput_fail_unless(net_client_smtp_connect(smtp, NULL, NULL) == TRUE, "connect: success"); + sput_fail_unless(net_client_smtp_msg_set_dsn_opts(msg, "20170113212711.19...@here.com", TRUE) == TRUE, + "dsn: envid, message"); +- sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL) == TRUE, "send msg: success"); ++ sput_fail_unless(net_client_smtp_send_msg(smtp, msg, NULL, NULL) == TRUE, "send msg: success"); + g_object_unref(smtp); + + net_client_smtp_msg_free(NULL); +@@ -679,7 +679,7 @@ test_pop3(void) + g_message("message count: %u", g_list_length(msg_list)); + if (msg_list != NULL) { + sput_fail_unless(net_client_pop_retr(pop, msg_list, msg_cb, NULL, NULL) == TRUE, "retr ok"); +- sput_fail_unless(net_client_pop_dele(pop, NULL,NULL) == FALSE, "dele w/o message list"); ++ sput_fail_unless(net_client_pop_dele(pop, NULL, NULL) == FALSE, "dele w/o message list"); + sput_fail_unless(net_client_pop_dele(pop, msg_list, NULL) == TRUE, "dele ok"); + g_list_free_full(msg_list, (GDestroyNotify) net_client_pop_msg_info_free); + } +--- a/libnetclient/test/valgrind.supp ++++ b/libnetclient/test/valgrind.supp +@@ -15,3 +15,18 @@ + fun:g_type_register_static + } + ++{ ++ dl_init ++ Memcheck:Leak ++ match-leak-kinds:all ++ ... ++ fun:_dl_init ++} ++ ++{ ++ g_type_class_ref ++ Memcheck:Leak ++ match-leak-kinds:all ++ ... ++ fun:g_type_class_ref ++} +--- a/libnetclient/test/cert.pem ++++ b/libnetclient/test/cert.pem +@@ -1,53 +1,89 @@ + -----BEGIN CERTIFICATE----- +-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 ++Ync/p4RR + -----END CERTIFICATE----- +------BEGIN RSA PRIVATE KEY----- +-Proc-Type: 4,ENCRYPTED +-DEK-Info: DES-EDE3-CBC,AAB517FD5312490C +- +-Z4IvcUkeV2vcvF8AR/jt6EDi4MiMKQXNAswQV1BqJMfotGJxQR/XSnrnh0EYadkz +-wRmOhASu6gnVHv0diC37kE1F9DShrqMeia8pXP52hYje/368qTz73/Y70lVIKujz +-G4Ns/1kB2n9CDAi7Kk/hOSnAzpMNirtkabAnpR2VxgyH44DzwMgxavWCGibvIq8Q +-eyqd7sB6lOsP4/gaGILRCGjsYIgtC1xq6rcRRl7Mk07hxjroTy1rtDjOMzJ/RtYX +-FNDqlk0KJeuH/wJCaJ1ys2lA4QSKLs0P/kAh/nmwuMnOFyz46wMEIOE0JEAlJfB/ +-yNv93QAOZiyZ71hWtq2hkI6c8znS49rG+ULiYOEDuhU5s54SEHeA1Oz2vtmu5Wz0 +-DBzIlCGKNy+v9BOWkbnpAgA/S1cLNGX2Cf5f1ReRYiaHCz6LCaYXzDbV3x8FvU/s +-lKAuuq2nfq2jDHrbSw4Nni8SVsN6vjUzQieQwux0J3XPYMsxwQwL8Z01bZaeom0L +-odQwE64vGtQWsvmhA20dBYthurVzNK9FKZY1oKd7y2vdplKRUg/24J2/HwlZB/ru +-CN4Yrsky5b+q37OafP7ycSCesR+bQWrfLMyUMyUU/9JqH7eIoEh5+LfSZMqSEDAt +-ERi2UxHepSN/oZK8ECAzbUmcSwKJ/oHI5fGnbaN4hsxbcgwoW33+y4ZGFpmaLXj1 +-5P2jY1GEfU6ql9oWrRgSAwizfI1riyK+N3x4ecCRf2dO6rMKrJk7AbA3KnQbT76r +-jZOmbGPpWA+7d8RAclr8cAe5LegETzuzA42VanvFhzMoo5opYcaYsPqlXtrj5fbX +-f02l7raps/r1eoJD7esT6leBlQZjAsd2YiGqio1rQmMK5T7kLK2CjLZTGAeQRDJF +-ZiOlZmqC70n5rBFzCUGKw2Hofns7qKpj5+Je9SBbuNkpyahiRRRUlTrQi9sXuEjL +-cd6XX9jURumyv/3XITeauDh4jUtboi4BrBHbztfJIVrXLJ24bsj0OLgnwGHe8vQR +-MUWFRyYGDNzh16hdDPSni1Z6aqwuxiX7FYXs9ZYuUXIl7Klq9wVDLPOHao9xWAWk +-yeMeNETj8bqQmnfO3XgOdH7uOZdZAMFtySKF0Quh/77SvCsqiXFAapwEdZFvnycO +-VmLiQ7eXG4CZZE9QaDfbpY4JcYA3Fyk9OhACErEAyFyEPUTD4B9wXJ1mQNfaWJQD +-Nv6WpCQawCZLPy4Hohe+fCG4ZLZOrTJjXSSNhWPXLgymNbdsWLdcS/tLKfx4nTAY +-XU9ShGTiDE6J0DY2vNmsNK9Gl1b69oiWUc1DkaDc5VYjRpkqhqd2jzeJ3rS0SHLE +-ccejoQA7DPZZ7LqKs6v79STay05CSGpIsC0sa+8JemmaOSRgC8a73dNu6eZ8gywL +-uUvmSEmYXILJhYoObvlxv2mnjwXUpU+svFskj2QxbjVPOC23YNsbZKNWtCRx+cbJ +-RpGye05q7XmjmIeFO3SdnvQmaKpetIEEULihD9hy25OVOH3VbfgBoHdphhCr5Kom +-LXGbxmYKL/Br4bTVkqczLXTBrEAllhEgCkrFfOJX73SUItW53I/p/Jdu7Xm6+f6m +------END RSA PRIVATE KEY----- ++-----BEGIN ENCRYPTED PRIVATE KEY----- ++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 ++xAhfPXm/AR++DSgVFD4Vum7LGB1UT/AT ++-----END ENCRYPTED PRIVATE KEY----- +--- a/libnetclient/test/cert_u.pem ++++ b/libnetclient/test/cert_u.pem +@@ -1,51 +1,87 @@ + -----BEGIN CERTIFICATE----- +-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 ++LvplZxn5 + -----END CERTIFICATE----- + -----BEGIN PRIVATE KEY----- +-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC68RvpEkQivKpQ +-TWLxECBChnu+UguBgbOOkq95VIKV+kvMpwBxoembOJU1UCLpd2xWyVQ9KZgw9mg5 +-3GlIb3V4xpOfU6NTpa4NU8fGbnVfBMxOKFOVv5seF8NPxejwHF7w+XBXgNpxDH2P +-Iq8spftWcGPMnPzs1XDfi6L51Fl9lExgG0NPhfbv3z38ZflpnXMLG0fFBwF5mLsq +-Ds/IMuuX3yguJJib5oYBEdEzGXdHSry0GiuWgHWBfcNlYlNLW3eejI2atfAavNEG +-WWDGkv+xQINS3GBKFYN3Ag+B6C5pEWN8IFiWD8R1DfTThoazN231x1MGhgFg+vA7 +-2QMyS/jnAgMBAAECggEBAKDmGwas4RYg2loJcUpYfdukUmdJyHtr/faNjBhaw5aA +-erMnXftvx1gBCHN9iL73ObksyaNm5IXn32dFrRxaSnpsN+zfGOlK5Za08HJ66eyh +-fZMbpG10H/dzrng/uDDJynGPz8CQt/KrNHp4+Nrt9Xi9fThEOnFBeEf/sINk4K1y +-+M6lBgMVc7hjI9P6NH92yj8is5X2cBTDx521jnAOwdiNqVeu/ndddYisM2NBhfRK +-oV/lnSZABVLykJM+eKCkcviCjcnL9AkcbXMPKPjh5LbB0NOSi/uKtQfvBEcFDsfx +-Q3H0OWXJwMUMrqWuzsAt63gAKExi3O26T3v43gqPbFECgYEA4fiGrgTM6CR+8BbM +-7SFmhBURVCC54iQ6LGhBzC2BEpQazQ1T2jJyuXAm881Lmc2MkR7mzeiQlDrqjrQv +-1Ao5EEedfiR4IF3oUyDb0UPkT8GF7kholvjCXQgWMADrSln3hnKndlsAI7/y4LYR +-ZKxSSAoS8bv0MyrOU6PuRzDqXSkCgYEA08jTj2ewjbscbSS9tj+RSmbpA1GxQP6D +-ZPukfDAc7seZO24c1tYRFE3+qB5qMzB/sOWveoIc8Ii5LTa0VofMMEiuRKoaedVq +-z8NixkjmRqQ/YQKmJaEUjaXw0tPr/sENnxmRKINTdPGyTQewaX+Xi//wTeaM89ZR +-E76UDfoRV48CgYEAzi0IFTbkDttdxonHKIVVGCZwzSWe9KrBOUtW3YiXP/BKE9WZ +-MHjfHDssDz69P/O/0Zk0VaNgZx7qbJITIZDCSAxPsoxr3nxQQai1Z9ZeNjcIkEUY +-yMbn8CI0vE/aXth/c/iguuiE1BmK7WSxsf1YhcpLRqyLPzRLVR05h1MmQyECgYAz +-+P3KHIUcUwXH1xNjbTgnjRezw9F/BLaUCpk0DM6c3ojBJ+WV51SrqfRLp6MiSs2b +-SNKGevXFJZhj+x/IeGzokH2Lxj7XFUOwFt/fjzZLsbUIBpFlfKFBna563pz0mMXR +-/IE98vSBJ2s9Mhzd1v0G01lSlLiUgkzFTqigwXSOCwKBgQCGSDpRZxuL7xfO0++S +-jJxBdGCX/20vVJ3jdvzO2BtmMr87gIgHNA38TG1u5TWcYgvtqzS8kZcKsKJiLkLR +-8qlPYpyCjD+4sOm2Yg7LgH/O0MbEm1RMTpZQ/XVk98afFoXqM9O17EyYL4GIDbVO +-4+Pa9RSnfdHcOTPl4DjTkePpZQ== ++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 ++BrXwsXY2ZPcP/iq/zC2yMQqnTkK748U= + -----END PRIVATE KEY----- diff -Nru balsa-2.5.6/debian/patches/series balsa-2.5.6/debian/patches/series --- balsa-2.5.6/debian/patches/series 2018-12-23 23:17:25.000000000 +0100 +++ balsa-2.5.6/debian/patches/series 2020-07-11 09:20:22.000000000 +0200 @@ -0,0 +1 @@ +CVE-2020-13645.patch