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 93533CCA470 for ; Mon, 6 Oct 2025 07:28:01 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v5fc3-00085I-S0; Mon, 06 Oct 2025 03:26:27 -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 1v5fc2-00082b-94 for grub-devel@gnu.org; Mon, 06 Oct 2025 03:26:26 -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 1v5fbz-0001zM-LB for grub-devel@gnu.org; Mon, 06 Oct 2025 03:26:26 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 595LFdxs015964; Mon, 6 Oct 2025 07:26:20 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=XHjA06 WCw8mPDGeVZ5GW8I0QYOesi+qID1wCLizgY2I=; b=c7OHvyw8ID8rljRx0svllQ XkMit8pfQKmd/5ps57Rw33B1n0ZKz8ZqEBaiJk0a56kbmOrBZTip+tWK7oGpfYVU 3znc5ZzN07+MHyiLfoA0MzYnW60yqo+s43fYSP8qplD+gg+jPSNwvLwyOdmrho0v BQ5IVdwVfm+q8zbjmvGxPvAy+iTWAPwXHs7IBYeVwk/DzgMiCoSeiRF9FXl7goXS 79ooMZMScz477ezec8xjm0RQQoZqZ1Q5Ujl71jqJxQeIhPG0AYu0qES9r7xAvoFx mj+koQnlBA7nzZRw7+VVMBjgz9t2zFL62ez1iPLEhGkWDg0w+6C6FkTgTpDgwp3Q == Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49ju8afex7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 06 Oct 2025 07:26:20 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5966u3So021174; Mon, 6 Oct 2025 07:26:19 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 49kgm14hqg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 06 Oct 2025 07:26:19 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5967QFPO32047852 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 6 Oct 2025 07:26:15 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A5C1E20043; Mon, 6 Oct 2025 07:26:15 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 141AA20040; Mon, 6 Oct 2025 07:26:13 +0000 (GMT) Received: from localhost.localdomain (unknown [9.124.213.16]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 6 Oct 2025 07:26:12 +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 v18 15/20] appended signatures: GRUB commands to manage the certificates Date: Mon, 6 Oct 2025 12:55:00 +0530 Message-ID: <20251006072508.19088-16-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251006072508.19088-1-sudhakar@linux.ibm.com> References: <20251006072508.19088-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: WnS-UEFufPUpEItrbZLaDjsjar3DIkuS X-Authority-Analysis: v=2.4 cv=BpiQAIX5 c=1 sm=1 tr=0 ts=68e36f1c cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=JuTF4qcAAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=RMYmVPlx0xnhtRZVaPQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=WlT8qwTXB_Kj6um4hl3b:22 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDA0MDAyMiBTYWx0ZWRfXxa3ngvBtYdA/ S+oMuCSoQF4i4tGgHaB0Tb7WDaYHxnYxLctP2msJ+O0xLw9svloMn2DHQnxngVPdZ50vdhvt9l0 zriIVxr2bAroNkuC9XxNq0AC6p5CdyFykV7UJYhMZxHr4Vp9e621Zn6t3BW+jjbHPytPe6x4/eY TPsGMknnzfCdNIf+Nz0Sl6xDwSwVuqiPctL+GcEJl4PlwxCb7dzFGay0TzmX/jlQuM+C3lJUv+U 351x56ks123von5V99sr09UW5+ytDHvqUexFfASWE2191IK+Vdm6lj1dB+grsFlDF0KFHylsmh0 ELHQ2ondfJncn7xSzzrjGyrbk2whe0UngHV1Btku/XgjZHEpS6IVVVSuwVJp4qvpI8ye5HgrtMD YEyf63eEQLQwPYnu3MoOL1TUnvN++w== X-Proofpoint-ORIG-GUID: WnS-UEFufPUpEItrbZLaDjsjar3DIkuS 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-10-06_02,2025-10-02_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 suspectscore=0 bulkscore=0 impostorscore=0 adultscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2509150000 definitions=main-2510040022 Received-SPF: pass client-ip=148.163.158.5; envelope-from=sudhakar@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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 IChjaGVja19hcHBlbmRlZF9zaWduYXR1cmVzKSBpcyBzZXQgdG8geWVzLAp0aGUgYXBwZW5kX2Fk ZF9kYl9jZXJ0IGFuZCBhcHBlbmRfYWRkX2RieF9jZXJ0IGNvbW1hbmRzIG9ubHkgYWNjZXB0IHRo ZSBmaWxlCuKAmFg1MDlfY2VydGlmaWNhdGXigJkgdGhhdCBpcyBzaWduZWQgd2l0aCBhbiBhcHBl bmRlZCBzaWduYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0ZW5z Lm5ldD4KU2lnbmVkLW9mZi1ieTogU3VkaGFrYXIgS3VwcHVzYW15IDxzdWRoYWthckBsaW51eC5p Ym0uY29tPgpUZXN0ZWQtYnk6IFNyaWRoYXIgTWFya29uZGEgPHNyaWRoYXJtQGxpbnV4LmlibS5j b20+ClJldmlld2VkLWJ5OiBBdm5pc2ggQ2hvdWhhbiA8YXZuaXNoQGxpbnV4LmlibS5jb20+ClJl dmlld2VkLWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPgotLS0KIGdy dWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jIHwgMzE2ICsrKysrKysr KysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAzMTYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jIGIvZ3J1Yi1j b3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKaW5kZXggOWNmYTFiZWJiLi42 MTRlYmVlYzAgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBl bmRlZHNpZy5jCisrKyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNp Zy5jCkBAIC0xMjMsNiArMTIzLDkgQEAgc3RhdGljIGJvb2wgYXBwZW5kX2tleV9tZ210ID0gZmFs c2U7CiAvKiBQbGF0Zm9ybSBLZXlTdG9yZSBkYiBhbmQgZGJ4LiAqLwogc3RhdGljIGdydWJfcGtz X3QgKnBrc19rZXlzdG9yZTsKIAorLyogQXBwZW5kZWQgc2lnbmF0dXJlIHNpemUuICovCitzdGF0 aWMgZ3J1Yl9zaXplX3QgYXBwZW5kX3NpZ19sZW4gPSAwOworCiBzdGF0aWMgZ3J1Yl9zc2l6ZV90 CiBwc2V1ZG9fcmVhZCAoc3RydWN0IGdydWJfZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBncnViX3Np emVfdCBsZW4pCiB7CkBAIC0xMzYsNiArMTM5LDY1IEBAIHN0YXRpYyBzdHJ1Y3QgZ3J1Yl9mcyBw c2V1ZG9fZnMgPSB7CiAgIC5mc19yZWFkID0gcHNldWRvX3JlYWQKIH07CiAKKy8qCisgKiBXZSBj YW5ub3QgdXNlIGhleGR1bXAoKSB0byBkaXNwbGF5IGhhc2ggZGF0YSBiZWNhdXNlIGl0IGlzIHR5 cGljYWxseSBkaXNwbGF5ZWQKKyAqIGluIGhleGFkZWNpbWFsIGZvcm1hdCwgYWxvbmcgd2l0aCBh biBBU0NJSSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc2FtZSBkYXRhLgorICoKKyAqIEV4YW1wbGU6 IHNoYTI1NiBoYXNoIGRhdGEKKyAqIDAwMDAwMDAwICA1MiBiNSA5MCA0OSA2NCBkZSAyMiBkNyAg NGUgNWYgNGYgYjQgMWIgNTEgOWMgMzQgIHxSLi5JZC4iLk5fTy4uUS40fAorICogMDAwMDAwMTAg IGIxIDk2IDIxIDdjIDkxIDc4IGE1IDBkICAyMCA4YyBlOSA1YyAyMiA1NCA1MyBmNyAgfC4uIXwu eC4uIC4uXCJUUy58CisgKgorICogQW4gYXBwZW5kZWQgc2lnbmF0dXJlIG9ubHkgcmVxdWlyZWQg dG8gZGlzcGxheSB0aGUgaGV4YWRlY2ltYWwgb2YgdGhlIGhhc2ggZGF0YQorICogYnkgc2VwYXJh dGluZyBlYWNoIGJ5dGUgd2l0aCAiOiIuIFNvLCB3ZSBpbnRyb2R1Y2VkIGEgbmV3IG1ldGhvZCBo ZXhkdW1wX2NvbG9uCisgKiB0byBkaXNwbGF5IGl0LgorICoKKyAqIEV4YW1wbGU6IFNoYTI1NiBo YXNoIGRhdGEKKyAqICA1MjpiNTo5MDo0OTo2NDpkZToyMjpkNzo0ZTo1Zjo0ZjpiNDoxYjo1MTo5 YzozNDoKKyAqICBiMTo5NjoyMTo3Yzo5MTo3ODphNTowZDoyMDo4YzplOTo1YzoyMjo1NDo1Mzpm NworICovCitzdGF0aWMgdm9pZAoraGV4ZHVtcF9jb2xvbiAoY29uc3QgZ3J1Yl91aW50OF90ICpk YXRhLCBjb25zdCBncnViX3NpemVfdCBsZW5ndGgpCit7CisgIGdydWJfc2l6ZV90IGksIGNvdW50 ID0gMDsKKworICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgaSsrKQorICAgIHsKKyAgICAg IGdydWJfcHJpbnRmICgiJTAyeDoiLCBkYXRhW2ldKTsKKyAgICAgIGNvdW50Kys7CisgICAgICBp ZiAoY291bnQgPT0gMTYpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50ZiAoIlxuICAg ICAgICAgIik7CisgICAgICAgICAgY291bnQgPSAwOworICAgICAgICB9CisgICAgfQorCisgIGdy dWJfcHJpbnRmICgiJTAyeFxuIiwgZGF0YVtpXSk7Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9j ZXJ0aWZpY2F0ZSAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydCwgY29uc3QgZ3J1Yl91aW50 MzJfdCBjZXJ0X251bSkKK3sKKyAgZ3J1Yl91aW50MzJfdCBpOworCisgIGdydWJfcHJpbnRmICgi XG5DZXJ0aWZpY2F0ZTogJXVcbiIsIGNlcnRfbnVtKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgRGF0 YTpcbiIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgVmVyc2lvbjogJXUgKDB4JXUpXG4iLCBj ZXJ0LT52ZXJzaW9uICsgMSwgY2VydC0+dmVyc2lvbik7CisgIGdydWJfcHJpbnRmICgiICAgICAg ICBTZXJpYWwgTnVtYmVyOlxuICAgICAgICAgICAgICIpOworCisgIGZvciAoaSA9IDA7IGkgPCBj ZXJ0LT5zZXJpYWxfbGVuIC0gMTsgaSsrKQorICAgIGdydWJfcHJpbnRmICgiJTAyeDoiLCBjZXJ0 LT5zZXJpYWxbaV0pOworCisgIGdydWJfcHJpbnRmICgiJTAyeFxuIiwgY2VydC0+c2VyaWFsW2Nl cnQtPnNlcmlhbF9sZW4gLSAxXSk7CisgIGdydWJfcHJpbnRmICgiICAgICAgICBJc3N1ZXI6ICVz XG4iLCBjZXJ0LT5pc3N1ZXIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgU3ViamVjdDogJXNc biIsIGNlcnQtPnN1YmplY3QpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgU3ViamVjdCBQdWJs aWMgS2V5IEluZm86XG4iKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgICAgICAgICBQdWJsaWMgS2V5 IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvblxuIik7CisgIGdydWJfcHJpbnRmICgiICAgICAgICAg ICAgICAgIFJTQSBQdWJsaWMtS2V5OiAoJWQgYml0KVxuIiwgY2VydC0+bW9kdWx1c19zaXplKTsK KyAgZ3J1Yl9wcmludGYgKCIgICAgRmluZ2VycHJpbnQ6IHNoYTI1NlxuICAgICAgICAgIik7Cisg IGhleGR1bXBfY29sb24gKCZjZXJ0LT5maW5nZXJwcmludFtHUlVCX0ZJTkdFUlBSSU5UX1NIQTI1 Nl1bMF0sCisgICAgICAgICAgICAgICAgIGdydWJfc3RybGVuICgoY2hhciAqKSBjZXJ0LT5maW5n ZXJwcmludFtHUlVCX0ZJTkdFUlBSSU5UX1NIQTI1Nl0pKTsKK30KKwogLyoKICAqIEdVSUQgY2Fu IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBoYXNoaW5nIGZ1bmN0aW9uIGFuZCBnZW5lcmF0ZSB0 aGUgaGFzaCB1c2luZwogICogZGV0ZXJtaW5lZCBoYXNoaW5nIGZ1bmN0aW9uLgpAQCAtNDI5LDYg KzQ5MSw2MSBAQCBhZGRfY2VydGlmaWNhdGUgKGNvbnN0IGdydWJfdWludDhfdCAqZGF0YSwgY29u c3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplLAogICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyB2b2lk CitfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydCkKK3sK KyAgZ3J1Yl91aW50MzJfdCBpID0gMTsKKyAgZ3J1Yl94NTA5X2NlcnRfdCAqY3Vycl9jZXJ0LCAq cHJldl9jZXJ0OworCisgIGZvciAoY3Vycl9jZXJ0ID0gcHJldl9jZXJ0ID0gZGIuY2VydHM7IGN1 cnJfY2VydCAhPSBOVUxMOyBjdXJyX2NlcnQgPSBjdXJyX2NlcnQtPm5leHQsIGkrKykKKyAgICB7 CisgICAgICBpZiAoaXNfY2VydF9tYXRjaCAoY3Vycl9jZXJ0LCBjZXJ0KSA9PSB0cnVlKQorICAg ICAgICB7CisgICAgICAgICAgaWYgKGkgPT0gMSkgLyogTWF0Y2ggd2l0aCBmaXJzdCBjZXJ0aWZp Y2F0ZSBpbiB0aGUgZGIgbGlzdC4gKi8KKyAgICAgICAgICAgIGRiLmNlcnRzID0gY3Vycl9jZXJ0 LT5uZXh0OworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByZXZfY2VydC0+bmV4dCA9IGN1 cnJfY2VydC0+bmV4dDsKKworICAgICAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwK KyAgICAgICAgICAgICAgICAgICAgICAgICJyZW1vdmVkIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUg d2l0aCBDTjogJXMgZnJvbSB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg IGN1cnJfY2VydC0+c3ViamVjdCk7CisgICAgICAgICAgY3Vycl9jZXJ0LT5uZXh0ID0gTlVMTDsK KyAgICAgICAgICBncnViX3g1MDlfY2VydF9yZWxlYXNlIChjdXJyX2NlcnQpOworICAgICAgICAg IGdydWJfZnJlZSAoY3Vycl9jZXJ0KTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg ICAgZWxzZQorICAgICAgICBwcmV2X2NlcnQgPSBjdXJyX2NlcnQ7CisgICAgfQorfQorCitzdGF0 aWMgZ3J1Yl9lcnJfdAorcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1Yl91aW50OF90ICpk YXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3NpemUpCit7CisgIGdydWJfZXJyX3QgcmM7Cisg IGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQ7CisKKyAgaWYgKGRhdGEgPT0gTlVMTCB8fCBkYXRhX3Np emUgPT0gMCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfT1VUX09GX1JBTkdFLCAi Y2VydGlmaWNhdGUgZGF0YSBvciBzaXplIGlzIG5vdCBhdmFpbGFibGUiKTsKKworICBjZXJ0ID0g Z3J1Yl96YWxsb2MgKHNpemVvZiAoZ3J1Yl94NTA5X2NlcnRfdCkpOworICBpZiAoY2VydCA9PSBO VUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZLCAib3V0 IG9mIG1lbW9yeSIpOworCisgIHJjID0gZ3J1Yl94NTA5X2NlcnRfcGFyc2UgKGRhdGEsIGRhdGFf c2l6ZSwgY2VydCk7CisgIGlmIChyYyAhPSBHUlVCX0VSUl9OT05FKQorICAgIHsKKyAgICAgIGdy dWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgImNhbm5vdCByZW1vdmUgYW4gaW52YWxpZCBjZXJ0 aWZpY2F0ZSBmcm9tIHRoZSBkYiBsaXN0XG4iKTsKKyAgICAgIGdydWJfZnJlZSAoY2VydCk7Cisg ICAgICByZXR1cm4gcmM7CisgICAgfQorCisgIC8qIFJlbW92ZSBjZXJ0aWZpY2F0ZSBmcm9tIHRo ZSBkYiBsaXN0LiAqLworICBfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY2VydCk7CisKKyAgcmV0dXJu IHJjOworfQorCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZmlsZV9yZWFkX3dob2xlIChncnViX2ZpbGVf dCBmaWxlLCBncnViX3VpbnQ4X3QgKipidWYsIGdydWJfc2l6ZV90ICpsZW4pCiB7CkBAIC02NDks NiArNzY2LDcgQEAgZ3J1Yl92ZXJpZnlfYXBwZW5kZWRfc2lnbmF0dXJlIChjb25zdCBncnViX3Vp bnQ4X3QgKmJ1ZiwgZ3J1Yl9zaXplX3QgYnVmc2l6ZSkKICAgaWYgKGVyciAhPSBHUlVCX0VSUl9O T05FKQogICAgIHJldHVybiBlcnI7CiAKKyAgYXBwZW5kX3NpZ19sZW4gPSBzaWcuc2lnbmF0dXJl X2xlbjsKICAgZGF0YXNpemUgPSBidWZzaXplIC0gc2lnLnNpZ25hdHVyZV9sZW47CiAKICAgLyoK QEAgLTcwOSw2ICs4MjcsMTg5IEBAIGdydWJfdmVyaWZ5X2FwcGVuZGVkX3NpZ25hdHVyZSAoY29u c3QgZ3J1Yl91aW50OF90ICpidWYsIGdydWJfc2l6ZV90IGJ1ZnNpemUpCiAgIHJldHVybiBlcnI7 CiB9CiAKK3N0YXRpYyBncnViX2Vycl90CitncnViX2NtZF92ZXJpZnlfc2lnbmF0dXJlIChncnVi X2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBpbnQgYXJnYywgY2hhciAq KmFyZ3MpCit7CisgIGdydWJfZmlsZV90IHNpZ25lZF9maWxlOworICBncnViX2Vycl90IGVycjsK KyAgZ3J1Yl91aW50OF90ICpzaWduZWRfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IHNpZ25l ZF9kYXRhX3NpemUgPSAwOworCisgIGlmIChhcmdjICE9IDEpCisgICAgcmV0dXJuIGdydWJfZXJy b3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgImEgc2ln bmVkIGZpbGUgaXMgZXhwZWN0ZWRcbkV4YW1wbGU6XG5cdGFwcGVuZF92ZXJpZnkgPFNJR05FRCBG SUxFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJnc1swXSkpCisgICAgcmV0dXJuIGdy dWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3Npbmcgc2lnbmVkIGZpbGUiKTsK KworICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ2ZXJpZnlpbmcgJXNcbiIsIGFyZ3Nb MF0pOworCisgIHNpZ25lZF9maWxlID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sIEdSVUJfRklM RV9UWVBFX1ZFUklGWV9TSUdOQVRVUkUpOworICBpZiAoc2lnbmVkX2ZpbGUgPT0gTlVMTCkKKyAg ICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfRklMRV9OT1RfRk9VTkQsICJjb3VsZCBub3Qg b3BlbiAlcyBmaWxlIiwgYXJnc1swXSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChzaWdu ZWRfZmlsZSwgJnNpZ25lZF9kYXRhLCAmc2lnbmVkX2RhdGFfc2l6ZSk7CisgIGlmIChlcnIgPT0g R1JVQl9FUlJfTk9ORSkKKyAgICB7CisgICAgICBlcnIgPSBncnViX3ZlcmlmeV9hcHBlbmRlZF9z aWduYXR1cmUgKHNpZ25lZF9kYXRhLCBzaWduZWRfZGF0YV9zaXplKTsKKyAgICAgIGdydWJfZnJl ZSAoc2lnbmVkX2RhdGEpOworICAgIH0KKworICBncnViX2ZpbGVfY2xvc2UgKHNpZ25lZF9maWxl KTsKKworICByZXR1cm4gZXJyOworfQorCisvKgorICogQ2hlY2tzIHRoZSB0cnVzdGVkIGNlcnRp ZmljYXRlIGFnYWluc3QgZGJ4IGxpc3QgaWYgZHluYW1pYyBrZXkgbWFuYWdlbWVudCBpcworICog ZW5hYmxlZC4gQW5kIGFkZCBpdCB0byB0aGUgZGIgbGlzdCBpZiBpdCBpcyBub3QgYWxyZWFkeSBw cmVzZW50LgorICoKKyAqIE5vdGU6IFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFi bGVkLCB0aGlzIGNvbW1hbmQgb25seSBhY2NlcHRzIHRoZQorICogdHJ1c3RlZCBjZXJ0aWZpY2F0 ZSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFwcGVuZGVkIHNpZ25hdHVyZS4KKyAqIFRoZSBzaWdu YXR1cmUgaXMgdmVyaWZpZWQgYnkgdGhlIGFwcGVuZGVkc2lnIG1vZHVsZS4gSWYgdmVyaWZpY2F0 aW9uIHN1Y2NlZWRzLAorICogdGhlIGNlcnRpZmljYXRlIGlzIGFkZGVkIHRvIHRoZSBkYiBsaXN0 LiBPdGhlcndpc2UsIGFuIGVycm9yIGlzIHBvc3RlZCBhbmQKKyAqIHRoZSBjZXJ0aWZpY2F0ZSBp cyBub3QgYWRkZWQuCisgKiBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZGlzYWJsZWQs IGl0IGFjY2VwdHMgdGhlIHRydXN0ZWQgY2VydGlmaWNhdGUKKyAqIHdpdGhvdXQgYW4gYXBwZW5k ZWQgc2lnbmF0dXJlIGFuZCBhZGQgaXQgdG8gdGhlIGRiIGxpc3QuCisgKgorICogQWxzbywgbm90 ZSB0aGF0IHRoZSBhZGRpbmcgb2YgdGhlIHRydXN0ZWQgY2VydGlmaWNhdGUgdXNpbmcgdGhpcyBj b21tYW5kIGRvZXMKKyAqIG5vdCBwZXJzaXN0IGFjcm9zcyByZWJvb3RzLgorICovCitzdGF0aWMg Z3J1Yl9lcnJfdAorZ3J1Yl9jbWRfZGJfY2VydCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmli dXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2MsIGNoYXIgKiphcmdzKQoreworICBncnViX2Vycl90 IGVycjsKKyAgZ3J1Yl9maWxlX3QgY2VydF9maWxlOworICBncnViX3VpbnQ4X3QgKmNlcnRfZGF0 YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IGNlcnRfZGF0YV9zaXplID0gMDsKKworICBpZiAoYXJn YyAhPSAxKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsCisg ICAgICAgICAgICAgICAgICAgICAgICJhIHRydXN0ZWQgWC41MDkgY2VydGlmaWNhdGUgZmlsZSBp cyBleHBlY3RlZCBpbiBERVIgZm9ybWF0XG4iCisgICAgICAgICAgICAgICAgICAgICAgICJFeGFt cGxlOlxuXHRhcHBlbmRfYWRkX2RiX2NlcnQgPFg1MDlfQ0VSVElGSUNBVEU+XG4iKTsKKworICBp ZiAoIWdydWJfc3RybGVuIChhcmdzWzBdKSkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9F UlJfQkFEX0ZJTEVOQU1FLCAibWlzc2luZyB0cnVzdGVkIFguNTA5IGNlcnRpZmljYXRlIGZpbGUi KTsKKworICBjZXJ0X2ZpbGUgPSBncnViX2ZpbGVfb3BlbiAoYXJnc1swXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdSVUJfRklMRV9UWVBFX0NFUlRJRklDQVRFX1RSVVNUIHwgR1JV Ql9GSUxFX1RZUEVfTk9fREVDT01QUkVTUyk7CisgIGlmIChjZXJ0X2ZpbGUgPT0gTlVMTCkKKyAg ICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0ZJTEVfVFlQRSwgImNvdWxkIG5vdCBv cGVuICVzIGZpbGUiLCBhcmdzWzBdKTsKKworICBlcnIgPSBmaWxlX3JlYWRfd2hvbGUgKGNlcnRf ZmlsZSwgJmNlcnRfZGF0YSwgJmNlcnRfZGF0YV9zaXplKTsKKyAgZ3J1Yl9maWxlX2Nsb3NlIChj ZXJ0X2ZpbGUpOworICBpZiAoZXJyICE9IEdSVUJfRVJSX05PTkUpCisgICAgcmV0dXJuIGVycjsK KworICAvKgorICAgKiBJZiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQgKGNoZWNr X3NpZ3MgaXMgc2V0IHRvIHRydWUpLCBvYnRhaW4KKyAgICogdGhlIGFjdHVhbCBjZXJ0aWZpY2F0 ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZCBzaWduYXR1cmUgc2l6ZSBmcm9tCisg ICAqIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UgdGhlIGNlcnRpZmljYXRlIGhhcyBhbiBh cHBlbmRlZCBzaWduYXR1cmUsIGFuZAorICAgKiB0aGlzIGFjdHVhbCBjZXJ0aWZpY2F0ZSBzaXpl IGlzIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZS4KKyAgICovCisgIGlmIChjaGVj a19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3NpemUgLT0gYXBwZW5kX3NpZ19sZW47CisK KyAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0X2RhdGEsIGNlcnRfZGF0YV9zaXplLCAmZGIp OworICBncnViX2ZyZWUgKGNlcnRfZGF0YSk7CisKKyAgcmV0dXJuIGVycjsKK30KKworLyoKKyAq IFJlbW92ZSB0aGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBmcm9tIHRoZSBkYiBsaXN0IGlmIGl0 IGlzIGFscmVhZHkgcHJlc2VudC4KKyAqIEFuZCBhZGQgaXQgdG8gdGhlIGRieCBsaXN0IGlmIG5v dCBwcmVzZW50IHdoZW4gZHluYW1pYyBrZXkgbWFuYWdlbWVudCBpcworICogZW5hYmxlZC4KKyAq CisgKiBOb3RlOiBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwgdGhpcyBj b21tYW5kIG9ubHkgYWNjZXB0cyB0aGUKKyAqIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUgdGhhdCBp cyBzaWduZWQgd2l0aCBhbiBhcHBlbmRlZCBzaWduYXR1cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlz IHZlcmlmaWVkIGJ5IHRoZSBhcHBlbmRlZCBzaWcgbW9kdWxlLiBJZiB2ZXJpZmljYXRpb24KKyAq IHN1Y2NlZWRzLCB0aGUgY2VydGlmaWNhdGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBkYiBsaXN0LiBP dGhlcndpc2UsIGFuIGVycm9yCisgKiBpcyBwb3N0ZWQgYW5kIHRoZSBjZXJ0aWZpY2F0ZSBpcyBu b3QgcmVtb3ZlZC4KKyAqIFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBkaXNhYmxlZCwg aXQgYWNjZXB0cyB0aGUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZQorICogd2l0aG91dCBhbiBhcHBl bmRlZCBzaWduYXR1cmUgYW5kIHJlbW92ZXMgaXQgZnJvbSB0aGUgZGIgbGlzdC4KKyAqCisgKiBB bHNvLCBub3RlIHRoYXQgdGhlIHJlbW92YWwgb2YgdGhlIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUg dXNpbmcgdGhpcyBjb21tYW5kCisgKiBkb2VzIG5vdCBwZXJzaXN0IGFjcm9zcyByZWJvb3RzLgor ICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfZGJ4X2NlcnQgKGdydWJfY29tbWFuZF90 IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGludCBhcmdjLCBjaGFyICoqYXJncykKK3sK KyAgZ3J1Yl9lcnJfdCBlcnI7CisgIGdydWJfZmlsZV90IGNlcnRfZmlsZTsKKyAgZ3J1Yl91aW50 OF90ICpjZXJ0X2RhdGEgPSBOVUxMOworICBncnViX3NpemVfdCBjZXJ0X2RhdGFfc2l6ZSA9IDA7 CisKKyAgaWYgKGFyZ2MgIT0gMSkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFE X0FSR1VNRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAiYSBkaXN0cnVzdGVkIFguNTA5IGNl cnRpZmljYXRlIGZpbGUgaXMgZXhwZWN0ZWQgaW4gREVSIGZvcm1hdFxuIgorICAgICAgICAgICAg ICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBwZW5kX2FkZF9kYnhfY2VydCA8WDUwOV9DRVJUSUZJ Q0FURT5cbiIpOworCisgIGlmICghZ3J1Yl9zdHJsZW4gKGFyZ3NbMF0pKQorICAgIHJldHVybiBn cnViX2Vycm9yIChHUlVCX0VSUl9CQURfRklMRU5BTUUsICJtaXNzaW5nIGRpc3RydXN0ZWQgWC41 MDkgY2VydGlmaWNhdGUgZmlsZSIpOworCisgIGNlcnRfZmlsZSA9IGdydWJfZmlsZV9vcGVuIChh cmdzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JVQl9GSUxFX1RZUEVfQ0VS VElGSUNBVEVfVFJVU1QgfCBHUlVCX0ZJTEVfVFlQRV9OT19ERUNPTVBSRVNTKTsKKyAgaWYgKGNl cnRfZmlsZSA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfRklM RV9UWVBFLCAiY291bGQgbm90IG9wZW4gJXMgZmlsZSIsIGFyZ3NbMF0pOworCisgIGVyciA9IGZp bGVfcmVhZF93aG9sZSAoY2VydF9maWxlLCAmY2VydF9kYXRhLCAmY2VydF9kYXRhX3NpemUpOwor ICBncnViX2ZpbGVfY2xvc2UgKGNlcnRfZmlsZSk7CisgIGlmIChlcnIgIT0gR1JVQl9FUlJfTk9O RSkKKyAgICByZXR1cm4gZXJyOworCisgIC8qCisgICAqIElmIHNpZ25hdHVyZSB2ZXJpZmljYXRp b24gaXMgZW5hYmxlZCAoY2hlY2tfc2lncyBpcyBzZXQgdG8gdHJ1ZSksIG9idGFpbgorICAgKiB0 aGUgYWN0dWFsIGNlcnRpZmljYXRlIHNpemUgYnkgc3VidHJhY3RpbmcgdGhlIGFwcGVuZGVkIHNp Z25hdHVyZSBzaXplIGZyb20KKyAgICogdGhlIGNlcnRpZmljYXRlIHNpemUgYmVjYXVzZSB0aGUg Y2VydGlmaWNhdGUgaGFzIGFuIGFwcGVuZGVkIHNpZ25hdHVyZSwgYW5kCisgICAqIHRoaXMgYWN0 dWFsIGNlcnRpZmljYXRlIHNpemUgaXMgdXNlZCB0byBnZXQgdGhlIFguNTA5IGNlcnRpZmljYXRl LgorICAgKi8KKyAgaWYgKGNoZWNrX3NpZ3MgPT0gdHJ1ZSkKKyAgICBjZXJ0X2RhdGFfc2l6ZSAt PSBhcHBlbmRfc2lnX2xlbjsKKworICAvKiBSZW1vdmUgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBm cm9tIHRoZSBkYiBsaXN0IGlmIHByZXNlbnQuICovCisgIGVyciA9IHJlbW92ZV9jZXJ0X2Zyb21f ZGIgKGNlcnRfZGF0YSwgY2VydF9kYXRhX3NpemUpOworICBpZiAoZXJyICE9IEdSVUJfRVJSX05P TkUpCisgICAgeworICAgICAgZ3J1Yl9mcmVlIChjZXJ0X2RhdGEpOworICAgICAgcmV0dXJuIGVy cjsKKyAgICB9CisKKyAgLyogT25seSBhZGQgdGhlIGNlcnRpZmljYXRlIHRvIHRoZSBkYnggbGlz dCBpZiBkeW5hbWljIGtleSBtYW5hZ2VtZW50IGlzIGVuYWJsZWQuICovCisgIGlmIChhcHBlbmRf a2V5X21nbXQgPT0gdHJ1ZSkKKyAgICBlcnIgPSBhZGRfY2VydGlmaWNhdGUgKGNlcnRfZGF0YSwg Y2VydF9kYXRhX3NpemUsICZkYngpOworCisgIGdydWJfZnJlZSAoY2VydF9kYXRhKTsKKworICBy ZXR1cm4gZXJyOworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfbGlzdF9kYiAoZ3J1 Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2MgX19hdHRy aWJ1dGVfXyAoKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgY2hhciAqKmFyZ3MgX19hdHRy aWJ1dGVfXyAoKHVudXNlZCkpKQoreworICBzdHJ1Y3QgeDUwOV9jZXJ0aWZpY2F0ZSAqY2VydDsK KyAgZ3J1Yl91aW50MzJfdCBpLCBjZXJ0X251bSA9IDE7CisKKyAgZm9yIChjZXJ0ID0gZGIuY2Vy dHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQsIGNlcnRfbnVtKyspCisgICAgcHJp bnRfY2VydGlmaWNhdGUgKGNlcnQsIGNlcnRfbnVtKTsKKworICBpZiAoYXBwZW5kX2tleV9tZ210 ID09IGZhbHNlKQorICAgIHJldHVybiBHUlVCX0VSUl9OT05FOworCisgIGZvciAoaSA9IDA7IGkg PCBkYi5oYXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoZGIuaGFzaGVzW2ldICE9 IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50ZiAoIlxuQmluYXJ5IGhhc2g6 ICV1XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1Yl9wcmludGYgKCIgICAgSGFzaDogc2hhJSIg UFJJdUdSVUJfU0laRSAiXG4gICAgICAgICAiLCBkYi5oYXNoX3NpemVzW2ldICogOCk7CisgICAg ICAgICAgaGV4ZHVtcF9jb2xvbiAoZGIuaGFzaGVzW2ldLCBkYi5oYXNoX3NpemVzW2ldKTsKKyAg ICAgICAgfQorICAgIH0KKworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30KKwogLyogQWRkIHRo ZSBYLjUwOSBjZXJ0aWZpY2F0ZXMvYmluYXJ5IGhhc2ggdG8gdGhlIGRiIGxpc3QgZnJvbSBQS1Mu ICovCiBzdGF0aWMgZ3J1Yl9lcnJfdAogbG9hZF9wa3MyZGIgKHZvaWQpCkBAIC0xMDMxLDYgKzEz MzIsOCBAQCBzdHJ1Y3QgZ3J1Yl9maWxlX3ZlcmlmaWVyIGdydWJfYXBwZW5kZWRzaWdfdmVyaWZp ZXIgPSB7CiAgIC53cml0ZSA9IGFwcGVuZGVkc2lnX3dyaXRlLAogfTsKIAorc3RhdGljIGdydWJf Y29tbWFuZF90IGNtZF92ZXJpZnksIGNtZF9saXN0X2RiLCBjbWRfZGJ4X2NlcnQsIGNtZF9kYl9j ZXJ0OworCiBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKIHsKICAgZ3J1Yl9pbnQzMl90IHJj OwpAQCAtMTEwMCw2ICsxNDAzLDE1IEBAIEdSVUJfTU9EX0lOSVQgKGFwcGVuZGVkc2lnKQogICAg ICAgICAgICAgICAgICAgICBkYi5jZXJ0X2VudHJpZXMpOwogICAgIH0KIAorICBjbWRfdmVyaWZ5 ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX3ZlcmlmeSIsIGdydWJfY21kX3Zlcmlm eV9zaWduYXR1cmUsIE5fKCI8U0lHTkVEX0ZJTEU+IiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5fKCJWZXJpZnkgU0lHTkVEX0ZJTEUgYWdhaW5zdCB0aGUgdHJ1c3Rl ZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgaW4gdGhlIGRiIGxpc3QiKSk7CisgIGNtZF9saXN0X2RiID0g Z3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2xpc3RfZGIiLCBncnViX2NtZF9saXN0X2Ri LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTl8oIlNob3cgdGhl IGxpc3Qgb2YgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGUgZGIgbGlzdCIpKTsK KyAgY21kX2RiX2NlcnQgPSBncnViX3JlZ2lzdGVyX2NvbW1hbmQgKCJhcHBlbmRfYWRkX2RiX2Nl cnQiLCBncnViX2NtZF9kYl9jZXJ0LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+IiksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOXygiQWRkIHRydXN0ZWQgWDUwOV9DRVJU SUZJQ0FURSB0byB0aGUgZGIgbGlzdCIpKTsKKyAgY21kX2RieF9jZXJ0ID0gZ3J1Yl9yZWdpc3Rl cl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYnhfY2VydCIsIGdydWJfY21kX2RieF9jZXJ0LCBOXygi PFg1MDlfQ0VSVElGSUNBVEU+IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTl8oIkFkZCBkaXN0cnVzdGVkIFg1MDlfQ0VSVElGSUNBVEUgdG8gdGhlIGRieCBsaXN0 IikpOworCiAgIGdydWJfdmVyaWZpZXJfcmVnaXN0ZXIgKCZncnViX2FwcGVuZGVkc2lnX3Zlcmlm aWVyKTsKICAgZ3J1Yl9kbF9zZXRfcGVyc2lzdGVudCAobW9kKTsKIH0KQEAgLTExMTgsNCArMTQz MCw4IEBAIEdSVUJfTU9EX0ZJTkkgKGFwcGVuZGVkc2lnKQogICBncnViX3JlZ2lzdGVyX3Zhcmlh YmxlX2hvb2sgKCJhcHBlbmRlZHNpZ19rZXlfbWdtdCIsIE5VTEwsIE5VTEwpOwogICBncnViX2Vu dl91bnNldCAoImFwcGVuZGVkc2lnX2tleV9tZ210Iik7CiAgIGdydWJfdmVyaWZpZXJfdW5yZWdp c3RlciAoJmdydWJfYXBwZW5kZWRzaWdfdmVyaWZpZXIpOworICBncnViX3VucmVnaXN0ZXJfY29t bWFuZCAoY21kX3ZlcmlmeSk7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfbGlzdF9k Yik7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJfY2VydCk7CisgIGdydWJfdW5y ZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJ4X2NlcnQpOwogfQotLSAKMi41MC4xIChBcHBsZSBHaXQt MTU1KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdy dWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdu dS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==