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 5FDD6D6DDDB for ; Fri, 15 Nov 2024 07:38:24 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tBqsY-0000cY-6J; Fri, 15 Nov 2024 02:36:30 -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 1tBqsW-0000bw-8l for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:28 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tBqsU-00007E-83 for grub-devel@gnu.org; Fri, 15 Nov 2024 02:36:28 -0500 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-432d9b8558aso9151875e9.0 for ; Thu, 14 Nov 2024 23:36:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1731656184; x=1732260984; 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=k3B003cUa2+4oRcZiTXg4EJDPEVQNIGoLBctW156IOA=; b=eJJldf4UOVQbRGa29z+YDveviEt1FT1VnMH+grx/CVvmxEAwUJCBL8PKXaABr79ja9 rJAEavBzdnscWcqMF3oEGiUvDgALBg3xjwVS9yDjNcFQMDQH24TtjYn8zI5HwumWLp07 RK6Z9mic5iY8V6fVT3sQKUOCcO3MRHMNVtL8LfWcmuX2+zwCzY8gVAF+meLKWtsgiOI7 RIVDNRVpJ6CE4RSKeV3Qt+98cfLuoMVeX2ETWAPR48vP3w6aov6+f+ZBrDHREelqnbbV gRlue1hvbI7i4NLM4tONMOHK2wR485A7xGptHk2sfLKa7revPb7lZKgU9jgTxsr7cSCc gurg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731656184; x=1732260984; 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=k3B003cUa2+4oRcZiTXg4EJDPEVQNIGoLBctW156IOA=; b=f+1gLLVqdpuM1cEv8ITbDihrFbHdOnmOwcroFAo07BmpEtzveEA9pBZWq8Jo6CfFy/ Qbyxlknr155XQEfNfgC1fFJGuuC34JoDpuburQ62+gc+PIsudq7uvkLv9Rt41dZ7Mky2 Du9keHR2eCMMSCTPLPXU2sUAADs3jI9WwNC0tzYvNK9qcip3pd/FT7hBAYPj3uLY7HS7 n6tGK8hndfGNTWClBZvFSbdmfKykxFeSQI3Vuw3a87EpzhqzilEQL+HyPqcXHpPN3vJr KgxZ54mjPpm67tpwAZoPn/EDpwGZZ9eXNlRmBvFOEDqvVg2xlaWCwTkU0UbXRWawFs0e Dm0Q== X-Gm-Message-State: AOJu0YyKBYAtnX7C6POCT1iGg8sPo2gg9/yp2qFlnC4A1SgIvKuXHWAM O9VLeoRuI1dV5Uc7rBQi7RlqUa/aysiieOaljFc/W0n1wq1fDxLTDzI5WyJHt9bkfIRO6y+T1pw 9 X-Google-Smtp-Source: AGHT+IHnftfyDgNLCfxC85kgWA4FtK7cR+oJ3iBi9Ib6ndCDkxso3GR5UrsR3mfew/bVscfQOvg5mQ== X-Received: by 2002:a5d:6d09:0:b0:381:d133:d541 with SMTP id ffacd0b85a97d-38213fff9fcmr5662863f8f.11.1731656184454; Thu, 14 Nov 2024 23:36:24 -0800 (PST) Received: from localhost (111-240-136-29.dynamic-ip.hinet.net. [111.240.136.29]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2ea12c84027sm1025875a91.24.2024.11.14.23.36.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Nov 2024 23:36:24 -0800 (PST) To: The development of GNU GRUB Subject: [PATCH v23 19/33] key_protector: Add key protectors framework Date: Fri, 15 Nov 2024 15:34:47 +0800 Message-ID: <20241115073506.2784-20-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::330; envelope-from=glin@suse.com; helo=mail-wm1-x330.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 RnJvbTogSGVybmFuIEdhdHRhIDxoZWdhdHRhQGxpbnV4Lm1pY3Jvc29mdC5jb20+CgpBIGtleSBw cm90ZWN0b3IgZW5jYXBzdWxhdGVzIGZ1bmN0aW9uYWxpdHkgdG8gcmV0cmlldmUgYW4gdW5sb2Nr aW5nIGtleQpmb3IgYSBmdWxseS1lbmNyeXB0ZWQgZGlzayBmcm9tIGEgc3BlY2lmaWMgc291cmNl LiBBIGtleSBwcm90ZWN0b3IKbW9kdWxlIHJlZ2lzdGVycyBpdHNlbGYgd2l0aCB0aGUga2V5IHBy b3RlY3RvcnMgZnJhbWV3b3JrIHdoZW4gaXQgaXMKbG9hZGVkIGFuZCB1bnJlZ2lzdGVycyB3aGVu IHVubG9hZGVkLiBBZGRpdGlvbmFsbHksIGEga2V5IHByb3RlY3RvciBtYXkKYWNjZXB0IHBhcmFt ZXRlcnMgdGhhdCBkZXNjcmliZSBob3cgaXQgc2hvdWxkIG9wZXJhdGUuCgpUaGUga2V5IHByb3Rl Y3RvcnMgZnJhbWV3b3JrLCBiZXNpZGVzIG9mZmVyaW5nIHJlZ2lzdHJhdGlvbiBhbmQKdW5yZWdp c3RyYXRpb24gZnVuY3Rpb25zLCBhbHNvIG9mZmVycyBhIG9uZS1zdG9wIHJvdXRpbmUgZm9yIGZp bmRpbmcgYW5kCmludm9raW5nIGEga2V5IHByb3RlY3RvciBieSBuYW1lLiBJZiBhIGtleSBwcm90 ZWN0b3Igd2l0aCB0aGUgc3BlY2lmaWVkCm5hbWUgZXhpc3RzIGFuZCBpZiBhbiB1bmxvY2tpbmcg a2V5IGlzIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgYnkgaXQsIHRoZQpmdW5jdGlvbiByZXR1cm5z IHRvIHRoZSBjYWxsZXIgdGhlIHJldHJpZXZlZCBrZXkgYW5kIGl0cyBsZW5ndGguCgpDYzogVmxh ZGltaXIgU2VyYmluZW5rbyA8cGhjb2RlckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhlcm5h biBHYXR0YSA8aGVnYXR0YUBsaW51eC5taWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBHYXJ5 IExpbiA8Z2xpbkBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWZhbiBCZXJnZXIgPHN0ZWZhbmJA bGludXguaWJtLmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9y YWNsZS5jb20+Ci0tLQogZ3J1Yi1jb3JlL01ha2VmaWxlLmFtICAgICAgICAgIHwgIDEgKwogZ3J1 Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmICAgIHwgIDUgKysrCiBncnViLWNvcmUvZGlzay9rZXlf cHJvdGVjdG9yLmMgfCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL2dydWIva2V5X3Byb3RlY3Rvci5oICAgfCA0NyArKysrKysrKysrKysrKysrKysrKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3J1 Yi1jb3JlL2Rpc2sva2V5X3Byb3RlY3Rvci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9n cnViL2tleV9wcm90ZWN0b3IuaAoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9NYWtlZmlsZS5hbSBi L2dydWItY29yZS9NYWtlZmlsZS5hbQppbmRleCAxZWRhNDY3ZTAuLmU1MGRiODEwNiAxMDA2NDQK LS0tIGEvZ3J1Yi1jb3JlL01ha2VmaWxlLmFtCisrKyBiL2dydWItY29yZS9NYWtlZmlsZS5hbQpA QCAtOTAsNiArOTAsNyBAQCBlbmRpZgogS0VSTkVMX0hFQURFUl9GSUxFUyArPSAkKHRvcF9zcmNk aXIpL2luY2x1ZGUvZ3J1Yi9tbS5oCiBLRVJORUxfSEVBREVSX0ZJTEVTICs9ICQodG9wX3NyY2Rp cikvaW5jbHVkZS9ncnViL3BhcnNlci5oCiBLRVJORUxfSEVBREVSX0ZJTEVTICs9ICQodG9wX3Ny Y2RpcikvaW5jbHVkZS9ncnViL3BhcnRpdGlvbi5oCitLRVJORUxfSEVBREVSX0ZJTEVTICs9ICQo dG9wX3NyY2RpcikvaW5jbHVkZS9ncnViL2tleV9wcm90ZWN0b3IuaAogS0VSTkVMX0hFQURFUl9G SUxFUyArPSAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1Yi9zdGFja19wcm90ZWN0b3IuaAogS0VS TkVMX0hFQURFUl9GSUxFUyArPSAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1Yi90ZXJtLmgKIEtF Uk5FTF9IRUFERVJfRklMRVMgKz0gJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2dydWIvdGltZS5oCmRp ZmYgLS1naXQgYS9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgYi9ncnViLWNvcmUvTWFrZWZp bGUuY29yZS5kZWYKaW5kZXggYTM4OTU1ZTE4Li4zN2YxMzFhZTIgMTAwNjQ0Ci0tLSBhL2dydWIt Y29yZS9NYWtlZmlsZS5jb3JlLmRlZgorKysgYi9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYK QEAgLTEyODIsNiArMTI4MiwxMSBAQCBtb2R1bGUgPSB7CiAgIGNvbW1vbiA9IGRpc2svcmFpZDZf cmVjb3Zlci5jOwogfTsKIAorbW9kdWxlID0geworICBuYW1lID0ga2V5X3Byb3RlY3RvcjsKKyAg Y29tbW9uID0gZGlzay9rZXlfcHJvdGVjdG9yLmM7Cit9OworCiBtb2R1bGUgPSB7CiAgIG5hbWUg PSBzY3NpOwogICBjb21tb24gPSBkaXNrL3Njc2kuYzsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9k aXNrL2tleV9wcm90ZWN0b3IuYyBiL2dydWItY29yZS9kaXNrL2tleV9wcm90ZWN0b3IuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjBkMTQ2YzFjMAotLS0gL2Rldi9udWxs CisrKyBiL2dydWItY29yZS9kaXNrL2tleV9wcm90ZWN0b3IuYwpAQCAtMCwwICsxLDczIEBACisv KgorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIKKyAqICBDb3B5cmlnaHQg KEMpIDIwMjIgTWljcm9zb2Z0IENvcnBvcmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAyMDI0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICoKKyAqICBHUlVCIGlzIGZyZWUgc29mdHdh cmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KyAqCisgKiAgR1JVQiBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCBH UlVCLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisK KyNpbmNsdWRlIDxncnViL2RsLmg+CisjaW5jbHVkZSA8Z3J1Yi9saXN0Lmg+CisjaW5jbHVkZSA8 Z3J1Yi9taXNjLmg+CisjaW5jbHVkZSA8Z3J1Yi9tbS5oPgorI2luY2x1ZGUgPGdydWIva2V5X3By b3RlY3Rvci5oPgorCitHUlVCX01PRF9MSUNFTlNFICgiR1BMdjMrIik7CisKK3N0cnVjdCBncnVi X2tleV9wcm90ZWN0b3IgKmdydWJfa2V5X3Byb3RlY3RvcnMgPSBOVUxMOworCitncnViX2Vycl90 CitncnViX2tleV9wcm90ZWN0b3JfcmVnaXN0ZXIgKHN0cnVjdCBncnViX2tleV9wcm90ZWN0b3Ig KnByb3RlY3RvcikKK3sKKyAgaWYgKHByb3RlY3RvciA9PSBOVUxMIHx8IHByb3RlY3Rvci0+bmFt ZSA9PSBOVUxMIHx8IHByb3RlY3Rvci0+bmFtZVswXSA9PSAnXDAnKQorICAgIHJldHVybiBncnVi X2Vycm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsICJJbnZhbGlkIGtleSBwcm90ZWN0b3IgZm9y IHJlZ2lzdHJhdGlvbiIpOworCisgIGlmIChncnViX2tleV9wcm90ZWN0b3JzICE9IE5VTEwgJiYK KyAgICAgIGdydWJfbmFtZWRfbGlzdF9maW5kIChHUlVCX0FTX05BTUVEX0xJU1QgKGdydWJfa2V5 X3Byb3RlY3RvcnMpLCBwcm90ZWN0b3ItPm5hbWUpICE9IE5VTEwpCisgICAgcmV0dXJuIGdydWJf ZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwgIktleSBwcm90ZWN0b3IgJyVzJyBhbHJlYWR5 IHJlZ2lzdGVyZWQiLCBwcm90ZWN0b3ItPm5hbWUpOworCisgIGdydWJfbGlzdF9wdXNoIChHUlVC X0FTX0xJU1RfUCAoJmdydWJfa2V5X3Byb3RlY3RvcnMpLCBHUlVCX0FTX0xJU1QgKHByb3RlY3Rv cikpOworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitncnViX2Vycl90CitncnViX2tl eV9wcm90ZWN0b3JfdW5yZWdpc3RlciAoc3RydWN0IGdydWJfa2V5X3Byb3RlY3RvciAqcHJvdGVj dG9yKQoreworICBpZiAocHJvdGVjdG9yID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3Ig KEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwgIkludmFsaWQga2V5IHByb3RlY3RvciBmb3IgdW5yZWdp c3RyYXRpb24iKTsKKworICBncnViX2xpc3RfcmVtb3ZlIChHUlVCX0FTX0xJU1QgKHByb3RlY3Rv cikpOworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitncnViX2Vycl90CitncnViX2tl eV9wcm90ZWN0b3JfcmVjb3Zlcl9rZXkgKGNvbnN0IGNoYXIgKnByb3RlY3RvciwgZ3J1Yl91aW50 OF90ICoqa2V5LAorCQkJCWdydWJfc2l6ZV90ICprZXlfc2l6ZSkKK3sKKyAgc3RydWN0IGdydWJf a2V5X3Byb3RlY3RvciAqa3AgPSBOVUxMOworCisgIGlmIChncnViX2tleV9wcm90ZWN0b3JzID09 IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX09VVF9PRl9SQU5HRSwgIk5v IGtleSBwcm90ZWN0b3IgcmVnaXN0ZXJlZCIpOworCisgIGlmIChwcm90ZWN0b3IgPT0gTlVMTCB8 fCBwcm90ZWN0b3JbMF0gPT0gJ1wwJykKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJf QkFEX0FSR1VNRU5ULCAiSW52YWxpZCBrZXkgcHJvdGVjdG9yIik7CisKKyAga3AgPSBncnViX25h bWVkX2xpc3RfZmluZCAoR1JVQl9BU19OQU1FRF9MSVNUIChncnViX2tleV9wcm90ZWN0b3JzKSwg cHJvdGVjdG9yKTsKKyAgaWYgKGtwID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdS VUJfRVJSX09VVF9PRl9SQU5HRSwgIktleSBwcm90ZWN0b3IgJyVzJyBub3QgZm91bmQiLCBwcm90 ZWN0b3IpOworCisgIHJldHVybiBrcC0+cmVjb3Zlcl9rZXkgKGtleSwga2V5X3NpemUpOworfQpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2tleV9wcm90ZWN0b3IuaCBiL2luY2x1ZGUvZ3J1Yi9r ZXlfcHJvdGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4wMGIx NWMxM2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2dydWIva2V5X3Byb3RlY3Rvci5oCkBA IC0wLDAgKzEsNDcgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxvYWRl cgorICogIENvcHlyaWdodCAoQykgMjAyMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24KKyAqICBDb3B5 cmlnaHQgKEMpIDIwMjQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKgorICogIEdS VUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBHUlVCX1BST1RFQ1RPUl9IRUFERVIKKyNkZWZpbmUg R1JVQl9QUk9URUNUT1JfSEVBREVSIDEKKworI2luY2x1ZGUgPGdydWIvZXJyLmg+CisjaW5jbHVk ZSA8Z3J1Yi90eXBlcy5oPgorCitzdHJ1Y3QgZ3J1Yl9rZXlfcHJvdGVjdG9yCit7CisgIHN0cnVj dCBncnViX2tleV9wcm90ZWN0b3IgKm5leHQ7CisgIHN0cnVjdCBncnViX2tleV9wcm90ZWN0b3Ig KipwcmV2OworCisgIGNvbnN0IGNoYXIgKm5hbWU7CisKKyAgZ3J1Yl9lcnJfdCAoKnJlY292ZXJf a2V5KSAoZ3J1Yl91aW50OF90ICoqa2V5LCBncnViX3NpemVfdCAqa2V5X3NpemUpOworfTsKKwor Z3J1Yl9lcnJfdAorZ3J1Yl9rZXlfcHJvdGVjdG9yX3JlZ2lzdGVyIChzdHJ1Y3QgZ3J1Yl9rZXlf cHJvdGVjdG9yICpwcm90ZWN0b3IpOworCitncnViX2Vycl90CitncnViX2tleV9wcm90ZWN0b3Jf dW5yZWdpc3RlciAoc3RydWN0IGdydWJfa2V5X3Byb3RlY3RvciAqcHJvdGVjdG9yKTsKKworZ3J1 Yl9lcnJfdAorZ3J1Yl9rZXlfcHJvdGVjdG9yX3JlY292ZXJfa2V5IChjb25zdCBjaGFyICpwcm90 ZWN0b3IsCisJCQkJZ3J1Yl91aW50OF90ICoqa2V5LAorCQkJCWdydWJfc2l6ZV90ICprZXlfc2l6 ZSk7CisKKyNlbmRpZiAvKiAhIEdSVUJfUFJPVEVDVE9SX0hFQURFUiAqLwotLSAKMi40My4wCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZl bCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK