Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
A tool to generate consistent zip files.
This tool was specifically built to prevent zip file changes from triggering
AWS Lambda function updates when running terraform apply
. Before this change,
every re-build of the zipfile would result in a different zip even if its
contents had not changed.
This tool currently only runs on python3.7 in order to use deflate compression level 9.
pip install deterministic_zip
Run the following, and verify that your zip produces the same sha256 hash:
echo "The first file." > first
echo "The second file." > second
deterministic_zip archive.zip first second
sha256sum archive.zip
If you have \n
line endings the result should be:
3afbd7c9b42bd5539ffd5c40499d3d1825157ed83791dce8d7ff2694189d28d6
If you have \r\n
line endings (Windows) the result should be:
40e16270d62f15e7a192e88b1b301fa6540c86e7e897036b56be513341d376ed
Great question! There are three tricks to building a deterministic zip.
Files must be added to the zip in the same order. Directory iteration order
may vary across machines, resulting in different zips. deterministic_zip
sorts all files before adding them to the zip archive.
Files in the zip must have consistent timestamps. If I share a directory to
another machine, the timestamps of individual files may differ, depsite
identical content. To achieve timestamp consistency, deterministic_zip
sets the timestamp of all added files to 2019-01-01 00:00:00
. Please note
that this does not affect the timestamp of the source files.
Files in the zip must have consistent permissions. File permissions look
like -rw-r--r--
for a file that is readable by all users, and only
writable by the user who owns the file. Similarly executable files might
have permissions that look like: -rwxr-xr-x
or
-rwx------
. deterministic_zip
sets the permission of all files to either
-r--r--r--
, or -r-xr-xr-x
. The latter is only used of the user running
deterministic_zip
has execute access on the file.
FAQs
A program to create deterministic zip files.
We found that deterministic-zip demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.