From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Wed, 04 Aug 2021 16:24:43 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1mBHp5-0000e1-9V for lore@lore.pengutronix.de; Wed, 04 Aug 2021 16:24:43 +0200 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1mBHp4-00081M-Ii; Wed, 04 Aug 2021 16:24:42 +0200 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mBHo1-0007bC-Hs; Wed, 04 Aug 2021 16:23:37 +0200 Received: from rhi by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1mBHo1-00008C-6v; Wed, 04 Aug 2021 16:23:37 +0200 From: Roland Hieber To: ptxdist@pengutronix.de Date: Wed, 4 Aug 2021 16:23:30 +0200 Message-Id: <20210804142330.32739-5-rhi@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210804142330.32739-1-rhi@pengutronix.de> References: <20210804142330.32739-1-rhi@pengutronix.de> MIME-Version: 1.0 Mail-Followup-To: Roland Hieber , ptxdist@pengutronix.de Subject: [ptxdist] [PATCH v1 5/5] ptxd_lib_code_signing: add key whitelist checks X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Roland Hieber Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false U2lnbmVkLW9mZi1ieTogUm9sYW5kIEhpZWJlciA8cmhpQHBlbmd1dHJvbml4LmRlPgotLS0KIGRv Yy9kZXZfY29kZV9zaWduaW5nLnJzdCAgICAgICAgICAgICAgICAgIHwgNjggKysrKysrKysrKysr KysrKysrKysrKysKIHBsYXRmb3Jtcy9jb2RlLXNpZ25pbmcuaW4gICAgICAgICAgICAgICAgIHwg MjIgKysrKysrKysKIHJ1bGVzL3ByZS8wMzAtY29kZS1zaWduaW5nLWNvbnN1bWVycy5tYWtlIHwg IDYgKysKIHNjcmlwdHMvbGliL3B0eGRfbGliX2NvZGVfc2lnbmluZy5zaCAgICAgIHwgNTIgKysr KysrKysrKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTQ3IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2MvZGV2X2NvZGVfc2lnbmluZy5yc3QgYi9kb2MvZGV2 X2NvZGVfc2lnbmluZy5yc3QKaW5kZXggNDEzZjY5NDk4MGViLi5hYWFhYWUwZDkxMDcgMTAwNjQ0 Ci0tLSBhL2RvYy9kZXZfY29kZV9zaWduaW5nLnJzdAorKysgYi9kb2MvZGV2X2NvZGVfc2lnbmlu Zy5yc3QKQEAgLTE3MiwzICsxNzIsNzEgQEAgYWxzbyB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFi bGUuCiAgIChgYD1gYCwgbm90IGBgOj1gYCkuCiAgIE90aGVyd2lzZSB0aGUgdmFyaWFibGUgaXMg ZXhwYW5kZWQgYmVmb3JlIGEgY29kZSBzaWduaW5nIHByb3ZpZGVyIGNhbiBwZXJmb3JtCiAgIGl0 cyBzZXR1cC4KKworS2V5IFdoaXRlbGlzdGluZworfn5+fn5+fn5+fn5+fn5+fgorCitJbiBzb21l IHVzZSBjYXNlcywgaXQgbWF5IGJlIGZlYXNpYmxlIHRvIGRvIGFkZGl0aW9uYWwgY2hlY2tzIHRv IG1ha2Ugc3VyZSB0aGF0CithIHBhY2thZ2UgdXNlcyB0aGUgY29ycmVjdCBrZXkgbWF0ZXJpYWwu CitGb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgaGF2ZSBhICJkZXZlbG9wbWVudCIgY29kZSBzaWdu aW5nIHByb3ZpZGVyIChlLmcuIHdpdGggYQorU29mdEhTTSB3b3JrZmxvdykgd2hpY2ggeW91IHVz ZSB0byBzaWduIHlvdXIgZGV2ZWxvcG1lbnQga2VybmVscywKK2FuZCBhICJyZWxlYXNlIiBwcm92 aWRlciAoZS5nLiBvbiBhIEhTTSkgd2hpY2ggeW91IHVzZSB0byBzaWduIHlvdXIgcmVsZWFzZSBr ZXJuZWxzLAorYW5kIGEgImRldmVsb3BtZW50IiBhbmQgInJlbGVhc2UiIHZhcmlhbnQgb2YgdGhl IGJvb3Rsb2FkZXIgd2hpY2ggb25seSBib290cwora2VybmVscyB0aGF0IGhhdmUgYmVlbiBzaWdu ZWQgd2l0aCB0aGUgcmVzcGVjdGl2ZSBkZXZlbG9wbWVudCBvciByZWxlYXNlIGtleS4KK05vdyB5 b3UgbWlnaHQgd2FudCB0byBwcmV2ZW50IHRoZSAicmVsZWFzZSIgYm9vdGxvYWRlciBmcm9tIGFj Y2lkZW50YWxseSBiZWluZworcHJvdmlkZWQgd2l0aCB0aGUga2V5IGZvciB0aGUgImRldmVsb3Bt ZW50IiBrZXJuZWwg4oCTCitvdGhlcndpc2Ugc29tZW9uZSBjb3VsZCBib290IGEgZGV2ZWxvcG1l bnQga2VybmVsIG9uIGFuIGFjdHVhbCBwcm9kdWN0aW9uCitib2FyZCwgYW5kIHVzZSB0aGUgYWRk aXRpb25hbCBkZWJ1Z2dpbmcgZmVhdHVyZXMgb2YgdGhlIGtlcm5lbCB0byBkbyB0aGluZ3MKK3dp dGggaXQgdGhhdCBpdCB3YXMgbm90IG1lYW50IHRvIGRvLgorCitXaGVuIHRoZSBgYENPREVfU0lH TklOR19SRVFVSVJFX1dISVRFTElTVGBgIGtjb25maWcgc3ltYm9sIGlzIGVuYWJsZWQsCit0aGUg Y29uc3VtZXIgZnVuY3Rpb25zIDpyZWY6YHB0eC9jcy1nZXQtY2FgIGFuZCA6cmVmOmBwdHgvY3Mt Z2V0LXVyaWAKK2xvb2sgdXAgdGhlIHRyaXBsZXQgb2YgcGFja2FnZSBuYW1lLCByb2xlIG5hbWUs IGFuZCB0aGUgcHVia2V5J3MgU0hBMjU2CitmaW5nZXJwcmludCBpbiBhIHdoaXRlbGlzdCwgd2hv c2UgZmlsZSBuYW1lIGlzIGRldGVybWluZWQgYnkgdGhlCitgYENPREVfU0lHTklOR19XSElURUxJ U1RfRklMRU5BTUVgYCBrY29uZmlnIHN5bWJvbCAodGhlIGRlZmF1bHQgcGF0aCBpcworYGBjb25m aWdzL3BsYXRmb3JtLTxuYW1lPi9jb2RlLXNpZ25pbmctd2hpdGVsaXN0YGApLgorSWYgYSBrZXkg b3IgYSBDQSBpcyBub3Qgd2hpdGVsaXN0ZWQgZm9yIHRoZSBwYWNrYWdlIGluIHdoaWNoIGl0IGlz IHRvIGJlIHVzZWQsCit0aGUgZnVuY3Rpb25zIHdpbGwgZXhpdCB3aXRoIGFuIGVycm9yIG1lc3Nh Z2Ugb24gdGhlIHRlcm1pbmFsOjoKKworICAgJCBwdHhkaXN0IC12IHByaW50IEtFUk5FTF9NQUtF X09QVAorICAgcHR4ZGlzdDogZXJyb3I6IFNQS0kgd2hpdGVsaXN0IHJlY29yZCAna2VybmVsIGtl cm5lbC1tb2R1bGVzCisgICA2OUM5QkJCOEJCNERGQUU3NEFCMjFEMDZERkI1RjJDNjcwNjYzNzNB RTU0NTQ1MzI3Njg0NzM0MDgyMkNERjA0JyBub3QgZm91bmQgaW4KKyAgIGRpc3Ryb2tpdC9jb25m aWdzL3BsYXRmb3JtLXY3YS9jb2RlLXNpZ25pbmctd2hpdGVsaXN0CisKKyAgIOKApi9wdHhkaXN0 L3J1bGVzL2tlcm5lbC5tYWtlOjE5NjogKioqIGNzLWdldC11cmk6IHdoaXRlbGlzdCBjaGVjayBm YWlsZWQsIHNlZSBlcnJvcnMgYWJvdmUuICBTdG9wLgorCisKK0lmIGBgQ09ERV9TSUdOSU5HX1JF UVVJUkVfV0hJVEVMSVNUYGAgaXMgZGlzYWJsZWQgKHRoZSBkZWZhdWx0KSwKK2FsbCBrZXlzIGFu ZCBDQXMgYXJlIHByb3ZpZGVkIHRvIGFsbCBwYWNrYWdlcyB3aXRob3V0IGZ1cnRoZXIgY2hlY2tz LgorCitUaGUgZm9ybWF0IG9mIHRoZSBjb2RlIHNpZ25pbmcgd2hpdGVsaXN0IGNvbnNpc3RzIG9m IG9uZSB0cmlwbGV0IHBlciBsaW5lLCBpbgord2hpY2ggdGhlIGVsZW1lbnRzIG9mIHRoZSB0cmlw bGV0IGFyZSBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4KK0lmIGEgQ0EgaXMgdG8gYmUgY2hlY2tl ZCwgdGhlIHJvbGUgbmFtZSBpcyBwcmVmaXhlZCB3aXRoIGEgbGl0ZXJhbCBgYGNhOmBgLgorQWxs IG90aGVyIHVubWF0Y2hlZCBsaW5lcyBpbiB0aGUgZmlsZSBhcmUgaWdub3JlZCwgYnV0IHdlIHN1 Z2dlc3QgdG8gdXNlIGBgI2BgCit0byBzdGFydCBhIGxpbmUgY29tbWVudCBzbyBhcyBub3QgdG8g YWRkIGEgd2hpdGVsaXN0IHJlY29yZCBhY2NpZGVudGFsbHkuCisKK0ZvciBleGFtcGxlLCBoZXJl IGlzIGEgd2hpdGVsaXN0IGZvciB1c2Ugd2l0aCB0aGUgKmRldmVsKiBjb2RlIHByb3ZpZGVyIHdo aWNoCithbGxvd3MgYWxsIHByb3ZpZGVkIGtleXMgdG8gYmUgdXNlZCBieSB0aGVpciByZXNwZWN0 aXZlIGNvbnN1bWVyczo6CisKKyAgICMgZm9ybWF0OiBwYWNrYWdlLW5hbWUgcm9sZS1uYW1lIHNo YTI1Ni1wdWJrZXktZmluZ2VycHJpbnQKKyAgIGtlcm5lbCAgICAgIGtlcm5lbC1tb2R1bGVzIDY5 QzlCQkI4QkI0REZBRTc0QUIyMUQwNkRGQjVGMkM2NzA2NjM3M0FFNTQ1NDUzMjc2ODQ3MzQwODIy Q0RGMDQKKyAgIGltYWdlLXJhdWMgIHVwZGF0ZSAgICAgICAgIDAwMzRGOEZFNUFEQzNCMERGRTY0 MjQwNzI3NUQxNDRERTIzOThDNjhDQzlBODZERDY3MDNENzE1MTExNkI0NEUKKyAgIGltYWdlLXJh dWMgIGNhOnVwZGF0ZSAgICAgIDAwMzRGOEZFNUFEQzNCMERGRTY0MjQwNzI3NUQxNDRERTIzOThD NjhDQzlBODZERDY3MDNENzE1MTExNkI0NEUKKyAgIHJhdWMgICAgICAgIGNhOnVwZGF0ZSAgICAg IDAwMzRGOEZFNUFEQzNCMERGRTY0MjQwNzI3NUQxNDRERTIzOThDNjhDQzlBODZERDY3MDNENzE1 MTExNkI0NEUKKworLi4gbm90ZTo6IFRoZSBtYXRjaCBpcyBjYXNlLXNlbnNpdGl2ZSwgYW5kIHRo ZSBmaW5nZXJwcmludHMgYXJlIGV4cGVjdGVkCisgICBpbiB1cHBlcmNhc2UuCisKKyAgIElmIGEg Q0EgY29uc2lzdHMgb2YgbW9yZSB0aGFuIG9uZSBjZXJ0aWZpY2F0ZSwgYWxsIG9mIHRoZWlyIGZp bmdlcnByaW50cworICAgbXVzdCBiZSB3aGl0ZWxpc3RlZC4KKworWW91IGNhbiBkZXRlcm1pbmUg dGhlIGtleSBmaW5nZXJwcmludHMgYnkgY29weWluZyBpdCBmcm9tIHRoZSBlcnJvciBtZXNzYWdl LAorb3Igd2l0aCB0aGUgYHNwa2ktaGFzaGBfXyB0b29sIGZyb20gdGhlIGBgaG9zdC1leHRyYWN0 LWNlcnRgYCBwYWNrYWdlLAorb3Igd2l0aCBvcGVuc3NsOjoKKworICAgJCBvcGVuc3NsIHBrZXkg LWluIGtleWZpbGUucGVtIC1wdWJvdXQgLW91dGZvcm0gZGVyIFwKKyAgICAgfCBvcGVuc3NsIHNo YTI1NiBcCisgICAgIHwgdHIgJ2EteicgJ0EtWicKKyAgIChTVERJTik9IDY5QzlCQkI4QkI0REZB RTc0QUIyMUQwNkRGQjVGMkM2NzA2NjM3M0FFNTQ1NDUzMjc2ODQ3MzQwODIyQ0RGMDQKKworX18g aHR0cHM6Ly9naXQucGVuZ3V0cm9uaXguZGUvY2dpdC9leHRyYWN0LWNlcnQvdHJlZS9zcGtpLWhh c2guYwpkaWZmIC0tZ2l0IGEvcGxhdGZvcm1zL2NvZGUtc2lnbmluZy5pbiBiL3BsYXRmb3Jtcy9j b2RlLXNpZ25pbmcuaW4KaW5kZXggODFmOWVmNmYzYzllLi45MmY1NTVjN2U5NjUgMTAwNjQ0Ci0t LSBhL3BsYXRmb3Jtcy9jb2RlLXNpZ25pbmcuaW4KKysrIGIvcGxhdGZvcm1zL2NvZGUtc2lnbmlu Zy5pbgpAQCAtMjAsNCArMjAsMjYgQEAgc291cmNlICJnZW5lcmF0ZWQvY29kZV9zaWduaW5nX3By b3ZpZGVyLmluIgogCiBlbmRjaG9pY2UKIAorY29uZmlnIENPREVfU0lHTklOR19SRVFVSVJFX1dI SVRFTElTVEVEX0tFWVMKKwlib29sCisJcHJvbXB0ICJyZXF1aXJlIHdoaXRlbGlzdGVkIGtleXMi CisJaGVscAorCSAgRXZlcnkgdGltZSBhIGtleSBmcm9tIHRoZSBjb2RlIHByb3ZpZGVyIGlzIHVz ZWQsIGNoZWNrIGlmIHRoZSBjb25zdW1lcgorCSAgaXMgYWxsb3dlZCB0byB1c2UgaXQuCisKKwkg IENvZGUgc2lnbmluZyBjb25zdW1lcnMgY2FuIGRlcGVuZCBvbiB0aGlzIG9wdGlvbiBpZiB0aGV5 IHdhbnQgdG8gZm9yY2UKKwkgIHRoZSBrZXkgd2hpdGVsaXN0IGNoZWNrLgorCitpZiBDT0RFX1NJ R05JTkdfUkVRVUlSRV9XSElURUxJU1RFRF9LRVlTCisKK2NvbmZpZyBDT0RFX1NJR05JTkdfV0hJ VEVMSVNUX0ZJTEVOQU1FCisJc3RyaW5nCisJcHJvbXB0ICJ3aGl0ZWxpc3QgZmlsZSBuYW1lIgor CWRlZmF1bHQgImNvZGUtc2lnbmluZy13aGl0ZWxpc3QiCisJaGVscAorCSAgVGhpcyBmaWxlIG5h bWUgaXMgdXNlZCBmb3IgdGhlIGtleSB3aGl0ZWxpc3QuIFRoZSBwYXRoIGlzIHJlbGF0aXZlIHRv CisJICBQVFhESVNUX1BMQVRGT1JNQ09ORklHRElSIChlLmcuIGNvbmZpZ3MvcGxhdGZvcm0tbm5u LykuCisKK2VuZGlmICMgQ09ERV9TSUdOSU5HX1JFUVVJUkVfV0hJVEVMSVNURURfS0VZUworCiBl bmRpZgpkaWZmIC0tZ2l0IGEvcnVsZXMvcHJlLzAzMC1jb2RlLXNpZ25pbmctY29uc3VtZXJzLm1h a2UgYi9ydWxlcy9wcmUvMDMwLWNvZGUtc2lnbmluZy1jb25zdW1lcnMubWFrZQppbmRleCA3MmVl OGU2M2I3YjkuLjQzOWRiNjI2ZGQxNCAxMDA2NDQKLS0tIGEvcnVsZXMvcHJlLzAzMC1jb2RlLXNp Z25pbmctY29uc3VtZXJzLm1ha2UKKysrIGIvcnVsZXMvcHJlLzAzMC1jb2RlLXNpZ25pbmctY29u c3VtZXJzLm1ha2UKQEAgLTI3LDYgKzI3LDkgQEAgcHR4L2NzLWdldC11cmkgPSBcCiAJCQkkKGNh bGwgcHR4L2NzLWNvbnN1bWVyLWVudiwgJCgxKSlcCiAJCQkJY3NfZ2V0X3VyaSAnJChzdHJpcCAk KDIpKSdcCiAJCSlcCisJCSQoaWYgJChmaWx0ZXItb3V0IDAsJCguU0hFTExTVEFUVVMpKSxcCisJ CQkkKGVycm9yIGNzLWdldC11cmk6IHdoaXRlbGlzdCBjaGVjayBmYWlsZWQsIHNlZSBlcnJvcnMg YWJvdmUpXAorCQkpXAogCSkKIAogIwpAQCAtMzgsNCArNDEsNyBAQCBwdHgvY3MtZ2V0LWNhID0g XAogCQkJJChjYWxsIHB0eC9jcy1jb25zdW1lci1lbnYsICQoMSkpXAogCQkJCWNzX2dldF9jYSAn JChzdHJpcCAkKDIpKSdcCiAJCSlcCisJCSQoaWYgJChmaWx0ZXItb3V0IDAsJCguU0hFTExTVEFU VVMpKSxcCisJCQkkKGVycm9yIGNzLWdldC1jYTogd2hpdGVsaXN0IGNoZWNrIGZhaWxlZCwgc2Vl IGVycm9ycyBhYm92ZSlcCisJCSlcCiAJKQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9saWIvcHR4ZF9s aWJfY29kZV9zaWduaW5nLnNoIGIvc2NyaXB0cy9saWIvcHR4ZF9saWJfY29kZV9zaWduaW5nLnNo CmluZGV4IDI0NzMwZDNjZjc0Mi4uMzMyYmFiMjJlN2M4IDEwMDY0NAotLS0gYS9zY3JpcHRzL2xp Yi9wdHhkX2xpYl9jb2RlX3NpZ25pbmcuc2gKKysrIGIvc2NyaXB0cy9saWIvcHR4ZF9saWJfY29k ZV9zaWduaW5nLnNoCkBAIC0xLDYgKzEsNyBAQAogIyEvYmluL2Jhc2gKICMKICMgQ29weXJpZ2h0 IChDKSAyMDE5IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KKyMgQ29weXJp Z2h0IChDKSAyMDIwIEphbiBMdWViYmUgPGoubHVlYmJlQHBlbmd1dHJvbml4LmRlPgogIyBDb3B5 cmlnaHQgKEMpIDIwMjEgUm9sYW5kIEhpZWJlciwgUGVuZ3V0cm9uaXggPHJoaUBwZW5ndXRyb25p eC5kZT4KICMKICMgRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFBUWGRpc3QgcHJv amVjdCBhbmQgbGljZW5zZSBjb25kaXRpb25zCkBAIC03MCw2ICs3MSw3IEBAIGNzX2luaXRfdmFy aWFibGVzKCkgewogICAgIHN5c3Jvb3Q9IiQocHR4ZF9nZXRfcHR4Y29uZiBQVFhDT05GX1NZU1JP T1RfSE9TVCkiCiAgICAga2V5cHJvdmlkZXI9IiQocHR4ZF9nZXRfcHR4Y29uZiBQVFhDT05GX0NP REVfU0lHTklOR19QUk9WSURFUikiCiAgICAga2V5ZGlyPSIke3N5c3Jvb3R9L3Zhci9saWIva2V5 cy8ke2tleXByb3ZpZGVyfSIKKyAgICB3aGl0ZWxpc3Q9IiQocHR4ZF9nZXRfcHR4Y29uZiBQVFhD T05GX0NPREVfU0lHTklOR19XSElURUxJU1RfRklMRU5BTUUgfHwgdHJ1ZSkiCiB9CiBleHBvcnQg LWYgY3NfaW5pdF92YXJpYWJsZXMKIApAQCAtMTU3LDYgKzE1OSw0MCBAQCBjc19ncm91cF9nZXRf cm9sZXMoKSB7CiB9CiBleHBvcnQgLWYgY3NfZ3JvdXBfZ2V0X3JvbGVzCiAKKyMKKyMgY3NfY2hl Y2tfd2hpdGVsaXN0ZWQgPHJvbGU+IDx1cmkvcGVtIG9yIGZpbmdlcnByaW50IHByZWZpeGVkIHdp dGggInNoYTI1NjoiPgorIworIyBDaGVja3MgaWYgdGhlIFNQS0kgKFN1YmplY3QgUHVibGljIEtl eSBJbmZvKSBIYXNoIGlzIGluIHRoZSB3aGl0ZWxpc3QKKyMKK2NzX2NoZWNrX3doaXRlbGlzdGVk KCkgeworICAgIGxvY2FsIHJvbGU9IiR7MTotRVJST1JfUk9MRV9JU19FTVBUWX0iCisgICAgbG9j YWwgc3JjPSIkezJ9IgorCisgICAgaWYgWyAiJChwdHhkX2dldF9wdHhjb25mIFBUWENPTkZfQ09E RV9TSUdOSU5HX1JFUVVJUkVfV0hJVEVMSVNURURfS0VZUykiICE9ICJ5IiBdOyB0aGVuCisJcmV0 dXJuCisgICAgZmkKKworICAgIGlmICEgcHR4ZF9pbl9wYXRoIFBUWERJU1RfUEFUSF9QTEFURk9S TUNPTkZJR0RJUiAiJHt3aGl0ZWxpc3R9IjsgdGhlbgorCXB0eGRfYmFpbG91dCAiJHtwa2dfbmFt ZX06IFNQS0kgaGFzaCB3aGl0ZWxpc3QgY2hlY2sgZm9yICR7cm9sZX0gKCR7c3JjfSkgaXMgcmVx dWlyZWQsIGJ1dCBjb25maWdzLzxwbGF0Zm9ybT4vJHt3aGl0ZWxpc3R9IGlzIG1pc3NpbmcuIgor ICAgIGZpCisgICAgbG9jYWwgd2hpdGVsaXN0X3BhdGg9IiR7cHR4ZF9yZXBseX0iCisKKyAgICBs b2NhbCBoYXNoCisgICAgaWYgWyAiJHtzcmMjc2hhMjU2On0iICE9ICIke3NyY30iIF07IHRoZW4K KwloYXNoPSIke3NyYyNzaGEyNTY6fSIKKyAgICBlbHNlCisJaGFzaD0kKHB0eGRfZXhlY19zaWxl bnRfc3RkZXJyIHNwa2ktaGFzaCAiJHtzcmN9IikKKyAgICBmaQorICAgIGhhc2g9JHtoYXNoOi1F UlJPUl9IQVNIX0lTX0VNUFRZfQorICAgIG5lZWRsZT0iJHtwa2dfbmFtZX1cc1wrJHtyb2xlfVxz XCske2hhc2h9IgorCisgICAgaWYgISBncmVwIC1xIC0tbGluZS1yZWdleHAgIiR7bmVlZGxlfSIg IiR7d2hpdGVsaXN0X3BhdGh9IjsgdGhlbgorCWVjaG8gRVJST1JfS0VZX05PVF9XSElURUxJU1RF RAorCXB0eGRfYmFpbG91dCAiU1BLSSB3aGl0ZWxpc3QgcmVjb3JkICcke3BrZ19uYW1lfSAke3Jv bGV9ICR7aGFzaH0nIG5vdCBmb3VuZCBpbiAkKHB0eGRfcHJpbnRfcGF0aCAiJHt3aGl0ZWxpc3Rf cGF0aH0iKSIKKyAgICBmaQorfQorZXhwb3J0IC1mIGNzX2NoZWNrX3doaXRlbGlzdGVkCisKICMK ICMgY3Nfc2V0X3VyaSA8cm9sZT4gPHVyaT4KICMKQEAgLTE5OCw3ICsyMzQsMTIgQEAgY3NfZ2V0 X3VyaSgpIHsKIAkgICAgcmV0dXJuCiAJZmkKICAgICBmaQotICAgIGNhdCAiJHtrZXlkaXJ9LyR7 cm9sZX0vdXJpIgorCisgICAgbG9jYWwgdXJpPSQoY2F0ICIke2tleWRpcn0vJHtyb2xlfS91cmki KQorICAgIGlmIFsgLXogIiR7Y3Nfbm9fd2hpdGVsaXN0X2NoZWNrfSIgXTsgdGhlbgorCWNzX2No ZWNrX3doaXRlbGlzdGVkICIke3JvbGV9IiAiJHt1cml9IgorICAgIGZpCisgICAgZWNobyAiJHt1 cml9IgogfQogZXhwb3J0IC1mIGNzX2dldF91cmkKIApAQCAtMzIxLDYgKzM2Miw5IEBAIGNzX2dl dF9jYSgpIHsKICAgICBmaQogCiAgICAgaWYgWyAtZSAiJHtjYX0iIF07IHRoZW4KKwl3aGlsZSBy ZWFkIGZwOyBkbworCSAgICBjc19jaGVja193aGl0ZWxpc3RlZCAiY2E6JHtyb2xlfSIgInNoYTI1 Njoke2ZwfSIKKwlkb25lIDwgIiR7a2V5ZGlyfS8ke3JvbGV9L2NhLmZpbmdlcnByaW50cyIKIAll Y2hvICIke2NhfSIKICAgICBmaQogfQpAQCAtMzM5LDYgKzM4Myw5IEBAIGNzX2FwcGVuZF9jYV9m cm9tX3BlbSgpIHsKICAgICBjYXQgIiR7cGVtfSIgPj4gIiR7a2V5ZGlyfS8ke3JvbGV9L2NhLnBl bSIKICAgICAjIGFkZCBuZXcgbGluZSBpbiBjYXNlICR7cGVtfSBkb2VzIG5vdCBlbmQgd2l0aCBh biBFT0wKICAgICBlY2hvID4+ICIke2tleWRpcn0vJHtyb2xlfS9jYS5wZW0iCisKKyAgICBvcGVu c3NsIHg1MDkgLWluICIke3BlbX0iIC1pbmZvcm0gcGVtIC1ub291dCAtcHVia2V5IHwgXAorCXNw a2ktaGFzaCAvZGV2L3N0ZGluID4+ICIke2tleWRpcn0vJHtyb2xlfS9jYS5maW5nZXJwcmludHMi CiB9CiBleHBvcnQgLWYgY3NfYXBwZW5kX2NhX2Zyb21fcGVtCiAKQEAgLTM3MCw3ICs0MTcsMTAg QEAgY3NfYXBwZW5kX2NhX2Zyb21fdXJpKCkgewogICAgIGNzX2luaXRfdmFyaWFibGVzCiAKICAg ICBpZiBbIC16ICIke3VyaX0iIF07IHRoZW4KKwkjIGNzX2FwcGVuZF9jYV9mcm9tX2RlciB3aWxs IGNoZWNrIHRoaXMgbGF0ZXIKKwlsb2NhbCBjc19ub193aGl0ZWxpc3RfY2hlY2s9MQogCXVyaT0k KGNzX2dldF91cmkgIiR7cm9sZX0iKQorCXVuc2V0IGNzX25vX3doaXRlbGlzdF9jaGVjawogICAg IGZpCiAKICAgICBwdHhkX2V4ZWMgZXh0cmFjdC1jZXJ0ICIke3VyaX0iICIke3RtcGRpcn0vY2Eu ZGVyIiAmJgotLSAKMi4zMC4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KcHR4ZGlzdCBtYWlsaW5nIGxpc3QKcHR4ZGlzdEBwZW5ndXRyb25peC5kZQpU byB1bnN1YnNjcmliZSwgc2VuZCBhIG1haWwgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIgdG8g cHR4ZGlzdC1yZXF1ZXN0QHBlbmd1dHJvbml4LmRlCg==