From nobody Thu Apr 25 15:09:17 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+93738+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+93738+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1663140704; cv=none; d=zohomail.com; s=zohoarc; b=eR0ZNn2KAx8qrMk3Die4B8u1gZzlreyUO5LT7ZcBoDzOaQPBacaAzvCUGVcw/2rTUCLac3PwZ54Ijx6xZaBNl9RuWg6+MtNOzO3b8QKMqI8EY2mQ9+s21RbseXUGPzJsnuztj3ikOdazCjXhdk//ieaEEGHJjwRoXFZLsMFCbJQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1663140704; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=QHezrL/IYSQ4rPgdafHrcK5hRFuKdJRjqY46NLkpBxs=; b=oGZmmOK/eg0taNNzi/8cRhibK4pisCxpqGSQCEZy8FrRV2UOBJaJD8xtHBJX486p1JVwkOMZtzCSjsxgtkfkxyeRaO3OJH6WMbjsJwNbUoycZgWPlfL7xWD2Y2yzbFCu/0qB9EAyRWbKDaic4mvC1gUXXce8+6lkLREl7Wq+UHE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+93738+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1663140704231447.0811661115374; Wed, 14 Sep 2022 00:31:44 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 5qxeYY1788612xak6lTU5vXx; Wed, 14 Sep 2022 00:31:43 -0700 X-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.3507.1663140657600288201 for ; Wed, 14 Sep 2022 00:30:57 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10469"; a="295946997" X-IronPort-AV: E=Sophos;i="5.93,313,1654585200"; d="scan'208";a="295946997" X-Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2022 00:30:57 -0700 X-IronPort-AV: E=Sophos;i="5.93,313,1654585200"; d="scan'208";a="678934528" X-Received: from liwenzha-mobl.ccr.corp.intel.com ([10.238.1.245]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2022 00:30:55 -0700 From: "liwenzha" To: devel@edk2.groups.io Cc: Bob Feng , Liming Gao , Yuwei Chen Subject: [edk2-devel] [Patch V1] [Patch V1][edk2-basetools]BaseTools:Convert the C tool of Date: Wed, 14 Sep 2022 15:30:49 +0800 Message-Id: <20220914073049.2148-1-wenzhao1.li@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,wenzhao1.li@intel.com X-Gm-Message-State: T76fibdKIrcs9c1hnoW4aKMMx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1663140703; bh=uyFU1m7F1kZT1OQAyNFKmOSuRZuQfP8Pe/tPaEhoI1w=; h=Cc:Date:From:Reply-To:Subject:To; b=UQo62EKDRW3viBRF7eyM4rYHi2fkgpSqsQPZ+7YWThyQCoXXH1yv1jwjlpyDzKpn9Fh zLhfg2pZv7BwcgI5mFt7gOcBym7cEy6WsfEj7X7hWZny9p7eAb5ni8uIApio2s92+yLj2 014OCAM2hDDwGlCNWUUqjnqp2r81bQz+8Pw= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1663140705370100003 Content-Type: text/plain; charset="utf-8" description This patch converts the C tool of calculating the crc32 value of file into a python file. To realize this,after reading the data into the file in binary form from an original file,a lookup table is listed to do XOR and shifting calculation for each bit in the file.The 32-bit result is placed at the beginning of the file as the header.The verification part will recalculate the crc32 value of the data behind the header again.When header is equal to the recalculating result,which means the crc32 value of this fi= le is correct and the file is valid.In the unit testing part,some files which have been preprocessed by C tool are placed in a folder.The file after proc= essing by python tool will be compared with these files to check whether the resul= t is correct. Cc: Bob Feng Cc: Liming Gao Signed-off-by: Yuwei Chen --- edk2basetools/GenCrc32/GenCrc32.py | 262 ++-------------------------------= ---------------------------------------------------------------------------= ---------------------------------------------------------------------------= ---------------------------------------------------------------------------= ---- 1 file changed, 2 insertions(+), 260 deletions(-) diff --git a/edk2basetools/GenCrc32/GenCrc32.py b/edk2basetools/GenCrc32/Ge= nCrc32.py index e27e4b0..982d2e7 100644 --- a/edk2basetools/GenCrc32/GenCrc32.py +++ b/edk2basetools/GenCrc32/GenCrc32.py @@ -14,263 +14,8 @@ import argparse import os import sys +from binascii import crc32 =20 -mCrcTable=3D[0x00000000, - 0x77073096, - 0xEE0E612C, - 0x990951BA, - 0x076DC419, - 0x706AF48F, - 0xE963A535, - 0x9E6495A3, - 0x0EDB8832, - 0x79DCB8A4, - 0xE0D5E91E, - 0x97D2D988, - 0x09B64C2B, - 0x7EB17CBD, - 0xE7B82D07, - 0x90BF1D91, - 0x1DB71064, - 0x6AB020F2, - 0xF3B97148, - 0x84BE41DE, - 0x1ADAD47D, - 0x6DDDE4EB, - 0xF4D4B551, - 0x83D385C7, - 0x136C9856, - 0x646BA8C0, - 0xFD62F97A, - 0x8A65C9EC, - 0x14015C4F, - 0x63066CD9, - 0xFA0F3D63, - 0x8D080DF5, - 0x3B6E20C8, - 0x4C69105E, - 0xD56041E4, - 0xA2677172, - 0x3C03E4D1, - 0x4B04D447, - 0xD20D85FD, - 0xA50AB56B, - 0x35B5A8FA, - 0x42B2986C, - 0xDBBBC9D6, - 0xACBCF940, - 0x32D86CE3, - 0x45DF5C75, - 0xDCD60DCF, - 0xABD13D59, - 0x26D930AC, - 0x51DE003A, - 0xC8D75180, - 0xBFD06116, - 0x21B4F4B5, - 0x56B3C423, - 0xCFBA9599, - 0xB8BDA50F, - 0x2802B89E, - 0x5F058808, - 0xC60CD9B2, - 0xB10BE924, - 0x2F6F7C87, - 0x58684C11, - 0xC1611DAB, - 0xB6662D3D, - 0x76DC4190, - 0x01DB7106, - 0x98D220BC, - 0xEFD5102A, - 0x71B18589, - 0x06B6B51F, - 0x9FBFE4A5, - 0xE8B8D433, - 0x7807C9A2, - 0x0F00F934, - 0x9609A88E, - 0xE10E9818, - 0x7F6A0DBB, - 0x086D3D2D, - 0x91646C97, - 0xE6635C01, - 0x6B6B51F4, - 0x1C6C6162, - 0x856530D8, - 0xF262004E, - 0x6C0695ED, - 0x1B01A57B, - 0x8208F4C1, - 0xF50FC457, - 0x65B0D9C6, - 0x12B7E950, - 0x8BBEB8EA, - 0xFCB9887C, - 0x62DD1DDF, - 0x15DA2D49, - 0x8CD37CF3, - 0xFBD44C65, - 0x4DB26158, - 0x3AB551CE, - 0xA3BC0074, - 0xD4BB30E2, - 0x4ADFA541, - 0x3DD895D7, - 0xA4D1C46D, - 0xD3D6F4FB, - 0x4369E96A, - 0x346ED9FC, - 0xAD678846, - 0xDA60B8D0, - 0x44042D73, - 0x33031DE5, - 0xAA0A4C5F, - 0xDD0D7CC9, - 0x5005713C, - 0x270241AA, - 0xBE0B1010, - 0xC90C2086, - 0x5768B525, - 0x206F85B3, - 0xB966D409, - 0xCE61E49F, - 0x5EDEF90E, - 0x29D9C998, - 0xB0D09822, - 0xC7D7A8B4, - 0x59B33D17, - 0x2EB40D81, - 0xB7BD5C3B, - 0xC0BA6CAD, - 0xEDB88320, - 0x9ABFB3B6, - 0x03B6E20C, - 0x74B1D29A, - 0xEAD54739, - 0x9DD277AF, - 0x04DB2615, - 0x73DC1683, - 0xE3630B12, - 0x94643B84, - 0x0D6D6A3E, - 0x7A6A5AA8, - 0xE40ECF0B, - 0x9309FF9D, - 0x0A00AE27, - 0x7D079EB1, - 0xF00F9344, - 0x8708A3D2, - 0x1E01F268, - 0x6906C2FE, - 0xF762575D, - 0x806567CB, - 0x196C3671, - 0x6E6B06E7, - 0xFED41B76, - 0x89D32BE0, - 0x10DA7A5A, - 0x67DD4ACC, - 0xF9B9DF6F, - 0x8EBEEFF9, - 0x17B7BE43, - 0x60B08ED5, - 0xD6D6A3E8, - 0xA1D1937E, - 0x38D8C2C4, - 0x4FDFF252, - 0xD1BB67F1, - 0xA6BC5767, - 0x3FB506DD, - 0x48B2364B, - 0xD80D2BDA, - 0xAF0A1B4C, - 0x36034AF6, - 0x41047A60, - 0xDF60EFC3, - 0xA867DF55, - 0x316E8EEF, - 0x4669BE79, - 0xCB61B38C, - 0xBC66831A, - 0x256FD2A0, - 0x5268E236, - 0xCC0C7795, - 0xBB0B4703, - 0x220216B9, - 0x5505262F, - 0xC5BA3BBE, - 0xB2BD0B28, - 0x2BB45A92, - 0x5CB36A04, - 0xC2D7FFA7, - 0xB5D0CF31, - 0x2CD99E8B, - 0x5BDEAE1D, - 0x9B64C2B0, - 0xEC63F226, - 0x756AA39C, - 0x026D930A, - 0x9C0906A9, - 0xEB0E363F, - 0x72076785, - 0x05005713, - 0x95BF4A82, - 0xE2B87A14, - 0x7BB12BAE, - 0x0CB61B38, - 0x92D28E9B, - 0xE5D5BE0D, - 0x7CDCEFB7, - 0x0BDBDF21, - 0x86D3D2D4, - 0xF1D4E242, - 0x68DDB3F8, - 0x1FDA836E, - 0x81BE16CD, - 0xF6B9265B, - 0x6FB077E1, - 0x18B74777, - 0x88085AE6, - 0xFF0F6A70, - 0x66063BCA, - 0x11010B5C, - 0x8F659EFF, - 0xF862AE69, - 0x616BFFD3, - 0x166CCF45, - 0xA00AE278, - 0xD70DD2EE, - 0x4E048354, - 0x3903B3C2, - 0xA7672661, - 0xD06016F7, - 0x4969474D, - 0x3E6E77DB, - 0xAED16A4A, - 0xD9D65ADC, - 0x40DF0B66, - 0x37D83BF0, - 0xA9BCAE53, - 0xDEBB9EC5, - 0x47B2CF7F, - 0x30B5FFE9, - 0xBDBDF21C, - 0xCABAC28A, - 0x53B39330, - 0x24B4A3A6, - 0xBAD03605, - 0xCDD70693, - 0x54DE5729, - 0x23D967BF, - 0xB3667A2E, - 0xC4614AB8, - 0x5D681B02, - 0x2A6F2B94, - 0xB40BBE37, - 0xC30C8EA1, - 0x5A05DF1B, - 0x2D02EF8D] =20 =20 parser=3Dargparse.ArgumentParser(description=3D''' @@ -307,10 +52,7 @@ def CalculateCrc32(inputfile:str, outputfile:str, fileb= ytes=3Db''): with open(inputfile,'rb') as fin: =20 temp=3Dfin.read() =20 - DataSize =3D len(temp) - for Index in range(DataSize): =20 - Crc=3D(Crc>>8)^mCrcTable[(Crc&0xff)^temp[Index]] - CrcOut=3DCrc^0xffffffff + CrcOut =3D crc32(temp) CrcOut=3DCrcOut.to_bytes(4,byteorder=3D"little") with open(outputfile,'wb') as fout: =20 if status=3D=3D0: --=20 2.37.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#93738): https://edk2.groups.io/g/devel/message/93738 Mute This Topic: https://groups.io/mt/93673304/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-