Skip to main content

PB Logo

Coverity Build Status pre-commit.ci status codecov Documentation Status Donate

Introduction

Punchboot is a secure and fast bootloader for embedded systems. It is designed to:

  • Boot as fast as possible
  • Integrate with the SoC's secure boot functionality
  • Authenticate the next piece of software in the boot chain
  • Support A/B system partitions for atomic updates
  • Support automatic rollbacks
  • Minimize software download time in production
  • Be useful for day-to-day development

Punchboot is designed for embedded systems and therefore it has a minimalistic apporach. There is no run-time configuration, everything is configured in the board files.

Punchboot could be useful if you care about the following:

  • Boot speed
  • Secure boot
  • Downloading software quickly in production

Design

Punchboot is written in C and some assembler. Currently armv7a and armv8 is supported.

The directory layout is as follows:

Folder Description  
/doc Documentation
/pki Crypto keys for testing
/ Bootloader source
/src/board Board support
/src/arch Architecture support
/src/plat Platform support
/src/drivers Drivers
/tools Tools

Supported architectures:

Architecture Supported
armv7a Yes
armv8a Yes
armv7m Yes

Supported platforms:

Platform Supported USB EMMC HW Crypto Secure Boot Fusebox
NXP imx6ul Yes Yes Yes Yes Yes Yes
NXP imx8m Yes Yes Yes Yes No Yes
NXP imx8x Yes Yes Yes Yes Yes Yes

Supported boards:

Board Supported More info
Jiffy Fully supported https://github.com/jonasblixt/jiffy
Bebop Fully supported https://github.com/jonasblixt/bebop
Technexion PICO-IMX8M Partial support https://www.technexion.com/products/system-on-modules/pico/pico-compute-modules/detail/PICO-IMX8M
NXP IMX8QXP MEK Fully supported https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-8-processors/i.mx-8-multisensory-enablement-kit:i.MX8-MEK

Hardware accelerated signature verification

Platform RSA4096 EC secp256r1 EC secp384r1 EC secp521
NXP imx6ul Yes Yes No No
NXP imx8m Yes Yes No No
nxp imx8x yes yes yes yes
nxp imx RT no no no no

Hardware accelerated hash algorithms

Platform MD5 SHA256 SHA384 SHA512
NXP imx6ul Yes Yes No No
NXP imx8m Yes Yes No No
NXP imx8x Yes Yes Yes Yes
NXP imx RT No No No No

Secure Boot

Typical and simplified secure boot flow

  • ROM loads a set of public keys, calculates the checksum of the keys and compares the result to a fused checksum
  • ROM loads punchboot, calculates checksum and verifies signature using key's in step one
  • Run punchboot
  • Punchboot loads a PBI bundle, calculates the checksum and verifies the signature using built in keys
  • Run next step in boot chain

Most SoC:s have a boot rom that includes meachanisms for calculating a checksum of the bootloader and cryptographically verifying a signature using a public key fused to the device.

Normally fuses are a limited resource and therefor a common way is to calculate a sha256 checksum of the public key(s) and then store this checksum in fuses, this way many different public keys can be stored in a flash memory and every time the device boots it will compute a sha256 checksum and compare it to the fused checksum.

Punchboot is designed to be a part of a secure boot chain. This means that the bootloader is cryptographically signed, the ROM code of the SoC must support a mechanism to validate this signature, otherwise there is no root of trust.

When punchboot has been verified it, in turn, will load and verify the next software component in the boot chain. The bootloader only supports signed binaries.

Testing and integration tests

Punchboot uses QEMU for all module and integration tests. The 'test' platform and board target relies on virtio serial ports and block devices. The punchboot cli can be built with a domain socket transport instead of USB for communicating with an QEMU environment.

The test platform code includes gcov code that calls the QEMU semihosting API for storing test coverage data on the host.

Building and running tests:

$ cp configs/test_defconfig .config
$ make
$ make check

Device identity

Most modern SoC's provide some kind of unique identity, that is guaranteed to be unique for that particular type of SoC / Vendor etc but can not be guarateed to be globally unique.

Punchboot provides a UUID3 device identity based on a combination of the unique data from the SoC and an allocated, random, namspace UUID per platform.

When booting a linux system this information is relayed to linux through in-line patching of the device-tree. The device identity can be found in '/proc/device-tree/chosen/device-uuid'

Command mode

Command mode is entered when the system can't boot or if the bootloader is forced by a configurable, external event to do so.

In the command mode it is possible to update the bootloader, write data to partitions and install default settings. From v0.3 and forward an 'authentication cookie' must be used to interact with the bootloader to prevent malicious activity. The only command that can be executed without authentication is listing the device information (including the device UUID)

The authentication cookie consists of the device UUID encrypted with one of the active key pair's private key.

punchboot tool

The punchboot CLI is used for interacting with the command mode. A summary of the features available:

  • Update the bootloader it self
  • Manually start system A or B
  • Activate boot partitions
  • Load image to ram and execute it
  • Display basic device info
  • Configure fuses and GPT parition tables
  • Call board specific functions

The tool is written in Python and some parts in C to allow bindings for other languages. The tool is built on top of a library to make it possible to integrate with other tooling and environments.

The tool is distributed through PyPi. Binary wheels are available for Windows, Linux and macos (x86_64 and arm64).

Install using pypi:

$ pip install punchboot

Image format

Punchboot uses the bitpacker file format (https://github.com/jonasblixt/bpak)

Authentication token

Punchboot enforces authentication when the SLC (Security Life Cycle) is locked. To interact with Punchboot the session must be authenticated by using a password or a signed token.

The authentication token is generated by hashing the device UUID and signing it with one of the active key pairs.

Example:

$ punchboot dev show
Bootloader version: v0.6.1-40-ga47f-dirty
Device UUID:        0b177094-6b62-3572-902e-c1de339ecb01
Board name:         pico8ml

Creating the authentication token using the 'createtoken.sh' script located in the tools folder. In this example the private key is stored on a yubikey 5 HSM.

$ ./createtoken.sh 0B177094-6B62-3572-902E-C1DE339ECB01 pkcs11 -sha256 "pkcs11:id=%02;type=private"
engine "pkcs11" set.
Enter PKCS#11 token PIN for PIV Card Holder pin (PIV_II):
Enter PKCS#11 key PIN for SIGN key:

Authenticating the session:

$ punchboot auth token ./0B177094-6B62-3572-902E-C1DE339ECB01.token <name of a key>
Signature format: secp256r1
Hash: sha256
Authenticating using key index 0 and './0B177094-6B62-3572-902E-C1DE339ECB01.token'
Read 103 bytes
Authentication successful

Now the command mode is fully unlocked. The token is of course only valid for the individual unit with that perticular UUID.

Metrics

Measurements taken on IMX6UL, running at 528 MHz loading a 400kByte binary.

Using hardware accelerators for SHA and RSA signatures:

Parameter Value Unit
Power On Reset 28 ms
Bootloader init 7 ms
Blockdev read 13 ms
SHA256 Hash 4 ms
RSA 4096 Signaure 5 ms
Total 57 ms

Using libtomcrypt for SHA and RSA:

Parameter Value Unit
Power On Reset 28 ms
Bootloader init 7 ms
Blockdev read 13 ms
SHA256 Hash 431 ms
RSA 4096 Signaure 567 ms
Total 1046 ms

Measurements taken on IMX8QXP, loading a 14296kByte binary.

Using hardware accelerators for SHA and RSA signatures:

Parameter Value Unit
Power On Reset 175 ms
Bootloader init 6.358 ms
Blockdev read / hash 107 ms
RSA 4096 Signature 0.676 ms
Total 288 ms

The POR time is off due to some unidentified problem with the SCU firmware. A guess would be that this metric should be in the 20ms -range.

Contributing

  1. Fork the repository
  2. Implement new feature or bugfix on a branch
  3. Implement test case(s) to ensure that future changes do not break legacy
  4. Run checks: cp configs/test_defconfig .config && make check
  5. Create pull request

Metadata

Release files for punchboot 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for punchboot 2.3.0
File Size Uploaded
punchboot-2.3.0.tar.gz 36.0 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for punchboot 2.3.0
File
punchboot-2.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
punchboot-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
punchboot-2.3.0-cp313-cp313-macosx_12_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 12.0+ x86-64 Details
punchboot-2.3.0-cp313-cp313-macosx_12_0_arm64.whl CPython 3.13 CPython 3.13 macOS 12.0+ ARM64 Details
punchboot-2.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
punchboot-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
punchboot-2.3.0-cp312-cp312-macosx_12_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 12.0+ x86-64 Details
punchboot-2.3.0-cp312-cp312-macosx_12_0_arm64.whl CPython 3.12 CPython 3.12 macOS 12.0+ ARM64 Details
punchboot-2.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
punchboot-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
punchboot-2.3.0-cp311-cp311-macosx_12_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 12.0+ x86-64 Details
punchboot-2.3.0-cp311-cp311-macosx_12_0_arm64.whl CPython 3.11 CPython 3.11 macOS 12.0+ ARM64 Details
punchboot-2.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
punchboot-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
punchboot-2.3.0-cp310-cp310-macosx_12_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 12.0+ x86-64 Details
punchboot-2.3.0-cp310-cp310-macosx_12_0_arm64.whl CPython 3.10 CPython 3.10 macOS 12.0+ ARM64 Details
punchboot-2.3.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
punchboot-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
punchboot-2.3.0-cp39-cp39-macosx_12_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 12.0+ x86-64 Details
punchboot-2.3.0-cp39-cp39-macosx_12_0_arm64.whl CPython 3.9 CPython 3.9 macOS 12.0+ ARM64 Details
punchboot-2.3.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
punchboot-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
punchboot-2.3.0-cp38-cp38-macosx_12_0_x86_64.whl CPython 3.8 CPython 3.8 macOS 12.0+ x86-64 Details
punchboot-2.3.0-cp38-cp38-macosx_12_0_arm64.whl CPython 3.8 CPython 3.8 macOS 12.0+ ARM64 Details

Total release size: 5.1 MB

Release files / punchboot-2.3.0.tar.gz

Download URL punchboot-2.3.0.tar.gz
Size 36.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f9d3bf3d2b6c3abbf5cf614bb51545aefacda32a39e6135181cbe6700421dece
BLAKE2b-256 checksum
How to use checksums
780c0a9e011137a3993abb6e79f44c543a6cd81d3af368cd09e708da193351f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp313-cp313-win_amd64.whl

Download URL punchboot-2.3.0-cp313-cp313-win_amd64.whl
Size 115.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
fa673904eeca21432404f09fe046f07bf7f03eaf9b9e2e81003d07db995c883e
BLAKE2b-256 checksum
How to use checksums
b2e5ce0c3abccb3de37fb9e4cc07513d64fdae6db7c828b14ced6f1bbf84a09d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL punchboot-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 540.2 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
16295d0cc8e0e6e4688ae1e32bfcf8de8c8ef675f73abf4fad50a9ba52750453
BLAKE2b-256 checksum
How to use checksums
95afdde6bd733da65126fc31bf02806413e46a7f9407794fd67af4c16074564a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp313-cp313-macosx_12_0_x86_64.whl

Download URL punchboot-2.3.0-cp313-cp313-macosx_12_0_x86_64.whl
Size 94.5 kB
Tags CPython 3.13 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
f63d8fa6e13c94fbba942a8ccbae0181845fc90f498fa22a12423f43b2c0c662
BLAKE2b-256 checksum
How to use checksums
65a22a35c7b3dd9fa87828fe5543013882d1c0bf5f937511e94aa40f4c58b77e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp313-cp313-macosx_12_0_arm64.whl

Download URL punchboot-2.3.0-cp313-cp313-macosx_12_0_arm64.whl
Size 92.5 kB
Tags CPython 3.13 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
66a88b73a1ae878074a674ccdf3d51783bfc2392132e54fa08fad9a8634aa8d6
BLAKE2b-256 checksum
How to use checksums
cd719ca106d318a606a5e66ac4335b03765e831ef022f38458399d4d41279eaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp312-cp312-win_amd64.whl

Download URL punchboot-2.3.0-cp312-cp312-win_amd64.whl
Size 115.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
c3d7426ddd1b01b831ad34ba99ffb870e9f99aca2cb3f8c3e278971616e0d785
BLAKE2b-256 checksum
How to use checksums
737482b7b55ad2338bde846e2f749ef03dc81a8b56e897268226970549fec305
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL punchboot-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 540.2 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dc07181f50e0fd202fa6a532200cf87a933c5dc19ed0113184759a601f0da605
BLAKE2b-256 checksum
How to use checksums
0266cbdff83d26ceeb4e167b4d2627ab5189bf6dfdf782e4fb84893b6b587c14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp312-cp312-macosx_12_0_x86_64.whl

Download URL punchboot-2.3.0-cp312-cp312-macosx_12_0_x86_64.whl
Size 95.0 kB
Tags CPython 3.12 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
0eb1e9bfc9b0136b781f40fdaa7dcd338eb5cac47101fdc06f68ef925ef98349
BLAKE2b-256 checksum
How to use checksums
b9939fc9338d7ba5ece003c64fbb5737d129b06973be2591b7e0c5d1331bae77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp312-cp312-macosx_12_0_arm64.whl

Download URL punchboot-2.3.0-cp312-cp312-macosx_12_0_arm64.whl
Size 92.5 kB
Tags CPython 3.12 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
72cb68c72f5b6881350d2335e1de8a67158ab68876ed5696cc312ca1be57cda5
BLAKE2b-256 checksum
How to use checksums
f4dc0fe298d3ab45f6bd15acc2dec9e91fcb9858fb8bfb57017434343ce499e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp311-cp311-win_amd64.whl

Download URL punchboot-2.3.0-cp311-cp311-win_amd64.whl
Size 115.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
29938d6a9a9a35b32fef02c0c8ea33268a03152f41fe25a3d64dfec7a6eb8fb8
BLAKE2b-256 checksum
How to use checksums
bcb66ad8c4071ffba2d1e934c2398691bafec7d7b81440845f3e7991809aa71d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL punchboot-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 541.8 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
67c0278d1bcb8c4e6e3bcf454b605057443423ac8b934ca6d0504d35ada3f7fe
BLAKE2b-256 checksum
How to use checksums
00f242207459577261badb545881f39f80e17cb62baed42ed41080e7138d7430
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp311-cp311-macosx_12_0_x86_64.whl

Download URL punchboot-2.3.0-cp311-cp311-macosx_12_0_x86_64.whl
Size 95.0 kB
Tags CPython 3.11 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
3511ad8fa7f51fe447c44463179e37f6c265565d4282a0ed003739bbcb82a0e4
BLAKE2b-256 checksum
How to use checksums
d61d12e1df1a776cf639a88c259ab1f9c5aed05f1712532d0d28afded9a68221
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp311-cp311-macosx_12_0_arm64.whl

Download URL punchboot-2.3.0-cp311-cp311-macosx_12_0_arm64.whl
Size 92.5 kB
Tags CPython 3.11 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
09a4222fc20bc7345a99e6521e065c784c8cca1e8fa810f717b111aab48459c1
BLAKE2b-256 checksum
How to use checksums
f9e81ea90fadd2c02b1d4aeb1191c2f3da1544083796a0106557cf29f41cbae9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp310-cp310-win_amd64.whl

Download URL punchboot-2.3.0-cp310-cp310-win_amd64.whl
Size 115.4 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e2212a120303d6a26093de4e25aa536efd3fe0b03204ca3d799d647058ec1999
BLAKE2b-256 checksum
How to use checksums
31e1ae8a2a2a9dfdb7c30afda91ae41583d5bda0f72eae507a0788bbcb25295b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL punchboot-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 541.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f0e1321f2b6992a1bd111860fc6225813d7f41d64a8cbe26e117de7bcf3f88b1
BLAKE2b-256 checksum
How to use checksums
4ebe97b417e2b21bd98e3e3737927b3e065c9b91991e7191503f4e29905e6e99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp310-cp310-macosx_12_0_x86_64.whl

Download URL punchboot-2.3.0-cp310-cp310-macosx_12_0_x86_64.whl
Size 95.0 kB
Tags CPython 3.10 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
4bfaaf59369fd6ac458b8cd9d06696e9173eb0a692abad0d4848695dec29928e
BLAKE2b-256 checksum
How to use checksums
faee1be48b6182b281ec3828026e571b4303235da3c0d397b96454488f8688b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp310-cp310-macosx_12_0_arm64.whl

Download URL punchboot-2.3.0-cp310-cp310-macosx_12_0_arm64.whl
Size 92.5 kB
Tags CPython 3.10 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
32a6e576ecc2bb8adfcbe706a430f9030ef43ebe984c811d105999a1779d322c
BLAKE2b-256 checksum
How to use checksums
fe0fdaea9358f9b9c2b04340ccaba20a59e8bf887d51997f95c22f5cb0ed4155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp39-cp39-win_amd64.whl

Download URL punchboot-2.3.0-cp39-cp39-win_amd64.whl
Size 116.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
082effacac9c404fe54f610e5dfd4b12e18470fc35aea7f5a3c102c155b9c85e
BLAKE2b-256 checksum
How to use checksums
fe092f5186a95666428a5d8d9bbbc54f74b9173fa95855f5d561d7f7663af026
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL punchboot-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 541.1 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
68f909d84e149b3e210de1eee2ce9a9cb28103624921657d446eb2d8c2e0440e
BLAKE2b-256 checksum
How to use checksums
f493d9826f2cd11903a2f9d1ad46220c79d57d12d09a01837a1c3c1ae6f08d74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp39-cp39-macosx_12_0_x86_64.whl

Download URL punchboot-2.3.0-cp39-cp39-macosx_12_0_x86_64.whl
Size 95.0 kB
Tags CPython 3.9 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
f3b28506469c24a902b32592d00b9e1f7e40179aaf6db792dce847c1090293f7
BLAKE2b-256 checksum
How to use checksums
a1505c6b3bd4003be84bc18b428aca32a005a86649f43a6649303804145cde96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp39-cp39-macosx_12_0_arm64.whl

Download URL punchboot-2.3.0-cp39-cp39-macosx_12_0_arm64.whl
Size 92.5 kB
Tags CPython 3.9 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
c728369224b6feebda28d42258e8f86d9c471e582ac2399b1c7189ed83d04c66
BLAKE2b-256 checksum
How to use checksums
247530e568263e7c2e0b826b989a9a47c840716ac7035d33b702dff76cf7e712
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp38-cp38-win_amd64.whl

Download URL punchboot-2.3.0-cp38-cp38-win_amd64.whl
Size 116.1 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
cea7c9e57ab539a96a279d9d5d6bdcf60479465c844b6d894178c8153d3b14c4
BLAKE2b-256 checksum
How to use checksums
6699a9df00bf036b9203d00f106112b48f806ba1f23e5ae6cfcc967fd72f791a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL punchboot-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 541.9 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
52cdf5fe11122dcc552677567aa32971917934d437c539f71ca96ce7014049b1
BLAKE2b-256 checksum
How to use checksums
dfc1c2cea966449c879af16fe99603d44bd1c864c65e2197c456fda14bc27f28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp38-cp38-macosx_12_0_x86_64.whl

Download URL punchboot-2.3.0-cp38-cp38-macosx_12_0_x86_64.whl
Size 95.0 kB
Tags CPython 3.8 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
0314a2bee1f81830683a6036b008ac42b733ff4ec835630b171984bb75cb703d
BLAKE2b-256 checksum
How to use checksums
8362b0d59a2c2456602c6f3b57563f8037cb73a7d41c3eb4149e0ca8dae77033
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / punchboot-2.3.0-cp38-cp38-macosx_12_0_arm64.whl

Download URL punchboot-2.3.0-cp38-cp38-macosx_12_0_arm64.whl
Size 92.5 kB
Tags CPython 3.8 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
c0b2a10b83530eced4e130d25c1e1d29d6e88c9efbec203c5171cd30d71daeac
BLAKE2b-256 checksum
How to use checksums
52ecc48d37fbbf42bebfa4e9cfd943fced3b10d283dfb8626c9c5bf4299e82b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release history Release notifications | RSS feed

This release

2.3.0 This release

25 release files

2.1.0

21 release files

2.0.0

21 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page