Skip to main content

Intercept, audit, and block critical Python operations at runtime

Project description

malwi-box logo

malwi-box

Intercept, audit, and block critical Python operations at runtime.

Shipped without any dependencies, except pip

malwi-box demo

Use Cases

  • 🔬 Malware analysis - Safely detonate suspicious Python code and observe its behavior
  • 📦 Dependency auditing - Discover what file, network, and process access a package actually needs
  • 🔒 Runtime protection - Enforce allowlists to block unauthorized operations in production

Warning: This tool is not executed in isolation or virtualization, it runs on your actual machine, kernel and CPU. Use it at your own risk. Still it allows to reduce the blast radius of typical Python malware.

Installation

pip install malwi-box

Or with uv:

uv tool install malwi-box

Quick Start

# Block file access
$ malwi-box eval "open('/etc/passwd').read()"
[malwi-box] Blocked: Read file: /etc/passwd

# Block network requests
$ malwi-box eval "import urllib.request; urllib.request.urlopen('https://evil.com')"
[malwi-box] Blocked: DNS lookup: evil.com

# Block shell commands
$ malwi-box eval "import os; os.system('whoami')"
[malwi-box] Blocked: Shell command: /bin/sh -c whoami

# Block subprocess execution
$ malwi-box eval "import subprocess; subprocess.run(['curl', 'https://evil.com'])"
[malwi-box] Blocked: Execute: /usr/bin/curl

# Log suspicious encoding (info-only, not blocked)
$ malwi-box eval "import base64; base64.b64encode(b'secret')"
[malwi-box] Base64: b64encode

Commands

run

Run a Python script or module with sandboxing.

malwi-box run script.py [args...]
malwi-box run --force script.py     # log violations without blocking
malwi-box run --review script.py    # approve/deny each operation

eval

Execute a Python code string with sandboxing.

malwi-box eval "print('hello')"
malwi-box eval --force "import os; os.system('id')"
malwi-box eval --review "open('/etc/passwd').read()"

install

Install pip packages with sandboxing. Most malware packages perform malicious activities at install-time.

malwi-box install package
malwi-box install package --version 1.2.3
malwi-box install -r requirements.txt
malwi-box install --review package # approve/deny each operation

config

Manage configuration.

malwi-box config create # creates .malwi-box.toml
malwi-box config create --path FILE

Configuration Reference

Config file: .malwi-box.toml

# File access permissions
allow_read = [
  "$PWD",                     # working directory
  "$PYTHON_STDLIB",           # Python standard library
  "$PYTHON_SITE_PACKAGES",    # installed packages
  "$HOME/.config/myapp",      # specific config directory
  "/etc/hosts",               # specific file
]

allow_create = [
  "$PWD",                     # allow creating files in workdir
  "$TMPDIR",                  # allow temp files
]

allow_modify = [
  "$PWD/data",                # only modify files in data/
  { path = "/etc/myapp.conf", hash = "sha256:abc123..." },
]

allow_delete = [
  "$TMPDIR",                  # allow temp cleanup
  "$PIP_CACHE",               # allow pip cache cleanup
]

# Network permissions
allow_domains = [
  "pypi.org",                 # allow any port
  "files.pythonhosted.org",
  "api.example.com:443",      # restrict to specific port
]

allow_ips = [
  "10.0.0.0/8",               # CIDR notation
  "192.168.1.100:8080",       # specific IP:port
  "[::1]:443",                # IPv6 with port
]

# HTTP URL path restrictions (empty = block all)
allow_http_urls = [
  "$PYPI_DOMAINS/*",              # use variable for PyPI URLs
  "api.example.com/v1/*",         # glob pattern for paths
  "cdn.example.com/assets/*",
  "https://secure.example.com/*", # explicit scheme
]

# HTTP methods allowed (empty = block all)
allow_http_methods = ["$ALL_HTTP_METHODS"]  # variable for all standard methods

# Raw socket access (default: false, blocks SOCK_RAW creation)
allow_raw_sockets = false

# Process execution
allow_executables = [
  "/usr/bin/git",             # allow by path
  "$PWD/.venv/bin/*",         # glob pattern
  { path = "/usr/bin/curl", hash = "sha256:abc123..." },
]

allow_shell_commands = [
  "/usr/bin/git *",           # glob pattern matching
  "/usr/bin/curl *",
]

# Environment variables (empty = block all)
allow_env_var_reads = ["$SAFE_ENV_VARS"]  # variable for safe env vars

Variables

Variables can be used in config values and are expanded at runtime.

Variable Expands To
Path variables
$PWD Working directory
$HOME User home directory
$TMPDIR System temp directory (macOS: /var/folders/.../T, Linux: /tmp)
$CACHE_HOME User cache directory (macOS: ~/Library/Caches, Linux: ~/.cache)
$PIP_CACHE pip cache directory
$VENV Active virtualenv root (if $VIRTUAL_ENV is set)
$PYTHON_STDLIB Python standard library
$PYTHON_SITE_PACKAGES Installed packages (purelib)
$PYTHON_PLATLIB Platform-specific packages
$PYTHON_PREFIX Python installation prefix
$ENV{VAR} Any environment variable
List variables Expand to multiple values
$PYPI_DOMAINS pypi.org, files.pythonhosted.org
$LOCALHOST 127.0.0.1, ::1, localhost
$ALL_HTTP_METHODS GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
$SAFE_ENV_VARS PATH, HOME, USER, SHELL, TERM, LANG, LC_ALL, LC_CTYPE, PWD, OLDPWD, TMPDIR, TMP, TEMP, PYTHONPATH, VIRTUAL_ENV, CONDA_PREFIX

List variables can be combined with patterns: $PYPI_DOMAINS/* expands to pypi.org/*, files.pythonhosted.org/*.

Allowlist Behavior

All allow_* attributes consistently block when empty. Use variables to document what's being allowed:

Attribute Empty Behavior Default
allow_read Block all $PWD, $PYTHON_STDLIB, $PYTHON_SITE_PACKAGES, $PYTHON_PLATLIB, $PIP_CACHE, $TMPDIR, $CACHE_HOME
allow_create Block all $PWD, $TMPDIR, $PIP_CACHE
allow_modify Block all $TMPDIR, $PIP_CACHE
allow_delete Block all $TMPDIR, $PIP_CACHE
allow_domains Block all $PYPI_DOMAINS
allow_ips Block all $LOCALHOST
allow_http_urls Block all $PYPI_DOMAINS/*
allow_http_methods Block all $ALL_HTTP_METHODS
allow_executables Block all (none)
allow_shell_commands Block all (none)
allow_env_var_reads Block all $SAFE_ENV_VARS

Network Behavior

  • Domains in allow_domains automatically permit their resolved IPs
  • Direct IP access requires explicit allow_ips entries
  • CIDR notation supported for IP ranges
  • Port restrictions supported for both domains and IPs

HTTP Request Interception

Supported libraries:

  • urllib.request (stdlib)
  • http.client (stdlib)
  • urllib3
  • requests
  • httpx
  • aiohttp

URL allowlisting:

  • If allow_http_urls is empty, all HTTP requests are blocked
  • Default uses $PYPI_DOMAINS/* to allow pip install
  • Requests must match both domain AND URL pattern
  • Scheme (http://, https://) is optional in patterns - omit to match both
  • Glob patterns supported for paths: api.example.com/v1/*
  • Subdomain matching: example.com/api/* matches api.example.com/api/*

Method restrictions:

  • If allow_http_methods is empty, all HTTP requests are blocked
  • Default uses $ALL_HTTP_METHODS to allow all standard methods
  • If configured, only listed methods are permitted (e.g., ["GET", "HEAD"])

Bypass note: Raw socket HTTP requests bypass library hooks but are blocked by default (allow_raw_sockets = false). The socket.connect event still captures all connections at the network level.

Hash Verification

Executables and files can include SHA256 hashes:

allow_executables = [
  { path = "/usr/bin/git", hash = "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
]

How It Works

Uses Python's PEP 578 audit hooks via a C++ extension to intercept:

  • File operations (open)
  • Network requests (socket.connect, socket.getaddrinfo)
  • HTTP requests (urllib.Request + profile hooks for requests, httpx, urllib3, aiohttp, http.client)
  • Process execution (subprocess.Popen, os.exec*, os.system)
  • Library loading (ctypes.dlopen)
  • Raw socket creation (socket.__new__ with SOCK_RAW)

Protections against bypass:

  • Blocks sys.addaudithook to prevent registering competing hooks
  • Blocks sys.settrace and sys.setprofile to prevent debugger-based evasion
  • Blocks ctypes.dlopen by default to prevent loading native code that bypasses hooks

Blocked operations terminate immediately with exit code 78.

Info-Only Events

Some operations are logged for security awareness but never blocked. They help identify potentially suspicious behavior during malware analysis:

Event Description Example Output
encoding.base64 Base64 encoding/decoding Base64: b64encode
crypto.cipher Cipher encryption/decryption (cryptography library) Cipher: Encrypt
crypto.fernet Fernet encryption/decryption Fernet: encrypt
os.putenv Set environment variable Set env var: PATH=/tmp
os.unsetenv Unset environment variable Unset env var: DEBUG

These events are always logged regardless of mode (run, force, or review) and cannot be disabled. They help identify:

  • Data exfiltration attempts (base64 encoding)
  • Ransomware behavior (encryption operations)
  • Obfuscation techniques
  • Environment manipulation (env var changes)

Limitations

  • Audit hooks cannot be bypassed from Python, but native code can
  • Here it is important to review which executables are allow-listed

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

malwi_box-0.0.5.tar.gz (50.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

malwi_box-0.0.5-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (86.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (84.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.5-cp313-cp313-macosx_11_0_arm64.whl (46.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

malwi_box-0.0.5-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (83.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (81.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.5-cp312-cp312-macosx_11_0_arm64.whl (46.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

malwi_box-0.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (84.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (81.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.5-cp311-cp311-macosx_11_0_arm64.whl (46.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

malwi_box-0.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (84.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

malwi_box-0.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (81.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

malwi_box-0.0.5-cp310-cp310-macosx_11_0_arm64.whl (46.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file malwi_box-0.0.5.tar.gz.

File metadata

  • Download URL: malwi_box-0.0.5.tar.gz
  • Upload date:
  • Size: 50.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for malwi_box-0.0.5.tar.gz
Algorithm Hash digest
SHA256 e567fbcecb6478b408e13b56dd0dfdb01fee6dba5c2335733673a9c5bcb619f5
MD5 8b1615e804d3328ac0eb6fceaea9ae5a
BLAKE2b-256 02f908cef7fa5ebd2da1f37afb20235dbd98fdbeed3ecdb2809e935ea36e4152

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5.tar.gz:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b28b19e3dfc259eacdacccd2fecd347ef9e2a45be10cfd6a7f0d9a9a81d4e52
MD5 17c351836e763e68d631f0a929f68e67
BLAKE2b-256 d606def809941e98bcac2a0e145ebf409b6167e6566de42dae3348915b2c6337

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4ab505a88dbf72334b7b4ae593a69e9adb6fdcf46cdde2389802b82447427cf4
MD5 61432cdac71d8fd2fe328c74957e6fa4
BLAKE2b-256 a5d626ab010e8f9170e170c43cfa1238e19a6703a2b630ca53c3ff68b4156ec5

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f5c90d89bd9a1aec6ce4d357908c1caece3a6e0a5f6e620cd616ae152e3dd6e
MD5 346da93318aad097e334af35e4396d8d
BLAKE2b-256 1035df7e5b7c64f05bafd2609148187a84fc8014bc7166d92d3e51335f2ccf16

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 547c2474077867ac13e4bbaaae81b3c3ec50e10ce785646f0b01b9b6713f8513
MD5 30a54b31425fcf904f324f77f2a76fd6
BLAKE2b-256 0d0d237096bf9b9c7496c1d267c72591133dd6f4f4594e319f20df4820499aea

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4e7b6e3321df48c198514a4b11b56ad19e94d42a65c691d354feec0e57e64f5a
MD5 2ad62fca26c485fcaec890422f2af34b
BLAKE2b-256 9d5d3c8865d52c891e6443b91ab7ddb483423efac9ce970e965ff28648767e62

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a4eaeec8740d298bab9fe13318cf680de8a36dd51deea7617f5a7d6fc6e21c9
MD5 60e7da26370f7bd20518ac0717df5ab4
BLAKE2b-256 c8cc88e132503b014c653230286dcceeb5a53c7f7d499fd1d123754430372480

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 11ae4d9aab7f2f33962e429aed909da8b0c580d3e300d9ddade4c20b39e46177
MD5 f7655d4d983c283a348362473acffd3e
BLAKE2b-256 49d376aa2b424b81d782dc56986246f2c24ae1fbdca6e02ea6f5a40bcde126f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b596df0c1f9b2a2b2f9bac42f1618bec893d92cad313e505b6b6cd8ad0b0549b
MD5 c31c7173da586424f5294bb620cacf3e
BLAKE2b-256 f87ff6d15d06dc4ac1672b7190e74a30b48bdddb478b67e612ca5f19418545a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e4c2cc675f79a1d71df1d18ecd0b6091b7e81a6eb61aca0a2a511ff232e4a88
MD5 45b73c99096d92e9e230ebf6df6a7edf
BLAKE2b-256 9192a12a8c2934904f1965e155a7e3bf014d2b22920722f726e6daca3cd74f90

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc755138ab128aabdaeb352b6370a26a848edf61b0187c1be8ec2b58577e97d0
MD5 380be9777f8a3174d70d6e9da3220873
BLAKE2b-256 10d3ad381f99093e244591c98106420b7adcd20a71fe8980991aefd9625c8a10

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 acb5460e759ca846e0d62c030840207e5bace895e6c16609dce06d37b0ba87de
MD5 6ea3cfea95f966e3703ec66721228219
BLAKE2b-256 31b158f76455882ac3b6ad02587efe123217e141c78e706a9db498e0278138c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file malwi_box-0.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for malwi_box-0.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3133ab8f303b08a36903a1025034786fa4f33c30516908f2b8eadf78cb1f8aae
MD5 859ab53da61ce410460cafedda4c01df
BLAKE2b-256 a1142383ac40d0cfed3d115f2b23f5d4fb5f3f71fc8de8ff2dbafe3c8048f61b

See more details on using hashes here.

Provenance

The following attestation bundles were made for malwi_box-0.0.5-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on canvascomputing/malwi-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page