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 40358C35FFF for ; Fri, 21 Mar 2025 08:01:57 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvXIC-0001nJ-9I; Fri, 21 Mar 2025 03:59:48 -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 1tvXI4-0001l8-DC for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:41 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tvXI2-0003PC-2l for grub-devel@gnu.org; Fri, 21 Mar 2025 03:59:40 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-38f2f391864so910658f8f.3 for ; Fri, 21 Mar 2025 00:59:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1742543976; x=1743148776; 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=0j7WdboTgow4dzulUXU/KRS07/sFHERyFYI/AyXxJIw=; b=E4lDpim7zomH4bT6WlArUHvo5NpeWg8UVCQQhVlXwzIC0PNs/2zngxZ4Y2D9s+gaUL ks2nw0gCNywlVRgeES8Mw4Ct6Bcqu6PqM3LVotbPnoqeK8PAgZVAtyhRYnbYfh/HenQ7 aRm63UO7k7V8JxzSmVp9nYfbP4h5zRwtY47sQ+TNN8Ze2neIz+DJUzv6UUUcRp6+p1Wr xhie1NgCoZ4fFXi1O5ihARuSk0CUSIC7zKET186bq7VPuJGM2xKfDsLGRqItaV511lID Wl8YcDT6ZY25q6fkZWdGZbCbFNMflvW1CGz/a/uZEN0ELkKq3w9hluk2q9YlJuwnv2bO 5K3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742543976; x=1743148776; 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=0j7WdboTgow4dzulUXU/KRS07/sFHERyFYI/AyXxJIw=; b=ciXEFxHaQ8tHQgkKI7yYfdB2F+hsmZWDkRZM6K9UoJbeL2+NWv2X5tTUiZuHxLTn09 cKPLOMtDTxRzBBvSvNoB+/fmLDsEb+HenpterhbUR4hu3RoyvOBtTn8ovPcroXUal7xh BwUfccOnEY701Yu8FTsgyRHxbhHSxUtV/TTAKE5t1D6LHHMyIzYpjd7VVRarnLdiUVci 0Q2BvCcFxsqdIQ/hskfg2gPJMP5yB1Lf31rRK0Dp98Zxt70gGttrZ6rS3s4m0L6ud5bK sinY7+rIkWWxlbOsuEnvPfBs7pVLKjvgHmkfKmYDQaGF++DrNDnNUH0ZdZFazMUEfLrm 0MtA== X-Gm-Message-State: AOJu0YxRdBaw+2geQuwB44u24X4Zaggfqrf4p10zjAHKCyEmW9ppOL+L QUG5Q9KTcrAkd/maZZ3Q0RUclVcMgC0FZHGYfxqkdJl/VCUVpSIpINkIAL1wUSooSEKa56BXp15 B X-Gm-Gg: ASbGncsbfzE2M2bBvtWVDyAqwlHuKR5OhjY3F93ye4Hr66iUDqPJIdycx0Wyp5daVBc erF1RcyFuzjTcVf5SfrWQtzy4Fn7dVc0s4ogqwhNUwxop8pGfck078kjh7gYSXykj8XAtbJ8OsN UgMpYRqVmYPzG9euYQfsqyz0SpzT2/dN/CIQNgokU5mpgeLxqCWtfb6w5frwQRKdSB7uiMopZhM U5xD5ulMpxE8Mi8+UMXhwlgz7/i/6yXHOvOkimFuVvvrUEmTZCmHZDDY40LG9sciVfdsDS3/mrk V2pEACYH2loW3GV7lKPfAEUW78CyU5BfhxFKDzvBsD0qq3KLM9wpk554F9/Vb4MnqvQlYsUrmZY 7sdQgoOqIfw== X-Google-Smtp-Source: AGHT+IEe4BhH0UK+v1flOzTRXzGCQKWgM2Ph5b9sjb9fvld4F5zhgCwNpIFyeZ7dZZspYBOD1VDWXA== X-Received: by 2002:a05:6000:1fa6:b0:391:34:4fa9 with SMTP id ffacd0b85a97d-3997f899fafmr1944417f8f.0.1742543976497; Fri, 21 Mar 2025 00:59:36 -0700 (PDT) Received: from localhost (111-240-129-118.dynamic-ip.hinet.net. [111.240.129.118]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73905fab587sm1234531b3a.12.2025.03.21.00.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 00:59:36 -0700 (PDT) To: The development of GNU GRUB Subject: [PATCH v4 05/12] tpm2_key_protector: Unseal key from a buffer Date: Fri, 21 Mar 2025 15:59:01 +0800 Message-ID: <20250321075908.10523-6-glin@suse.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321075908.10523-1-glin@suse.com> References: <20250321075908.10523-1-glin@suse.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::436; envelope-from=glin@suse.com; helo=mail-wr1-x436.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 , mchang@suse.com, patrick.colp@oracle.com, Stefan Berger , jejb@linux.ibm.com, Glenn Washburn 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 RXh0cmFjdCB0aGUgbG9naWMgdG8gaGFuZGxlIHRoZSBmaWxlIGJ1ZmZlciBmcm9tIHRoZSBTUksg cmVjb3ZlcgpmdW5jdGlvbiB0byBwcmVwYXJlIHRvIGxvYWQgdGhlIHNlYWxlZCBrZXkgZnJvbSB0 aGUgTlYgaW5kZXggaGFuZGxlLApzbyB0aGUgTlYgaW5kZXggbW9kZSBjYW4gc2hhcmUgdGhlIHNh bWUgY29kZSBwYXRoIGluIHRoZSBsYXRlciBwYXRjaC4KVGhlIFNSSyByZWNvdmVyIGZ1bmN0aW9u IG5vdyBvbmx5IHJlYWRzIHRoZSBmaWxlIGFuZCBzZW5kcyB0aGUgZmlsZQpidWZmZXIgdG8gdGhl IG5ldyBmdW5jdGlvbi4KCkJlc2lkZXMgdGhpcywgdG8gYXZvaWQgaW50cm9kdWNpbmcgbW9yZSBv cHRpb25zIGZvciB0aGUgTlYgaW5kZXggbW9kZSwKdGhlIGZpbGUgZm9ybWF0IGlzIGRldGVjdGVk IGF1dG9tYXRpY2FsbHkgYmVmb3JlIHVubWFyc2hhbGxpbmcgdGhlIGRhdGEsCnNvIHRoZXJlIGlz IG5vIG5lZWQgdG8gdXNlIHRoZSBjb21tYW5kIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBmaWxlIGZv cm1hdAphbnltb3JlLiBJbiBvdGhlciB3b3JkcywgJy0tdHBtMmtleScgYW5kICctLWtleWZpbGUn IGFyZSB0aGUgc2FtZSBub3cuCgpBbHNvIHVwZGF0ZSBncnViLnRleHQgdG8gYWRkcmVzcyB0aGUg Y2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogR2FyeSBMaW4gPGdsaW5Ac3VzZS5jb20+ClJldmlld2Vk LWJ5OiBTdGVmYW4gQmVyZ2VyIDxzdGVmYW5iQGxpbnV4LmlibS5jb20+Ci0tLQogZG9jcy9ncnVi LnRleGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICstCiAuLi4vY29tbWFu ZHMvdHBtMl9rZXlfcHJvdGVjdG9yL21vZHVsZS5jICAgICAgfCAxMjIgKysrKysrKysrKysrKy0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvY3MvZ3J1Yi50ZXhpIGIvZG9jcy9ncnViLnRleGkKaW5kZXggNTRkM2Fi NTJmLi5hZTg5ODM4YmMgMTAwNjQ0Ci0tLSBhL2RvY3MvZ3J1Yi50ZXhpCisrKyBiL2RvY3MvZ3J1 Yi50ZXhpCkBAIC04MDc1LDEyICs4MDc1LDEzIEBAIG9wdGlvbnMgYXJlIEBvcHRpb257LVR9LCBA b3B0aW9uey1rfSwgQG9wdGlvbnstYX0sIGFuZCBAb3B0aW9uey1zfS4gT24gdGhlCiBvdGhlciBo YW5kLCB0aGUgTlYgaW5kZXgtc3BlY2lmaWMgb3B0aW9uIGlzIEBvcHRpb257LW59LgogCiBUaGUg a2V5IGZpbGUgZm9yIFNSSyBtb2RlIGNhbiBiZSBzdXBwbGllZCB3aXRoIGVpdGhlciBAb3B0aW9u ey1UfSBvcgotQG9wdGlvbnsta30uIFRoZSBAb3B0aW9uey1UfSBvcHRpb24gaXMgZm9yIHRoZSBw YXRoIHRvIHRoZSBrZXkgZmlsZSBpbgotVFBNIDIuMCBLZXkgRmlsZSBmb3JtYXQuIFNpbmNlIHRo ZSBwYXJhbWV0ZXJzIGZvciB0aGUgVFBNIGNvbW1hbmRzIGFyZSB3cml0dGVuCi1pbiB0aGUgZmls ZSwgdGhlcmUgaXMgbm8gbmVlZCB0byBzZXQgdGhlIFBDUiBsaXN0KEBvcHRpb257LXB9KSBhbmQK LWJhbmsoQG9wdGlvbnstYn0pIHdoZW4gdXNpbmcgdGhlIEBvcHRpb257LVR9IG9wdGlvbi4gVGhl IEBvcHRpb257LWt9IG9wdGlvbgotaXMgZm9yIHRoZSBrZXkgZmlsZSBpbiB0aGUgcmF3IGZvcm1h dCwgYW5kIHRoZSBAb3B0aW9uey1wfSBhbmQgQG9wdGlvbnstYn0KLW9wdGlvbnMgYXJlIG5lY2Vz c2FyeSBmb3IgdGhlIG5vbi1kZWZhdWx0IFBDUiBsaXN0IG9yIGJhbmsuIEluIGdlbmVyYWwsCitA b3B0aW9uey1rfS4gVGhvc2UgdHdvIG9wdGlvbnMgd2VyZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIHRo ZSBmaWxlIGZvcm1hdHMgYnV0CithcmUgc2FtZSBub3cuIFRoZXJlIGFyZSB0d28gc3VwcG9ydGVk IGZpbGUgZm9ybWF0czogcmF3IGZvcm1hdCBhbmQgVFBNIDIuMAorS2V5IEZpbGUgZm9ybWF0LiBX aGVuIHVzaW5nIHRoZSBrZXkgZmlsZSBpbiB0aGUgcmF3IGZvcm1hdCwgdGhlIEBvcHRpb257LXB9 CithbmQgQG9wdGlvbnstYn0gb3B0aW9ucyBhcmUgbmVjZXNzYXJ5IGZvciB0aGUgbm9uLWRlZmF1 bHQgUENSIGxpc3Qgb3IgYmFuay4KK09uIHRoZSBvdGhlciBoYW5kLCB3aGVuIHVzaW5nIHRoZSBr ZXkgZmlsZSBpbiBUUE0gMi4wIEtleSBGaWxlIGZvcm1hdCwgdGhlCit0aGUgcGFyYW1ldGVycyBm b3IgdGhlIFRQTSBjb21tYW5kcyBhcmUgd3JpdHRlbiBpbiB0aGUgZmlsZSwgYW5kIHRoZXJlIGlz IG5vCituZWVkIHRvIHNldCB0aGUgUENSIGxpc3QoQG9wdGlvbnstcH0pIGFuZCBiYW5rKEBvcHRp b257LWJ9KS4gSW4gZ2VuZXJhbCwKIFRQTSAyLjAgS2V5IEZpbGUgZm9ybWF0IGlzIHByZWZlcnJl ZCBkdWUgdG8gdGhlIHNpbXBsaWZpZWQgR1JVQiBjb21tYW5kCiBvcHRpb25zIGFuZCB0aGUgYXV0 aG9yaXplZCBwb2xpY3kgc3VwcG9ydAogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMv dHBtMl9rZXlfcHJvdGVjdG9yL21vZHVsZS5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3RwbTJfa2V5 X3Byb3RlY3Rvci9tb2R1bGUuYwppbmRleCAwYTVkODFlNGMuLjc5NWY2MTUxOCAxMDA2NDQKLS0t IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3RwbTJfa2V5X3Byb3RlY3Rvci9tb2R1bGUuYworKysgYi9n cnViLWNvcmUvY29tbWFuZHMvdHBtMl9rZXlfcHJvdGVjdG9yL21vZHVsZS5jCkBAIC0yMTgsMTAg KzIxOCw1MSBAQCB0cG0yX3Byb3RlY3Rvcl9zcmtfcmVhZF9maWxlIChjb25zdCBjaGFyICpmaWxl cGF0aCwgdm9pZCAqKmJ1ZmZlciwgZ3J1Yl9zaXplX3QgKgogICByZXR1cm4gZXJyOwogfQogCisv KiBDaGVjayBpZiB0aGUgZGF0YSBpcyBpbiBUUE0gMi4wIEtleSBGaWxlIGZvcm1hdCAqLworc3Rh dGljIGJvb2wKK3RwbTJfcHJvdGVjdG9yX2lzX3RwbTJrZXkgKGdydWJfdWludDhfdCAqYnVmZmVy LCBncnViX3NpemVfdCBidWZmZXJfc2l6ZSkKK3sKKyAgLyogaWQtc2VhbGVka2V5IE9JRCAoMi4y My4xMzMuMTAuMS41KSBpbiBERVIgKi8KKyAgY29uc3QgZ3J1Yl91aW50OF90IHNlYWxlZF9rZXlf b2lkW10gPSB7MHgwNiwgMHgwNiwgMHg2NywgMHg4MSwgMHgwNSwgMHgwYX07CisgIGdydWJfc2l6 ZV90IHNraXAgPSAwOworCisgIC8qIE5lZWQgYXQgbGVhc3QgdGhlIGZpcnN0IHR3byBieXRlcyB0 byBjaGVjayB0aGUgdGFnIGFuZCB0aGUgbGVuZ3RoICovCisgIGlmIChidWZmZXJfc2l6ZSA8IDIp CisgICAgcmV0dXJuIGZhbHNlOworCisgIC8qIFRoZSBmaXJzdCBieXRlIGlzIGFsd2F5cyAweDMw IChTRVFVRU5DRSkuICovCisgIGlmIChidWZmZXJbMF0gIT0gMHgzMCkKKyAgICByZXR1cm4gZmFs c2U7CisKKyAgLyoKKyAgICogR2V0IHRoZSBieXRlcyBvZiB0aGUgbGVuZ3RoCisgICAqCisgICAq IElmIHRoZSBiaXQgOCBvZiB0aGUgc2Vjb25kIGJ5dGUgaXMgMCwgaXQgaXMgaW4gdGhlIHNob3J0 IGZvcm0sIHNvIHRoZSBzZWNvbmQgYnl0ZQorICAgKiBhbG9uZSByZXByZXNlbnRzIHRoZSBsZW5n dGguIFRodXMsIHRoZSBmaXJzdCB0d28gYnl0ZXMgYXJlIHNraXBwZWQuCisgICAqCisgICAqIE90 aGVyd2lzZSwgaXQgaXMgaW4gdGhlIGxvbmcgZm9ybSwgYW5kIGJpdHMgMX43IGluZGljYXRlIGhv dyBtYW55IG1vcmUgYnl0ZXMgYXJlIGluCisgICAqIHRoZSBsZW5ndGggZmllbGQsIHNvIHdlIHNr aXAgdGhlIGZpcnN0IHR3byBieXRlcyBwbHVzIHRoZSBieXRlcyBmb3IgdGhlIGxlbmd0aC4KKyAg ICovCisgIGlmICgoYnVmZmVyWzFdICYgMHg4MCkgPT0gMCkKKyAgICBza2lwID0gMjsKKyAgZWxz ZQorICAgIHNraXAgPSAoYnVmZmVyWzFdICYgMHg3RikgKyAyOworCisgIC8qIE1ha2Ugc3VyZSB0 aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaCB0byBjb250YWluIGlkLXNlYWxlZGtleSBPSUQgKi8K KyAgaWYgKGJ1ZmZlcl9zaXplIDwgc2tpcCArIHNpemVvZiAoc2VhbGVkX2tleV9vaWQpKQorICAg IHJldHVybiBmYWxzZTsKKworICAvKiBDaGVjayBpZC1zZWFsZWRrZXkgT0lEICovCisgIGlmIChn cnViX21lbWNtcCAoYnVmZmVyICsgc2tpcCwgc2VhbGVkX2tleV9vaWQsIHNpemVvZiAoc2VhbGVk X2tleV9vaWQpKSAhPSAwKQorICAgIHJldHVybiBmYWxzZTsKKworICByZXR1cm4gdHJ1ZTsKK30K Kwogc3RhdGljIGdydWJfZXJyX3QKLXRwbTJfcHJvdGVjdG9yX3Nya191bm1hcnNoYWxfa2V5Zmls ZSAodm9pZCAqc2VhbGVkX2tleSwKLQkJCQkgICAgICBncnViX3NpemVfdCBzZWFsZWRfa2V5X3Np emUsCi0JCQkJICAgICAgdHBtMl9zZWFsZWRfa2V5X3QgKnNrKQordHBtMl9wcm90ZWN0b3JfdW5t YXJzaGFsX3JhdyAodm9pZCAqc2VhbGVkX2tleSwKKwkJCSAgICAgIGdydWJfc2l6ZV90IHNlYWxl ZF9rZXlfc2l6ZSwKKwkJCSAgICAgIHRwbTJfc2VhbGVkX2tleV90ICpzaykKIHsKICAgc3RydWN0 IGdydWJfdHBtMl9idWZmZXIgYnVmOwogCkBAIC0yNDIsMTMgKzI4MywxMyBAQCB0cG0yX3Byb3Rl Y3Rvcl9zcmtfdW5tYXJzaGFsX2tleWZpbGUgKHZvaWQgKnNlYWxlZF9rZXksCiB9CiAKIHN0YXRp YyBncnViX2Vycl90Ci10cG0yX3Byb3RlY3Rvcl9zcmtfdW5tYXJzaGFsX3RwbTJrZXkgKHZvaWQg KnNlYWxlZF9rZXksCi0JCQkJICAgICAgZ3J1Yl9zaXplX3Qgc2VhbGVkX2tleV9zaXplLAotCQkJ CSAgICAgIHRwbTJrZXlfcG9saWN5X3QgKnBvbGljeV9zZXEsCi0JCQkJICAgICAgdHBtMmtleV9h dXRocG9saWN5X3QgKmF1dGhwb2xfc2VxLAotCQkJCSAgICAgIGdydWJfdWludDhfdCAqcnNhcGFy ZW50LAotCQkJCSAgICAgIGdydWJfdWludDMyX3QgKnBhcmVudCwKLQkJCQkgICAgICB0cG0yX3Nl YWxlZF9rZXlfdCAqc2spCit0cG0yX3Byb3RlY3Rvcl91bm1hcnNoYWxfdHBtMmtleSAodm9pZCAq c2VhbGVkX2tleSwKKwkJCQkgIGdydWJfc2l6ZV90IHNlYWxlZF9rZXlfc2l6ZSwKKwkJCQkgIHRw bTJrZXlfcG9saWN5X3QgKnBvbGljeV9zZXEsCisJCQkJICB0cG0ya2V5X2F1dGhwb2xpY3lfdCAq YXV0aHBvbF9zZXEsCisJCQkJICBncnViX3VpbnQ4X3QgKnJzYXBhcmVudCwKKwkJCQkgIGdydWJf dWludDMyX3QgKnBhcmVudCwKKwkJCQkgIHRwbTJfc2VhbGVkX2tleV90ICpzaykKIHsKICAgYXNu MV9ub2RlIHRwbTJrZXkgPSBOVUxMOwogICBncnViX3VpbnQ4X3QgcnNhcGFyZW50X3RtcDsKQEAg LTk0MiwxMiArOTgzLDExIEBAIHRwbTJfcHJvdGVjdG9yX2R1bXBfcGNyIChjb25zdCBUUE1fQUxH X0lEX3QgYmFuaykKIH0KIAogc3RhdGljIGdydWJfZXJyX3QKLXRwbTJfcHJvdGVjdG9yX3Nya19y ZWNvdmVyIChjb25zdCB0cG0yX3Byb3RlY3Rvcl9jb250ZXh0X3QgKmN0eCwKLQkJCSAgICBncnVi X3VpbnQ4X3QgKiprZXksIGdydWJfc2l6ZV90ICprZXlfc2l6ZSkKK3RwbTJfcHJvdGVjdG9yX2tl eV9mcm9tX2J1ZmZlciAoY29uc3QgdHBtMl9wcm90ZWN0b3JfY29udGV4dF90ICpjdHgsCisJCQkJ dm9pZCAqYnVmZmVyLCBncnViX3NpemVfdCBidWZfc2l6ZSwKKwkJCQlncnViX3VpbnQ4X3QgKipr ZXksIGdydWJfc2l6ZV90ICprZXlfc2l6ZSkKIHsKICAgdHBtMl9zZWFsZWRfa2V5X3Qgc2VhbGVk X2tleSA9IHswfTsKLSAgdm9pZCAqZmlsZV9ieXRlcyA9IE5VTEw7Ci0gIGdydWJfc2l6ZV90IGZp bGVfc2l6ZSA9IDA7CiAgIGdydWJfdWludDhfdCByc2FwYXJlbnQgPSAwOwogICBUUE1fSEFORExF X3QgcGFyZW50X2hhbmRsZSA9IDA7CiAgIFRQTV9IQU5ETEVfdCBzcmtfaGFuZGxlID0gMDsKQEAg LTk2MCwyMiArMTAwMCwxNyBAQCB0cG0yX3Byb3RlY3Rvcl9zcmtfcmVjb3ZlciAoY29uc3QgdHBt Ml9wcm90ZWN0b3JfY29udGV4dF90ICpjdHgsCiAKICAgLyoKICAgICogUmV0cmlldmUgc2VhbGVk IGtleSwgcGFyZW50IGhhbmRsZSwgcG9saWN5IHNlcXVlbmNlLCBhbmQgYXV0aHBvbGljeQotICAg KiBzZXF1ZW5jZSBmcm9tIHRoZSBrZXkgZmlsZQorICAgKiBzZXF1ZW5jZSBmcm9tIHRoZSBidWZm ZXIKICAgKi8KLSAgaWYgKGN0eC0+dHBtMmtleSAhPSBOVUxMKQorICBpZiAodHBtMl9wcm90ZWN0 b3JfaXNfdHBtMmtleSAoYnVmZmVyLCBidWZfc2l6ZSkgPT0gdHJ1ZSkKICAgICB7Ci0gICAgICBl cnIgPSB0cG0yX3Byb3RlY3Rvcl9zcmtfcmVhZF9maWxlIChjdHgtPnRwbTJrZXksICZmaWxlX2J5 dGVzLAotCQkJCQkgICAgICAgJmZpbGVfc2l6ZSk7Ci0gICAgICBpZiAoZXJyICE9IEdSVUJfRVJS X05PTkUpCi0JcmV0dXJuIGVycjsKLQotICAgICAgZXJyID0gdHBtMl9wcm90ZWN0b3Jfc3JrX3Vu bWFyc2hhbF90cG0ya2V5IChmaWxlX2J5dGVzLAotCQkJCQkJICBmaWxlX3NpemUsCi0JCQkJCQkg ICZwb2xpY3lfc2VxLAotCQkJCQkJICAmYXV0aHBvbF9zZXEsCi0JCQkJCQkgICZyc2FwYXJlbnQs Ci0JCQkJCQkgICZwYXJlbnRfaGFuZGxlLAotCQkJCQkJICAmc2VhbGVkX2tleSk7CisgICAgICBl cnIgPSB0cG0yX3Byb3RlY3Rvcl91bm1hcnNoYWxfdHBtMmtleSAoYnVmZmVyLAorCQkJCQkgICAg ICBidWZfc2l6ZSwKKwkJCQkJICAgICAgJnBvbGljeV9zZXEsCisJCQkJCSAgICAgICZhdXRocG9s X3NlcSwKKwkJCQkJICAgICAgJnJzYXBhcmVudCwKKwkJCQkJICAgICAgJnBhcmVudF9oYW5kbGUs CisJCQkJCSAgICAgICZzZWFsZWRfa2V5KTsKICAgICAgIGlmIChlcnIgIT0gR1JVQl9FUlJfTk9O RSkKIAlnb3RvIGV4aXQxOwogCkBAIC05OTEsMTIgKzEwMjYsOCBAQCB0cG0yX3Byb3RlY3Rvcl9z cmtfcmVjb3ZlciAoY29uc3QgdHBtMl9wcm90ZWN0b3JfY29udGV4dF90ICpjdHgsCiAgICAgfQog ICBlbHNlCiAgICAgewotICAgICAgZXJyID0gdHBtMl9wcm90ZWN0b3Jfc3JrX3JlYWRfZmlsZSAo Y3R4LT5rZXlmaWxlLCAmZmlsZV9ieXRlcywgJmZpbGVfc2l6ZSk7Ci0gICAgICBpZiAoZXJyICE9 IEdSVUJfRVJSX05PTkUpCi0JcmV0dXJuIGVycjsKLQogICAgICAgcGFyZW50X2hhbmRsZSA9IFRQ TV9SSF9PV05FUjsKLSAgICAgIGVyciA9IHRwbTJfcHJvdGVjdG9yX3Nya191bm1hcnNoYWxfa2V5 ZmlsZSAoZmlsZV9ieXRlcywgZmlsZV9zaXplLCAmc2VhbGVkX2tleSk7CisgICAgICBlcnIgPSB0 cG0yX3Byb3RlY3Rvcl91bm1hcnNoYWxfcmF3IChidWZmZXIsIGJ1Zl9zaXplLCAmc2VhbGVkX2tl eSk7CiAgICAgICBpZiAoZXJyICE9IEdSVUJfRVJSX05PTkUpCiAJZ290byBleGl0MTsKICAgICB9 CkBAIC0xMDcyLDYgKzExMDMsMzEgQEAgdHBtMl9wcm90ZWN0b3Jfc3JrX3JlY292ZXIgKGNvbnN0 IHRwbTJfcHJvdGVjdG9yX2NvbnRleHRfdCAqY3R4LAogIGV4aXQxOgogICBncnViX3RwbTJrZXlf ZnJlZV9wb2xpY3lfc2VxIChwb2xpY3lfc2VxKTsKICAgZ3J1Yl90cG0ya2V5X2ZyZWVfYXV0aHBv bGljeV9zZXEgKGF1dGhwb2xfc2VxKTsKKyAgcmV0dXJuIGVycjsKK30KKworc3RhdGljIGdydWJf ZXJyX3QKK3RwbTJfcHJvdGVjdG9yX3Nya19yZWNvdmVyIChjb25zdCB0cG0yX3Byb3RlY3Rvcl9j b250ZXh0X3QgKmN0eCwKKwkJCSAgICBncnViX3VpbnQ4X3QgKiprZXksIGdydWJfc2l6ZV90ICpr ZXlfc2l6ZSkKK3sKKyAgY29uc3QgY2hhciAqZmlsZXBhdGg7CisgIHZvaWQgKmZpbGVfYnl0ZXMg PSBOVUxMOworICBncnViX3NpemVfdCBmaWxlX3NpemUgPSAwOworICBncnViX2Vycl90IGVycjsK KworICBpZiAoY3R4LT50cG0ya2V5ICE9IE5VTEwpCisgICAgZmlsZXBhdGggPSBjdHgtPnRwbTJr ZXk7CisgIGVsc2UgaWYgKGN0eC0+a2V5ZmlsZSAhPSBOVUxMKQorICAgIGZpbGVwYXRoID0gY3R4 LT5rZXlmaWxlOworICBlbHNlCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9B UkdVTUVOVCwgTl8oImtleSBmaWxlIG5vdCBzcGVjaWZpZWQiKSk7CisKKyAgZXJyID0gdHBtMl9w cm90ZWN0b3Jfc3JrX3JlYWRfZmlsZSAoZmlsZXBhdGgsICZmaWxlX2J5dGVzLCAmZmlsZV9zaXpl KTsKKyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7CisKKyAgZXJy ID0gdHBtMl9wcm90ZWN0b3Jfa2V5X2Zyb21fYnVmZmVyIChjdHgsIGZpbGVfYnl0ZXMsIGZpbGVf c2l6ZSwga2V5LCBrZXlfc2l6ZSk7CisKICAgZ3J1Yl9mcmVlIChmaWxlX2J5dGVzKTsKICAgcmV0 dXJuIGVycjsKIH0KLS0gCjIuNDMuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9y ZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==