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 D850ACAC592 for ; Mon, 22 Sep 2025 09:30:04 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v0crP-0001Gt-CO; Mon, 22 Sep 2025 05:29: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 1v0crA-0001Eh-Kz for grub-devel@gnu.org; Mon, 22 Sep 2025 05:29:17 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v0cr6-0007Kk-Vn for grub-devel@gnu.org; Mon, 22 Sep 2025 05:29:11 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58M3VRuH010787; Mon, 22 Sep 2025 09:29:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=HzxVgdpS32Br8lNV2 eAViaSwh5ejZG8WLw4q5bNQsZo=; b=BSh1XuYF9tIV8rGl1Ik2OQPrZKHQllquY cJgxjMSthgKlmfMWiQ1F6ZgVTZYOE/MQmK+PqENI9VMOp9qdX3fhdHojJzyNs4gC ZhiEzfkwM6/i4C/eNByx7IezagWtJkjXQAYI8hepIJQQVUHPPPXhf+3K5DTIKlMk s3O02N4ZPwa+55VYpAXhgjKz+huBrLTbWgSILQWZagl7nq8lcfo8pjQ5RNJnO6/g BNYeFRutmAafmZLKDd6o/Cdhl1If+BCotiirWqHADDn0RnmVqnQrOGE2gHqNuk/Q VxaeOCdzh6mXOHCbWJodryxcbJCx+Ddz4zFQNHpjAG6S56VtBsaow== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 499ky5svr1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Sep 2025 09:29:03 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58M90JIV019743; Mon, 22 Sep 2025 09:29:02 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49a83jwarm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Sep 2025 09:29:02 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58M9SwgL49152500 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Sep 2025 09:28:58 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6A2AF20040; Mon, 22 Sep 2025 09:28:58 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B090820043; Mon, 22 Sep 2025 09:28:55 +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:28:55 +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 06/22] appended signatures: Parse ASN1 node Date: Mon, 22 Sep 2025 14:57:47 +0530 Message-ID: <20250922092814.39630-7-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-Proofpoint-ORIG-GUID: WM4lIZO4t509vf3n3K4K0XxCU0To7n77 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTIwMDAyMCBTYWx0ZWRfX8D043OIxQY/t VTefLx9bne9DVky6JzqVR6EXsStxbAQRCzJexuEN0PpglAA95YR/Tx96QjeQwymhuABEMl6yeFs 1LT0hWCSeyZblxJ4tdOU257BrA4Yj24sTQKBpKJTojnFQ7OpUAl1dCVwysRWc0m1onzbcyR4TBD Djmg6Yzu5IrNqw8hhzVeIeK3z/xm0Vp28KDrTjltQ/G0GGSwwAIgl/DLvohsXQlqEbInhySdPk8 96ldKSjheTEVfE1+9LrOvZziayHFf9uYF1wB+z5BrUrc5kMsvGUJx89pLzvXeaiYwz26FxSx/DU 2sBWseudSpYkTwAyHp8hhlMqPY0VHYH04HWNSP6KIaGYft1qflo9ds6mkPQdLi6o3SifQPJUvz/ 5RCul98s X-Authority-Analysis: v=2.4 cv=XYGJzJ55 c=1 sm=1 tr=0 ts=68d116df cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=yJojWOMRYYMA:10 a=mDV3o1hIAAAA:8 a=JuTF4qcAAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=QQTzU-B8HNZ-fe_KibsA:9 a=WlT8qwTXB_Kj6um4hl3b:22 X-Proofpoint-GUID: WM4lIZO4t509vf3n3K4K0XxCU0To7n77 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 spamscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 suspectscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509200020 Received-SPF: pass client-ip=148.163.156.1; envelope-from=sudhakar@linux.ibm.com; helo=mx0a-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 VGhpcyBjb2RlIGFsbG93cyB1cyB0byBwYXJzZSBBU04xIG5vZGUgYW5kIGFsbG9jYXRpbmcgbWVt b3J5IHRvIHN0b3JlIGl0LgpJdCB3aWxsIHdvcmsgZm9yIGFueXRoaW5nIHdoZXJlIHRoZSBzaXpl IGxpYnRhc24xIHJldHVybnMgaXMgcmlnaHQ6CiAtIEludGVnZXJzCiAtIE9jdGV0IHN0cmluZ3MK IC0gREVSIGVuY29kaW5nIG9mIG90aGVyIHN0cnVjdHVyZXMKSXQgd2lsbCBfbm90XyB3b3JrIGZv ciB0aGluZ3Mgd2hlcmUgbGlidGFzbjEgc2l6ZSByZXF1aXJlcyBhZGp1c3RtZW50OgogLSBTdHJp bmdzIHRoYXQgcmVxdWlyZSBhbiBleHRyYSBOVUxMIGJ5dGUgYXQgdGhlIGVuZAogLSBCaXQgc3Ry aW5ncyBiZWNhdXNlIGxpYnRhc24xIHJldHVybnMgdGhlIGxlbmd0aCBpbiBiaXRzLCBub3QgYnl0 ZXMuCklmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgbm9uLU5VTEwgdmFsdWUsIHRoZSBjYWxsZXIg bXVzdCBmcmVlIGl0LgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEF4dGVucyA8ZGphQGF4dGVucy5u ZXQ+ClNpZ25lZC1vZmYtYnk6IFN1ZGhha2FyIEt1cHB1c2FteSA8c3VkaGFrYXJAbGludXguaWJt LmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJAbGludXguaWJtLmNvbT4K UmV2aWV3ZWQtYnk6IEF2bmlzaCBDaG91aGFuIDxhdm5pc2hAbGludXguaWJtLmNvbT4KUmV2aWV3 ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0tLQogZ3J1Yi1j b3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmggfCA0MyArKysrKysrKysKIGdy dWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hc24xdXRpbC5jICAgIHwgOTcgKysrKysrKysr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBt b2RlIDEwMDY0NCBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hc24xdXRp bC5jCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVk c2lnLmggYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmI2NWQzOGY3OQotLS0gL2Rldi9udWxs CisrKyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5oCkBAIC0w LDAgKzEsNDMgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRlcgor ICogIENvcHlyaWdodCAoQykgMjAyMCwgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMjAsIDIwMjIsIDIwMjUgSUJNIENvcnBvcmF0aW9uCisg KgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUgPGxpYnRhc24xLmg+CisKK2V4dGVy biBhc24xX25vZGUgZ3J1Yl9nbnV0bHNfZ251dGxzX2FzbjsKK2V4dGVybiBhc24xX25vZGUgZ3J1 Yl9nbnV0bHNfcGtpeF9hc247CisKKy8qIERvIGxpYnRhc24xIGluaXQuICovCitleHRlcm4gaW50 CitncnViX2FzbjFfaW5pdCAodm9pZCk7CisKKy8qCisgKiBSZWFkIGEgdmFsdWUgZnJvbSBhbiBB U04xIG5vZGUsIGFsbG9jYXRpbmcgbWVtb3J5IHRvIHN0b3JlIGl0LgorICogSXQgd2lsbCB3b3Jr IGZvciBhbnl0aGluZyB3aGVyZSB0aGUgc2l6ZSBsaWJ0YXNuMSByZXR1cm5zIGlzIHJpZ2h0Ogor ICogIC0gSW50ZWdlcnMKKyAqICAtIE9jdGV0IHN0cmluZ3MKKyAqICAtIERFUiBlbmNvZGluZyBv ZiBvdGhlciBzdHJ1Y3R1cmVzCisgKiBJdCB3aWxsIF9ub3RfIHdvcmsgZm9yIHRoaW5ncyB3aGVy ZSBsaWJ0YXNuMSBzaXplIHJlcXVpcmVzIGFkanVzdG1lbnQ6CisgKiAgLSBTdHJpbmdzIHRoYXQg cmVxdWlyZSBhbiBleHRyYSBudWxsIGJ5dGUgYXQgdGhlIGVuZAorICogIC0gQml0IHN0cmluZ3Mg YmVjYXVzZSBsaWJ0YXNuMSByZXR1cm5zIHRoZSBsZW5ndGggaW4gYml0cywgbm90IGJ5dGVzLgor ICoKKyAqIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgbm9uLU5VTEwgdmFsdWUsIHRoZSBjYWxs ZXIgbXVzdCBmcmVlIGl0LgorICovCitleHRlcm4gdm9pZCAqCitncnViX2FzbjFfYWxsb2NhdGVf YW5kX3JlYWQgKGFzbjFfbm9kZSBub2RlLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpm cmllbmRseV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX2ludDMyX3Qg KmNvbnRlbnRfc2l6ZSk7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRz aWcvYXNuMXV0aWwuYyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hc24xdXRpbC5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYzVkM2MyNjg2Ci0tLSAvZGV2 L251bGwKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FzbjF1dGlsLmMKQEAg LTAsMCArMSw5NyBAQAorLyoKKyAqICBHUlVCICAtLSAgR1JhbmQgVW5pZmllZCBCb290bG9hZGVy CisgKiAgQ29weXJpZ2h0IChDKSAyMDIwLCAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorICogIENvcHlyaWdodCAoQykgMjAyMCwgMjAyMiwgMjAyNSBJQk0gQ29ycG9yYXRpb24K KyAqCisgKiAgR1JVQiBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIEdSVUIgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggR1JVQi4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8bGlidGFzbjEuaD4KKyNpbmNs dWRlIDxncnViL3R5cGVzLmg+CisjaW5jbHVkZSA8Z3J1Yi9lcnIuaD4KKyNpbmNsdWRlIDxncnVi L21tLmg+CisjaW5jbHVkZSA8Z3J1Yi9jcnlwdG8uaD4KKyNpbmNsdWRlIDxncnViL21pc2MuaD4K KyNpbmNsdWRlIDxncnViL2djcnlwdC9nY3J5cHQuaD4KKworI2luY2x1ZGUgImFwcGVuZGVkc2ln LmgiCisKK2FzbjFfbm9kZSBncnViX2dudXRsc19nbnV0bHNfYXNuID0gTlVMTDsKK2FzbjFfbm9k ZSBncnViX2dudXRsc19wa2l4X2FzbiA9IE5VTEw7CisKK2V4dGVybiBjb25zdCBhc24xX3N0YXRp Y19ub2RlIGdydWJfZ251dGxzX2FzbjFfdGFiW107CitleHRlcm4gY29uc3QgYXNuMV9zdGF0aWNf bm9kZSBncnViX3BraXhfYXNuMV90YWJbXTsKKworLyoKKyAqIFJlYWQgYSB2YWx1ZSBmcm9tIGFu IEFTTjEgbm9kZSwgYWxsb2NhdGluZyBtZW1vcnkgdG8gc3RvcmUgaXQuCisgKiBJdCB3aWxsIHdv cmsgZm9yIGFueXRoaW5nIHdoZXJlIHRoZSBzaXplIGxpYnRhc24xIHJldHVybnMgaXMgcmlnaHQ6 CisgKiAgLSBJbnRlZ2VycworICogIC0gT2N0ZXQgc3RyaW5ncworICogIC0gREVSIGVuY29kaW5n IG9mIG90aGVyIHN0cnVjdHVyZXMKKyAqIEl0IHdpbGwgX25vdF8gd29yayBmb3IgdGhpbmdzIHdo ZXJlIGxpYnRhc24xIHNpemUgcmVxdWlyZXMgYWRqdXN0bWVudDoKKyAqICAtIFN0cmluZ3MgdGhh dCByZXF1aXJlIGFuIGV4dHJhIE5VTEwgYnl0ZSBhdCB0aGUgZW5kCisgKiAgLSBCaXQgc3RyaW5n cyBiZWNhdXNlIGxpYnRhc24xIHJldHVybnMgdGhlIGxlbmd0aCBpbiBiaXRzLCBub3QgYnl0ZXMu CisgKiBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIG5vbi1OVUxMIHZhbHVlLCB0aGUgY2FsbGVy IG11c3QgZnJlZSBpdC4KKyAqLwordm9pZCAqCitncnViX2FzbjFfYWxsb2NhdGVfYW5kX3JlYWQg KGFzbjFfbm9kZSBub2RlLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpmcmllbmRseV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX2ludDMyX3QgKmNvbnRlbnRf c2l6ZSkKK3sKKyAgZ3J1Yl9pbnQzMl90IHJlc3VsdDsKKyAgZ3J1Yl91aW50OF90ICp0bXBzdHIg PSBOVUxMOworICBncnViX2ludDMyX3QgdG1wc3RyX3NpemUgPSAwOworCisgIHJlc3VsdCA9IGFz bjFfcmVhZF92YWx1ZSAobm9kZSwgbmFtZSwgTlVMTCwgJnRtcHN0cl9zaXplKTsKKyAgaWYgKHJl c3VsdCAhPSBBU04xX01FTV9FUlJPUikKKyAgICB7CisgICAgICBncnViX2Vycm9yIChHUlVCX0VS Ul9CQURfRklMRV9UWVBFLCAicmVhZGluZyBzaXplIG9mICVzIGRpZCBub3QgcmV0dXJuIGV4cGVj dGVkIHN0YXR1czogJXMiLAorICAgICAgICAgICAgICAgICAgZnJpZW5kbHlfbmFtZSwgYXNuMV9z dHJlcnJvciAocmVzdWx0KSkgOworICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgIHRtcHN0 ciA9IGdydWJfbWFsbG9jICh0bXBzdHJfc2l6ZSk7CisgIGlmICh0bXBzdHIgPT0gTlVMTCkKKyAg ICB7CisgICAgICBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVNT1JZLCAiY291bGQgbm90 IGFsbG9jYXRlIG1lbW9yeSB0byBzdG9yZSAlcyIsCisgICAgICAgICAgICAgICAgICBmcmllbmRs eV9uYW1lKSA7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgcmVzdWx0ID0gYXNuMV9y ZWFkX3ZhbHVlIChub2RlLCBuYW1lLCB0bXBzdHIsICZ0bXBzdHJfc2l6ZSk7CisgIGlmIChyZXN1 bHQgIT0gQVNOMV9TVUNDRVNTKQorICAgIHsKKyAgICAgIGdydWJfZnJlZSAodG1wc3RyKTsKKyAg ICAgIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFX1RZUEUsICJlcnJvciByZWFkaW5nICVz OiAlcyIsIGZyaWVuZGx5X25hbWUsCisgICAgICAgICAgICAgICAgICBhc24xX3N0cmVycm9yIChy ZXN1bHQpKSA7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgKmNvbnRlbnRfc2l6ZSA9 IHRtcHN0cl9zaXplOworCisgIHJldHVybiB0bXBzdHI7Cit9CisKK2ludAorZ3J1Yl9hc24xX2lu aXQgKHZvaWQpCit7CisgIGludCByZXM7CisKKyAgcmVzID0gYXNuMV9hcnJheTJ0cmVlIChncnVi X2dudXRsc19hc24xX3RhYiwgJmdydWJfZ251dGxzX2dudXRsc19hc24sIE5VTEwpOworICBpZiAo cmVzICE9IEFTTjFfU1VDQ0VTUykKKyAgICByZXR1cm4gcmVzOworCisgIHJlcyA9IGFzbjFfYXJy YXkydHJlZSAoZ3J1Yl9wa2l4X2FzbjFfdGFiLCAmZ3J1Yl9nbnV0bHNfcGtpeF9hc24sIE5VTEwp OworCisgIHJldHVybiByZXM7Cit9Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWls aW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL2dydWItZGV2ZWwK