Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
The software in this package is a Python module for generating objects that compute the Cyclic Redundancy Check (CRC). There is no attempt in this package to explain how the CRC works. There are a number of resources on the web that give a good explanation of the algorithms. Just do a Google search for "crc calculation" and browse till you find what you need. Another resource can be found in chapter 20 of the book "Numerical Recipes in C" by Press et. al.
This package allows the use of any 8, 16, 24, 32, or 64 bit CRC. You can
generate a Python function for the selected polynomial or an instance of the
Crc class which provides the same interface as the md5
and sha
modules
from the Python standard library. A Crc
class instance can also generate
C/C++ source code that can be used in another application.
Documentation is available from the doc strings. It is up to you to decide
what polynomials to use in your application. If someone has not specified the
polynomials to use, you will need to do some research to find one suitable for
your application. Examples are available in the unit test script test.py
.
You may also use the predefined
module to select one of the standard
polynomials.
If you need to generate code for another language, I suggest you subclass the
Crc
class and replace the method generateCode
. Use generateCode
as
a model for the new version.
Python Version ^^^^^^^^^^^^^^
The package has separate code to support the 2.x and 3.x Python series.
For the 2.x versions of Python, these versions have been tested:
It may still work on earlier versions of Python 2.x, but these have not been recently tested.
For the 3.x versions of Python, these versions have been tested:
Building C extension ^^^^^^^^^^^^^^^^^^^^
To build the C extension, the appropriate compiler tools for your platform must be installed. Refer to the Python documentation for building C extensions for details.
The crcmod package is installed using distutils
.
Run the following command::
python setup.py install
If the extension module builds, it will be installed. Otherwise, the installation will include the pure Python version. This will run significantly slower than the extension module but will allow the package to be used.
For Windows users who want to use the mingw32 compiler, run this command::
python setup.py build --compiler=mingw32 install
For Python 3.x, the install process is the same but you need to use the 3.x interpreter.
The crcmod
package has a module crcmod.test
, which contains unit
tests for both crcmod
and crcmod.predefined
.
When you first install crcmod
, you should run the unit tests to make sure
everything is installed properly. The test script performs a number of tests
including a comparison to the direct method which uses a class implementing
polynomials over the integers mod 2.
To run the unit tests on Python >=2.5::
python -m crcmod.test
Alternatively, in the test
directory run::
python test_crcmod.py
The crcmod package is capable of generating C functions that can be compiled
with a C or C++ compiler. In the test directory, there is an examples.py
script that demonstrates how to use the code generator. The result of this is
written out to the file examples.c
. The generated code was checked to make
sure it compiles with the GCC compiler.
The crcmod
package is released under the MIT license. See the LICENSE
file for details.
Craig McQueen
FAQs
CRC Generator
We found that crcmod demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.