From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BD867CAC5A7 for ; Mon, 22 Sep 2025 09:34:50 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v0cry-0001Rt-B8; Mon, 22 Sep 2025 05:30:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v0cru-0001QY-Ff for grub-devel@gnu.org; Mon, 22 Sep 2025 05:29:59 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v0cri-0007Qu-9Z for grub-devel@gnu.org; Mon, 22 Sep 2025 05:29:57 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58M65HVV009502; Mon, 22 Sep 2025 09:29:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=tvrEOx 6WXIKrxKnIPgUx6xHrgQX+Hd/oHJJflNY4AvQ=; b=SlABScAXK+TWAm8Euu5qkH ZPbBiVROVOUdD4HP+wqQ/7KtJXV6X1lvcIC1uAAl4uuSmSzz59PLOa23V5LLOT3B TMykQzFLN/CRu6FN8U6ZP1H5HvB9BWqzFwSwaHCmNAMVFfae8lvQUEoMRsd1Q43s nAfs7xJ1QoAZ/x1RHKy4rbVrb9EIgmHqtTsReTGWWwsYYCMXMSB646n1PJfqdFkw gZeROiuM5EgooNycA5S79cjlmvysreMb6dRqxFcWEWN5D0HlEBjrKvJuCL1Zj3Ks +eq4qXdg/C0N23pRO27ZaoPXa3bct3Ap/3vcY4p7rnhQzflbpK9kAWAc+ddIIqGQ == Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 499jpk1kjx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Sep 2025 09:29:42 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58M7m1vH029540; Mon, 22 Sep 2025 09:29:41 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49a6krnn6j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Sep 2025 09:29:41 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58M9Tcp662128590 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Sep 2025 09:29:38 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 046102004E; Mon, 22 Sep 2025 09:29:38 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 436DC20043; Mon, 22 Sep 2025 09:29:35 +0000 (GMT) Received: from localhost.localdomain (unknown [9.124.218.27]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 22 Sep 2025 09:29:35 +0000 (GMT) From: Sudhakar Kuppusamy To: grub-devel@gnu.org Cc: dja@axtens.net, jan.setjeeilers@oracle.com, julian.klode@canonical.com, mate.kukri@canonical.com, pjones@redhat.com, msuchanek@suse.com, mlewando@redhat.com, stefanb@linux.ibm.com, avnish@linux.ibm.com, nayna@linux.ibm.com, ssrish@linux.ibm.com, Sudhakar Kuppusamy , sridharm@linux.ibm.com, Daniel Kiper Subject: [PATCH v12 15/22] appended signatures: GRUB commands to manage the certificates Date: Mon, 22 Sep 2025 14:57:56 +0530 Message-ID: <20250922092814.39630-16-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250922092814.39630-1-sudhakar@linux.ibm.com> References: <20250922092814.39630-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=L50dQ/T8 c=1 sm=1 tr=0 ts=68d11706 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=JuTF4qcAAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=whMUrVYoL-Kk2JtUh_oA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=WlT8qwTXB_Kj6um4hl3b:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTIwMDAxMCBTYWx0ZWRfXy98gDl3Fs27+ YksjNuB8cnvg3k8D1bJww0on4SJu16qneJF5rMz0SKjzriBoNtNC7jeVImc7i5U6eqDj0kRVmrB h2ag5SIBL7f/9NO2dmzPzaKGJYYptQAqGVan0cLOv25UIjUytSagcEVZ4dRqL0O8XYgHoGn3BtH f1gN1AcHztHmggaqXk9aI7X3oZJYiZ8HwJJ3KD5PB+wWvdP9IwGr1hC0CpgEQm+trdhURdo2+jV bl651KzLcyeG9fFgnHkjPLMAk/bwZ8crkmdGTwtL9zdSg4OPTYBgfya0FTvbPNCZsgeBmezXQAs 7HDK8SIvA3S+PRapEhCummlFejbTFhfKGOHRgndRe+wIjbrn9KkBT8fqAo7QB31yLy0ekTKiGQp C/YqLEu+ X-Proofpoint-ORIG-GUID: S_vvKSMSGdYC9CSkLE2KL4O5XFdwAxBs X-Proofpoint-GUID: S_vvKSMSGdYC9CSkLE2KL4O5XFdwAxBs X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-22_01,2025-09-19_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 phishscore=0 impostorscore=0 spamscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509200010 Received-SPF: pass client-ip=148.163.158.5; envelope-from=sudhakar@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org SW50cm9kdWNpbmcgdGhlIGZvbGxvd2luZyBHUlVCIGNvbW1hbmRzIHRvIG1hbmFnZSB0aGUgY2Vy dGlmaWNhdGVzLgoKIDEuIGFwcGVuZF9saXN0X2RiOgogICAgICBTaG93IHRoZSBsaXN0IG9mIHRy dXN0ZWQgY2VydGlmaWNhdGVzIGZyb20gdGhlIGRiIGxpc3QKIDIuIGFwcGVuZF9hZGRfZGJfY2Vy dDoKICAgICAgQWRkIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHRvIHRoZSBkYiBsaXN0CiAzLiBh cHBlbmRfYWRkX2RieF9jZXJ0OgogICAgICBBZGQgdGhlIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUg dG8gdGhlIGRieCBsaXN0CiA0LiBhcHBlbmRfdmVyaWZ5OgogICAgICBWZXJpZnkgdGhlIHNpZ25l ZCBmaWxlIHVzaW5nIGRiIGxpc3QKCk5vdGUgdGhhdCBpZiBzaWduYXR1cmUgdmVyaWZpY2F0aW9u IChjaGVja19hcHBlbmRlZF9zaWduYXR1cmUpIGlzIHNldCB0byBlbmZvcmNlLAp0aGUgYXBwZW5k X2FkZF9kYl9jZXJ0IGFuZCBhcHBlbmRfYWRkX2RieF9jZXJ0IGNvbW1hbmRzIG9ubHkgYWNjZXB0 IHRoZQpmaWxlIOKAmFg1MDlfY2VydGlmaWNhdGXigJkgdGhhdCBpcyBzaWduZWQgd2l0aCBhbiBh cHBlbmRlZCBzaWduYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0 ZW5zLm5ldD4KU2lnbmVkLW9mZi1ieTogU3VkaGFrYXIgS3VwcHVzYW15IDxzdWRoYWthckBsaW51 eC5pYm0uY29tPgpSZXZpZXdlZC1ieTogQXZuaXNoIENob3VoYW4gPGF2bmlzaEBsaW51eC5pYm0u Y29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4K LS0tCiBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYyB8IDMxOSAr KysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzE5IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYyBi L2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jCmluZGV4IDYyNzlh YTZkNS4uNDQ0MTJhNjE0IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRz aWcvYXBwZW5kZWRzaWcuYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBw ZW5kZWRzaWcuYwpAQCAtMTIyLDYgKzEyMiw5IEBAIHN0YXRpYyBib29sIGFwcGVuZF9rZXlfbWdt dCA9IGZhbHNlOwogLyogUGxhdGZvcm0gS2V5U3RvcmUgZGIgYW5kIGRieC4gKi8KIHN0YXRpYyBn cnViX3Brc190ICpwa3Nfa2V5c3RvcmU7CiAKKy8qIEFwcGVuZGVkIHNpZ25hdHVyZSBzaXplLiAq Lworc3RhdGljIGdydWJfc2l6ZV90IGFwcGVuZF9zaWdfbGVuID0gMDsKKwogc3RhdGljIGdydWJf c3NpemVfdAogcHNldWRvX3JlYWQgKHN0cnVjdCBncnViX2ZpbGUgKmZpbGUsIGNoYXIgKmJ1Ziwg Z3J1Yl9zaXplX3QgbGVuKQogewpAQCAtMTM1LDYgKzEzOCw2NCBAQCBzdGF0aWMgc3RydWN0IGdy dWJfZnMgcHNldWRvX2ZzID0gewogICAuZnNfcmVhZCA9IHBzZXVkb19yZWFkCiB9OwogCisvKgor ICogV2UgY2Fubm90IHVzZSBoZXhkdW1wKCkgdG8gZGlzcGxheSBoYXNoIGRhdGEgYmVjYXVzZSBp dCBpcyB0eXBpY2FsbHkKKyAqIGRpc3BsYXllZCBpbiBoZXhhZGVjaW1hbCBmb3JtYXQsIGFsb25n IHdpdGggYW4gQVNDSUkgcmVwcmVzZW50YXRpb24gb2YKKyAqIHRoZSBzYW1lIGRhdGEuCisgKiBF eGFtcGxlOiBzaGEyNTYgaGFzaCBkYXRhCisgKiAwMDAwMDAwMCAgNTIgYjUgOTAgNDkgNjQgZGUg MjIgZDcgIDRlIDVmIDRmIGI0IDFiIDUxIDljIDM0ICB8Ui4uSWQuIi5OX08uLlEuNHwKKyAqIDAw MDAwMDEwICBiMSA5NiAyMSA3YyA5MSA3OCBhNSAwZCAgMjAgOGMgZTkgNWMgMjIgNTQgNTMgZjcg IHwuLiF8LnguLiAuLlwiVFMufAorICoKKyAqIEFuIGFwcGVuZGVkIHNpZ25hdHVyZSBvbmx5IHJl cXVpcmVkIHRvIGRpc3BsYXkgdGhlIGhleGFkZWNpbWFsIG9mIHRoZSBoYXNoIGRhdGEKKyAqIGJ5 IHNlcGFyYXRpbmcgZWFjaCBieXRlIHdpdGggIjoiLiBTbywgd2UgaW50cm9kdWNlZCBhIG5ldyBt ZXRob2QgaGV4ZHVtcF9jb2xvbgorICogdG8gZGlzcGxheSBpdC4KKyAqIEV4YW1wbGU6IFNoYTI1 NiBoYXNoIGRhdGEKKyAqICA1MjpiNTo5MDo0OTo2NDpkZToyMjpkNzo0ZTo1Zjo0ZjpiNDoxYjo1 MTo5YzozNDoKKyAqICBiMTo5NjoyMTo3Yzo5MTo3ODphNTowZDoyMDo4YzplOTo1YzoyMjo1NDo1 MzpmNworICovCitzdGF0aWMgdm9pZAoraGV4ZHVtcF9jb2xvbiAoY29uc3QgZ3J1Yl91aW50OF90 ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBsZW5ndGgpCit7CisgIGdydWJfc2l6ZV90IGksIGNv dW50ID0gMDsKKworICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgaSsrKQorICAgIHsKKyAg ICAgIGdydWJfcHJpbnRmICgiJTAyeDoiLCBkYXRhW2ldKTsKKyAgICAgIGNvdW50Kys7CisgICAg ICBpZiAoY291bnQgPT0gMTYpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50ZiAoIlxu ICAgICAgICAgIik7CisgICAgICAgICAgY291bnQgPSAwOworICAgICAgICB9CisgICAgfQorCisg IGdydWJfcHJpbnRmICgiJTAyeFxuIiwgZGF0YVtpXSk7Cit9CisKK3N0YXRpYyB2b2lkCitwcmlu dF9jZXJ0aWZpY2F0ZSAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydCwgY29uc3QgZ3J1Yl91 aW50MzJfdCBjZXJ0X251bSkKK3sKKyAgZ3J1Yl91aW50MzJfdCBpOworCisgIGdydWJfcHJpbnRm ICgiXG5DZXJ0aWZpY2F0ZTogJXVcbiIsIGNlcnRfbnVtKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAg RGF0YTpcbiIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgVmVyc2lvbjogJXUgKDB4JXUpXG4i LCBjZXJ0LT52ZXJzaW9uICsgMSwgY2VydC0+dmVyc2lvbik7CisgIGdydWJfcHJpbnRmICgiICAg ICAgICBTZXJpYWwgTnVtYmVyOlxuICAgICAgICAgICAgICIpOworCisgIGZvciAoaSA9IDA7IGkg PCBjZXJ0LT5zZXJpYWxfbGVuIC0gMTsgaSsrKQorICAgIGdydWJfcHJpbnRmICgiJTAyeDoiLCBj ZXJ0LT5zZXJpYWxbaV0pOworCisgIGdydWJfcHJpbnRmICgiJTAyeFxuIiwgY2VydC0+c2VyaWFs W2NlcnQtPnNlcmlhbF9sZW4gLSAxXSk7CisgIGdydWJfcHJpbnRmICgiICAgICAgICBJc3N1ZXI6 ICVzXG4iLCBjZXJ0LT5pc3N1ZXIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgU3ViamVjdDog JXNcbiIsIGNlcnQtPnN1YmplY3QpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgU3ViamVjdCBQ dWJsaWMgS2V5IEluZm86XG4iKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgICAgICAgICBQdWJsaWMg S2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvblxuIik7CisgIGdydWJfcHJpbnRmICgiICAgICAg ICAgICAgICAgIFJTQSBQdWJsaWMtS2V5OiAoJWQgYml0KVxuIiwgY2VydC0+bW9kdWx1c19zaXpl KTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgRmluZ2VycHJpbnQ6IHNoYTI1NlxuICAgICAgICAgIik7 CisgIGhleGR1bXBfY29sb24gKCZjZXJ0LT5maW5nZXJwcmludFtHUlVCX0ZJTkdFUlBSSU5UX1NI QTI1Nl1bMF0sCisgICAgICAgICAgICAgICAgIGdydWJfc3RybGVuICgoY2hhciAqKSBjZXJ0LT5m aW5nZXJwcmludFtHUlVCX0ZJTkdFUlBSSU5UX1NIQTI1Nl0pKTsKK30KKwogLyoKICAqIEdVSUQg Y2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBoYXNoaW5nIGZ1bmN0aW9uIGFuZAogICogZ2Vu ZXJhdGUgdGhlIGhhc2ggdXNpbmcgZGV0ZXJtaW5lZCBoYXNoaW5nIGZ1bmN0aW9uLgpAQCAtNDMw LDYgKzQ5MSw2MSBAQCBhZGRfY2VydGlmaWNhdGUgKGNvbnN0IGdydWJfdWludDhfdCAqZGF0YSwg Y29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplLAogICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyB2 b2lkCitfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydCkK K3sKKyAgZ3J1Yl91aW50MzJfdCBpID0gMTsKKyAgZ3J1Yl94NTA5X2NlcnRfdCAqY3Vycl9jZXJ0 LCAqcHJldl9jZXJ0OworCisgIGZvciAoY3Vycl9jZXJ0ID0gcHJldl9jZXJ0ID0gZGIuY2VydHM7 IGN1cnJfY2VydCAhPSBOVUxMOyBjdXJyX2NlcnQgPSBjdXJyX2NlcnQtPm5leHQsIGkrKykKKyAg ICB7CisgICAgICBpZiAoaXNfY2VydF9tYXRjaCAoY3Vycl9jZXJ0LCBjZXJ0KSA9PSB0cnVlKQor ICAgICAgICB7CisgICAgICAgICAgaWYgKGkgPT0gMSkgLyogTWF0Y2ggd2l0aCBmaXJzdCBjZXJ0 aWZpY2F0ZSBpbiB0aGUgZGIgbGlzdC4gKi8KKyAgICAgICAgICAgIGRiLmNlcnRzID0gY3Vycl9j ZXJ0LT5uZXh0OworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByZXZfY2VydC0+bmV4dCA9 IGN1cnJfY2VydC0+bmV4dDsKKworICAgICAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2ln IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZW1vdmVkIGRpc3RydXN0ZWQgY2VydGlmaWNh dGUgd2l0aCBDTjogJXMgZnJvbSB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgIGN1cnJfY2VydC0+c3ViamVjdCk7CisgICAgICAgICAgY3Vycl9jZXJ0LT5uZXh0ID0gTlVM TDsKKyAgICAgICAgICBncnViX3g1MDlfY2VydF9yZWxlYXNlIChjdXJyX2NlcnQpOworICAgICAg ICAgIGdydWJfZnJlZSAoY3Vycl9jZXJ0KTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor ICAgICAgZWxzZQorICAgICAgICBwcmV2X2NlcnQgPSBjdXJyX2NlcnQ7CisgICAgfQorfQorCitz dGF0aWMgZ3J1Yl9lcnJfdAorcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1Yl91aW50OF90 ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3NpemUpCit7CisgIGdydWJfZXJyX3QgcmM7 CisgIGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQ7CisKKyAgaWYgKGRhdGEgPT0gTlVMTCB8fCBkYXRh X3NpemUgPT0gMCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfT1VUX09GX1JBTkdF LCAiY2VydGlmaWNhdGUgZGF0YSBvciBzaXplIGlzIG5vdCBhdmFpbGFibGUiKTsKKworICBjZXJ0 ID0gZ3J1Yl96YWxsb2MgKHNpemVvZiAoZ3J1Yl94NTA5X2NlcnRfdCkpOworICBpZiAoY2VydCA9 PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZLCAi b3V0IG9mIG1lbW9yeSIpOworCisgIHJjID0gZ3J1Yl94NTA5X2NlcnRfcGFyc2UgKGRhdGEsIGRh dGFfc2l6ZSwgY2VydCk7CisgIGlmIChyYyAhPSBHUlVCX0VSUl9OT05FKQorICAgIHsKKyAgICAg IGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgImNhbm5vdCByZW1vdmUgYW4gaW52YWxpZCBj ZXJ0aWZpY2F0ZSBmcm9tIHRoZSBkYiBsaXN0XG4iKTsKKyAgICAgIGdydWJfZnJlZSAoY2VydCk7 CisgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgIC8qIFJlbW92ZSBjZXJ0aWZpY2F0ZSBmcm9t IHRoZSBkYiBsaXN0LiAqLworICBfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY2VydCk7CisKKyAgcmV0 dXJuIHJjOworfQorCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZmlsZV9yZWFkX3dob2xlIChncnViX2Zp bGVfdCBmaWxlLCBncnViX3VpbnQ4X3QgKipidWYsIGdydWJfc2l6ZV90ICpsZW4pCiB7CkBAIC02 NTAsNiArNzY2LDcgQEAgZ3J1Yl92ZXJpZnlfYXBwZW5kZWRfc2lnbmF0dXJlIChjb25zdCBncnVi X3VpbnQ4X3QgKmJ1ZiwgZ3J1Yl9zaXplX3QgYnVmc2l6ZSkKICAgaWYgKGVyciAhPSBHUlVCX0VS Ul9OT05FKQogICAgIHJldHVybiBlcnI7CiAKKyAgYXBwZW5kX3NpZ19sZW4gPSBzaWcuc2lnbmF0 dXJlX2xlbjsKICAgZGF0YXNpemUgPSBidWZzaXplIC0gc2lnLnNpZ25hdHVyZV9sZW47CiAKICAg LyoKQEAgLTcxNiw2ICs4MzMsMTkzIEBAIGdydWJfdmVyaWZ5X2FwcGVuZGVkX3NpZ25hdHVyZSAo Y29uc3QgZ3J1Yl91aW50OF90ICpidWYsIGdydWJfc2l6ZV90IGJ1ZnNpemUpCiAgIHJldHVybiBl cnI7CiB9CiAKK3N0YXRpYyBncnViX2Vycl90CitncnViX2NtZF92ZXJpZnlfc2lnbmF0dXJlIChn cnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBpbnQgYXJnYywgY2hh ciAqKmFyZ3MpCit7CisgIGdydWJfZmlsZV90IHNpZ25lZF9maWxlOworICBncnViX2Vycl90IGVy cjsKKyAgZ3J1Yl91aW50OF90ICpzaWduZWRfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IHNp Z25lZF9kYXRhX3NpemUgPSAwOworCisgIGlmIChhcmdjICE9IDEpCisgICAgcmV0dXJuIGdydWJf ZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgImEg c2lnbmVkIGZpbGUgaXMgZXhwZWN0ZWRcbkV4YW1wbGU6XG5cdGFwcGVuZF92ZXJpZnkgPFNJR05F RCBGSUxFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJnc1swXSkpCisgICAgcmV0dXJu IGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3Npbmcgc2lnbmVkIGZpbGUi KTsKKworICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ2ZXJpZnlpbmcgJXNcbiIsIGFy Z3NbMF0pOworCisgIHNpZ25lZF9maWxlID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sIEdSVUJf RklMRV9UWVBFX1ZFUklGWV9TSUdOQVRVUkUpOworICBpZiAoc2lnbmVkX2ZpbGUgPT0gTlVMTCkK KyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfRklMRV9OT1RfRk9VTkQsICJjb3VsZCBu b3Qgb3BlbiAlcyBmaWxlIiwgYXJnc1swXSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChz aWduZWRfZmlsZSwgJnNpZ25lZF9kYXRhLCAmc2lnbmVkX2RhdGFfc2l6ZSk7CisgIGlmIChlcnIg PT0gR1JVQl9FUlJfTk9ORSkKKyAgICBlcnIgPSBncnViX3ZlcmlmeV9hcHBlbmRlZF9zaWduYXR1 cmUgKHNpZ25lZF9kYXRhLCBzaWduZWRfZGF0YV9zaXplKTsKKworICBncnViX2ZpbGVfY2xvc2Ug KHNpZ25lZF9maWxlKTsKKyAgZ3J1Yl9mcmVlIChzaWduZWRfZGF0YSk7CisKKyAgcmV0dXJuIGVy cjsKK30KKworLyoKKyAqIENoZWNrcyB0aGUgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBhZ2FpbnN0IGRi eCBsaXN0IGlmIGR5bmFtaWMga2V5IG1hbmFnZW1lbnQgaXMgZW5hYmxlZC4KKyAqIEFuZCBhZGQg aXQgdG8gdGhlIGRiIGxpc3QgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudC4KKyAqIE5vdGU6 LSBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwgdGhpcyBjb21tYW5kIG9u bHkgYWNjZXB0cyB0aGUKKyAqIHRydXN0ZWQgY2VydGlmaWNhdGUgdGhhdCBpcyBzaWduZWQgd2l0 aCBhbiBhcHBlbmRlZCBzaWduYXR1cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlzIHZlcmlmaWVkIGJ5 IHRoZSBhcHBlbmRlZHNpZyBtb2R1bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNjZWVkcywKKyAqIHRo ZSBjZXJ0aWZpY2F0ZSBpcyBhZGRlZCB0byB0aGUgZGIgbGlzdC4gT3RoZXJ3aXNlLCBhbiBlcnJv ciBpcyBwb3N0ZWQgYW5kCisgKiB0aGUgY2VydGlmaWNhdGUgaXMgbm90IGFkZGVkLgorICogV2hl biBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGRpc2FibGVkLCBpdCBhY2NlcHRzIHRoZSB0cnVz dGVkIGNlcnRpZmljYXRlIHdpdGhvdXQKKyAqIGFuIGFwcGVuZGVkIHNpZ25hdHVyZSBhbmQgYWRk IGl0IHRvIHRoZSBkYiBsaXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgYWRkaW5nIG9m IHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHVzaW5nIHRoaXMgY29tbWFuZCBkb2VzCisgKiBub3Qg cGVyc2lzdCBhY3Jvc3MgcmVib290cy4KKyAqLworc3RhdGljIGdydWJfZXJyX3QKK2dydWJfY21k X2RiX2NlcnQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGlu dCBhcmdjLCBjaGFyICoqYXJncykKK3sKKyAgZ3J1Yl9lcnJfdCBlcnI7CisgIGdydWJfZmlsZV90 IGNlcnRfZmlsZTsKKyAgZ3J1Yl91aW50OF90ICpjZXJ0X2RhdGEgPSBOVUxMOworICBncnViX3Np emVfdCBjZXJ0X2RhdGFfc2l6ZSA9IDA7CisKKyAgaWYgKGFyZ2MgIT0gMSkKKyAgICByZXR1cm4g Z3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0FSR1VNRU5ULAorICAgICAgICAgICAgICAgICAgICAg ICAiYSB0cnVzdGVkIFguNTA5IGNlcnRpZmljYXRlIGZpbGUgaXMgZXhwZWN0ZWQgaW4gREVSIGZv cm1hdFxuIgorICAgICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBwZW5kX2FkZF9k Yl9jZXJ0IDxYNTA5X0NFUlRJRklDQVRFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJn c1swXSkpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1p c3NpbmcgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIik7CisKKyAgY2VydF9maWxlID0g Z3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH UlVCX0ZJTEVfVFlQRV9DRVJUSUZJQ0FURV9UUlVTVCB8IEdSVUJfRklMRV9UWVBFX05PX0RFQ09N UFJFU1MpOworICBpZiAoY2VydF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3Ig KEdSVUJfRVJSX0JBRF9GSUxFX1RZUEUsICJjb3VsZCBub3Qgb3BlbiAlcyBmaWxlIiwgYXJnc1sw XSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChjZXJ0X2ZpbGUsICZjZXJ0X2RhdGEsICZj ZXJ0X2RhdGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoY2VydF9maWxlKTsKKyAgaWYgKGVy ciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7CisKKyAgLyoKKyAgICogSWYgc2ln bmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhlIGFjdHVhbCBj ZXJ0aWZpY2F0ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZAorICAgKiBzaWduYXR1 cmUgc2l6ZSBmcm9tIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UKKyAgICogdGhlIGNlcnRp ZmljYXRlIGhhcyBhbiBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZCB0aGlzIGFjdHVhbCBjZXJ0aWZp Y2F0ZSBzaXplIGlzCisgICAqIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZS4KKyAg ICovCisgIGlmIChjaGVja19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3NpemUgLT0gYXBw ZW5kX3NpZ19sZW47CisKKyAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0X2RhdGEsIGNlcnRf ZGF0YV9zaXplLCAmZGIpOworICBncnViX2ZyZWUgKGNlcnRfZGF0YSk7CisgIGlmIChlcnIgIT0g R1JVQl9FUlJfTk9ORSkKKyAgICByZXR1cm4gZXJyOworCisgIHJldHVybiBHUlVCX0VSUl9OT05F OworfQorCisvKgorICogUmVtb3ZlIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlIGZyb20gdGhl IGRiIGxpc3QgaWYgaXQgaXMgYWxyZWFkeSBwcmVzZW50LgorICogQW5kIGFkZCBpdCB0byB0aGUg ZGJ4IGxpc3QgaWYgbm90IHByZXNlbnQgd2hlbiBkeW5hbWljIGtleSBtYW5hZ2VtZW50IGlzCisg KiBlbmFibGVkLgorICogTm90ZTotIFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFi bGVkLCB0aGlzIGNvbW1hbmQgb25seSBhY2NlcHRzIHRoZQorICogZGlzdHJ1c3RlZCBjZXJ0aWZp Y2F0ZSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFwcGVuZGVkIHNpZ25hdHVyZS4KKyAqIFRoZSBz aWduYXR1cmUgaXMgdmVyaWZpZWQgYnkgdGhlIGFwcGVuZGVkIHNpZyBtb2R1bGUuIElmIHZlcmlm aWNhdGlvbiBzdWNjZWVkcywKKyAqIHRoZSBjZXJ0aWZpY2F0ZSBpcyByZW1vdmVkIGZyb20gdGhl IGRiIGxpc3QuIE90aGVyd2lzZSwgYW4gZXJyb3IgaXMgcG9zdGVkIGFuZAorICogdGhlIGNlcnRp ZmljYXRlIGlzIG5vdCByZW1vdmVkLgorICogV2hlbiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlz IGRpc2FibGVkLCBpdCBhY2NlcHRzIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlCisgKiB3aXRo b3V0IGFuIGFwcGVuZGVkIHNpZ25hdHVyZSBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBkYiBsaXN0 LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgcmVtb3ZhbCBvZiB0aGUgZGlzdHJ1c3RlZCBj ZXJ0aWZpY2F0ZSB1c2luZyB0aGlzIGNvbW1hbmQKKyAqIGRvZXMgbm90IHBlcnNpc3QgYWNyb3Nz IHJlYm9vdHMuCisgKi8KK3N0YXRpYyBncnViX2Vycl90CitncnViX2NtZF9kYnhfY2VydCAoZ3J1 Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2MsIGNoYXIg KiphcmdzKQoreworICBncnViX2Vycl90IGVycjsKKyAgZ3J1Yl9maWxlX3QgY2VydF9maWxlOwor ICBncnViX3VpbnQ4X3QgKmNlcnRfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IGNlcnRfZGF0 YV9zaXplID0gMDsKKworICBpZiAoYXJnYyAhPSAxKQorICAgIHJldHVybiBncnViX2Vycm9yIChH UlVCX0VSUl9CQURfQVJHVU1FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJhIGRpc3RydXN0 ZWQgWC41MDkgY2VydGlmaWNhdGUgZmlsZSBpcyBleHBlY3RlZCBpbiBERVIgZm9ybWF0XG4iCisg ICAgICAgICAgICAgICAgICAgICAgICJFeGFtcGxlOlxuXHRhcHBlbmRfYWRkX2RieF9jZXJ0IDxY NTA5X0NFUlRJRklDQVRFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJnc1swXSkpCisg ICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3NpbmcgZGlz dHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIik7CisKKyAgY2VydF9maWxlID0gZ3J1Yl9m aWxlX29wZW4gKGFyZ3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUlVCX0ZJ TEVfVFlQRV9DRVJUSUZJQ0FURV9UUlVTVCB8IEdSVUJfRklMRV9UWVBFX05PX0RFQ09NUFJFU1Mp OworICBpZiAoY2VydF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJf RVJSX0JBRF9GSUxFX1RZUEUsICJjb3VsZCBub3Qgb3BlbiAlcyBmaWxlIiwgYXJnc1swXSk7CisK KyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChjZXJ0X2ZpbGUsICZjZXJ0X2RhdGEsICZjZXJ0X2Rh dGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoY2VydF9maWxlKTsKKyAgaWYgKGVyciAhPSBH UlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7CisKKyAgLyoKKyAgICogSWYgc2lnbmF0dXJl IHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhlIGFjdHVhbCBjZXJ0aWZp Y2F0ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZAorICAgKiBzaWduYXR1cmUgc2l6 ZSBmcm9tIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UKKyAgICogdGhlIGNlcnRpZmljYXRl IGhhcyBhbiBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZCB0aGlzIGFjdHVhbCBjZXJ0aWZpY2F0ZSBz aXplIGlzCisgICAqIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZS4KKyAgICovCisg IGlmIChjaGVja19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3NpemUgLT0gYXBwZW5kX3Np Z19sZW47CisKKyAgLyogUmVtb3ZlIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUgZnJvbSB0aGUgZGIg bGlzdCBpZiBwcmVzZW50LiAqLworICBlcnIgPSByZW1vdmVfY2VydF9mcm9tX2RiIChjZXJ0X2Rh dGEsIGNlcnRfZGF0YV9zaXplKTsKKyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHsK KyAgICAgIGdydWJfZnJlZSAoY2VydF9kYXRhKTsKKyAgICAgIHJldHVybiBlcnI7CisgICAgfQor CisgIC8qIE9ubHkgYWRkIHRoZSBjZXJ0aWZpY2F0ZSB0byB0aGUgZGJ4IGxpc3QgaWYgZHluYW1p YyBrZXkgbWFuYWdlbWVudCBpcyBlbmFibGVkLiAqLworICBpZiAoYXBwZW5kX2tleV9tZ210ID09 IHRydWUpCisgICAgeworICAgICAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0X2RhdGEsIGNl cnRfZGF0YV9zaXplLCAmZGJ4KTsKKyAgICAgIGlmIChlcnIgIT0gR1JVQl9FUlJfTk9ORSkKKyAg ICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisKKyAgZ3J1Yl9mcmVlIChjZXJ0X2RhdGEpOworCisg IHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRf bGlzdF9kYiAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50 IGFyZ2MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgY2hhciAq KmFyZ3MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQoreworICBzdHJ1Y3QgeDUwOV9jZXJ0aWZp Y2F0ZSAqY2VydDsKKyAgZ3J1Yl91aW50MzJfdCBpLCBjZXJ0X251bSA9IDE7CisKKyAgZm9yIChj ZXJ0ID0gZGIuY2VydHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQsIGNlcnRfbnVt KyspCisgICAgcHJpbnRfY2VydGlmaWNhdGUgKGNlcnQsIGNlcnRfbnVtKTsKKworICBpZiAoYXBw ZW5kX2tleV9tZ210ID09IGZhbHNlKQorICAgIHJldHVybiBHUlVCX0VSUl9OT05FOworCisgIGZv ciAoaSA9IDA7IGkgPCBkYi5oYXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoZGIu aGFzaGVzW2ldICE9IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50ZiAoIlxu QmluYXJ5IGhhc2g6ICV1XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1Yl9wcmludGYgKCIgICAg SGFzaDogc2hhJSIgUFJJdUdSVUJfU0laRSAiXG4gICAgICAgICAiLCBkYi5oYXNoX3NpemVzW2ld ICogOCk7CisgICAgICAgICAgaGV4ZHVtcF9jb2xvbiAoZGIuaGFzaGVzW2ldLCBkYi5oYXNoX3Np emVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30K KwogLyogQWRkIHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZXMvYmluYXJ5IGhhc2ggdG8gdGhlIGRiIGxp c3QgZnJvbSBQS1MuICovCiBzdGF0aWMgZ3J1Yl9lcnJfdAogbG9hZF9wa3MyZGIgKHZvaWQpCkBA IC0xMDI5LDYgKzEzMzMsOCBAQCBzdHJ1Y3QgZ3J1Yl9maWxlX3ZlcmlmaWVyIGdydWJfYXBwZW5k ZWRzaWdfdmVyaWZpZXIgPSB7CiAgIC53cml0ZSA9IGFwcGVuZGVkc2lnX3dyaXRlLAogfTsKIAor c3RhdGljIGdydWJfY29tbWFuZF90IGNtZF92ZXJpZnksIGNtZF9saXN0X2RiLCBjbWRfZGJ4X2Nl cnQsIGNtZF9kYl9jZXJ0OworCiBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKIHsKICAgZ3J1 Yl9pbnQzMl90IHJjOwpAQCAtMTA5Nyw2ICsxNDAzLDE1IEBAIEdSVUJfTU9EX0lOSVQgKGFwcGVu ZGVkc2lnKQogICAgICAgICAgICAgICAgICAgICBkYi5jZXJ0X2VudHJpZXMpOwogICAgIH0KIAor ICBjbWRfdmVyaWZ5ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX3ZlcmlmeSIsIGdy dWJfY21kX3ZlcmlmeV9zaWduYXR1cmUsIE5fKCI8U0lHTkVEX0ZJTEU+IiksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJWZXJpZnkgU0lHTkVEX0ZJTEUgYWdhaW5z dCB0aGUgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgaW4gdGhlIGRiIGxpc3QiKSk7CisgIGNt ZF9saXN0X2RiID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2xpc3RfZGIiLCBncnVi X2NtZF9saXN0X2RiLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Tl8oIlNob3cgdGhlIGxpc3Qgb2YgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGUg ZGIgbGlzdCIpKTsKKyAgY21kX2RiX2NlcnQgPSBncnViX3JlZ2lzdGVyX2NvbW1hbmQgKCJhcHBl bmRfYWRkX2RiX2NlcnQiLCBncnViX2NtZF9kYl9jZXJ0LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+ IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOXygiQWRkIHRydXN0 ZWQgWDUwOV9DRVJUSUZJQ0FURSB0byB0aGUgZGIgbGlzdCIpKTsKKyAgY21kX2RieF9jZXJ0ID0g Z3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYnhfY2VydCIsIGdydWJfY21kX2Ri eF9jZXJ0LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+IiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTl8oIkFkZCBkaXN0cnVzdGVkIFg1MDlfQ0VSVElGSUNBVEUgdG8g dGhlIGRieCBsaXN0IikpOworCiAgIGdydWJfdmVyaWZpZXJfcmVnaXN0ZXIgKCZncnViX2FwcGVu ZGVkc2lnX3ZlcmlmaWVyKTsKICAgZ3J1Yl9kbF9zZXRfcGVyc2lzdGVudCAobW9kKTsKIH0KQEAg LTExMTUsNCArMTQzMCw4IEBAIEdSVUJfTU9EX0ZJTkkgKGFwcGVuZGVkc2lnKQogICBncnViX3Jl Z2lzdGVyX3ZhcmlhYmxlX2hvb2sgKCJhcHBlbmRlZHNpZ19rZXlfbWdtdCIsIE5VTEwsIE5VTEwp OwogICBncnViX2Vudl91bnNldCAoImFwcGVuZGVkc2lnX2tleV9tZ210Iik7CiAgIGdydWJfdmVy aWZpZXJfdW5yZWdpc3RlciAoJmdydWJfYXBwZW5kZWRzaWdfdmVyaWZpZXIpOworICBncnViX3Vu cmVnaXN0ZXJfY29tbWFuZCAoY21kX3ZlcmlmeSk7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5k IChjbWRfbGlzdF9kYik7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJfY2VydCk7 CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJ4X2NlcnQpOwogfQotLSAKMi41MC4x IChBcHBsZSBHaXQtMTU1KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRw czovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==