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 5D113C19F2E for ; Thu, 27 Feb 2025 15:23:09 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tnfio-0000G0-4q; Thu, 27 Feb 2025 10:22:46 -0500 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 1tnfil-0000Bw-2f for grub-devel@gnu.org; Thu, 27 Feb 2025 10:22:43 -0500 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 1tnfii-00086P-5T for grub-devel@gnu.org; Thu, 27 Feb 2025 10:22:42 -0500 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 51R7XGc0018760; Thu, 27 Feb 2025 15:22:37 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=0mwM4e XFPhdAiHgHZYf6PdUY9mqGf4/m+WEC5Wqksl8=; b=kuA7xTXb3BKgC6LFo7z0rU 17dtQjkh+2ZyqY/LNB++RSnULTpxQVOEhRCe714Qfi2cfPDUoCuTrFgObpvYYiP9 6jK9mt7E01yGp2R9xAyqNug46768yM1lVgLKspD7Lz9DwP2frHRmgoirATHRxS/F GoowqEWZ4AKhdPv7wFPPrZs/G0pB7J3KRZh6Yh4qL+Nccp7k1ctlpZbebj2HNsNX oqiZvQ/Y+sUYCCRyRjqplSYC4b2uqFeJxSrNwUGupTREEn1U3XNLTZT7M/p8TGGl 6BZYt4jO7ySvmcmLJmaAnlvw1KzpLfgw9TQy6Er/1NGSWn5OtP03hQiXZgL8vkXA == Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 452krpa8c5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Feb 2025 15:22:37 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 51RC4Pw9012515; Thu, 27 Feb 2025 15:22:36 GMT Received: from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 44ys9ysgg0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 27 Feb 2025 15:22:36 +0000 Received: from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com [10.241.53.101]) by smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 51RFMZQP23528164 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Feb 2025 15:22:35 GMT Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 778245805F; Thu, 27 Feb 2025 15:22:35 +0000 (GMT) Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0F50E58051; Thu, 27 Feb 2025 15:22:35 +0000 (GMT) Received: from ltc.linux.ibm.com (unknown [9.5.196.140]) by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP; Thu, 27 Feb 2025 15:22:34 +0000 (GMT) MIME-Version: 1.0 Date: Thu, 27 Feb 2025 20:52:34 +0530 From: sudhakar To: Stefan Berger Cc: grub-devel@gnu.org, dja@axtens.net, jan.setjeeilers@oracle.com, julian.klode@canonical.com, mate.kukri@canonical.com, pjones@redhat.com, avnish@linux.ibm.com, nayna@linux.ibm.com, ssrish@linux.ibm.com Subject: Re: [PATCH v1 17/21] appendedsig: While verifying the kernel, use trusted and distrusted lists In-Reply-To: <82b491a0-7e01-4f72-bcc1-62b8fcfb9728@linux.ibm.com> References: <20241218145647.1390837-1-sudhakar@linux.ibm.com> <20241218145647.1390837-18-sudhakar@linux.ibm.com> <82b491a0-7e01-4f72-bcc1-62b8fcfb9728@linux.ibm.com> Message-ID: X-Sender: sudhakar@linux.ibm.com X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 3IUJpIv_DuA5BhD04112ildjwNx1TK0d X-Proofpoint-GUID: 3IUJpIv_DuA5BhD04112ildjwNx1TK0d X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-27_06,2025-02-27_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 priorityscore=1501 mlxscore=0 bulkscore=0 mlxlogscore=999 clxscore=1011 suspectscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502100000 definitions=main-2502270114 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_H2=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org T24gMjAyNC0xMi0zMSAyMzowNywgU3RlZmFuIEJlcmdlciB3cm90ZToKPiBPbiAxMi8xOC8yNCA5 OjU2IEFNLCBTdWRoYWthciBLdXBwdXNhbXkgd3JvdGU6Cj4+IFRvIHZlcmlmeSB0aGUga2VybmVs J3M6IHZlcmlmeSB0aGUga2VybmVsIGJpbmFyeSBhZ2FpbnN0IGxpc3Qgb2YgCj4+IGJpbmFyeSBo YXNoZXMKPiAKPiBUbyB2ZXJpZnkgdGhlIGtlcm5lbCdzIHNpZ25hdHVyZT8KPiAKPiBhZ2FpbnN0 IGxpc3RzIG9mIGJpbmFyeSBoYXNoZXMKPiAKPj4gdGhhdCBhcmUgZGlzdHJ1c3RlZCBhbmQgdHJ1 c3RlZC4gSWYgaXQgaXMgbm90IGxpc3RlZCBpbiBib3RoIHRydXN0ZWQgCj4+IGFuZCBkaXN0cnVz dGVkLAo+IAo+IHRoYXQgYXJlIGVpdGhlciBkaXN0cnVzdGVkIG9yIHRydXN0ZWQuCj4gCj4gSWYg aXQgaXMgbm90IGxpc3QgaW4gZWl0aGVyIHRydXN0ZWQgb3IgZGlzdHJ1c3RlZCBoYXNoZXMgbGlz dCB0aGVuIHRoZQo+IHRydXN0ZWQga2V5cyBmcm9tIHRoZSB0cnVzdGVkIGtleSBsaXN0IGFyZSB1 c2VkIHRvIHZlcmlmeSB0aGUKPiBzaWduYXR1cmUuCj4gCj4+IHRoZSB0cnVzdGVkIGtleXMgZnJv bSB0cnVzdGVkIGtleSBsaXN0IHVzZWQgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmUuCj4+IAo+PiBT aWduZWQtb2ZmLWJ5OiBTdWRoYWthciBLdXBwdXNhbXkgPHN1ZGhha2FyQGxpbnV4LmlibS5jb20+ Cj4+IC0tLQo+PiAgIGdydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5j IHwgMTg4IAo+PiArKysrKysrKysrKysrLS0tLS0tCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDEzMyBp bnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9ncnViLWNv cmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYyAKPj4gYi9ncnViLWNvcmUvY29t bWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYwo+PiBpbmRleCAzMTY0OWU4MDAuLjhiMDg0 MDg3ZSAxMDA2NDQKPj4gLS0tIGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVu ZGVkc2lnLmMKPj4gKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVk c2lnLmMKPj4gQEAgLTQ5Nyw2ICs0OTcsODEgQEAgZXh0cmFjdF9hcHBlbmRlZF9zaWduYXR1cmUg KGNvbnN0IGdydWJfdWludDhfdCAKPj4gKmJ1ZiwgZ3J1Yl9zaXplX3QgYnVmc2l6ZSwKPj4gICAg IHJldHVybiBwYXJzZV9wa2NzN19zaWduZWREYXRhIChhcHBzaWdkYXRhLCBwa2NzN19zaXplLCAK Pj4gJnNpZy0+cGtjczcpOwo+PiAgIH0KPj4gICArc3RhdGljIGdydWJfZXJyX3QKPj4gK2dydWJf Z2V0X2JpbmFyeV9oYXNoIChjb25zdCBncnViX3NpemVfdCBiaW5hcnlfaGFzaF9zaXplLCBjb25z dCAKPj4gZ3J1Yl91aW50OF90ICpkYXRhLAo+PiArICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGdydWJfc2l6ZV90IGRhdGFfc2l6ZSwgZ3J1Yl91aW50OF90IAo+PiAqaGFzaCwgZ3J1Yl9zaXpl X3QgKmhhc2hfc2l6ZSkKPj4gK3sKPj4gKyAgZ3J1Yl91dWlkX3QgZ3VpZCA9IHsgMCB9Owo+PiAr Cj4+ICsgIC8qIHN1cHBvcnQgU0hBMjU2LCBTSEEzODQgYW5kIFNIQTUxMiBmb3IgYmluYXJ5IGhh c2ggKi8KPj4gKyAgaWYgKGJpbmFyeV9oYXNoX3NpemUgPT0gMzIpCj4+ICsgICAgZ3J1Yl9tZW1j cHkgKCZndWlkLCAmR1JVQl9QS1NfQ0VSVF9TSEEyNTZfR1VJRCwgR1JVQl9VVUlEX1NJWkUpOwo+ PiArICBlbHNlIGlmIChiaW5hcnlfaGFzaF9zaXplID09IDQ4KQo+PiArICAgIGdydWJfbWVtY3B5 ICgmZ3VpZCwgJkdSVUJfUEtTX0NFUlRfU0hBMzg0X0dVSUQsIEdSVUJfVVVJRF9TSVpFKTsKPj4g KyAgZWxzZSBpZiAoYmluYXJ5X2hhc2hfc2l6ZSA9PSA2NCkKPj4gKyAgICBncnViX21lbWNweSAo Jmd1aWQsICZHUlVCX1BLU19DRVJUX1NIQTUxMl9HVUlELCBHUlVCX1VVSURfU0laRSk7Cj4+ICsg IGVsc2UKPj4gKyAgICB7Cj4+ICsgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ1 bnN1cHBvcnRlZCBoYXNoIHR5cGUgKCUiIAo+PiBQUkl1R1JVQl9TSVpFICIpIGFuZCBza2lwcGlu ZyBiaW5hcnkgaGFzaFxuIiwKPj4gKyAgICAgICAgICAgICAgICAgICAgYmluYXJ5X2hhc2hfc2l6 ZSk7Cj4+ICsgICAgICByZXR1cm4gR1JVQl9FUlJfVU5LTk9XTl9DT01NQU5EOwo+PiArICAgIH0K Pj4gKwo+PiArICByZXR1cm4gZ3J1Yl9nZXRfaGFzaCAoJmd1aWQsIGRhdGEsIGRhdGFfc2l6ZSwg aGFzaCwgaGFzaF9zaXplKTsKPj4gK30KPj4gKwo+PiArLyoKPj4gKyAqIHZlcmlmeSBiaW5hcnkg aGFzaCBhZ2FpbnN0IHRoZSBsaXN0IG9mIGJpbmFyeSBoYXNoZXMgdGhhdCBhcmUgCj4+IGRpc3Ry dXN0ZWQKPiBWZXJpZnkgYSBiaW5hcnkgaGFzaAo+PiArICogYW5kIHRydXN0ZWQuCj4gCj4gVGhl IGZvbGxvd2luZyBlcnJvcnMgY2FuIG9jY3VyOgo+IC0gR1JVQl9FUlJfQkFEX1NJR05BVFVSRTog aW5kaWNhdGVzIHRoYXQgdGhlIGhhc2ggaXMgZGlzdHJ1c3RlZC4KPiAtIEdSVUJfRVJSX05PTkU6 IHRoZSBoYXNoIGlzIHRydXN0ZWQsIHNpbmNlIGl0IHdhcyBmb3VuZCBpbiB0aGUKPiB0cnVzdGVk IGhhc2hlcyBsaXN0Cj4gLSBHUlVCX0VSUl9FT0Y6IHRoZSBoYXNoIGNvdWxkIG5vdCBiZSBmb3Vu ZCBpbiB0aGUgaGFzaGVzIGxpc3QKPiAKPj4gKyAqLwo+PiArc3RhdGljIGdydWJfZXJyX3QKPj4g K2dydWJfdmVyaWZ5X2JpbmFyeV9oYXNoIChjb25zdCBncnViX3VpbnQ4X3QgKmRhdGEsIGNvbnN0 IGdydWJfc2l6ZV90IAo+PiBkYXRhX3NpemUpCj4+ICt7Cj4+ICsgIGdydWJfZXJyX3QgcmMgPSBH UlVCX0VSUl9OT05FOwo+PiArICBncnViX3NpemVfdCBpID0gMCwgaGFzaF9zaXplID0gMDsKPj4g KyAgZ3J1Yl91aW50OF90IGhhc2hbR1JVQl9NQVhfSEFTSF9TSVpFXSA9IHsgMCB9Owo+PiArCj4+ ICsgIGZvciAoaSA9IDA7IGkgPCBncnViX2RieC5zaWduYXR1cmVfZW50cmllczsgaSsrKQo+PiAr ICAgIHsKPj4gKyAgICAgIHJjID0gZ3J1Yl9nZXRfYmluYXJ5X2hhc2ggKGdydWJfZGJ4LnNpZ25h dHVyZV9zaXplW2ldLCBkYXRhLCAKPj4gZGF0YV9zaXplLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaGFzaCwgJmhhc2hfc2l6ZSk7Cj4+ICsgICAgICBpZiAocmMgIT0gR1JV Ql9FUlJfTk9ORSkKPj4gKyAgICAgICAgY29udGludWU7Cj4+ICsKPj4gKyAgICAgIGlmIChoYXNo X3NpemUgPT0gZ3J1Yl9kYnguc2lnbmF0dXJlX3NpemVbaV0gJiYKPj4gKyAgICAgICAgICBncnVi X21lbWNtcCAoZ3J1Yl9kYnguc2lnbmF0dXJlc1tpXSwgaGFzaCwgaGFzaF9zaXplKSA9PSAwKQo+ PiArICAgICAgICB7Cj4+ICsgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAi dGhlIGJpbmFyeSBoYXNoIAo+PiAoJTAyeCUwMnglMDJ4JTAyeCkgd2FzIGxpc3RlZCAiCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAiYXMgZGlzdHJ1c3RlZFxuIiwgaGFzaFswXSwgaGFzaFsx XSwgaGFzaFsyXSwgCj4+IGhhc2hbM10pOwo+IAo+IG1lcmdlIHRoZSBlcnJvciBzdHJpbmcgaW50 byBvbmUKPiAKPj4gKyAgICAgICAgICByZXR1cm4gR1JVQl9FUlJfQkFEX1NJR05BVFVSRTsKPj4g KyAgICAgICAgfQo+PiArICAgIH0KPj4gKwo+PiArICBmb3IgKGkgPSAwOyBpIDwgZ3J1Yl9kYi5z aWduYXR1cmVfZW50cmllczsgaSsrKQo+PiArICAgIHsKPj4gKyAgICAgIHJjID0gZ3J1Yl9nZXRf YmluYXJ5X2hhc2ggKGdydWJfZGIuc2lnbmF0dXJlX3NpemVbaV0sIGRhdGEsIAo+PiBkYXRhX3Np emUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoLCAmaGFzaF9zaXpl KTsKPj4gKyAgICAgIGlmIChyYyAhPSBHUlVCX0VSUl9OT05FKQo+PiArICAgICAgICBjb250aW51 ZTsKPj4gKwo+PiArICAgICAgaWYgKGhhc2hfc2l6ZSA9PSBncnViX2RiLnNpZ25hdHVyZV9zaXpl W2ldICYmCj4+ICsgICAgICAgICAgZ3J1Yl9tZW1jbXAgKGdydWJfZGIuc2lnbmF0dXJlc1tpXSwg aGFzaCwgaGFzaF9zaXplKSA9PSAwKQo+PiArICAgICAgICB7Cj4+ICsgICAgICAgICAgZ3J1Yl9k cHJpbnRmICgiYXBwZW5kZWRzaWciLCAidmVyaWZpZWQgd2l0aCBhIHRydXN0ZWQgCj4+IGJpbmFy eSBoYXNoICIKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICIoJTAyeCUwMnglMDJ4JTAyeClc biIsIGhhc2hbMF0sIGhhc2hbMV0sIAo+PiBoYXNoWzJdLCBoYXNoWzNdKTsKPj4gKyAgICAgICAg ICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKwo+PiAr ICByZXR1cm4gR1JVQl9FUlJfRU9GOwo+PiArfQo+PiArCj4+ICsKPj4gKy8qCj4+ICsgKiB2ZXJp ZnkgdGhlIGtlcm5lbCdzIGludGVncml0eSwgdGhlIHRydXN0ZWQga2V5IHdpbGwgYmUgdXNlZCBm cm9tCj4+ICsgKiB0aGUgdHJ1c3RlZCBrZXkgbGlzdC4gSWYgaXQgZmFpbHMsIHZlcmlmeSBpdCBh Z2FpbnN0IHRoZSBsaXN0IG9mIAo+PiBiaW5hcnkgaGFzaGVzCj4+ICsgKiB0aGF0IGFyZSBkaXN0 cnVzdGVkIGFuZCB0cnVzdGVkLgo+PiArICovCj4+ICAgc3RhdGljIGdydWJfZXJyX3QKPj4gICBn cnViX3ZlcmlmeV9hcHBlbmRlZF9zaWduYXR1cmUgKGNvbnN0IGdydWJfdWludDhfdCAqYnVmLCBn cnViX3NpemVfdCAKPj4gYnVmc2l6ZSkKPj4gICB7Cj4+IEBAIC01MDYsMTIgKzU4MSwxMiBAQCBn cnViX3ZlcmlmeV9hcHBlbmRlZF9zaWduYXR1cmUgKGNvbnN0IAo+PiBncnViX3VpbnQ4X3QgKmJ1 ZiwgZ3J1Yl9zaXplX3QgYnVmc2l6ZSkKPj4gICAgIHVuc2lnbmVkIGNoYXIgKmhhc2g7Cj4+ICAg ICBnY3J5X21waV90IGhhc2htcGk7Cj4+ICAgICBnY3J5X2Vycl9jb2RlX3QgcmM7Cj4+IC0gIHN0 cnVjdCB4NTA5X2NlcnRpZmljYXRlICpwazsKPj4gKyAgc3RydWN0IHg1MDlfY2VydGlmaWNhdGUg KmNlcnQ7Cj4+ICAgICBzdHJ1Y3QgZ3J1Yl9hcHBlbmRlZF9zaWduYXR1cmUgc2lnOwo+PiAgICAg c3RydWN0IHBrY3M3X3NpZ25lckluZm8gKnNpOwo+PiAgICAgaW50IGk7Cj4+ICAgLSAgaWYgKCFn cnViX2RiLmtleV9lbnRyaWVzKQo+PiArICBpZiAoIWdydWJfZGIua2V5X2VudHJpZXMgJiYgIWdy dWJfZGIuc2lnbmF0dXJlX2VudHJpZXMpCj4+ICAgICAgIHJldHVybiBncnViX2Vycm9yIChHUlVC X0VSUl9CQURfU0lHTkFUVVJFLCBOXygiTm8gdHJ1c3RlZCBrZXlzIAo+PiB0byB2ZXJpZnkgYWdh aW5zdCIpKTsKPj4gICAgICAgZXJyID0gZXh0cmFjdF9hcHBlbmRlZF9zaWduYXR1cmUgKGJ1Ziwg YnVmc2l6ZSwgJnNpZyk7Cj4+IEBAIC01MjAsNjggKzU5NSw3MSBAQCBncnViX3ZlcmlmeV9hcHBl bmRlZF9zaWduYXR1cmUgKGNvbnN0IAo+PiBncnViX3VpbnQ4X3QgKmJ1ZiwgZ3J1Yl9zaXplX3Qg YnVmc2l6ZSkKPj4gICAgICAgZGF0YXNpemUgPSBidWZzaXplIC0gc2lnLnNpZ25hdHVyZV9sZW47 Cj4+ICAgLSAgZm9yIChpID0gMDsgaSA8IHNpZy5wa2NzNy5zaWduZXJJbmZvX2NvdW50OyBpKysp Cj4+ICsgIGVyciA9IGdydWJfdmVyaWZ5X2JpbmFyeV9oYXNoIChidWYsIGRhdGFzaXplKTsKPj4g KyAgaWYgKGVyciA9PSBHUlVCX0VSUl9FT0YpCj4+ICAgICAgIHsKPj4gLSAgICAgIC8qCj4+IC0g ICAgICAgKiBUaGlzIGNvdWxkIGJlIG9wdGltaXNlZCBpbiBhIGNvdXBsZSBvZiB3YXlzOgo+PiAt ICAgICAgICogLSB3ZSBjb3VsZCBvbmx5IGNvbXB1dGUgaGFzaGVzIG9uY2UgcGVyIGhhc2ggdHlw ZQo+PiAtICAgICAgICogLSB3ZSBjb3VsZCB0cmFjayBzaWduZXIgaW5mb3JtYXRpb24gYW5kIG9u bHkgdmVyaWZ5IHdoZXJlIAo+PiBJRHMgbWF0Y2gKPj4gLSAgICAgICAqIEZvciBub3cgd2UgZG8g dGhlIG5haXZlIE8odHJ1c3RlZCBrZXlzICogcGtjczcgc2lnbmVycykgCj4+IGFwcHJvYWNoLgo+ PiAtICAgICAgICovCj4+IC0gICAgICBzaSA9ICZzaWcucGtjczcuc2lnbmVySW5mb3NbaV07Cj4+ IC0gICAgICBjb250ZXh0ID0gZ3J1Yl96YWxsb2MgKHNpLT5oYXNoLT5jb250ZXh0c2l6ZSk7Cj4+ IC0gICAgICBpZiAoIWNvbnRleHQpCj4+IC0gICAgICAgIHJldHVybiBncnViX2Vycm5vOwo+PiAt Cj4+IC0gICAgICBzaS0+aGFzaC0+aW5pdCAoY29udGV4dCk7Cj4+IC0gICAgICBzaS0+aGFzaC0+ d3JpdGUgKGNvbnRleHQsIGJ1ZiwgZGF0YXNpemUpOwo+PiAtICAgICAgc2ktPmhhc2gtPmZpbmFs IChjb250ZXh0KTsKPj4gLSAgICAgIGhhc2ggPSBzaS0+aGFzaC0+cmVhZCAoY29udGV4dCk7Cj4+ IC0KPj4gLSAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgImRhdGEgc2l6ZSAlIiBQ Ukl4R1JVQl9TSVpFICIsIAo+PiBzaWduZXIgJWQgaGFzaCAlMDJ4JTAyeCUwMnglMDJ4Li4uXG4i LAo+PiAtICAgICAgICAgICAgICAgICAgICBkYXRhc2l6ZSwgaSwgaGFzaFswXSwgaGFzaFsxXSwg aGFzaFsyXSwgaGFzaFszXSk7Cj4+IC0KPj4gLSAgICAgIGVyciA9IEdSVUJfRVJSX0JBRF9TSUdO QVRVUkU7Cj4+IC0gICAgICBmb3IgKHBrID0gZ3J1Yl9kYi5rZXlzOyBwazsgcGsgPSBway0+bmV4 dCkKPiAKPiAvKiBIYXNoIHdhcyBub3QgZm91bmQgaW4gdHJ1c3RlZCBhbmQgZGlzdHJ1c3RlZCBs aXN0OiBjaGVjayBzaWduYXR1cmUgCj4gbm93ICovCj4gCj4+ICsgICAgICBmb3IgKGkgPSAwOyBp IDwgc2lnLnBrY3M3LnNpZ25lckluZm9fY291bnQ7IGkrKykKPj4gICAgICAgICAgIHsKPj4gLSAg ICAgICAgICByYyA9IGdydWJfY3J5cHRvX3JzYV9wYWQgKCZoYXNobXBpLCBoYXNoLCBzaS0+aGFz aCwgCj4+IHBrLT5tcGlzWzBdKTsKPj4gLSAgICAgICAgICBpZiAocmMpCj4+ICsgICAgICAgICAg LyoKPj4gKyAgICAgICAgICAgKiBUaGlzIGNvdWxkIGJlIG9wdGltaXNlZCBpbiBhIGNvdXBsZSBv ZiB3YXlzOgo+PiArICAgICAgICAgICAqIC0gd2UgY291bGQgb25seSBjb21wdXRlIGhhc2hlcyBv bmNlIHBlciBoYXNoIHR5cGUKPj4gKyAgICAgICAgICAgKiAtIHdlIGNvdWxkIHRyYWNrIHNpZ25l ciBpbmZvcm1hdGlvbiBhbmQgb25seSB2ZXJpZnkgCj4+IHdoZXJlIElEcyBtYXRjaAo+PiArICAg ICAgICAgICAqIEZvciBub3cgd2UgZG8gdGhlIG5haXZlIE8oZ3J1Yl9kYi5rZXlzICogcGtjczcg c2lnbmVycykgCj4+IGFwcHJvYWNoLgo+PiArICAgICAgICAgICAqLwo+PiArICAgICAgICAgIHNp ID0gJnNpZy5wa2NzNy5zaWduZXJJbmZvc1tpXTsKPj4gKyAgICAgICAgICBjb250ZXh0ID0gZ3J1 Yl96YWxsb2MgKHNpLT5oYXNoLT5jb250ZXh0c2l6ZSk7Cj4+ICsgICAgICAgICAgaWYgKGNvbnRl eHQgPT0gTlVMTCkKPj4gKyAgICAgICAgICAgIHJldHVybiBncnViX2Vycm5vOwo+PiArCj4+ICsg ICAgICAgICAgc2ktPmhhc2gtPmluaXQgKGNvbnRleHQpOwo+PiArICAgICAgICAgIHNpLT5oYXNo LT53cml0ZSAoY29udGV4dCwgYnVmLCBkYXRhc2l6ZSk7Cj4+ICsgICAgICAgICAgc2ktPmhhc2gt PmZpbmFsIChjb250ZXh0KTsKPj4gKyAgICAgICAgICBoYXNoID0gc2ktPmhhc2gtPnJlYWQgKGNv bnRleHQpOwo+PiArCj4+ICsgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEgc2l6ZSAlIiBQUkl4R1JVQl9TSVpFICIs IHNpZ25lciAlZCBoYXNoIAo+PiAlMDJ4JTAyeCUwMnglMDJ4Li4uXG4iLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YXNpemUsIGksIGhhc2hbMF0sIGhhc2hbMV0sIGhhc2hbMl0sIAo+ PiBoYXNoWzNdKTsKPj4gKwo+PiArICAgICAgICAgIGVyciA9IEdSVUJfRVJSX0JBRF9TSUdOQVRV UkU7Cj4+ICsgICAgICAgICAgZm9yIChjZXJ0ID0gZ3J1Yl9kYi5rZXlzOyBjZXJ0OyBjZXJ0ID0g Y2VydC0+bmV4dCkKPj4gICAgICAgICAgICAgICB7Cj4+IC0gICAgICAgICAgICAgIGVyciA9IGdy dWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsCj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5fKCJFcnJvciBwYWRkaW5nIGhhc2ggZm9yIFJTQSAKPj4gdmVyaWZpY2F0 aW9uOiAlZCIpLCByYyk7Cj4+IC0gICAgICAgICAgICAgIGdydWJfZnJlZSAoY29udGV4dCk7Cj4+ IC0gICAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKPj4gKyAgICAgICAgICAgICAgcmMgPSBncnVi X2NyeXB0b19yc2FfcGFkICgmaGFzaG1waSwgaGFzaCwgc2ktPmhhc2gsIAo+PiBjZXJ0LT5tcGlz WzBdKTsKPj4gKyAgICAgICAgICAgICAgaWYgKHJjICE9IDApCj4+ICsgICAgICAgICAgICAgICAg ewo+PiArICAgICAgICAgICAgICAgICAgZXJyID0gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJ R05BVFVSRSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJFcnJv ciBwYWRkaW5nIGhhc2ggZm9yIFJTQSAKPj4gdmVyaWZpY2F0aW9uOiAlZCIpLCByYyk7Cj4+ICsg ICAgICAgICAgICAgICAgICBncnViX2ZyZWUgKGNvbnRleHQpOwo+PiArICAgICAgICAgICAgICAg ICAgcGtjczdfc2lnbmVkRGF0YV9yZWxlYXNlICgmc2lnLnBrY3M3KTsKPj4gKyAgICAgICAgICAg ICAgICAgIHJldHVybiBlcnI7Cj4+ICsgICAgICAgICAgICAgICAgfQo+PiArCj4+ICsgICAgICAg ICAgICAgIHJjID0gX2djcnlfcHVia2V5X3NwZWNfcnNhLnZlcmlmeSAoMCwgaGFzaG1waSwgCj4+ ICZzaS0+c2lnX21waSwgY2VydC0+bXBpcywgTlVMTCwgTlVMTCk7Cj4+ICsgICAgICAgICAgICAg IGdjcnlfbXBpX3JlbGVhc2UgKGhhc2htcGkpOwo+PiArICAgICAgICAgICAgICBpZiAocmMgPT0g MCkKPj4gKyAgICAgICAgICAgICAgICB7Cj4+ICsgICAgICAgICAgICAgICAgICBncnViX2Rwcmlu dGYgKCJhcHBlbmRlZHNpZyIsICJ2ZXJpZnkgc2lnbmVyICVkIHdpdGggCj4+IGtleSAnJXMnIHN1 Y2NlZWRlZFxuIiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgY2VydC0+ c3ViamVjdCk7Cj4+ICsgICAgICAgICAgICAgICAgICBlcnIgPSBHUlVCX0VSUl9OT05FOwo+PiAr ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICsgICAgICAgICAgICAgICAgfQo+PiArCj4+ICsg ICAgICAgICAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgInZlcmlmeSBzaWduZXIg JWQgd2l0aCBrZXkgCj4+ICclcycgZmFpbGVkIHdpdGggJWRcbiIsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSwgY2VydC0+c3ViamVjdCwgcmMpOwo+PiAgICAgICAgICAgICAgIH0K Pj4gICAtICAgICAgICAgIHJjID0gX2djcnlfcHVia2V5X3NwZWNfcnNhLnZlcmlmeSAoMCwgaGFz aG1waSwgCj4+ICZzaS0+c2lnX21waSwgcGstPm1waXMsIE5VTEwsIE5VTEwpOwo+PiAtICAgICAg ICAgIGdjcnlfbXBpX3JlbGVhc2UgKGhhc2htcGkpOwo+PiAtCj4+IC0gICAgICAgICAgaWYgKHJj ID09IDApCj4+IC0gICAgICAgICAgICB7Cj4+IC0gICAgICAgICAgICAgIGdydWJfZHByaW50ZiAo ImFwcGVuZGVkc2lnIiwgInZlcmlmeSBzaWduZXIgJWQgd2l0aCBrZXkgCj4+ICclcycgc3VjY2Vl ZGVkXG4iLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHBrLT5zdWJqZWN0KTsK Pj4gLSAgICAgICAgICAgICAgZXJyID0gR1JVQl9FUlJfTk9ORTsKPj4gLSAgICAgICAgICAgICAg YnJlYWs7Cj4+IC0gICAgICAgICAgICB9Cj4+IC0KPj4gLSAgICAgICAgICBncnViX2RwcmludGYg KCJhcHBlbmRlZHNpZyIsICJ2ZXJpZnkgc2lnbmVyICVkIHdpdGgga2V5IAo+PiAnJXMnIGZhaWxl ZCB3aXRoICVkXG4iLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgaSwgcGstPnN1YmplY3Qs IHJjKTsKPj4gLSAgICAgICAgfQo+PiAtCj4+IC0gICAgICBncnViX2ZyZWUgKGNvbnRleHQpOwo+ PiAtCj4+IC0gICAgICBpZiAoZXJyID09IEdSVUJfRVJSX05PTkUpCj4+IC0gICAgICAgIGJyZWFr Owo+PiArICAgICAgICAgIGdydWJfZnJlZSAoY29udGV4dCk7Cj4+ICsgICAgICAgICAgaWYgKGVy ciA9PSBHUlVCX0VSUl9OT05FKQo+PiArICAgICAgICAgICAgYnJlYWs7Cj4+ICsgICAgICB9Cj4+ ICAgICAgIH0KPj4gICAtICAvKiBJZiB3ZSBkaWRuJ3QgdmVyaWZ5LCBwcm92aWRlIGEgbmVhdCBt ZXNzYWdlICovCj4+IC0gIGlmIChlcnIgIT0gR1JVQl9FUlJfTk9ORSkKPj4gLSAgICBlcnIgPSBn cnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLAo+PiAtICAgICAgICAgICAgICAgICAg ICAgIE5fKCJGYWlsZWQgdG8gdmVyaWZ5IHNpZ25hdHVyZSBhZ2FpbnN0IGEgCj4+IHRydXN0ZWQg a2V5IikpOwo+PiAtCj4+IC1jbGVhbnVwOgo+PiAgICAgcGtjczdfc2lnbmVkRGF0YV9yZWxlYXNl ICgmc2lnLnBrY3M3KTsKPj4gICArICBpZiAoZXJyICE9IEdSVUJfRVJSX05PTkUpCj4+ICsgICAg ZXJyID0gZ3J1Yl9lcnJvciAoZXJyLCBOXygiZmFpbGVkIHRvIHZlcmlmeSBzaWduYXR1cmUgd2l0 aCBhbnkgCj4+IHRydXN0ZWQga2V5XG4iKSk7Cj4gCj4gWW91IG1heSBuZWVkIGEgc3BlY2lhbCBj YXNlIHRvIGp1bXAgdG8gZnJvbSBhZnRlciB0aGUgaGFzaCBsaXN0IHRlc3QKPiB0byBpbmRpY2F0 ZSB0aGF0IHRoZSBoYXNoIHdhcyBmb3VuZCBpbiB0aGUgZGlzdHJ1c3RlZCBoYXNoZXMgbGlzdC4K PiAKPj4gKyAgZWxzZQo+PiArICAgIGdydWJfcHJpbnRmICgiYXBwZW5kZWRzaWc6IHN1Y2Nlc3Nm dWxseSB2ZXJpZmllZCB0aGUgc2lnbmF0dXJlIAo+PiB3aXRoIGEgdHJ1c3RlZCBrZXlcbiIpOwo+ PiArCj4+ICAgICByZXR1cm4gZXJyOwo+PiAgIH0KPj4gCgoKYWRkcmVzc2VkIGFsbCB0aGUgY29t bWVudHMuIHRoYW5rIHlvdSBzdGVmYW4uCgpUaGFua3MsClN1ZGhha2FyIEt1cHB1c2FteQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBt YWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWls bWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK