From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Nikolaos Chatzikonstantinou Newsgroups: gmane.emacs.bugs Subject: bug#50507: New function in Emacs GnuTLS implementation Date: Fri, 30 Sep 2022 06:04:30 -0400 Message-ID: References: <83ee9wiozc.fsf@gnu.org> <87sflkgy49.fsf@gnus.org> <87edwd15ck.fsf@gnus.org> <87tu4u8kjv.fsf@gnus.org> <878rm69hop.fsf@gmail.com> <87v8p7d4oq.fsf@gmail.com> <87a66id03q.fsf@gmail.com> <875yh6cly4.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000006251dc05e9e21fe7" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4113"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 50507@debbugs.gnu.org, Lars Ingebrigtsen , Eli Zaretskii To: Robert Pluim Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Sep 30 12:05:19 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oeCtT-0000wB-GT for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 30 Sep 2022 12:05:19 +0200 Original-Received: from localhost ([::1]:46546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oeCtS-0007Dl-Fa for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 30 Sep 2022 06:05:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38698) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oeCtC-0007Dd-IW for bug-gnu-emacs@gnu.org; Fri, 30 Sep 2022 06:05:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:41470) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oeCtC-0003hE-AL for bug-gnu-emacs@gnu.org; Fri, 30 Sep 2022 06:05:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oeCtB-0003VZ-Qu for bug-gnu-emacs@gnu.org; Fri, 30 Sep 2022 06:05:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nikolaos Chatzikonstantinou Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 30 Sep 2022 10:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50507 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 50507-submit@debbugs.gnu.org id=B50507.166453229213465 (code B ref 50507); Fri, 30 Sep 2022 10:05:01 +0000 Original-Received: (at 50507) by debbugs.gnu.org; 30 Sep 2022 10:04:52 +0000 Original-Received: from localhost ([127.0.0.1]:40548 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oeCt1-0003V7-4w for submit@debbugs.gnu.org; Fri, 30 Sep 2022 06:04:51 -0400 Original-Received: from mail-yw1-f175.google.com ([209.85.128.175]:34377) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oeCsx-0003Ut-Ji for 50507@debbugs.gnu.org; Fri, 30 Sep 2022 06:04:49 -0400 Original-Received: by mail-yw1-f175.google.com with SMTP id 00721157ae682-351cee25568so39812237b3.1 for <50507@debbugs.gnu.org>; Fri, 30 Sep 2022 03:04:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=WTGXiY3OPNXJdCfL1ijBOIqiey5A5QI1Z4xGeXekS3Y=; b=i/PMn0OV6n98LOHMXdYsHAIrQ8h/F1E/pl3MRDIK+9KdQyhz3o39UHMo34a/9qKEwb lrXwcVErS5oQsvbZqn+rENIa5ZBUU4D1l/3Y+TPO5o/U3Udc7AsRaIWLXlTvUsehOf7U sxCtUJqLtJwDlbrCR+9z9EXO0Msr6Nw+btoeZqXcBGE6jmNVeCFtHzwnt2SbV3CIQ4MV DxsNYwhzivzvQPqlKwSDZwwQ9G0KeexnRd/yWmErwBkrEUbVkzXrMLPjC/cdlGp1JP7b 531PLf7LROOLQwV9D+TwcHNgr7zw7EOkgXXg396Sal1pHYTpI4OvBngGjFhy9PC6r9uA EjkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=WTGXiY3OPNXJdCfL1ijBOIqiey5A5QI1Z4xGeXekS3Y=; b=ZLLelqtG46LHovrEanxAsXj6fdA6ndi3yvAYjuxJvveZ1gzBEl2mJYyygDMWCHvBwm dwmgw1SdLBF0qd3nfB8cZmB5JQtSb5PR0V9en4vYcyRLttklGUCgnNiHGzbwGrnprhdx Tp3jfVmHPapqgAosRxT7EHL4W2bwixJSsg7HspAxfj2YVME3z2qH59VGQcCIUD35crKq 0g5q74xMGK3OXI/VJgOteo4uBObqqbdfYVhgqQLT5klIdu2ZUI9ReKw4C01/7VEINJen kFD2z3CfWqei40ek6PoboIfxhpa52g/llrJZA95inulJi2HWym5NtgeOB10fxvVtR0gt FnjQ== X-Gm-Message-State: ACrzQf03YU73mVfB9f+/i0X9Ywjlwhsw6e7NOJe1lcCxzjH7kecwv/q2 62/dSHpWAHCy1MbPxK4yirPYDSycoH1k38HCIxk= X-Google-Smtp-Source: AMsMyM4dlYzk5MYJVZn8I6qD7UN6s5AyivD36jOLSSgESMLP1LylO830IF2gMTqTDaF53n4Ze1mRPI+D0d2LyYcLyBQ= X-Received: by 2002:a81:1455:0:b0:354:e564:214f with SMTP id 82-20020a811455000000b00354e564214fmr7307448ywu.297.1664532281950; Fri, 30 Sep 2022 03:04:41 -0700 (PDT) In-Reply-To: <875yh6cly4.fsf@gmail.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:243984 Archived-At: --0000000000006251dc05e9e21fe7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Sep 29, 2022 at 10:08 AM Robert Pluim wrote: > > >>>>> On Thu, 29 Sep 2022 09:44:09 -0400, Nikolaos Chatzikonstantinou said: > Nikolaos> +The :pass and :flags keys are ignored with old versions of= GnuTLS, and > Nikolaos> +:flags is ignored if :pass is not specified. > Nikolaos> + > >> > >> Maybe mention that not specifying :flags or passing :flags nil mea= ns > >> passing '0' to the GnuTLS function? > > Nikolaos> Yes, and on that note, I discovered two things. One, the va= lue 0 is > Nikolaos> special; it has meaning but it is not an enumeration consta= nt. I > Nikolaos> documented this appropriately. Two, the password may be NUL= L instead > Nikolaos> of a string. > > OK. I guess you=CA=BCre mapping ':pass nil' to that? Yes. > Nikolaos> + DEFSYM (Qgnutls_pkcs_plain, "GNUTLS_PKCS_PLAIN"); > Nikolaos> > Nikolaos> + DEFSYM (Qgnutls_pkcs_pbes2_gost_cpd, "GNUTLS_PKCS_PBES2_= GOST_CPD"); > >> > >> All this is kind of awkward, but apart from doing DEFVAR_LISP I=CA= =BCm not > >> aware of how to define a lisp level symbol with a value (it would > >> allow you to simplify `key_file2_aux', since you could just extrac= t > >> the values directly from the symbols). > > Nikolaos> I am now comparing against intern("GNUTLS_PKCS_PLAIN") and = so on. > > I guess that=CA=BCs another option, but it=CA=BCs not the preferred > solution. Anyway, let=CA=BCs not let the perfect be the enemy of the good= . I went with intern. There were some additional #if checks to avoid dynamically loading the symbol on library Windows if it is not available. I used plist_member() to differentiate between `:pass nil` and not specifying `:pass`, and I documented this in the docstrings. Regards, Nikolaos Chatzikonstantinou --0000000000006251dc05e9e21fe7 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-add-pass-and-flags-to-gnutls-boot-for-keylist.patch" Content-Disposition: attachment; filename="0001-add-pass-and-flags-to-gnutls-boot-for-keylist.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l8obiz6c0 RnJvbSAzMTAwYzE3Zjg0NTVhMzg5NGNhMjdjOTg3MjU0OGRhYTFhMWZiOTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGFvcyBDaGF0emlrb25zdGFudGlub3UgPG5jaGF0ejMx NEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjYgU2VwIDIwMjIgMTE6MDg6MTggLTA0MDAKU3ViamVj dDogW1BBVENIXSBhZGQgOnBhc3MgYW5kIDpmbGFncyB0byBnbnV0bHMtYm9vdCBmb3IgOmtleWxp c3QKCiogbGlzcC9uZXQvZ251dGxzLmVsIChnbnV0bHMtYm9vdC1wYXJhbWV0ZXJzKTogQWRkIHRo ZSBrZXlzIDpwYXNzIGFuZAo6ZmxhZ3MsIGFuZCB1cGRhdGUgdGhlIGRvY3VtZW50YXRpb24uCiog c3JjL2dudXRscy5jIChnbnV0bHMtYm9vdCk6IEFkZCB0aGUga2V5cyA6cGFzcyBhbmQgOmZsYWdz LCBhbmQKdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uLgooc3ltc19vZl9nbnV0bHMpOiBBZGQgdGhl IHN5bWJvbHMgOnBhc3MsIDpmbGFncywgYW5kIHRoZSBzeW1ib2xzIHRoYXQKY29ycmVzcG9uZCB0 byB0aGUgZW51bWVyYXRpb24gY29uc3RhbnRzIG9mIHRoZSBHbnVUTFMgZW51bQpgZ251dGxzX3Br Y3NfZW5jcnlwdF9mbGFnc190YC4KKGtleV9maWxlMl9hdXgpOiBQcml2YXRlIGhlbHBlciBmdW5j dGlvbiB0aGF0IHRyYW5zbGF0ZXMgYSBsaXN0IG9mCnN5bWJvbHMgdG8gaXRzIGNvcnJlc3BvbmRp bmcgYHVuc2lnbmVkIGludGAgdmFsdWUgb2YgdGhlIEdudVRMUyBDIGVudW0KYGdudXRsc19wa2Nz X2VuY3J5cHRfZmxhZ3NfdGAuCi0tLQogbGlzcC9uZXQvZ251dGxzLmVsIHwgIDEwICsrKysrCiBz cmMvZ251dGxzLmMgICAgICAgfCAxMDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvbGlzcC9uZXQvZ251dGxzLmVsIGIvbGlzcC9uZXQvZ251dGxzLmVsCmluZGV4IDZlMzg0 NWFlYzEuLmVlZjY1NTlhOTUgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L2dudXRscy5lbAorKysgYi9s aXNwL25ldC9nbnV0bHMuZWwKQEAgLTI2NSw2ICsyNjUsNyBAQCBnbnV0bHMtYm9vdC1wYXJhbWV0 ZXJzCiAgICAgICAgICAgICZrZXkgdHlwZSBob3N0bmFtZSBwcmlvcml0eS1zdHJpbmcKICAgICAg ICAgICAgdHJ1c3RmaWxlcyBjcmxmaWxlcyBrZXlsaXN0IG1pbi1wcmltZS1iaXRzCiAgICAgICAg ICAgIHZlcmlmeS1mbGFncyB2ZXJpZnktZXJyb3IgdmVyaWZ5LWhvc3RuYW1lLWVycm9yCisgICAg ICAgICAgIHBhc3MgZmxhZ3MKICAgICAgICAgICAgJmFsbG93LW90aGVyLWtleXMpCiAgICJSZXR1 cm4gYSBrZXl3b3JkIGxpc3Qgb2YgcGFyYW1ldGVycyBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBg Z251dGxzLWJvb3QnLgogCkBAIC0yODEsNiArMjgyLDEzIEBAIGdudXRscy1ib290LXBhcmFtZXRl cnMKIFZFUklGWS1IT1NUTkFNRS1FUlJPUiBpcyBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9w dGlvbiBmb3IKIHB1dHRpbmcgYDpob3N0bmFtZScgaW4gVkVSSUZZLUVSUk9SLgogCitQQVNTIGlz IGEgc3RyaW5nLCB0aGUgcGFzc3dvcmQgb2YgdGhlIGtleS4gIEl0IG1heSBhbHNvIGJlIG5pbCwK K2ZvciBhIE5VTEwgcGFzc3dvcmQuCisKK0ZMQUdTIGlzIGEgbGlzdCBvZiBzeW1ib2xzIGNvcnJl c3BvbmRpbmcgdG8gdGhlIGVxdWl2YWxlbnQgT1JlZAorYml0ZmxhZyBvZiB0aGUgZ251dGxzX3Br Y3NfZW5jcnlwdF9mbGFnc190IGVudW0gb2YgR251VExTLiAgVGhlCitlbXB0eSBsaXN0IGNvcnJl c3BvbmRzIHRvIHRoZSBiaXRmbGFnIHdpdGggdmFsdWUgMC4KKwogV2hlbiBWRVJJRlktRVJST1Ig aXMgdCBvciBhIGxpc3QgY29udGFpbmluZyBgOnRydXN0ZmlsZXMnLCBhbgogZXJyb3Igd2lsbCBi ZSByYWlzZWQgd2hlbiB0aGUgcGVlciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gZmFpbHMKIGFz IHBlciBHbnVUTFMnIGdudXRsc19jZXJ0aWZpY2F0ZV92ZXJpZnlfcGVlcnMyLiAgT3RoZXJ3aXNl LCBvbmx5CkBAIC0zNTgsNiArMzY2LDggQEAgZ251dGxzLWJvb3QtcGFyYW1ldGVycwogICAgICAg ICAgICAgICAgIDprZXlsaXN0ICxrZXlsaXN0CiAgICAgICAgICAgICAgICAgOnZlcmlmeS1mbGFn cyAsdmVyaWZ5LWZsYWdzCiAgICAgICAgICAgICAgICAgOnZlcmlmeS1lcnJvciAsdmVyaWZ5LWVy cm9yCisgICAgICAgICAgICAgICAgOnBhc3MgLHBhc3MKKyAgICAgICAgICAgICAgICA6ZmxhZ3Mg LGZsYWdzCiAgICAgICAgICAgICAgICAgOmNhbGxiYWNrcyBuaWwpKSkKIAogKGRlZnVuIGdudXRs cy0tZ2V0LWZpbGVzIChmaWxlcykKZGlmZiAtLWdpdCBhL3NyYy9nbnV0bHMuYyBiL3NyYy9nbnV0 bHMuYwppbmRleCBhMGRlMDIzOGM0Li5jY2ZiYjU4ODgxIDEwMDY0NAotLS0gYS9zcmMvZ251dGxz LmMKKysrIGIvc3JjL2dudXRscy5jCkBAIC0zNCw2ICszNCw3IEBACiAjIGVuZGlmCiAKICMgaWYg R05VVExTX1ZFUlNJT05fTlVNQkVSID49IDB4MDMwMjAwCisjICBkZWZpbmUgSEFWRV9HTlVUTFNf Q0VSVElGSUNBVEVfU0VUX1g1MDlfS0VZX0ZJTEUyCiAjICBkZWZpbmUgSEFWRV9HTlVUTFNfQ0lQ SEVSX0dFVF9JVl9TSVpFCiAjIGVuZGlmCiAKQEAgLTEyMSw2ICsxMjIsMTEgQEAgREVGX0RMTF9G TiAoaW50LCBnbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1MDlfY3JsX2ZpbGUsCiBERUZfRExMX0ZO IChpbnQsIGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV9rZXlfZmlsZSwKIAkgICAgKGdudXRs c19jZXJ0aWZpY2F0ZV9jcmVkZW50aWFsc190LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwK IAkgICAgIGdudXRsc194NTA5X2NydF9mbXRfdCkpOworIyAgaWZkZWYgSEFWRV9HTlVUTFNfQ0VS VElGSUNBVEVfU0VUX1g1MDlfS0VZX0ZJTEUyCitERUZfRExMX0ZOIChpbnQsIGdudXRsc19jZXJ0 aWZpY2F0ZV9zZXRfeDUwOV9rZXlfZmlsZTIsCisJICAgIChnbnV0bHNfY2VydGlmaWNhdGVfY3Jl ZGVudGlhbHNfdCwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosCisJICAgICBnbnV0bHNfeDUw OV9jcnRfZm10X3QsIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50KSk7CisjICBlbmRpZgogIyAg aWZkZWYgSEFWRV9HTlVUTFNfWDUwOV9TWVNURU1fVFJVU1QKIERFRl9ETExfRk4gKGludCwgZ251 dGxzX2NlcnRpZmljYXRlX3NldF94NTA5X3N5c3RlbV90cnVzdCwKIAkgICAgKGdudXRsc19jZXJ0 aWZpY2F0ZV9jcmVkZW50aWFsc190KSk7CkBAIC0zMTQsNiArMzIwLDkgQEAgaW5pdF9nbnV0bHNf ZnVuY3Rpb25zICh2b2lkKQogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ251dGxzX2NlcnRpZmlj YXRlX3NldF92ZXJpZnlfZmxhZ3MpOwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ251dGxzX2Nl cnRpZmljYXRlX3NldF94NTA5X2NybF9maWxlKTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdu dXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV9rZXlfZmlsZSk7CisjICBpZmRlZiBIQVZFX0dOVVRM U19DRVJUSUZJQ0FURV9TRVRfWDUwOV9LRVlfRklMRTIKKyAgTE9BRF9ETExfRk4gKGxpYnJhcnks IGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV9rZXlfZmlsZTIpOworIyAgZW5kaWYKICMgIGlm ZGVmIEhBVkVfR05VVExTX1g1MDlfU1lTVEVNX1RSVVNUCiAgIExPQURfRExMX0ZOIChsaWJyYXJ5 LCBnbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1MDlfc3lzdGVtX3RydXN0KTsKICMgIGVuZGlmCkBA IC00NTUsNiArNDY0LDkgQEAgaW5pdF9nbnV0bHNfZnVuY3Rpb25zICh2b2lkKQogIyAgZGVmaW5l IGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRfdmVyaWZ5X2ZsYWdzIGZuX2dudXRsc19jZXJ0aWZpY2F0 ZV9zZXRfdmVyaWZ5X2ZsYWdzCiAjICBkZWZpbmUgZ251dGxzX2NlcnRpZmljYXRlX3NldF94NTA5 X2NybF9maWxlIGZuX2dudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV9jcmxfZmlsZQogIyAgZGVm aW5lIGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV9rZXlfZmlsZSBmbl9nbnV0bHNfY2VydGlm aWNhdGVfc2V0X3g1MDlfa2V5X2ZpbGUKKyMgIGlmZGVmIEhBVkVfR05VVExTX0NFUlRJRklDQVRF X1NFVF9YNTA5X0tFWV9GSUxFMgorIyAgIGRlZmluZSBnbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1 MDlfa2V5X2ZpbGUyIGZuX2dudXRsc19jZXJ0aWZpY2F0ZV9zZXRfeDUwOV9rZXlfZmlsZTIKKyMg IGVuZGlmCiAjICBkZWZpbmUgZ251dGxzX2NlcnRpZmljYXRlX3NldF94NTA5X3N5c3RlbV90cnVz dCBmbl9nbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1MDlfc3lzdGVtX3RydXN0CiAjICBkZWZpbmUg Z251dGxzX2NlcnRpZmljYXRlX3NldF94NTA5X3RydXN0X2ZpbGUgZm5fZ251dGxzX2NlcnRpZmlj YXRlX3NldF94NTA5X3RydXN0X2ZpbGUKICMgIGRlZmluZSBnbnV0bHNfY2VydGlmaWNhdGVfdHlw ZV9nZXQgZm5fZ251dGxzX2NlcnRpZmljYXRlX3R5cGVfZ2V0CkBAIC0xNzc0LDYgKzE3ODYsNjEg QEAgZ251dGxzX3ZlcmlmeV9ib290IChMaXNwX09iamVjdCBwcm9jLCBMaXNwX09iamVjdCBwcm9w bGlzdCkKICAgcmV0dXJuIGdudXRsc19tYWtlX2Vycm9yIChyZXQpOwogfQogCisjaWZkZWYgSEFW RV9HTlVUTFNfQ0VSVElGSUNBVEVfU0VUX1g1MDlfS0VZX0ZJTEUyCisKKy8qIEhlbHBlciBmdW5j dGlvbiBmb3IgZ251dGxzLWJvb3QuCisKKyAgIFRoZSBrZXkgOmZsYWdzIHJlY2VpdmVzIGEgbGlz dCBvZiBzeW1ib2xzLCBlYWNoIG9mIHdoaWNoCisgICBjb3JyZXNwb25kcyB0byBhIEdudVRMUyBD IGZsYWcsIHRoZSBPUmVkIHJlc3VsdCBpcyB0byBiZSBwYXNzZWQgdG8KKyAgIHRoZSBmdW5jdGlv biBnbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1MDlfa2V5X2ZpbGUyKCkgYXMgaXRzIGxhc3QKKyAg IGFyZ3VtZW50LgorKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQKK2tleV9maWxlMl9hdXggKExpc3Bf T2JqZWN0IGZsYWdzKQoreworICB1bnNpZ25lZCBpbnQgcnYgPSAwOworICBMaXNwX09iamVjdCB0 YWlsID0gZmxhZ3M7CisgIEZPUl9FQUNIX1RBSUxfU0FGRSAodGFpbCkKKyAgICB7CisgICAgICBM aXNwX09iamVjdCBmbGFnID0gWENBUiAodGFpbCk7CisgICAgICBpZiAoRVEgKGZsYWcsIGludGVy biAoIkdOVVRMU19QS0NTX1BMQUlOIikpKQorCXJ2IHw9IEdOVVRMU19QS0NTX1BMQUlOOworICAg ICAgZWxzZSBpZihFUSAoZmxhZywgaW50ZXJuICgiR05VVExTX1BLQ1NfUEtDUzEyXzNERVMiKSkp CisJcnYgfD0gR05VVExTX1BLQ1NfUEtDUzEyXzNERVM7CisgICAgICBlbHNlIGlmKEVRIChmbGFn LCBpbnRlcm4gKCJHTlVUTFNfUEtDU19QS0NTMTJfQVJDRk9VUiIpKSkKKwlydiB8PSBHTlVUTFNf UEtDU19QS0NTMTJfQVJDRk9VUjsKKyAgICAgIGVsc2UgaWYoRVEgKGZsYWcsIGludGVybiAoIkdO VVRMU19QS0NTX1BLQ1MxMl9SQzJfNDAiKSkpCisJcnYgfD0gR05VVExTX1BLQ1NfUEtDUzEyX1JD Ml80MDsKKyAgICAgIGVsc2UgaWYoRVEgKGZsYWcsIGludGVybiAoIkdOVVRMU19QS0NTX1BCRVMy XzNERVMiKSkpCisJcnYgfD0gR05VVExTX1BLQ1NfUEJFUzJfM0RFUzsKKyAgICAgIGVsc2UgaWYo RVEgKGZsYWcsIGludGVybiAoIkdOVVRMU19QS0NTX1BCRVMyX0FFU18xMjgiKSkpCisJcnYgfD0g R05VVExTX1BLQ1NfUEJFUzJfQUVTXzEyODsKKyAgICAgIGVsc2UgaWYoRVEgKGZsYWcsIGludGVy biAoIkdOVVRMU19QS0NTX1BCRVMyX0FFU18xOTIiKSkpCisJcnYgfD0gR05VVExTX1BLQ1NfUEJF UzJfQUVTXzE5MjsKKyAgICAgIGVsc2UgaWYoRVEgKGZsYWcsIGludGVybiAoIkdOVVRMU19QS0NT X1BCRVMyX0FFU18yNTYiKSkpCisJcnYgfD0gR05VVExTX1BLQ1NfUEJFUzJfQUVTXzI1NjsKKyAg ICAgIGVsc2UgaWYoRVEgKGZsYWcsIGludGVybiAoIkdOVVRMU19QS0NTX05VTExfUEFTU1dPUkQi KSkpCisJcnYgfD0gR05VVExTX1BLQ1NfTlVMTF9QQVNTV09SRDsKKyAgICAgIGVsc2UgaWYoRVEg KGZsYWcsIGludGVybiAoIkdOVVRMU19QS0NTX1BCRVMyX0RFUyIpKSkKKwlydiB8PSBHTlVUTFNf UEtDU19QQkVTMl9ERVM7CisgICAgICBlbHNlIGlmKEVRIChmbGFnLCBpbnRlcm4gKCJHTlVUTFNf UEtDU19QQkVTMV9ERVNfTUQ1IikpKQorCXJ2IHw9IEdOVVRMU19QS0NTX1BCRVMxX0RFU19NRDU7 CisgICAgICBlbHNlIGlmKEVRIChmbGFnLCBpbnRlcm4gKCJnbnV0bHNfcGtjc19wYmVzMl9nb3N0 X1RDMjZaIikpKQorCXJ2IHw9IEdOVVRMU19QS0NTX1BCRVMyX0dPU1RfVEMyNlo7CisgICAgICBl bHNlIGlmKEVRIChmbGFnLCBpbnRlcm4gKCJHTlVUTFNfUEtDU19QQkVTMl9HT1NUX0NQQSIpKSkK KwlydiB8PSBHTlVUTFNfUEtDU19QQkVTMl9HT1NUX0NQQTsKKyAgICAgIGVsc2UgaWYoRVEgKGZs YWcsIGludGVybiAoIkdOVVRMU19QS0NTX1BCRVMyX0dPU1RfQ1BCIikpKQorCXJ2IHw9IEdOVVRM U19QS0NTX1BCRVMyX0dPU1RfQ1BCOworICAgICAgZWxzZSBpZihFUSAoZmxhZywgaW50ZXJuICgi R05VVExTX1BLQ1NfUEJFUzJfR09TVF9DUEMiKSkpCisJcnYgfD0gR05VVExTX1BLQ1NfUEJFUzJf R09TVF9DUEM7CisgICAgICBlbHNlIGlmKEVRIChmbGFnLCBpbnRlcm4gKCJHTlVUTFNfUEtDU19Q QkVTMl9HT1NUX0NQRCIpKSkKKwlydiB8PSBHTlVUTFNfUEtDU19QQkVTMl9HT1NUX0NQRDsKKyAg ICB9CisgIHJldHVybiBydjsKK30KKworI2VuZGlmIC8qIEhBVkVfR05VVExTX0NFUlRJRklDQVRF X1NFVF9YNTA5X0tFWV9GSUxFMiAqLworCiBERUZVTiAoImdudXRscy1ib290IiwgRmdudXRsc19i b290LCBTZ251dGxzX2Jvb3QsIDMsIDMsIDAsCiAgICAgICAgZG9jOiAvKiBJbml0aWFsaXplIEdu dVRMUyBjbGllbnQgZm9yIHByb2Nlc3MgUFJPQyB3aXRoIFRZUEUrUFJPUExJU1QuCiBDdXJyZW50 bHkgb25seSBjbGllbnQgbW9kZSBpcyBzdXBwb3J0ZWQuICBSZXR1cm4gYSBzdWNjZXNzL2ZhaWx1 cmUKQEAgLTE4MTMsNiArMTg4MCwyMSBAQCBERUZVTiAoImdudXRscy1ib290IiwgRmdudXRsc19i b290LCBTZ251dGxzX2Jvb3QsIDMsIDMsIDAsCiA6Y29tcGxldGUtbmVnb3RpYXRpb24sIGlmIG5v bi1uaWwsIHdpbGwgbWFrZSBuZWdvdGlhdGlvbiBjb21wbGV0ZQogYmVmb3JlIHJldHVybmluZyBl dmVuIG9uIG5vbi1ibG9ja2luZyBzb2NrZXRzLgogCis6cGFzcywgdGhlIHBhc3N3b3JkIG9mIHRo ZSBwcml2YXRlIGtleSBhcyBwZXIgR251VExTJworZ251dGxzX2NlcnRpZmljYXRlX3NldF94NTA5 X2tleV9maWxlMi4gIFNwZWNpZnkgYXMgbmlsIHRvIGhhdmUgYSBOVUxMCitwYXNzd29yZC4KKwor OmZsYWdzLCBhIGxpc3Qgb2Ygc3ltYm9scyByZWxhdGluZyB0byA6cGFzcywgZWFjaCBzcGVjaWZ5 aW5nIGEgZmxhZzoKK0dOVVRMU19QS0NTX1BMQUlOLCBHTlVUTFNfUEtDU19QS0NTMTJfM0RFUywK K0dOVVRMU19QS0NTX1BLQ1MxMl9BUkNGT1VSLCBHTlVUTFNfUEtDU19QS0NTMTJfUkMyXzQwLAor R05VVExTX1BLQ1NfUEJFUzJfM0RFUywgR05VVExTX1BLQ1NfUEJFUzJfQUVTXzEyOCwKK0dOVVRM U19QS0NTX1BCRVMyX0FFU18xOTIsIEdOVVRMU19QS0NTX1BCRVMyX0FFU18yNTYsCitHTlVUTFNf UEtDU19OVUxMX1BBU1NXT1JELCBHTlVUTFNfUEtDU19QQkVTMl9ERVMsCitHTlVUTFNfUEtDU19Q QkVTMl9ERVNfTUQ1LCBHTlVUTFNfUEtDU19QQkVTMl9HT1NUX1RDMjZaLAorR05VVExTX1BLQ1Nf UEJFUzJfR09TVF9DUEEsIEdOVVRMU19QS0NTX1BCRVMyX0dPU1RfQ1BCLAorR05VVExTX1BLQ1Nf UEJFUzJfR09TVF9DUEMsIEdOVVRMU19QS0NTX1BCRVMyX0dPU1RfQ1BELiAgSWYgbm90CitzcGVj aWZpZWQsIG9yIGlmIG5pbCwgdGhlIGJpdGZsYWcgd2l0aCB2YWx1ZSAwIGlzIHVzZWQuCisKIFRo ZSBkZWJ1ZyBsZXZlbCB3aWxsIGJlIHNldCBmb3IgdGhpcyBwcm9jZXNzIEFORCBnbG9iYWxseSBm b3IgR251VExTLgogU28gaWYgeW91IHNldCBpdCBoaWdoZXIgb3IgbG93ZXIgYXQgYW55IHBvaW50 LCBpdCBhZmZlY3RzIGdsb2JhbAogZGVidWdnaW5nLgpAQCAtMTgyNSw2ICsxOTA3LDkgQEAgREVG VU4gKCJnbnV0bHMtYm9vdCIsIEZnbnV0bHNfYm9vdCwgU2dudXRsc19ib290LCAzLCAzLCAwLAog ZnVuY3Rpb25zIGFyZSB1c2VkLiAgVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgcmVzb3VyY2VzIHdo aWNoIGNhbiBvbmx5CiBiZSBkZWFsbG9jYXRlZCBieSBjYWxsaW5nIGBnbnV0bHMtZGVpbml0JyBv ciBieSBjYWxsaW5nIGl0IGFnYWluLgogCitUaGUgOnBhc3MgYW5kIDpmbGFncyBrZXlzIGFyZSBp Z25vcmVkIHdpdGggb2xkIHZlcnNpb25zIG9mIEdudVRMUywgYW5kCis6ZmxhZ3MgaXMgaWdub3Jl ZCBpZiA6cGFzcyBpcyBub3Qgc3BlY2lmaWVkLgorCiBUaGUgY2FsbGJhY2tzIGFsaXN0IGNhbiBo YXZlIGEgYHZlcmlmeScga2V5LCBhc3NvY2lhdGVkIHdpdGggYQogdmVyaWZpY2F0aW9uIGZ1bmN0 aW9uIChVTlVTRUQpLgogCkBAIC0xODQ4LDYgKzE5MzMsOCBAQCBERUZVTiAoImdudXRscy1ib290 IiwgRmdudXRsc19ib290LCBTZ251dGxzX2Jvb3QsIDMsIDMsIDAsCiAgIExpc3BfT2JqZWN0IHRy dXN0ZmlsZXM7CiAgIExpc3BfT2JqZWN0IGNybGZpbGVzOwogICBMaXNwX09iamVjdCBrZXlsaXN0 OworICBMaXNwX09iamVjdCBwYXNzOworICBMaXNwX09iamVjdCBmbGFnczsKICAgLyogTGlzcF9P YmplY3QgY2FsbGJhY2tzOyAqLwogICBMaXNwX09iamVjdCBsb2dsZXZlbDsKICAgTGlzcF9PYmpl Y3QgaG9zdG5hbWU7CkBAIC0xODc3LDYgKzE5NjQsOCBAQCBERUZVTiAoImdudXRscy1ib290Iiwg RmdudXRsc19ib290LCBTZ251dGxzX2Jvb3QsIDMsIDMsIDAsCiAgIGNybGZpbGVzICAgICAgICAg ICAgICA9IHBsaXN0X2dldCAocHJvcGxpc3QsIFFDY3JsZmlsZXMpOwogICBsb2dsZXZlbCAgICAg ICAgICAgICAgPSBwbGlzdF9nZXQgKHByb3BsaXN0LCBRQ2xvZ2xldmVsKTsKICAgcHJpbWVfYml0 cyAgICAgICAgICAgID0gcGxpc3RfZ2V0IChwcm9wbGlzdCwgUUNtaW5fcHJpbWVfYml0cyk7Cisg IHBhc3MgICAgICAgICAgICAgICAgICA9IHBsaXN0X2dldCAocHJvcGxpc3QsIFFDcGFzcyk7Cisg IGZsYWdzICAgICAgICAgICAgICAgICA9IHBsaXN0X2dldCAocHJvcGxpc3QsIFFDZmxhZ3MpOwog CiAgIGlmICghU1RSSU5HUCAoaG9zdG5hbWUpKQogICAgIHsKQEAgLTIwMzgsOCArMjEyNywyMiBA QCBERUZVTiAoImdudXRscy1ib290IiwgRmdudXRsc19ib290LCBTZ251dGxzX2Jvb3QsIDMsIDMs IDAsCiAJICAgICAga2V5ZmlsZSA9IGFuc2lfZW5jb2RlX2ZpbGVuYW1lIChrZXlmaWxlKTsKIAkg ICAgICBjZXJ0ZmlsZSA9IGFuc2lfZW5jb2RlX2ZpbGVuYW1lIChjZXJ0ZmlsZSk7CiAjIGVuZGlm CisjIGlmZGVmIEhBVkVfR05VVExTX0NFUlRJRklDQVRFX1NFVF9YNTA5X0tFWV9GSUxFMgorCSAg ICAgIGlmIChTVFJJTkdQIChwYXNzKSkKKwkJcmV0ID0gZ251dGxzX2NlcnRpZmljYXRlX3NldF94 NTA5X2tleV9maWxlMgorCQkgICh4NTA5X2NyZWQsIFNTREFUQSAoY2VydGZpbGUpLCBTU0RBVEEg KGtleWZpbGUpLCBmaWxlX2Zvcm1hdCwKKwkJICAgU1NEQVRBIChwYXNzKSwga2V5X2ZpbGUyX2F1 eCAoZmxhZ3MpKTsKKwkgICAgICBlbHNlIGlmIChOSUxQIChwYXNzKSAmJiBwbGlzdF9tZW1iZXIg KHByb3BsaXN0LCBRQ3Bhc3MpKQorCQlyZXQgPSBnbnV0bHNfY2VydGlmaWNhdGVfc2V0X3g1MDlf a2V5X2ZpbGUyCisJCSAgKHg1MDlfY3JlZCwgU1NEQVRBIChjZXJ0ZmlsZSksIFNTREFUQSAoa2V5 ZmlsZSksIGZpbGVfZm9ybWF0LAorCQkgICBOVUxMLCBrZXlfZmlsZTJfYXV4IChmbGFncykpOwor CSAgICAgIGVsc2UKKwkJcmV0ID0gZ251dGxzX2NlcnRpZmljYXRlX3NldF94NTA5X2tleV9maWxl CisJCSAgKHg1MDlfY3JlZCwgU1NEQVRBIChjZXJ0ZmlsZSksIFNTREFUQSAoa2V5ZmlsZSksIGZp bGVfZm9ybWF0KTsKKyMgZWxzZQogCSAgICAgIHJldCA9IGdudXRsc19jZXJ0aWZpY2F0ZV9zZXRf eDUwOV9rZXlfZmlsZQogCQkoeDUwOV9jcmVkLCBTU0RBVEEgKGNlcnRmaWxlKSwgU1NEQVRBIChr ZXlmaWxlKSwgZmlsZV9mb3JtYXQpOworIyBlbmRpZgogCiAJICAgICAgaWYgKHJldCA8IEdOVVRM U19FX1NVQ0NFU1MpCiAJCXJldHVybiBnbnV0bHNfbWFrZV9lcnJvciAocmV0KTsKQEAgLTI4NjAs NiArMjk2Myw4IEBAIHN5bXNfb2ZfZ251dGxzICh2b2lkKQogICBERUZTWU0gKFFDbWluX3ByaW1l X2JpdHMsICI6bWluLXByaW1lLWJpdHMiKTsKICAgREVGU1lNIChRQ2xvZ2xldmVsLCAiOmxvZ2xl dmVsIik7CiAgIERFRlNZTSAoUUNjb21wbGV0ZV9uZWdvdGlhdGlvbiwgIjpjb21wbGV0ZS1uZWdv dGlhdGlvbiIpOworICBERUZTWU0gKFFDcGFzcywgIjpwYXNzIik7CisgIERFRlNZTSAoUUNmbGFn cywgIjpmbGFncyIpOwogICBERUZTWU0gKFFDdmVyaWZ5X2ZsYWdzLCAiOnZlcmlmeS1mbGFncyIp OwogICBERUZTWU0gKFFDdmVyaWZ5X2Vycm9yLCAiOnZlcmlmeS1lcnJvciIpOwogCi0tIAoyLjM3 LjMKCg== --0000000000006251dc05e9e21fe7--