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 30BD5D6DDE0 for ; Fri, 15 Nov 2024 07:39:17 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBquO-00041w-Aq; Fri, 15 Nov 2024 02:38:24 -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 1tBqtc-00027d-In for grub-devel@gnu.org; Fri, 15 Nov 2024 02:37:36 -0500 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tBqtY-0000IF-Sk for grub-devel@gnu.org; Fri, 15 Nov 2024 02:37:36 -0500 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-53a007743e7so373928e87.1 for ; Thu, 14 Nov 2024 23:37:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731656233; x=1732261033; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JHHfjtZsUnyvyhpPUTiKNt72m4TjqQwtNY51AYApkTE=; b=YlNmVbpejTJ/PXd+QFuVVEZaT/zua1vg7H3nSXAI5VKTRxPQtGHm/x5H6eAD9sm9dU S3fOGmiLnrFv3HGBRQr86+jx16yHTKZ5AiQLoaiQYhB6z6MKmtZDy0B/p5122jNFUItI rT6zXeCMXYxyP+HM5rvFG79gWCCMoNEWest+xK3Plsf5Fc7JXqWvlacHSBXUwE13Qup5 0aBZhCZpv08lI+cnrtOhGNz6cn0oqukwDfSUsbd1LB8GPPRKzOUssl/IEd1rNIrKBvKc 2K2SkrxYngEgnEFKCaP+/kkm2EUAshNAkOSXJGpbwzOQB6fDfP751hMwnHHXAUFCRPDX eElQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731656233; x=1732261033; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JHHfjtZsUnyvyhpPUTiKNt72m4TjqQwtNY51AYApkTE=; b=jRtUnf28P9U8fKMbuGylJ1BJGMgwNIcwq9eoJPGSOp1SXpc6PFN9SHNKHnqSqnKXKe 98/u+YRHPvxup527I00ESmOkYhDvbXzG+Yu35sf/gOFOWDccFk6VI63YRf7WBvuu1uuJ W/FjRCOcmGpz1E+T2trqQTdkv1m0aQ+Lmto0nATpEYHmqUz4o9bP7nSBRyf2zY3bDHIU 4kus8Cx8uJEr4Gwg8gyrTAUi6/zd6cKKHwxYnKM/i4y7ySClHwFw397r6/gloBYo17Vy uhpZM5GZgrke6pUin74UG6OvCdu6nfKq43ud3eCGbGIFC1rKx5QG94HPwY8wodOGzFFw ygug== X-Gm-Message-State: AOJu0Yw6J2+yxucsp/3p/gdgo15L45ckPvCXVsNrZOVRiDH79q6O1i7R xFYzDTAqV/d396quhxVn7fLANdZ7FoeBU2TL86g8WKZ6/IpfsuUKizPQ7ZUMaC0cZN2M0PTg11q 0 X-Google-Smtp-Source: AGHT+IEIHiFNUPax4zIa9x/epopJ78L7yY4PLz7lw/OimdXbesD0AqINfeXzaujmaVxKiO5OlC9Big== X-Received: by 2002:a05:6512:b20:b0:539:f36c:dbac with SMTP id 2adb3069b0e04-53dab295faemr698592e87.4.1731656232922; Thu, 14 Nov 2024 23:37:12 -0800 (PST) Received: from localhost (111-240-136-29.dynamic-ip.hinet.net. [111.240.136.29]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-211d0f47ae7sm6681875ad.208.2024.11.14.23.37.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2024 23:37:12 -0800 (PST) To: The development of GNU GRUB Subject: [PATCH v23 31/33] tpm2_key_protector: Add grub-emu support Date: Fri, 15 Nov 2024 15:34:59 +0800 Message-ID: <20241115073506.2784-32-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241115073506.2784-1-glin@suse.com> References: <20241115073506.2784-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::136; envelope-from=glin@suse.com; helo=mail-lf1-x136.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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: , From: Gary Lin via Grub-devel Reply-To: The development of GNU GRUB Cc: Gary Lin , Daniel Kiper , Hernan Gatta , Daniel Axtens , shkhisti@microsoft.com, jaskaran.khurana@microsoft.com, christopher.co@microsoft.com, daniel.mihai@microsoft.com, jaredz@redhat.com, development@efficientek.com, jejb@linux.ibm.com, mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , Vladimir Serbinenko 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 QXMgYSBwcmVwYXJhdGlvbiB0byB0ZXN0IHRwbTJfa2V5X3Byb3RlY3RvciB3aXRoIGdydWItZW11 LCB0aGUgbmV3Cm9wdGlvbiwgLS10cG0tZGV2aWNlLCBpcyBpbnRyb2R1Y2VkIHRvIHNwZWNpZnkg dGhlIFRQTSBkZXZpY2UgZm9yCmdydWItZW11IHNvIHRoYXQgZ3J1Yi1lbXUgY2FuIGFjY2VzcyBh biBlbXVsYXRlZCBUUE0gZGV2aWNlIGZyb20KdGhlIGhvc3QuCgpTaW5jZSBncnViLWVtdSBjYW4g ZGlyZWN0bHkgYWNjZXNzIHRoZSBkZXZpY2Ugb24gaG9zdCwgaXQncyBlYXN5IHRvCmltcGxlbWVu dCB0aGUgZXNzZW50aWFsIFRDRzIgY29tbWFuZCBzdWJtaXNzaW9uIGZ1bmN0aW9uIHdpdGggdGhl CnJlYWQvd3JpdGUgZnVuY3Rpb25zIGFuZCBlbmFibGUgdHBtMl9rZXlfcHJvdGVjdG9yIG1vZHVs ZSBmb3IgZ3J1Yi1lbXUsCnNvIHRoYXQgd2UgY2FuIGZ1cnRoZXIgdGVzdCBUUE0yIGtleSB1bnNl YWxpbmcgd2l0aCBncnViLWVtdS4KClNpZ25lZC1vZmYtYnk6IEdhcnkgTGluIDxnbGluQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogU3RlZmFuIEJlcmdlciA8c3RlZmFuYkBsaW51eC5pYm0uY29tPgpS ZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4KLS0tCiBn cnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgICB8ICAzICsrKwogZ3J1Yi1jb3JlL2tlcm4vZW11 L21haW4uYyAgICAgfCAxMSArKysrKysrLQogZ3J1Yi1jb3JlL2tlcm4vZW11L21pc2MuYyAgICAg fCA1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZ3J1Yi1jb3JlL2xpYi90 c3MyL3RjZzJfZW11LmMgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGlu Y2x1ZGUvZ3J1Yi9lbXUvbWlzYy5oICAgICAgIHwgIDUgKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAx MTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWIt Y29yZS9saWIvdHNzMi90Y2cyX2VtdS5jCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL01ha2VmaWxl LmNvcmUuZGVmIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCmluZGV4IDk3YWU0ZTQ5Yi4u NDA0MjcxNjVlIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYKKysrIGIv Z3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCkBAIC0yNTc0LDcgKzI1NzQsOSBAQCBtb2R1bGUg PSB7CiAgIGNvbW1vbiA9IGxpYi90c3MyL3RwbTJfY21kLmM7CiAgIGNvbW1vbiA9IGxpYi90c3My L3RzczIuYzsKICAgZWZpID0gbGliL2VmaS90Y2cyLmM7CisgIGVtdSA9IGxpYi90c3MyL3RjZzJf ZW11LmM7CiAgIGVuYWJsZSA9IGVmaTsKKyAgZW5hYmxlID0gZW11OwogICBjcHBmbGFncyA9ICct SSQoc3JjZGlyKS9saWIvdHNzMic7CiB9OwogCkBAIC0yNTg2LDYgKzI1ODgsNyBAQCBtb2R1bGUg PSB7CiAgIGNvbW1vbiA9IGNvbW1hbmRzL3RwbTJfa2V5X3Byb3RlY3Rvci90cG0ya2V5X2FzbjFf dGFiLmM7CiAgIC8qIFRoZSBwbGFmb3JtIHN1cHBvcnQgb2YgdHBtMl9rZXlfcHJvdGVjdG9yIGRl cGVuZHMgb24gdGhlIHRjZzIgaW1wbGVtZW50YXRpb24gaW4gdHNzMi4gKi8KICAgZW5hYmxlID0g ZWZpOworICBlbmFibGUgPSBlbXU7CiAgIGNwcGZsYWdzID0gJy1JJChzcmNkaXIpL2xpYi90c3My IC1JJChzcmNkaXIpL2xpYi9saWJ0YXNuMS1ncnViJzsKIH07CiAKZGlmZiAtLWdpdCBhL2dydWIt Y29yZS9rZXJuL2VtdS9tYWluLmMgYi9ncnViLWNvcmUva2Vybi9lbXUvbWFpbi5jCmluZGV4IDg1 NWIxMWMzZC4uOGE3MGJkN2Q2IDEwMDY0NAotLS0gYS9ncnViLWNvcmUva2Vybi9lbXUvbWFpbi5j CisrKyBiL2dydWItY29yZS9rZXJuL2VtdS9tYWluLmMKQEAgLTU1LDcgKzU1LDcgQEAKIHN0YXRp YyBqbXBfYnVmIG1haW5fZW52OwogCiAvKiBTdG9yZSB0aGUgcHJlZml4IHNwZWNpZmllZCBieSBh biBhcmd1bWVudC4gICovCi1zdGF0aWMgY2hhciAqcm9vdF9kZXYgPSBOVUxMLCAqZGlyID0gTlVM TDsKK3N0YXRpYyBjaGFyICpyb290X2RldiA9IE5VTEwsICpkaXIgPSBOVUxMLCAqdHBtX2RldiA9 IE5VTEw7CiAKIGdydWJfYWRkcl90IGdydWJfbW9kYmFzZSA9IDA7CiAKQEAgLTEwOCw2ICsxMDgs NyBAQCBzdGF0aWMgc3RydWN0IGFyZ3Bfb3B0aW9uIG9wdGlvbnNbXSA9IHsKICAgeyJ2ZXJib3Nl IiwgICAgICd2JywgMCwgICAgICAwLCBOXygicHJpbnQgdmVyYm9zZSBtZXNzYWdlcy4iKSwgMH0s CiAgIHsiaG9sZCIsICAgICAnSCcsIE5fKCJTRUNTIiksICAgICAgT1BUSU9OX0FSR19PUFRJT05B TCwgTl8oIndhaXQgdW50aWwgYSBkZWJ1Z2dlciB3aWxsIGF0dGFjaCIpLCAwfSwKICAgeyJrZXhl YyIsICAgICAgICdYJywgMCwgICAgICAwLCBOXygidXNlIGtleGVjIHRvIGJvb3QgTGludXgga2Vy bmVscyB2aWEgc3lzdGVtY3RsIChwYXNzIHR3aWNlIHRvIGVuYWJsZSBkYW5nZXJvdXMgZmFsbGJh Y2sgdG8gbm9uLXN5c3RlbWN0bCkuIiksIDB9LAorICB7InRwbS1kZXZpY2UiLCAgJ3QnLCBOXygi REVWIiksIDAsIE5fKCJzZXQgVFBNIGRldmljZS4iKSwgMH0sCiAgIHsgMCwgMCwgMCwgMCwgMCwg MCB9CiB9OwogCkBAIC0xNjgsNiArMTY5LDEwIEBAIGFyZ3BfcGFyc2VyIChpbnQga2V5LCBjaGFy ICphcmcsIHN0cnVjdCBhcmdwX3N0YXRlICpzdGF0ZSkKICAgICBjYXNlICdYJzoKICAgICAgIGdy dWJfdXRpbF9zZXRfa2V4ZWN1dGUgKCk7CiAgICAgICBicmVhazsKKyAgICBjYXNlICd0JzoKKyAg ICAgIGZyZWUgKHRwbV9kZXYpOworICAgICAgdHBtX2RldiA9IHhzdHJkdXAgKGFyZyk7CisgICAg ICBicmVhazsKIAogICAgIGNhc2UgQVJHUF9LRVlfQVJHOgogICAgICAgewpAQCAtMjc2LDYgKzI4 MSw5IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKICAgZGlyID0geHN0cmR1cCAo ZGlyKTsKIAorICBpZiAodHBtX2RldikKKyAgICBncnViX3V0aWxfdHBtX29wZW4gKHRwbV9kZXYp OworCiAgIC8qIFN0YXJ0IEdSVUIhICAqLwogICBpZiAoc2V0am1wIChtYWluX2VudikgPT0gMCkK ICAgICBncnViX21haW4gKCk7CkBAIC0yODMsNiArMjkxLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgZ3J1Yl9maW5pX2FsbCAoKTsKICAgZ3J1Yl9ob3N0ZnNfZmluaSAoKTsK ICAgZ3J1Yl9ob3N0X2ZpbmkgKCk7CisgIGdydWJfdXRpbF90cG1fY2xvc2UgKCk7CiAKICAgZ3J1 Yl9tYWNoaW5lX2ZpbmkgKEdSVUJfTE9BREVSX0ZMQUdfTk9SRVRVUk4pOwogCmRpZmYgLS1naXQg YS9ncnViLWNvcmUva2Vybi9lbXUvbWlzYy5jIGIvZ3J1Yi1jb3JlL2tlcm4vZW11L21pc2MuYwpp bmRleCA1MjEyMjBiNDkuLjFkYjI0ZmRlNyAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2tlcm4vZW11 L21pc2MuYworKysgYi9ncnViLWNvcmUva2Vybi9lbXUvbWlzYy5jCkBAIC0yOCw2ICsyOCw4IEBA CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CiAK ICNpbmNsdWRlIDxncnViL21tLmg+CiAjaW5jbHVkZSA8Z3J1Yi9lcnIuaD4KQEAgLTQxLDYgKzQz LDggQEAKIGludCB2ZXJib3NpdHk7CiBpbnQga2V4ZWN1dGU7CiAKK3N0YXRpYyBpbnQgZ3J1Yl91 dGlsX3RwbV9mZCA9IC0xOworCiB2b2lkCiBncnViX3V0aWxfd2FybiAoY29uc3QgY2hhciAqZm10 LCAuLi4pCiB7CkBAIC0yMzAsMyArMjM0LDUwIEBAIGdydWJfdXRpbF9nZXRfa2V4ZWN1dGUgKHZv aWQpCiB7CiAgIHJldHVybiBrZXhlY3V0ZTsKIH0KKworZ3J1Yl9lcnJfdAorZ3J1Yl91dGlsX3Rw bV9vcGVuIChjb25zdCBjaGFyICp0cG1fZGV2KQoreworICBpZiAoZ3J1Yl91dGlsX3RwbV9mZCAh PSAtMSkKKyAgICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKKworICBncnViX3V0aWxfdHBtX2ZkID0g b3BlbiAodHBtX2RldiwgT19SRFdSKTsKKyAgaWYgKGdydWJfdXRpbF90cG1fZmQgPT0gLTEpCisg ICAgZ3J1Yl91dGlsX2Vycm9yIChfKCJjYW5ub3Qgb3BlbiBUUE0gZGV2aWNlICclcyc6ICVzIiks IHRwbV9kZXYsIHN0cmVycm9yIChlcnJubykpOworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOwor fQorCitncnViX2Vycl90CitncnViX3V0aWxfdHBtX2Nsb3NlICh2b2lkKQoreworICBpbnQgZXJy OworCisgIGlmIChncnViX3V0aWxfdHBtX2ZkID09IC0xKQorICAgIHJldHVybiBHUlVCX0VSUl9O T05FOworCisgIGVyciA9IGNsb3NlIChncnViX3V0aWxfdHBtX2ZkKTsKKyAgaWYgKGVyciAhPSBH UlVCX0VSUl9OT05FKQorICAgIGdydWJfdXRpbF9lcnJvciAoXygiY2Fubm90IGNsb3NlIFRQTSBk ZXZpY2U6ICVzIiksIHN0cmVycm9yIChlcnJubykpOworCisgIGdydWJfdXRpbF90cG1fZmQgPSAt MTsKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKK2dydWJfc2l6ZV90CitncnViX3V0aWxf dHBtX3JlYWQgKHZvaWQgKm91dHB1dCwgZ3J1Yl9zaXplX3Qgc2l6ZSkKK3sKKyAgaWYgKGdydWJf dXRpbF90cG1fZmQgPT0gLTEpCisgICAgcmV0dXJuIC0xOworCisgIHJldHVybiByZWFkIChncnVi X3V0aWxfdHBtX2ZkLCBvdXRwdXQsIHNpemUpOworfQorCitncnViX3NpemVfdAorZ3J1Yl91dGls X3RwbV93cml0ZSAoY29uc3Qgdm9pZCAqaW5wdXQsIGdydWJfc2l6ZV90IHNpemUpCit7CisgIGlm IChncnViX3V0aWxfdHBtX2ZkID09IC0xKQorICAgIHJldHVybiAtMTsKKworICByZXR1cm4gd3Jp dGUgKGdydWJfdXRpbF90cG1fZmQsIGlucHV0LCBzaXplKTsKK30KZGlmZiAtLWdpdCBhL2dydWIt Y29yZS9saWIvdHNzMi90Y2cyX2VtdS5jIGIvZ3J1Yi1jb3JlL2xpYi90c3MyL3RjZzJfZW11LmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jYWI5MzBkMmIKLS0tIC9kZXYv bnVsbAorKysgYi9ncnViLWNvcmUvbGliL3RzczIvdGNnMl9lbXUuYwpAQCAtMCwwICsxLDQ5IEBA CisvKgorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBDb3B5cmln aHQgKEMpIDIwMjQgU1VTRSBMTEMKKyAqICBDb3B5cmlnaHQgKEMpIDIwMjQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBH UlVCIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUg PGdydWIvbW0uaD4KKyNpbmNsdWRlIDxncnViL2VtdS9taXNjLmg+CisKKyNpbmNsdWRlIDx0c3My X2J1ZmZlci5oPgorI2luY2x1ZGUgPHRzczJfc3RydWN0cy5oPgorI2luY2x1ZGUgPHRjZzIuaD4K KworZ3J1Yl9lcnJfdAorZ3J1Yl90Y2cyX2dldF9tYXhfb3V0cHV0X3NpemUgKGdydWJfc2l6ZV90 ICpzaXplKQoreworICBpZiAoc2l6ZSA9PSBOVUxMKQorICAgIHJldHVybiBHUlVCX0VSUl9CQURf QVJHVU1FTlQ7CisKKyAgKnNpemUgPSBHUlVCX1RQTTJfQlVGRkVSX0NBUEFDSVRZOworCisgIHJl dHVybiBHUlVCX0VSUl9OT05FOworfQorCitncnViX2Vycl90CitncnViX3RjZzJfc3VibWl0X2Nv bW1hbmQgKGdydWJfc2l6ZV90IGlucHV0X3NpemUsIGdydWJfdWludDhfdCAqaW5wdXQsCisJCQkg IGdydWJfc2l6ZV90IG91dHB1dF9zaXplLCBncnViX3VpbnQ4X3QgKm91dHB1dCkKK3sKKyAgaWYg KGdydWJfdXRpbF90cG1fd3JpdGUgKGlucHV0LCBpbnB1dF9zaXplKSAhPSBpbnB1dF9zaXplKQor ICAgIHJldHVybiBHUlVCX0VSUl9CQURfREVWSUNFOworCisgIGlmIChncnViX3V0aWxfdHBtX3Jl YWQgKG91dHB1dCwgb3V0cHV0X3NpemUpIDwgc2l6ZW9mIChUUE1fUkVTUE9OU0VfSEVBREVSX3Qp KQorICAgIHJldHVybiBHUlVCX0VSUl9CQURfREVWSUNFOworCisgIHJldHVybiBHUlVCX0VSUl9O T05FOworfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2VtdS9taXNjLmggYi9pbmNsdWRlL2dy dWIvZW11L21pc2MuaAppbmRleCBmYTk1OWViZTcuLmZlZmJlYzQ5OSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9ncnViL2VtdS9taXNjLmgKKysrIGIvaW5jbHVkZS9ncnViL2VtdS9taXNjLmgKQEAgLTc1 LDQgKzc1LDkgQEAgZ3J1Yl91dGlsX2ZvcGVuIChjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFy ICptb2RlKTsKIAogaW50IGdydWJfdXRpbF9maWxlX3N5bmMgKEZJTEUgKmYpOwogCitncnViX2Vy cl90IGdydWJfdXRpbF90cG1fb3BlbiAoY29uc3QgY2hhciAqdHBtX2Rldik7CitncnViX2Vycl90 IGdydWJfdXRpbF90cG1fY2xvc2UgKHZvaWQpOworZ3J1Yl9zaXplX3QgRVhQT1JUX0ZVTkMoZ3J1 Yl91dGlsX3RwbV9yZWFkKSAodm9pZCAqb3V0cHV0LCBncnViX3NpemVfdCBzaXplKTsKK2dydWJf c2l6ZV90IEVYUE9SVF9GVU5DKGdydWJfdXRpbF90cG1fd3JpdGUpIChjb25zdCB2b2lkICppbnB1 dCwgZ3J1Yl9zaXplX3Qgc2l6ZSk7CisKICNlbmRpZiAvKiBHUlVCX0VNVV9NSVNDX0ggKi8KLS0g CjIuNDMuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3Rz LmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==