broadkey
Research library for key encapsulation based on the Boneh-Gentry-Waters broadcast encryption scheme, built on top of the PBC_BKEM implementation.
For research and experimentation only. broadkey is a teaching and research implementation. It is unaudited, uses parameters below modern security targets, and implements only the basic (non-CCA) construction. Do not use it to protect real data. See security for the full list of known shortcomings.
installation
broadkey is a CPython extension that links against
PBC and GMP.
On Linux x86_64 and aarch64 (glibc 2.28+ or musl 1.2+),
pip install broadkey installs a binary wheel with both libraries
bundled and needs nothing else. Everywhere else it compiles from the
source distribution and needs, on the target machine:
- a C compiler,
pkg-config, and GMP development headers (libgmp-devon Debian/Ubuntu,gmpon Arch,gmpvia Homebrew); - PBC headers and shared library. Distributions rarely package it;
.ci/build-pbc.sh PREFIXbuilds a pinned upstream commit intoPREFIX(needsgit, autotools,autoconf-archive,flex,bison).
If PBC lives outside the default search paths, point the compiler and loader at it for both the install and every later import:
$ .ci/build-pbc.sh "$HOME/.local/pbc"
$ export CFLAGS="-I$HOME/.local/pbc/include" LDFLAGS="-L$HOME/.local/pbc/lib"
$ export LD_LIBRARY_PATH="$HOME/.local/pbc/lib"
$ pip install broadkey
A failing pip install with library 'pbc' not found, library 'gmp' not found, or gmp.h: No such file means those libraries or their development
headers are missing. ImportError: libpbc.so.1 means the library was found
at build time but not at run time.
Tested in CI on Linux x86_64 with CPython 3.9–3.15; wheels are built and tested for CPython 3.9–3.15 on manylinux and musllinux, x86_64 and aarch64. Other platforms are untested.
build and test
Requires meson, ninja, a C compiler, PBC and GMP. The message test
additionally needs the cryptography package and is skipped without it.
$ meson setup build
$ meson compile -C build
$ meson test -C build
meson test runs the C test suite (bkem), the Python module tests
(broadkey-python), the HKDF/AES-GCM message round-trip
(broadkey-messages), the CLI protocol tests (broadkey-cli), CLI/Python
key interchange (broadkey-interop), and initialization allocation-failure
regressions (broadkey-failures). The fault-injection extension is built
only for testing and is never installed. CI additionally runs the suite
under AddressSanitizer/UndefinedBehaviorSanitizer and gates on the linters
below.
Wheels are built with cibuildwheel
(configured in pyproject.toml; needs Docker):
$ cibuildwheel --platform linux --output-dir wheelhouse
linting
$ clang-format -i lib/*/*.c lib/*/*.h bin/*.c tests/*.c
$ clang-tidy -p build lib/*/*.c bin/*.c tests/*.c
$ ruff check tests .ci && ruff format tests .ci
$ shellcheck .ci/*.sh
$ meson format -i meson.build
Tidy needs a configured build dir first (for compile_commands.json).
CI pins every tool version in .ci/constraints.txt.
wire protocol
Both programs read stdin as a stream of whitespace-separated tokens: line
breaks carry no meaning on input, so a record may be split across lines or
several records may share one line. The diagrams below show the canonical
layout, which is also exactly what the programs write. Participant ids are
zero-based and must be distinct within a request. Every group element is a
hex string of exactly 2 * element_length_in_bytes characters (256 hex
characters for the bundled type-A parameters; lowercase on output, either
case accepted on input). Both programs flush stdout after each response. A
negative recipient count c terminates the session; EOF before a record
starts also ends it cleanly with exit status 0. Malformed input —
including EOF in the middle of a record, integers outside the declared
ranges, and any public-key, private-key or header element (every header
slot, not only the ones a client uses) that is not a non-identity member of
the order-r subgroup — produces a diagnostic on stderr and exit status 1.
server
Reads n (number of participants) from stdin, then request lines. Writes the
public key, one private key per participant, and one response per request.
<-- n
--> <g> <g_i[0]> ... <g_i[2B-2]> <v_i[0]> ... <v_i[A-1]>
--> 0 <d_0>
--> ...
--> n-1 <d_{n-1}>
<-- c id0 id1 ...
--> c id0 id1 ... <HDR[0]> ... <HDR[A]>
--> <K>
...
c is the number of recipients followed by their ids; c < 0 terminates.
client
Reads n, the public key line and its own private key line from stdin, then
request lines. Writes one key line per request.
<-- n
<-- <g> <g_i[0]> ... <g_i[2B-2]> <v_i[0]> ... <v_i[A-1]>
<-- index <i> <d_i>
<-- c id0 id1 ... <HDR[0]> ... <HDR[A]>
--> <K>
...
c < 0 or EOF terminates.
Python module
The broadkey module wraps the same protocol with in-memory strings. It
exports one type, State, with four positional-only methods.
State()— takes no arguments. One protocol role per instance: the first successfulserver_initorclient_initfixes the role; calling a key method on a fresh state raisesRuntimeError. Calling__init__()again resets the object to a fresh state.server_init(n) -> str— set up fornparticipants (1 <= n <= 1_000_000, int or decimal string). Returns the public-key line followed bynlines"i <d_i>", one private key per participant, each line terminated by\n(including the last). Each participant must receive only its own line over an authenticated, confidential channel; the public-key line may be public. Re-initialising a server replaces its state only after the result string is ready; a failedserver_init, including an allocation failure, leaves the previous server state intact.client_init(data) -> None— initialise from"n\nPK\nindex i d_i", i.e. the participant count, the public-key line, and that participant's private-key line prefixed withindex. Tokens are whitespace-separated (a trailing newline is fine) and hex is case-insensitive. A failedclient_initon an initialised client leaves the previous client state intact.server_key(recipients) -> str—recipientsis a list/tuple of distinct participant ids (or the wire-format string"c id0 id1 ..."). Returns"header\nK"(no trailing newline): the header line to broadcast and the encapsulated keyKas hex.client_key(header) -> str— decapsulate a header line; returnsKas hex. Every header element is validated, including blocks this client does not use.
An excluded participant gets no error and no secret. For an honest
header that excludes a client, the value that client computes is a fixed,
public group element: the same for every system and every broadcast, and
known to anyone. Anything derived from it is public too. Authorisation
must therefore come from the authenticated encryption layer (an excluded
party's AEAD decryption fails), never from client_key succeeding or from
comparing keys.
K is the hex encoding of a GT group element, not a symmetric key. Derive
working keys with a KDF (e.g. HKDF-SHA256 with a domain-separating info)
and encrypt with an AEAD; tests/test_messages.py is a complete example.
The KDF does not raise the ~80-bit security level of the parameters.
Errors: malformed input — wrong token counts, bad hex, ids out of range or
duplicated, embedded NUL characters, or group elements outside the order-r
subgroup — raises ValueError; wrong argument types or counts raise
TypeError; using a state in the wrong role or before initialisation, or a
failure of setup itself (including an unreadable /dev/urandom), raises
RuntimeError; allocation failure raises MemoryError.
Randomness comes from /dev/urandom only, never from PBC's deterministic
fallback. The source is opened once per process and read without userspace
buffering, so forks do not duplicate unread random bytes. If the initial
open fails, setup fails (RuntimeError; exit 1 for the CLIs). If a read
fails mid-operation, the process aborts rather than continue with
predictable keys.
import broadkey
server = broadkey.State()
pk, *keys = server.server_init(3).rstrip("\n").split("\n")
clients = []
for line in keys:
c = broadkey.State()
c.client_init("3\n%s\nindex %s" % (pk, line))
clients.append(c)
header, k = server.server_key([0, 2]).split("\n")
assert clients[0].client_key(header) == k
assert clients[2].client_key(header) == k
assert clients[1].client_key(header) != k # excluded
tests/benchmark.py times these calls (minimum of 3 runs, except the
single-run full-message figure) and needs the cryptography package.
compatibility
Pre-1.0: the Python API, wire format, and pairing parameters may change between minor versions without a migration path. Keys and headers produced by one version are not guaranteed to be readable by another.
security
broadkey is a research library. It has not been audited, and nothing in this repository is a claim of security for any deployment. Do not use it to protect real data without independent expert review of the construction, the parameters, and the code.
Known shortcomings:
- Weak parameters. The bundled type-A pairing parameters give roughly
80-bit security (160-bit group order
r), below the 128-bit modern target. They are hardcoded; there is no way to select stronger ones. - Basic construction only. broadkey implements the BGW section 3.2 construction, which the paper proves secure only against a static, non-adaptive adversary. The CCA-secure variant is NOT implemented. Nothing authenticates the header, the recipient list, or the sender.
- No secret for excluded users, no error either. An excluded participant computes a fixed public value instead of failing; only an authenticated encryption layer on top reveals exclusion.
- Centralised key generation.
server_initgenerates every participant's private key in one process and returns them together. Key distribution and protection are entirely the caller's problem. - No side-channel or memory hygiene guarantees. Nothing is constant-time or reviewed for side channels; private keys pass through ordinary Python strings and are not securely erased from memory.
- Ageing dependency. PBC is no longer actively developed. Moving to a maintained pairing library is a redesign, because BGW here relies on a symmetric (type-A) pairing.
- Limited testing. Tests are regression tests against this implementation, plus sanitizer runs in CI; there is no fuzzing and no independent check against the paper.
- Unstable formats. Keys, headers and the wire format carry no version or parameter identifier and may change before 1.0 (see compatibility).
- Resource limits are not a DoS defence. Up to 1,000,000 participants are accepted; large inputs cost significant CPU and memory.
license
broadkey is licensed under the GNU General Public License, version 3 or
(at your option) any later version (SPDX: GPL-3.0-or-later). The full
text is in LICENSE.
This covers the Python extension (lib/module/), the command-line programs
(bin/), the tests, and the local modifications to the BKEM core.
lib/pbc_bkem/ is derived from Oliver Günther's
PBC_BKEM (GPLv3-or-later);
see lib/pbc_bkem/README.md for attribution and the dated list of changes.
broadkey links against PBC (LGPL-3.0 or
Apache-2.0) and GMP (LGPL-3.0-or-later or
GPL-2.0-or-later). Source distributions build against the system copies.
Binary wheels bundle both as shared libraries (under broadkey.libs/),
which may be replaced; their license texts and exact versions ship in the
wheel's .dist-info/licenses/bundled/.
broadkey
Copyright (C) 2024, 2026 wykwit
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Metadata
Release files for broadkey 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| broadkey-0.0.3.tar.gz | 89.3 kB | With provenance | Details |
Built distributions (wheels)
Total release size: 13.2 MB
Release files / broadkey-0.0.3.tar.gz
| Download URL | broadkey-0.0.3.tar.gz |
|---|---|
| Size | 89.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dfdfa566e3fc30c9f6e1d47542e6afa18092991c76f81921ab3b37855544bb9b
|
|
BLAKE2b-256 checksum How to use checksums |
2a183b503749c1a85da6e07e271020048909c1abe943e60ef5691fed9babdc58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp315-cp315-musllinux_1_2_x86_64.whl
| Download URL | broadkey-0.0.3-cp315-cp315-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 439.2 kB |
| Tags | CPython 3.15 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
bc460850609c524d03e71a8a6ad29606e2aea3eb5ae1c17974d5a7d1a12140c7
|
|
BLAKE2b-256 checksum How to use checksums |
69ebb14137213d91ffb6de698171b1298c88a4746daeab22b571c576b7fa97a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp315-cp315-musllinux_1_2_aarch64.whl
| Download URL | broadkey-0.0.3-cp315-cp315-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 443.4 kB |
| Tags | CPython 3.15 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
18fa28686abab9b21cdbfb6d5f1f30b86836a4acf316e6ddf41efd67667c4d11
|
|
BLAKE2b-256 checksum How to use checksums |
58bee7a6b2ff6863c77451ce8b16e1641fae277cf99ee0b6d97e77181a0b73b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | broadkey-0.0.3-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 522.0 kB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
efc932e874a7dc2356b3ae00918d6244db5ab1df77fe1e257451ea4bc12134f1
|
|
BLAKE2b-256 checksum How to use checksums |
a7b3b923ecd7cebb6ec4d71b59495e697a1430052429dba498dc7099a7f76a94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | broadkey-0.0.3-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 466.8 kB |
| Tags | CPython 3.15 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
38f946819ad6be6a710dc604a4ccbbacb2a438282f9855f022e49d9669d1c53e
|
|
BLAKE2b-256 checksum How to use checksums |
9cb4b128a40f42ab392d08f51cbb12b93080a24249ecf1ed3d0a711db44f7a46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | broadkey-0.0.3-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 439.2 kB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
45f8b312e3bfcbb69f63cb427690677d9514b127989445dc2fe0831d022361a4
|
|
BLAKE2b-256 checksum How to use checksums |
b694d73551846d59f9aee853372401ae76b37a3a37d3d40a70e597b163b8d888
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp314-cp314-musllinux_1_2_aarch64.whl
| Download URL | broadkey-0.0.3-cp314-cp314-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 443.4 kB |
| Tags | CPython 3.14 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
6bde4082c6186e2f30a3f17bdadc6a39e1c5812c09b0fa2916eaf6229d3c2272
|
|
BLAKE2b-256 checksum How to use checksums |
70728c772d6d030e1af6513cf2c65fd4009d99bdf875fdf415b35e45ea920f2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | broadkey-0.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 522.0 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
e3055b3ecf2a2887d55520abd68720e270b3425563837eff77064fb8c2dfbc4f
|
|
BLAKE2b-256 checksum How to use checksums |
83e5983356a6f1780157fae5f9e9af4f5bc2c03be8b7023f8d56ec762b26eb81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | broadkey-0.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 466.8 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
23701d3b7e28d2db96f32b306b6c6e1f831137eec3426e317dbeea35924039d7
|
|
BLAKE2b-256 checksum How to use checksums |
4e81d947eac015ad1820d4891cf1032cf0deafc125fda45ecf840ce361e42b68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | broadkey-0.0.3-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 439.2 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
413c334770ab4a0e5bb912d169802002ac53053b82c6a8f55a5d1c17944ff118
|
|
BLAKE2b-256 checksum How to use checksums |
e65677fc7c554af3783b0f1ea217081e365c0c732b98f8f4fc53e8b55ae7832d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | broadkey-0.0.3-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 443.4 kB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
cc0f103ce8f5c04870319b4663c8665ee832c6a2589cbaf562cc5918bf40c2a2
|
|
BLAKE2b-256 checksum How to use checksums |
b62d5d7020f21a382e2cebae795de3e275ff343aad864d50113ae3115429f24b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | broadkey-0.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 522.0 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
35a2535f2ca80491f4bfdb7fd1004e918dcbfb3cfb74e7109f229b04b8599b94
|
|
BLAKE2b-256 checksum How to use checksums |
19e46d32c7781d74b54a1d175e17cc7a7a23d41fb5e1f696754a3cda8424e9fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | broadkey-0.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 466.8 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
350774833bf6ada39d350febfbc7a0bb4b06829530a34770d88ca22e58a9a17e
|
|
BLAKE2b-256 checksum How to use checksums |
b6fcfe86cca8f7d2be8885e933b87e32dbb255c335e6eddb89dba968e4ced9d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | broadkey-0.0.3-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 439.2 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
559502fe6df4191c4020873c95f8696c28f3c3496fff09313c9071756ff2b175
|
|
BLAKE2b-256 checksum How to use checksums |
cc108baf7ccc0c8c4b85c9f4c3149f8667b5e4af493909b1ff56076d9d7a2a70
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp312-cp312-musllinux_1_2_aarch64.whl
| Download URL | broadkey-0.0.3-cp312-cp312-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 443.4 kB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
376c16bcf905338194faec9e006eb7957f95dc67d118888df34e62e4add35276
|
|
BLAKE2b-256 checksum How to use checksums |
cfeb4019ba458713dbd16442f2829d9756bd744fd342a1e86f1dcdc9b1aa4bf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | broadkey-0.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 522.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
b1eba234d50527becceab1838d1e6da0cd09d754d91702bece695e8bb32cf98e
|
|
BLAKE2b-256 checksum How to use checksums |
b882b27aa6d2c467b4ae2c1ebf9dc370c6a3294ef6255c6e8cf131af71e6c4d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | broadkey-0.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 466.8 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
5acf8e28548325d16050f58c0d34819c080912ec1d62247fa4b690452bf1dfa7
|
|
BLAKE2b-256 checksum How to use checksums |
1bd1bc26befcea2ef331926118bbb563da2893a72fcb0f7dd4acbfcb045352c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | broadkey-0.0.3-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 439.2 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
7e5755fff2a95415ccdc1e8fc34d27dbd5f22f2bb4d91c61d46e050b12eedd16
|
|
BLAKE2b-256 checksum How to use checksums |
65889127d07e813c1b233ac6e4bce7c323c3677c1d87ab5f2064806303e52af8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | broadkey-0.0.3-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 443.4 kB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
af3f8af8b5d342a61d539515c3029ea2d3efbf2f5fda26c60e5bccb00f4a9d9c
|
|
BLAKE2b-256 checksum How to use checksums |
84acf70dd0eddaaa43f86988c1fb24e80af20978790e617ff3447a2fd3e9a58d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | broadkey-0.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 522.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
748d2521966a833c8c428e0f617a7e42ad0be9b45f6d5d0d28af557b53713a00
|
|
BLAKE2b-256 checksum How to use checksums |
939f2b026fbe431a99d9b95d87ac5e7efa03e076fd389ccdbb66a92a46e601a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | broadkey-0.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 466.8 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
9a9af5d0b9dc383ad3828f8e15c1fd148667f399d71e7cdcf006ce92ec7d87e8
|
|
BLAKE2b-256 checksum How to use checksums |
7deec3b66d78f689cbee5d0191c0439c4b21c9f58ec9c7e8f64146839638f2d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | broadkey-0.0.3-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 439.2 kB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
0b3fce2726e9f4a6f84a77347dfaf240772847b00095859684e0ecc87c7e8d02
|
|
BLAKE2b-256 checksum How to use checksums |
d67ec9ec77ab54ba64e49a587680534ac691e1f9b0de65c6252852b9a7d4e015
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | broadkey-0.0.3-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 443.4 kB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
d452b5e3eec7169d2d91d9954dbfec0e32514a2d5019f40e7a6a3d220e9da1bc
|
|
BLAKE2b-256 checksum How to use checksums |
06d62b80a184c6816cfc79d550d7436d66d5eeb3cb1b941d8317a4dd3d48ac4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | broadkey-0.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 522.0 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
0044ac5a8d7ff2ca13bf8331ac3578b18150436b7aba4c995acce0b6a7bc4442
|
|
BLAKE2b-256 checksum How to use checksums |
be8b041eb655da9c7774212cfaf7bab38c1d78d3860a7fe1f4558730ea58d9e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | broadkey-0.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 466.8 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
4f557d280457ba80c1e7ec59763ba6eb05a03d67ac53ac25b711a21eee6eda03
|
|
BLAKE2b-256 checksum How to use checksums |
4675d27e8b6ddd049fcfd370c7bfc4c06ac4bd97a5b66e4683b37f53315b8ac2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | broadkey-0.0.3-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 439.2 kB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f01b632a6e01836c2cd6d2d8235b7ef22fb8c45cbbe04db1edcba0deb3abbbc0
|
|
BLAKE2b-256 checksum How to use checksums |
49e2e6378f13ea25259f4f2ce35939489d8447db8fab2460de73b101824fd960
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp39-cp39-musllinux_1_2_aarch64.whl
| Download URL | broadkey-0.0.3-cp39-cp39-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 443.4 kB |
| Tags | CPython 3.9 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
0f339ec30d4a11c2dcbd201fc3e5194ac0188767d601b367420c078784feb00d
|
|
BLAKE2b-256 checksum How to use checksums |
22626461267c72170ccc16e97c623a2dc2d7589e5655b25a08f51cc653a9b33e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | broadkey-0.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 522.0 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
6a1169cff0cc94026f99db96fc5344b26c1e60e7e2052d300ee93b805985b70e
|
|
BLAKE2b-256 checksum How to use checksums |
bece3b5cb5df072e0292f8cf81259e0f9d9ca24674de4377151b601ffef47b9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / broadkey-0.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | broadkey-0.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 466.8 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
b462551c8842e374739f5ff486c907a313ed3070327319275ffd7c6f51424197
|
|
BLAKE2b-256 checksum How to use checksums |
58f394384eb308310bf5f27930308e452e2380076ba20f8fa21d8d296da76fe3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logSecurity for broadkey 0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 29 files in this release have been uploaded with provenance metadata.
Attestation for broadkey-0.0.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitLab CI/CD, verified by PyPI on Oct 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.