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 smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 72FCCC433EF for ; Thu, 28 Apr 2022 14:04:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 1EF0A83E35; Thu, 28 Apr 2022 14:04:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iTmeOqO9r7wB; Thu, 28 Apr 2022 14:04:38 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 5101383498; Thu, 28 Apr 2022 14:04:38 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 33C76C0080; Thu, 28 Apr 2022 14:04:38 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 06F5AC0032 for ; Thu, 28 Apr 2022 14:04:37 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 0968783E45 for ; Thu, 28 Apr 2022 14:04:36 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y49DWJ1ovqJj for ; Thu, 28 Apr 2022 14:04:34 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from mail-pg1-x52b.google.com (mail-pg1-x52b.google.com [IPv6:2607:f8b0:4864:20::52b]) by smtp1.osuosl.org (Postfix) with ESMTPS id B41FE83498 for ; Thu, 28 Apr 2022 14:04:34 +0000 (UTC) Received: by mail-pg1-x52b.google.com with SMTP id q76so1016887pgq.10 for ; Thu, 28 Apr 2022 07:04:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fbLj4epjW6ZvurRp3t1wVu3fCU1F78uwTpoV4SHLZDE=; b=W4eaiu2v671QD+KeyKKsVnXHr9TgjldcbtWTobOvtrILhcYJuiUvxKhZWEnocI/GHm CWSFn6++EvFWlMHMfRZqTFk7XDR+iZs+anvWs8lPt2u1LIjoumCaMyDiVmuTV0Bjkl5R JLm1PAZ550w2/7eRwAF8soo0mmzoAgMy/abUFSb0CeVyCdK26pb7tdnQQ4ynTFc2YMBr p3ViND+qNhVxwuo/uG6/h/gSF5qrsX+vkdD2MC2ZIgb7Zz53gt2NtQ0AYIeZO2TfpxIZ stRVtqGV6eH+XjGWtS47RaN7l/fsDPAZUNjWqtrsXmsOKblJkv3MYXGe9UfVpgK9mNhN M7EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fbLj4epjW6ZvurRp3t1wVu3fCU1F78uwTpoV4SHLZDE=; b=N4natchORoO7hE1cglyq5onPE7PGOygCUMe7vuE1eYWsgbvsmBZO8TBpeuq+s4bVyR i2Q9hctZxmaf/1hkcs239UBkz4veA8l4vZGUTdlbSRG6SGT0tE+uI5XQ296gNtSIiFdQ HYy8ao9Zi5rNbb2pPc5pR5P/3iU1SEvkZQOAIb4UlTpZLW4kNWYK0bXjfttlmoq0+X22 qz/S5+SwpZO2r4L46HFv1qV8SIltvvt/8Wo4RuHdIlXGTXoiVtAlUI8qACxhk/f33cmq Xh8GjZ/QLi/wPkBPPeeHwwGP512Dv7KmSTu5TQJqvcC44c5kSSPodrtFfjIR1zjLcK8s EhtA== X-Gm-Message-State: AOAM5317YXTaf00Vk39xxSC11/87b+pFePFc2YZtAv6o2ipOHWB81PuZ p+GcyIPg/SohI6C5hV0WSPiONQ== X-Google-Smtp-Source: ABdhPJxSlosodERzxS/9FDEELC3eVT8tg0s+Prqgs8Ucvix3FVSDMA9qR7CRcGMnyTuSoolRKW0fRQ== X-Received: by 2002:a63:fb02:0:b0:3c1:9513:2e11 with SMTP id o2-20020a63fb02000000b003c195132e11mr898858pgh.258.1651154674022; Thu, 28 Apr 2022 07:04:34 -0700 (PDT) Received: from always-x1.www.tendawifi.com ([139.177.225.254]) by smtp.gmail.com with ESMTPSA id x129-20020a623187000000b0050835f6d6a1sm38975pfx.9.2022.04.28.07.04.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Apr 2022 07:04:33 -0700 (PDT) From: zhenwei pi To: mst@redhat.com, arei.gonglei@huawei.com, berrange@redhat.com Subject: [PATCH v5 3/9] crypto: Introduce akcipher crypto class Date: Thu, 28 Apr 2022 21:59:37 +0800 Message-Id: <20220428135943.178254-4-pizhenwei@bytedance.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220428135943.178254-1-pizhenwei@bytedance.com> References: <20220428135943.178254-1-pizhenwei@bytedance.com> MIME-Version: 1.0 Cc: helei.sig11@bytedance.com, cohuck@redhat.com, qemu-devel@nongnu.org, zhenwei pi , virtualization@lists.linux-foundation.org, linux-crypto@vger.kernel.org X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" SW50cm9kdWNlIG5ldyBha2NpcGhlciBjcnlwdG8gY2xhc3MgJ1FDcnlwdG9Ba0NJcGhlcicsIHdo aWNoIHN1cHBvcnRzCmJhc2ljIGFzeW1tZXRyaWMgb3BlcmF0aW9uczogZW5jcnlwdCwgZGVjcnlw dCwgc2lnbiBhbmQgdmVyaWZ5LgoKU3VnZ2VzdGVkIGJ5IERhbmllbCBQLiBCZXJyYW5nw6ksIGFs c28gYWRkIGF1dG9wdHIgY2xlYW51cCBmb3IgdGhlIG5ldwpjbGFzcy4gVGhhbmtzIHRvIERhbmll bCEKCkNvLWRldmVsb3BlZC1ieTogbGVpIGhlIDxoZWxlaS5zaWcxMUBieXRlZGFuY2UuY29tPgpT aWduZWQtb2ZmLWJ5OiBsZWkgaGUgPGhlbGVpLnNpZzExQGJ5dGVkYW5jZS5jb20+ClNpZ25lZC1v ZmYtYnk6IHpoZW53ZWkgcGkgPHBpemhlbndlaUBieXRlZGFuY2UuY29tPgotLS0KIGNyeXB0by9h a2NpcGhlci5jICAgICAgICAgfCAxMDIgKysrKysrKysrKysrKysrKysrKysrKysrCiBjcnlwdG8v YWtjaXBoZXJwcml2LmggICAgIHwgIDU1ICsrKysrKysrKysrKysKIGNyeXB0by9tZXNvbi5idWls ZCAgICAgICAgfCAgIDEgKwogaW5jbHVkZS9jcnlwdG8vYWtjaXBoZXIuaCB8IDE1OCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAzMTYgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNyeXB0by9ha2NpcGhlci5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgY3J5cHRvL2FrY2lwaGVycHJpdi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5j bHVkZS9jcnlwdG8vYWtjaXBoZXIuaAoKZGlmZiAtLWdpdCBhL2NyeXB0by9ha2NpcGhlci5jIGIv Y3J5cHRvL2FrY2lwaGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u YWIyOGJmNDE1YgotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9ha2NpcGhlci5jCkBAIC0wLDAg KzEsMTAyIEBACisvKgorICogUUVNVSBDcnlwdG8gYWtjaXBoZXIgYWxnb3JpdGhtcworICoKKyAq IENvcHlyaWdodCAoYykgMjAyMiBCeXRlZGFuY2UKKyAqIEF1dGhvcjogemhlbndlaSBwaSA8cGl6 aGVud2VpQGJ5dGVkYW5jZS5jb20+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKgorICovCisKKyNpbmNsdWRlICJxZW11L29zZGVwLmgi CisjaW5jbHVkZSAiY3J5cHRvL2FrY2lwaGVyLmgiCisjaW5jbHVkZSAiYWtjaXBoZXJwcml2Lmgi CisKK1FDcnlwdG9Ba0NpcGhlciAqcWNyeXB0b19ha2NpcGhlcl9uZXcoY29uc3QgUUNyeXB0b0Fr Q2lwaGVyT3B0aW9ucyAqb3B0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUUNyeXB0b0FrQ2lwaGVyS2V5VHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICprZXksIHNpemVfdCBrZXlsZW4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKK3sKKyAgICBRQ3J5 cHRvQWtDaXBoZXIgKmFrY2lwaGVyID0gTlVMTDsKKworICAgIHJldHVybiBha2NpcGhlcjsKK30K KworYm9vbCBxY3J5cHRvX2FrY2lwaGVyX3N1cHBvcnRzKFFDcnlwdG9Ba0NpcGhlck9wdGlvbnMg Km9wdHMpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgcWNyeXB0b19ha2NpcGhlcl9l bmNyeXB0KFFDcnlwdG9Ba0NpcGhlciAqYWtjaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHZvaWQgKmluLCBzaXplX3QgaW5fbGVuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2b2lkICpvdXQsIHNpemVfdCBvdXRfbGVuLCBFcnJvciAqKmVycnApCit7Cisg ICAgY29uc3QgUUNyeXB0b0FrQ2lwaGVyRHJpdmVyICpkcnYgPSBha2NpcGhlci0+ZHJpdmVyOwor CisgICAgcmV0dXJuIGRydi0+ZW5jcnlwdChha2NpcGhlciwgaW4sIGluX2xlbiwgb3V0LCBvdXRf bGVuLCBlcnJwKTsKK30KKworaW50IHFjcnlwdG9fYWtjaXBoZXJfZGVjcnlwdChRQ3J5cHRvQWtD aXBoZXIgKmFrY2lwaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lk ICppbiwgc2l6ZV90IGluX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq b3V0LCBzaXplX3Qgb3V0X2xlbiwgRXJyb3IgKiplcnJwKQoreworICAgIGNvbnN0IFFDcnlwdG9B a0NpcGhlckRyaXZlciAqZHJ2ID0gYWtjaXBoZXItPmRyaXZlcjsKKworICAgIHJldHVybiBkcnYt PmRlY3J5cHQoYWtjaXBoZXIsIGluLCBpbl9sZW4sIG91dCwgb3V0X2xlbiwgZXJycCk7Cit9CisK K2ludCBxY3J5cHRvX2FrY2lwaGVyX3NpZ24oUUNyeXB0b0FrQ2lwaGVyICpha2NpcGhlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW4sIHNpemVfdCBpbl9sZW4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKm91dCwgc2l6ZV90IG91dF9sZW4sIEVycm9y ICoqZXJycCkKK3sKKyAgICBjb25zdCBRQ3J5cHRvQWtDaXBoZXJEcml2ZXIgKmRydiA9IGFrY2lw aGVyLT5kcml2ZXI7CisKKyAgICByZXR1cm4gZHJ2LT5zaWduKGFrY2lwaGVyLCBpbiwgaW5fbGVu LCBvdXQsIG91dF9sZW4sIGVycnApOworfQorCitpbnQgcWNyeXB0b19ha2NpcGhlcl92ZXJpZnko UUNyeXB0b0FrQ2lwaGVyICpha2NpcGhlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCB2b2lkICppbiwgc2l6ZV90IGluX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB2b2lkICppbjIsIHNpemVfdCBpbjJfbGVuLCBFcnJvciAqKmVycnApCit7CisgICAg Y29uc3QgUUNyeXB0b0FrQ2lwaGVyRHJpdmVyICpkcnYgPSBha2NpcGhlci0+ZHJpdmVyOworCisg ICAgcmV0dXJuIGRydi0+dmVyaWZ5KGFrY2lwaGVyLCBpbiwgaW5fbGVuLCBpbjIsIGluMl9sZW4s IGVycnApOworfQorCitpbnQgcWNyeXB0b19ha2NpcGhlcl9tYXhfcGxhaW50ZXh0X2xlbihRQ3J5 cHRvQWtDaXBoZXIgKmFrY2lwaGVyKQoreworICAgIHJldHVybiBha2NpcGhlci0+bWF4X3BsYWlu dGV4dF9sZW47Cit9CisKK2ludCBxY3J5cHRvX2FrY2lwaGVyX21heF9jaXBoZXJ0ZXh0X2xlbihR Q3J5cHRvQWtDaXBoZXIgKmFrY2lwaGVyKQoreworICAgIHJldHVybiBha2NpcGhlci0+bWF4X2Np cGhlcnRleHRfbGVuOworfQorCitpbnQgcWNyeXB0b19ha2NpcGhlcl9tYXhfc2lnbmF0dXJlX2xl bihRQ3J5cHRvQWtDaXBoZXIgKmFrY2lwaGVyKQoreworICAgIHJldHVybiBha2NpcGhlci0+bWF4 X3NpZ25hdHVyZV9sZW47Cit9CisKK2ludCBxY3J5cHRvX2FrY2lwaGVyX21heF9kZ3N0X2xlbihR Q3J5cHRvQWtDaXBoZXIgKmFrY2lwaGVyKQoreworICAgIHJldHVybiBha2NpcGhlci0+bWF4X2Rn c3RfbGVuOworfQorCit2b2lkIHFjcnlwdG9fYWtjaXBoZXJfZnJlZShRQ3J5cHRvQWtDaXBoZXIg KmFrY2lwaGVyKQoreworICAgIGNvbnN0IFFDcnlwdG9Ba0NpcGhlckRyaXZlciAqZHJ2ID0gYWtj aXBoZXItPmRyaXZlcjsKKworICAgIGRydi0+ZnJlZShha2NpcGhlcik7Cit9CmRpZmYgLS1naXQg YS9jcnlwdG8vYWtjaXBoZXJwcml2LmggYi9jcnlwdG8vYWtjaXBoZXJwcml2LmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNzM5ZjYzOWJjZgotLS0gL2Rldi9udWxsCisr KyBiL2NyeXB0by9ha2NpcGhlcnByaXYuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogUUVNVSBD cnlwdG8gYXN5bW1ldHJpYyBhbGdvcml0aG1zCisgKgorICogQ29weXJpZ2h0IChjKSAyMDIyIEJ5 dGVkYW5jZQorICogQXV0aG9yOiB6aGVud2VpIHBpIDxwaXpoZW53ZWlAYnl0ZWRhbmNlLmNvbT4K KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGlzIGxpYnJhcnk7IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KyAqCisgKi8KKworI2lmbmRlZiBRQ1JZUFRPX0FLQ0lQSEVSUFJJVl9ICisjZGVmaW5lIFFDUllQ VE9fQUtDSVBIRVJQUklWX0gKKworI2luY2x1ZGUgInFhcGkvcWFwaS10eXBlcy1jcnlwdG8uaCIK KwordHlwZWRlZiBzdHJ1Y3QgUUNyeXB0b0FrQ2lwaGVyRHJpdmVyIFFDcnlwdG9Ba0NpcGhlckRy aXZlcjsKKworc3RydWN0IFFDcnlwdG9Ba0NpcGhlciB7CisgICAgUUNyeXB0b0FrQ2lwaGVyQWxn b3JpdGhtIGFsZzsKKyAgICBRQ3J5cHRvQWtDaXBoZXJLZXlUeXBlIHR5cGU7CisgICAgaW50IG1h eF9wbGFpbnRleHRfbGVuOworICAgIGludCBtYXhfY2lwaGVydGV4dF9sZW47CisgICAgaW50IG1h eF9zaWduYXR1cmVfbGVuOworICAgIGludCBtYXhfZGdzdF9sZW47CisgICAgUUNyeXB0b0FrQ2lw aGVyRHJpdmVyICpkcml2ZXI7Cit9OworCitzdHJ1Y3QgUUNyeXB0b0FrQ2lwaGVyRHJpdmVyIHsK KyAgICBpbnQgKCplbmNyeXB0KShRQ3J5cHRvQWtDaXBoZXIgKmFrY2lwaGVyLAorICAgICAgICAg ICAgICAgICAgIGNvbnN0IHZvaWQgKmluLCBzaXplX3QgaW5fbGVuLAorICAgICAgICAgICAgICAg ICAgIHZvaWQgKm91dCwgc2l6ZV90IG91dF9sZW4sIEVycm9yICoqZXJycCk7CisgICAgaW50ICgq ZGVjcnlwdCkoUUNyeXB0b0FrQ2lwaGVyICpha2NpcGhlciwKKyAgICAgICAgICAgICAgICAgICBj b25zdCB2b2lkICpvdXQsIHNpemVfdCBvdXRfbGVuLAorICAgICAgICAgICAgICAgICAgIHZvaWQg KmluLCBzaXplX3QgaW5fbGVuLCBFcnJvciAqKmVycnApOworICAgIGludCAoKnNpZ24pKFFDcnlw dG9Ba0NpcGhlciAqYWtjaXBoZXIsCisgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW4sIHNp emVfdCBpbl9sZW4sCisgICAgICAgICAgICAgICAgdm9pZCAqb3V0LCBzaXplX3Qgb3V0X2xlbiwg RXJyb3IgKiplcnJwKTsKKyAgICBpbnQgKCp2ZXJpZnkpKFFDcnlwdG9Ba0NpcGhlciAqYWtjaXBo ZXIsCisgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbiwgc2l6ZV90IGluX2xlbiwKKyAg ICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluMiwgc2l6ZV90IGluMl9sZW4sIEVycm9yICoq ZXJycCk7CisgICAgdm9pZCAoKmZyZWUpKFFDcnlwdG9Ba0NpcGhlciAqYWtjaXBoZXIpOworfTsK KworI2VuZGlmIC8qIFFDUllQVE9fQUtDSVBIRVJfSCAqLwpkaWZmIC0tZ2l0IGEvY3J5cHRvL21l c29uLmJ1aWxkIGIvY3J5cHRvL21lc29uLmJ1aWxkCmluZGV4IDE5YzQ0YmVhODkuLjc2NDdkNWUy NDMgMTAwNjQ0Ci0tLSBhL2NyeXB0by9tZXNvbi5idWlsZAorKysgYi9jcnlwdG8vbWVzb24uYnVp bGQKQEAgLTEsNiArMSw3IEBACiBjcnlwdG9fc3MuYWRkKGdlbmgpCiBjcnlwdG9fc3MuYWRkKGZp bGVzKAogICAnYWZzcGxpdC5jJywKKyAgJ2FrY2lwaGVyLmMnLAogICAnYmxvY2stbHVrcy5jJywK ICAgJ2Jsb2NrLXFjb3cuYycsCiAgICdibG9jay5jJywKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3J5 cHRvL2FrY2lwaGVyLmggYi9pbmNsdWRlL2NyeXB0by9ha2NpcGhlci5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUxZjVmYTI3NzQKLS0tIC9kZXYvbnVsbAorKysgYi9p bmNsdWRlL2NyeXB0by9ha2NpcGhlci5oCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogUUVNVSBD cnlwdG8gYXN5bW1ldHJpYyBhbGdvcml0aG1zCisgKgorICogQ29weXJpZ2h0IChjKSAyMDIyIEJ5 dGVkYW5jZQorICogQXV0aG9yOiB6aGVud2VpIHBpIDxwaXpoZW53ZWlAYnl0ZWRhbmNlLmNvbT4K KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGlzIGxpYnJhcnk7IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KyAqCisgKi8KKworI2lmbmRlZiBRQ1JZUFRPX0FLQ0lQSEVSX0gKKyNkZWZpbmUgUUNSWVBUT19B S0NJUEhFUl9ICisKKyNpbmNsdWRlICJxYXBpL3FhcGktdHlwZXMtY3J5cHRvLmgiCisKK3R5cGVk ZWYgc3RydWN0IFFDcnlwdG9Ba0NpcGhlciBRQ3J5cHRvQWtDaXBoZXI7CisKKy8qKgorICogcWNy eXB0b19ha2NpcGhlcl9zdXBwb3J0czoKKyAqIEBvcHRzOiB0aGUgYXN5bW1ldHJpYyBrZXkgYWxn b3JpdGhtIGFuZCByZWxhdGVkIG9wdGlvbnMKKyAqCisgKiBEZXRlcm1pbmUgaWYgYXN5bW1ldHJp YyBrZXkgY2lwaGVyIGRlY3JpYmVkIHdpdGggQG9wdHMgaXMKKyAqIHN1cHBvcnRlZCBieSB0aGUg Y3VycmVudCBjb25maWd1cmVkIGJ1aWxkCisgKgorICogUmV0dXJuczogdHJ1ZSBpZiBpdCBpcyBz dXBwb3J0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAqLworYm9vbCBxY3J5cHRvX2FrY2lwaGVyX3N1 cHBvcnRzKFFDcnlwdG9Ba0NpcGhlck9wdGlvbnMgKm9wdHMpOworCisvKioKKyAqIHFjcnlwdG9f YWtjaXBoZXJfbmV3OgorICogQG9wdHM6IHNwZWNpZnkgdGhlIGFsZ29yaXRobSBhbmQgdGhlIHJl bGF0ZWQgYXJndW1lbnRzCisgKiBAdHlwZTogcHJpdmF0ZSBvciBwdWJsaWMga2V5IHR5cGUKKyAq IEBrZXk6IGJ1ZmZlciB0byBzdG9yZSB0aGUga2V5CisgKiBAa2V5X2xlbjogdGhlIGxlbmd0aCBv ZiBrZXkgYnVmZmVyCisgKiBAZXJycDogZXJyb3IgcG9pbnRlcgorICoKKyAqIENyZWF0ZSBha2Np cGhlciBjb250ZXh0CisgKgorICogUmV0dXJuczogT24gc3VjY2VzcywgYSBuZXcgUUNyeXB0b0Fr Q2lwaGVyIGluaXRpYWxpemVkIHdpdGggQG9wdAorICogaXMgY3JlYXRlZCBhbmQgcmV0dXJuZWQs IG90aGVyd2lzZSBOVUxMIGlzIHJldHVybmVkLgorICovCisKK1FDcnlwdG9Ba0NpcGhlciAqcWNy eXB0b19ha2NpcGhlcl9uZXcoY29uc3QgUUNyeXB0b0FrQ2lwaGVyT3B0aW9ucyAqb3B0cywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUNyeXB0b0FrQ2lwaGVyS2V5VHlw ZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50 OF90ICprZXksIHNpemVfdCBrZXlfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFcnJvciAqKmVycnApOworCisvKioKKyAqIHFjcnlwdG9fYWtjaXBoZXJfZW5jcnlw dDoKKyAqIEBha2NpcGhlcjogYWtjaXBoZXIgY29udGV4dAorICogQGluOiBwbGFpbnRleHQgcGVu ZGluZyB0byBiZSBlbmNyeXB0ZWQKKyAqIEBpbl9sZW46IGxlbmd0aCBvZiBwbGFpbnRleHQsIGxl c3Mgb3IgZXF1YWwgdG8gdGhlIHNpemUgcmVwb3J0ZWQKKyAqICAgICAgICAgIGJ5IGEgY2FsbCB0 byBxY3J5cHRvX2FrY2lwaGVyX21heF9wbGFpbnRleHRfbGVuKCkKKyAqIEBvdXQ6IGJ1ZmZlciB0 byBzdG9yZSB0aGUgY2lwaGVydGV4dAorICogQG91dF9sZW46IGxlbmd0aCBvZiBjaXBoZXJ0ZXh0 LCBsZXNzIG9yIGVxdWFsIHRvIHRoZSBzaXplIHJlcG9ydGVkCisgKiAgICAgICAgICAgYnkgYSBj YWxsIHRvIHFjcnlwdG9fYWtjaXBoZXJfbWF4X2NpcGhlcnRleHRfbGVuKCkKKyAqIEBlcnJwOiBl cnJvciBwb2ludGVyCisgKgorICogRW5jcnlwdCBAaW4gYW5kIHdyaXRlIGNpcGhlcnRleHQgaW50 byBAb3V0CisgKgorICogUmV0dXJuczogbGVuZ3RoIG9mIGNpcGhlcnRleHQgaWYgZW5jcnlwdCBz dWNjZWVkLAorICogICAgICAgICAgb3RoZXJ3aXNlIC0xIGlzIHJldHVybmVkCisgKi8KK2ludCBx Y3J5cHRvX2FrY2lwaGVyX2VuY3J5cHQoUUNyeXB0b0FrQ2lwaGVyICpha2NpcGhlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW4sIHNpemVfdCBpbl9sZW4sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKm91dCwgc2l6ZV90IG91dF9sZW4sIEVy cm9yICoqZXJycCk7CisKKy8qKgorICogcWNyeXB0b19ha2NpcGhlcl9kZWNyeXB0OgorICogQGFr Y2lwaGVyOiBha2NpcGhlciBjb250ZXh0CisgKiBAaW46IGNpcGhlcnRleHQgdG8gYmUgZGVjcnlw dGVkCisgKiBAaW5fbGVuOiB0aGUgbGVuZ3RoIG9mIGNpcGhlcnRleHQsIGxlc3Mgb3IgZXF1YWwg dG8gdGhlIHNpemUgcmVwb3J0ZWQKKyAqICAgICAgICAgIGJ5IGEgY2FsbCB0byBxY3J5cHRvX2Fr Y2lwaGVyX21heF9jaXBoZXJ0ZXh0X2xlbigpCisgKiBAb3V0OiBidWZmZXIgdG8gc3RvcmUgdGhl IHBsYWludGV4dAorICogQG91dF9sZW46IGxlbmd0aCBvZiB0aGUgcGxhaW50ZXh0IGJ1ZmZlciwg bGVzcyBvciBlcXVhbCB0byB0aGUgc2l6ZQorICogICAgICAgICAgIHJlcG9ydGVkIGJ5IGEgY2Fs bCB0byBxY3J5cHRvX2FrY2lwaGVyX21heF9wbGFpbnRleHRfbGVuKCkKKyAqIEBlcnJwOiBlcnJv ciBwb2ludGVyCisgKgorICogRGVjcnlwdCBAaW4gYW5kIHdyaXRlIHBsYWludGV4dCBpbnRvIEBv dXQKKyAqCisgKiBSZXR1cm5zOiBsZW5ndGggb2YgcGxhaW50ZXh0IGlmIGRlY3J5cHQgc3VjY2Vl ZCwKKyAqICAgICAgICAgIG90aGVyd2lzZSAtMSBpcyByZXR1cm5lZAorICovCitpbnQgcWNyeXB0 b19ha2NpcGhlcl9kZWNyeXB0KFFDcnlwdG9Ba0NpcGhlciAqYWtjaXBoZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluLCBzaXplX3QgaW5fbGVuLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpvdXQsIHNpemVfdCBvdXRfbGVuLCBFcnJvciAq KmVycnApOworCisvKioKKyAqIHFjcnlwdG9fYWtjaXBoZXJfc2lnbjoKKyAqIEBha2NpcGhlcjog YWtjaXBoZXIgY29udGV4dAorICogQGluOiBkYXRhIHRvIGJlIHNpZ25lZAorICogQGluX2xlbjog dGhlIGxlbmd0aCBvZiBkYXRhLCBsZXNzIG9yIGVxdWFsIHRvIHRoZSBzaXplIHJlcG9ydGVkCisg KiAgICAgICAgICBieSBhIGNhbGwgdG8gcWNyeXB0b19ha2NpcGhlcl9tYXhfZGdzdF9sZW4oKQor ICogQG91dDogYnVmZmVyIHRvIHN0b3JlIHRoZSBzaWduYXR1cmUKKyAqIEBvdXRfbGVuOiBsZW5n dGggb2YgdGhlIHNpZ25hdHVyZSBidWZmZXIsIGxlc3Mgb3IgZXF1YWwgdG8gdGhlIHNpemUKKyAq ICAgICAgICAgICBieSBhIGNhbGwgdG8gcWNyeXB0b19ha2NpcGhlcl9tYXhfc2lnbmF0dXJlX2xl bigpCisgKiBAZXJycDogZXJyb3IgcG9pbnRlcgorICoKKyAqIEdlbmVyYXRlIHNpZ25hdHVyZSBm b3IgQGluLCB3cml0ZSBpbnRvIEBvdXQKKyAqCisgKiBSZXR1cm5zOiBsZW5ndGggb2Ygc2lnbmF0 dXJlIGlmIHN1Y2NlZWQsCisgKiAgICAgICAgICBvdGhlcndpc2UgLTEgaXMgcmV0dXJuZWQKKyAq LworaW50IHFjcnlwdG9fYWtjaXBoZXJfc2lnbihRQ3J5cHRvQWtDaXBoZXIgKmFrY2lwaGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbiwgc2l6ZV90IGluX2xlbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqb3V0LCBzaXplX3Qgb3V0X2xlbiwgRXJy b3IgKiplcnJwKTsKKworLyoqCisgKiBxY3J5cHRvX2FrY2lwaGVyX3ZlcmlmeToKKyAqIEBha2Np cGhlcjogYWtjaXBoZXIgY29udGV4dAorICogQGluOiBwb2ludGVyIHRvIHRoZSBzaWduYXR1cmUK KyAqIEBpbl9sZW46IGxlbmd0aCBvZiBzaWduYXR1cmUsIGVzcyBvciBlcXVhbCB0byB0aGUgc2l6 ZSByZXBvcnRlZAorICogICAgICAgICAgYnkgYSBjYWxsIHRvIHFjcnlwdG9fYWtjaXBoZXJfbWF4 X3NpZ25hdHVyZV9sZW4oKQorICogQGluMjogcG9pbnRlciB0byBvcmlnaW5hbCBkYXRhCisgKiBA aW4yX2xlbjogdGhlIGxlbmd0aCBvZiBvcmlnaW5hbCBkYXRhLCBsZXNzIG9yIGVxdWFsIHRvIHRo ZSBzaXplCisgKiAgICAgICAgICAgYnkgYSBjYWxsIHRvIHFjcnlwdG9fYWtjaXBoZXJfbWF4X2Rn c3RfbGVuKCkKKyAqIEBlcnJwOiBlcnJvciBwb2ludGVyCisgKgorICogVmVyaWZ5IEBpbiBhbmQg QGluMiBtYXRjaCBvciBub3QKKyAqCisgKiBSZXR1cm5zOiAwIGZvciBzdWNjZWVkLAorICogICAg ICAgICAgb3RoZXJ3aXNlIC0xIGlzIHJldHVybmVkCisgKi8KK2ludCBxY3J5cHRvX2FrY2lwaGVy X3ZlcmlmeShRQ3J5cHRvQWtDaXBoZXIgKmFrY2lwaGVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IHZvaWQgKmluLCBzaXplX3QgaW5fbGVuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHZvaWQgKmluMiwgc2l6ZV90IGluMl9sZW4sIEVycm9yICoqZXJycCk7 CisKK2ludCBxY3J5cHRvX2FrY2lwaGVyX21heF9wbGFpbnRleHRfbGVuKFFDcnlwdG9Ba0NpcGhl ciAqYWtjaXBoZXIpOworCitpbnQgcWNyeXB0b19ha2NpcGhlcl9tYXhfY2lwaGVydGV4dF9sZW4o UUNyeXB0b0FrQ2lwaGVyICpha2NpcGhlcik7CisKK2ludCBxY3J5cHRvX2FrY2lwaGVyX21heF9z aWduYXR1cmVfbGVuKFFDcnlwdG9Ba0NpcGhlciAqYWtjaXBoZXIpOworCitpbnQgcWNyeXB0b19h a2NpcGhlcl9tYXhfZGdzdF9sZW4oUUNyeXB0b0FrQ2lwaGVyICpha2NpcGhlcik7CisKKy8qKgor ICogcWNyeXB0b19ha2NpcGhlcl9mcmVlOgorICogQGFrY2lwaGVyOiBha2NpcGhlciBjb250ZXh0 CisgKgorICogRnJlZSB0aGUgYWtjaXBoZXIgY29udGV4dAorICoKKyAqLwordm9pZCBxY3J5cHRv X2FrY2lwaGVyX2ZyZWUoUUNyeXB0b0FrQ2lwaGVyICpha2NpcGhlcik7CisKK0dfREVGSU5FX0FV VE9QVFJfQ0xFQU5VUF9GVU5DKFFDcnlwdG9Ba0NpcGhlciwgcWNyeXB0b19ha2NpcGhlcl9mcmVl KQorCisjZW5kaWYgLyogUUNSWVBUT19BS0NJUEhFUl9IICovCi0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9uIG1h aWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRw czovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXph dGlvbg==