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 X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95B7EC4338F for ; Tue, 3 Aug 2021 11:00:25 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9BA7361040 for ; Tue, 3 Aug 2021 11:00:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9BA7361040 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=kaspersky.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EBF9A82D7E; Tue, 3 Aug 2021 13:00:21 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=reject dis=none) header.from=kaspersky.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kaspersky.com header.i=@kaspersky.com header.b="fM18uI0l"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C3AEC82D58; Tue, 3 Aug 2021 13:00:19 +0200 (CEST) Received: from mx13.kaspersky-labs.com (mx13.kaspersky-labs.com [91.103.66.164]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7B34E82C88 for ; Tue, 3 Aug 2021 13:00:15 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=kaspersky.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=Roman.Kopytin@kaspersky.com Received: from relay13.kaspersky-labs.com (unknown [127.0.0.10]) by relay13.kaspersky-labs.com (Postfix) with ESMTP id 11D42520D63 for ; Tue, 3 Aug 2021 14:00:15 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kaspersky.com; s=mail202102; t=1627988415; bh=1HvyRi82fjWdz/5m++nATNwOOSYRbrFj8ayyqdLq9R8=; h=From:To:Subject:Date:Message-ID:Content-Type:MIME-Version; b=fM18uI0lqJdHKNZt2SfxX3SZpfCRLaz77ysuTpv7qw82yjJ3wKwNHK8aR4hJYSMsh DzsayrJhKVtxan8J3Pf/a+YmTkAZFZBWsZVK8IAfiJEvvLASho1SOfOx8pEivKoKZ3 Tpdo1chgms5ZxXOx3KTEaSQecE5NjoqS8VLpHc1O2vN0urTHQBeBSE5WQEbZA47Rai OzzyIgITme46015D3SpFmFNmiUrFDV4pL7fB67UTPa7HfrLfGwQZykwy3EIZI641aT DBNrxjNnKPFr2r+KF8cgkB+XAwHAIrcAuGL4ssL/L9Omn1i9NuziprNvQqkdNPtnu5 onttl/2Xynvcg== Received: from mail-hq2.kaspersky.com (unknown [91.103.66.204]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client CN "mail-hq2.kaspersky.com", Issuer "Kaspersky MailRelays CA G3" (verified OK)) by mailhub13.kaspersky-labs.com (Postfix) with ESMTPS id C9002520D5D for ; Tue, 3 Aug 2021 14:00:14 +0300 (MSK) Received: from hqmailmbx3.avp.ru (10.64.67.243) by hqmailmbx1.avp.ru (10.64.67.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.14; Tue, 3 Aug 2021 14:00:14 +0300 Received: from hqmailmbx3.avp.ru ([fe80::5967:ee5:6a84:96b8]) by hqmailmbx3.avp.ru ([fe80::5967:ee5:6a84:96b8%21]) with mapi id 15.01.2308.014; Tue, 3 Aug 2021 14:00:14 +0300 From: Roman Kopytin To: U-Boot-Denx Subject: [PATCH] tools: add fdt_add_pubkey Thread-Topic: [PATCH] tools: add fdt_add_pubkey Thread-Index: AdeIVhhu/+POtoz5Sd2D6sb8UN7m1A== Date: Tue, 3 Aug 2021 11:00:14 +0000 Message-ID: <2184f1e6dd6247e48133c76205feeabe@kaspersky.com> Accept-Language: ru-RU, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.64.64.121] x-kse-serverinfo: hqmailmbx1.avp.ru, 9 x-kse-attachmentfiltering-interceptor-info: no applicable attachment filtering rules found x-kse-antivirus-interceptor-info: scan successful x-kse-antivirus-info: Clean, bases: 03.08.2021 8:19:00 x-kse-bulkmessagesfiltering-scan-result: InTheLimit Content-Type: multipart/mixed; boundary="_004_2184f1e6dd6247e48133c76205feeabekasperskycom_" MIME-Version: 1.0 X-KLMS-Rule-ID: 52 X-KLMS-Message-Action: clean X-KLMS-AntiSpam-Status: not scanned, disabled by settings X-KLMS-AntiSpam-Interceptor-Info: not scanned X-KLMS-AntiPhishing: Clean, bases: 2021/08/03 09:10:00 X-KLMS-AntiVirus: Kaspersky Security for Linux Mail Server, version 8.0.3.30, bases: 2021/08/03 06:03:00 #16976015 X-KLMS-AntiVirus-Status: Clean, skipped X-Content-Filtered-By: Mailman/MimeDel 2.1.34 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean --_004_2184f1e6dd6247e48133c76205feeabekasperskycom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Having to use the -K option to mkimage to populate U-Boot's .dtb with the public key while signing the kernel FIT image is often a little awkward. In particular, when using a meta-build system such as bitbake/Yocto, having the tasks of the kernel and U-Boot recipes intertwined, modifying deployed artifacts and rebuilding U-Boot with an updated .dtb is quite cumbersome. Also, in some scenarios one may wish to build U-Boot complete with the public key(s) embedded in the .dtb without the corresponding private keys being present on the same build host. So this adds a simple tool that allows one to disentangle the kernel and U-Boot builds, by simply copy-pasting just enough of the mkimage code to allow one to add a public key to a .dtb. When using mkimage, some of the information is taken from the .its used to build the kernel (algorithm and key name), so that of course needs to be supplied on the command line. Signed-off-by: Roman Kopytin Cc: Rasmus Villemoes --_004_2184f1e6dd6247e48133c76205feeabekasperskycom_ Content-Type: application/octet-stream; name="0001-tools-add-fdt_add_pubkey.patch" Content-Description: 0001-tools-add-fdt_add_pubkey.patch Content-Disposition: attachment; filename="0001-tools-add-fdt_add_pubkey.patch"; size=5372; creation-date="Tue, 03 Aug 2021 10:51:50 GMT"; modification-date="Tue, 03 Aug 2021 10:48:24 GMT" Content-Transfer-Encoding: base64 RnJvbSBmNGRkMGVkYWVjNWZkYWM1ZDM1NWViNWJlZjNmOTE3YjM1ZDZjMDkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb21hbiBLb3B5dGluIDxSb21hbi5Lb3B5dGluQGthc3BlcnNr eS5jb20+CkRhdGU6IFR1ZSwgMyBBdWcgMjAyMSAxMjo0ODoxNSArMDMwMApTdWJqZWN0OiBbUEFU Q0hdIHRvb2xzOiBhZGQgZmR0X2FkZF9wdWJrZXkKCkhhdmluZyB0byB1c2UgdGhlIC1LIG9wdGlv biB0byBta2ltYWdlIHRvIHBvcHVsYXRlIFUtQm9vdCdzIC5kdGIgd2l0aCB0aGUKcHVibGljIGtl eSB3aGlsZSBzaWduaW5nIHRoZSBrZXJuZWwgRklUIGltYWdlIGlzIG9mdGVuIGEgbGl0dGxlCmF3 a3dhcmQuIEluIHBhcnRpY3VsYXIsIHdoZW4gdXNpbmcgYSBtZXRhLWJ1aWxkIHN5c3RlbSBzdWNo IGFzCmJpdGJha2UvWW9jdG8sIGhhdmluZyB0aGUgdGFza3Mgb2YgdGhlIGtlcm5lbCBhbmQgVS1C b290IHJlY2lwZXMKaW50ZXJ0d2luZWQsIG1vZGlmeWluZyBkZXBsb3llZCBhcnRpZmFjdHMgYW5k IHJlYnVpbGRpbmcgVS1Cb290IHdpdGgKYW4gdXBkYXRlZCAuZHRiIGlzIHF1aXRlIGN1bWJlcnNv bWUuIEFsc28sIGluIHNvbWUgc2NlbmFyaW9zIG9uZSBtYXkKd2lzaCB0byBidWlsZCBVLUJvb3Qg Y29tcGxldGUgd2l0aCB0aGUgcHVibGljIGtleShzKSBlbWJlZGRlZCBpbiB0aGUKLmR0YiB3aXRo b3V0IHRoZSBjb3JyZXNwb25kaW5nIHByaXZhdGUga2V5cyBiZWluZyBwcmVzZW50IG9uIHRoZSBz YW1lCmJ1aWxkIGhvc3QuCgpTbyB0aGlzIGFkZHMgYSBzaW1wbGUgdG9vbCB0aGF0IGFsbG93cyBv bmUgdG8gZGlzZW50YW5nbGUgdGhlIGtlcm5lbAphbmQgVS1Cb290IGJ1aWxkcywgYnkgc2ltcGx5 IGNvcHktcGFzdGluZyBqdXN0IGVub3VnaCBvZiB0aGUgbWtpbWFnZQpjb2RlIHRvIGFsbG93IG9u ZSB0byBhZGQgYSBwdWJsaWMga2V5IHRvIGEgLmR0Yi4gV2hlbiB1c2luZyBta2ltYWdlLApzb21l IG9mIHRoZSBpbmZvcm1hdGlvbiBpcyB0YWtlbiBmcm9tIHRoZSAuaXRzIHVzZWQgdG8gYnVpbGQg dGhlCmtlcm5lbCAoYWxnb3JpdGhtIGFuZCBrZXkgbmFtZSksIHNvIHRoYXQgb2YgY291cnNlIG5l ZWRzIHRvIGJlCnN1cHBsaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCgpTaWduZWQtb2ZmLWJ5OiBS b21hbiBLb3B5dGluIDxSb21hbi5Lb3B5dGluQGthc3BlcnNreS5jb20+CkNjOiBSYXNtdXMgVmls bGVtb2VzIDxyYXNtdXMudmlsbGVtb2VzQHByZXZhcy5kaz4KLS0tCiB0b29scy8uZ2l0aWdub3Jl ICAgICAgIHwgIDEgKwogdG9vbHMvTWFrZWZpbGUgICAgICAgICB8ICAzICsrCiB0b29scy9mZHRf YWRkX3B1YmtleS5jIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA3 NTUgdG9vbHMvZmR0X2FkZF9wdWJrZXkuYwoKZGlmZiAtLWdpdCBhL3Rvb2xzLy5naXRpZ25vcmUg Yi90b29scy8uZ2l0aWdub3JlCmluZGV4IGE4ODQ1M2Y2NGQuLmYzMTJiNzYwZTQgMTAwNjQ0Ci0t LSBhL3Rvb2xzLy5naXRpZ25vcmUKKysrIGIvdG9vbHMvLmdpdGlnbm9yZQpAQCAtNiw2ICs2LDcg QEAKIC9kdW1waW1hZ2UKIC9lYXN5bG9nby9lYXN5bG9nbwogL2VudmNyYworL2ZkdF9hZGRfcHVi a2V5CiAvZmR0Z3JlcAogL2ZpbGUyaW5jbHVkZQogL2ZpdF9jaGVja19zaWduCmRpZmYgLS1naXQg YS90b29scy9NYWtlZmlsZSBiL3Rvb2xzL01ha2VmaWxlCmluZGV4IDRhODYzMjFmNjQuLjQ0ZjI1 ZGRhMTggMTAwNjQ0Ci0tLSBhL3Rvb2xzL01ha2VmaWxlCisrKyBiL3Rvb2xzL01ha2VmaWxlCkBA IC03Myw2ICs3Myw3IEBAIG1rZW52aW1hZ2Utb2JqcyA6PSBta2VudmltYWdlLm8gb3Nfc3VwcG9y dC5vIGxpYi9jcmMzMi5vCiAKIGhvc3Rwcm9ncy15ICs9IGR1bXBpbWFnZSBta2ltYWdlCiBob3N0 cHJvZ3MtJChDT05GSUdfVE9PTFNfTElCQ1JZUFRPKSArPSBmaXRfaW5mbyBmaXRfY2hlY2tfc2ln bgoraG9zdHByb2dzLSQoQ09ORklHX1RPT0xTX0xJQkNSWVBUTykgKz0gZmR0X2FkZF9wdWJrZXkK IAogaG9zdHByb2dzLSQoQ09ORklHX0NNRF9CT09URUZJX1NFTEZURVNUKSArPSBmaWxlMmluY2x1 ZGUKIApAQCAtMTUzLDYgKzE1NCw3IEBAIGR1bXBpbWFnZS1vYmpzIDo9ICQoZHVtcGltYWdlLW1r aW1hZ2Utb2JqcykgZHVtcGltYWdlLm8KIG1raW1hZ2Utb2JqcyAgIDo9ICQoZHVtcGltYWdlLW1r aW1hZ2Utb2JqcykgbWtpbWFnZS5vCiBmaXRfaW5mby1vYmpzICAgOj0gJChkdW1waW1hZ2UtbWtp bWFnZS1vYmpzKSBmaXRfaW5mby5vCiBmaXRfY2hlY2tfc2lnbi1vYmpzICAgOj0gJChkdW1waW1h Z2UtbWtpbWFnZS1vYmpzKSBmaXRfY2hlY2tfc2lnbi5vCitmZHRfYWRkX3B1YmtleS1vYmpzICAg Oj0gJChkdW1waW1hZ2UtbWtpbWFnZS1vYmpzKSBmZHRfYWRkX3B1YmtleS5vCiBmaWxlMmluY2x1 ZGUtb2JqcyA6PSBmaWxlMmluY2x1ZGUubwogCiBpZm5lcSAoJChDT05GSUdfTVgyMykkKENPTkZJ R19NWDI4KSQoQ09ORklHX1RPT0xTX0xJQkNSWVBUTyksKQpAQCAtMTkwLDYgKzE5Miw3IEBAIEhP U1RDRkxBR1NfZml0X2ltYWdlLm8gKz0gLURNS0lNQUdFX0RUQz1cIiQoQ09ORklHX01LSU1BR0Vf RFRDX1BBVEgpXCIKIEhPU1RMRExJQlNfZHVtcGltYWdlIDo9ICQoSE9TVExETElCU19ta2ltYWdl KQogSE9TVExETElCU19maXRfaW5mbyA6PSAkKEhPU1RMRExJQlNfbWtpbWFnZSkKIEhPU1RMRExJ QlNfZml0X2NoZWNrX3NpZ24gOj0gJChIT1NUTERMSUJTX21raW1hZ2UpCitIT1NUTERMSUJTX2Zk dF9hZGRfcHVia2V5IDo9ICQoSE9TVExETElCU19ta2ltYWdlKQogCiBob3N0cHJvZ3MtJChDT05G SUdfRVhZTk9TNTI1MCkgKz0gbWtleHlub3NzcGwKIGhvc3Rwcm9ncy0kKENPTkZJR19FWFlOT1M1 NDIwKSArPSBta2V4eW5vc3NwbApkaWZmIC0tZ2l0IGEvdG9vbHMvZmR0X2FkZF9wdWJrZXkuYyBi L3Rvb2xzL2ZkdF9hZGRfcHVia2V5LmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw MDAwMC4uOTMwNmVjZWRkMQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2ZkdF9hZGRfcHVia2V5 LmMKQEAgLTAsMCArMSw5NyBAQAorI2luY2x1ZGUgPGltYWdlLmg+CisjaW5jbHVkZSAiZml0X2Nv bW1vbi5oIgorCitzdGF0aWMgY29uc3QgY2hhciAqY21kbmFtZTsKKworc3RhdGljIGNvbnN0IGNo YXIgKmFsZ29fbmFtZSA9ICJzaGExLHJzYTIwNDgiOyAvKiAtYSA8YWxnbz4gKi8KK3N0YXRpYyBj b25zdCBjaGFyICprZXlkaXIgPSAiLiI7IC8qIC1rIDxrZXlkaXI+ICovCitzdGF0aWMgY29uc3Qg Y2hhciAqa2V5bmFtZSA9ICJrZXkiOyAvKiAtbiA8a2V5bmFtZT4gKi8KK3N0YXRpYyBjb25zdCBj aGFyICpyZXF1aXJlX2tleXM7IC8qIC1yIDxjb25mfGltYWdlPiAqLworc3RhdGljIGNvbnN0IGNo YXIgKmtleWRlc3Q7IC8qIGFyZ3Zbbl0gKi8KKworc3RhdGljIHZvaWQgdXNhZ2UoY29uc3QgY2hh ciAqbXNnKQoreworCWZwcmludGYoc3RkZXJyLCAiRXJyb3I6ICVzXG4iLCBtc2cpOworCWZwcmlu dGYoc3RkZXJyLCAiVXNhZ2U6ICVzIFstYSA8YWxnbz5dIFstayA8a2V5ZGlyPl0gWy1uIDxrZXlu YW1lPl0gWy1yIDxjb25mfGltYWdlPl0gPGZkdCBibG9iPlxuIiwKKwkJY21kbmFtZSk7CisJZXhp dChFWElUX0ZBSUxVUkUpOworfQorCitzdGF0aWMgdm9pZCBwcm9jZXNzX2FyZ3MoaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKK3sKKwlpbnQgb3B0OworCisJd2hpbGUoKG9wdCA9IGdldG9wdChhcmdj LCBhcmd2LCAiYTprOm46cjoiKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChvcHQpIHsKKwkJY2FzZSAn ayc6CisJCQlrZXlkaXIgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnYSc6CisJCQlhbGdv X25hbWUgPSBvcHRhcmc7CisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQlrZXluYW1lID0gb3B0 YXJnOworCQkJYnJlYWs7CisJCWNhc2UgJ3InOgorCQkJcmVxdWlyZV9rZXlzID0gb3B0YXJnOwor CQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl1c2FnZSgiSW52YWxpZCBvcHRpb24iKTsKKwkJfQor CX0KKwkvKiBUaGUgbGFzdCBwYXJhbWV0ZXIgaXMgZXhwZWN0ZWQgdG8gYmUgdGhlIC5kdGIgdG8g YWRkIHRoZSBwdWJsaWMga2V5IHRvICovCisJaWYgKG9wdGluZCA8IGFyZ2MpCisJCWtleWRlc3Qg PSBhcmd2W29wdGluZF07CisKKwlpZiAoIWtleWRlc3QpCisJCXVzYWdlKCJNaXNzaW5nIGR0YiBm aWxlIHRvIHVwZGF0ZSIpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQor eworCXN0cnVjdCBpbWFnZV9zaWduX2luZm8gaW5mbzsKKwlpbnQgZGVzdGZkLCByZXQ7CisJdm9p ZCAqZGVzdF9ibG9iID0gTlVMTDsKKwlzdHJ1Y3Qgc3RhdCBkZXN0X3NidWY7CisJc2l6ZV90IHNp emVfaW5jID0gMDsKKworCWNtZG5hbWUgPSBhcmd2WzBdOworCisJcHJvY2Vzc19hcmdzKGFyZ2Ms IGFyZ3YpOworCisJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoaW5mbykpOworCisJaW5mby5rZXlk aXIgPSBrZXlkaXI7CisJaW5mby5rZXluYW1lID0ga2V5bmFtZTsKKwlpbmZvLm5hbWUgPSBhbGdv X25hbWU7CisJaW5mby5yZXF1aXJlX2tleXMgPSByZXF1aXJlX2tleXM7CisJaW5mby5jcnlwdG8g PSBpbWFnZV9nZXRfY3J5cHRvX2FsZ28oYWxnb19uYW1lKTsKKwlpZiAoIWluZm8uY3J5cHRvKSB7 CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbnN1cHBvcnRlZCBzaWduYXR1cmUg YWxnb3JpdGhtICclcydcbiIsIGFsZ29fbmFtZSk7CisJCWV4aXQoRVhJVF9GQUlMVVJFKTsKKwl9 CisKKwl3aGlsZSAoMSkgeworCQlkZXN0ZmQgPSBtbWFwX2ZkdChjbWRuYW1lLCBrZXlkZXN0LCBz aXplX2luYywgJmRlc3RfYmxvYiwgJmRlc3Rfc2J1ZiwgZmFsc2UsIGZhbHNlKTsKKwkJaWYgKGRl c3RmZCA8IDApCisJCQlleGl0KEVYSVRfRkFJTFVSRSk7CisKKwkJcmV0ID0gaW5mby5jcnlwdG8t PmFkZF92ZXJpZnlfZGF0YSgmaW5mbywgZGVzdF9ibG9iKTsKKworCQltdW5tYXAoZGVzdF9ibG9i LCBkZXN0X3NidWYuc3Rfc2l6ZSk7CisJCWNsb3NlKGRlc3RmZCk7CisJCWlmICghcmV0IHx8IHJl dCAhPSAtRU5PU1BDKQorCQkJYnJlYWs7CisJCWZwcmludGYoc3RkZXJyLCAiLmR0YiB0b28gc21h bGwsIGluY3JlYXNpbmcgc2l6ZSBieSAxMDI0IGJ5dGVzXG4iKTsKKwkJc2l6ZV9pbmMgPSAxMDI0 OworCX0KKworCWlmIChyZXQpIHsKKwkJZnByaW50ZihzdGRlcnIsICIlczogQ2Fubm90IGFkZCBw dWJsaWMga2V5IHRvIEZJVCBibG9iOiAlc1xuIiwKKwkJCWNtZG5hbWUsIHN0cmVycm9yKC1yZXQp KTsKKwkJZXhpdChFWElUX0ZBSUxVUkUpOworCX0KKworCWV4aXQoRVhJVF9TVUNDRVNTKTsKK30K KwotLSAKMi4yNS4xCgo= --_004_2184f1e6dd6247e48133c76205feeabekasperskycom_--