Metadata-Version: 2.4
Name: cybersecure-easy
Version: 0.5.0
Summary: 1600+ Filetypes across 10 security verbs — rebalanced: lean Encode/Decode (38 each, all reversible), massive Extract/Scan/Sanitize expansions, CWE vulnerability scans, malware family signatures, consistent Filetype=/Target=/Variable= syntax
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: network
Requires-Dist: scapy; extra == "network"
Requires-Dist: python-nmap; extra == "network"
Provides-Extra: web
Requires-Dist: requests; extra == "web"
Requires-Dist: beautifulsoup4; extra == "web"
Provides-Extra: crypto
Requires-Dist: pycryptodome>=3.19; extra == "crypto"
Provides-Extra: yara
Requires-Dist: yara-python; extra == "yara"
Provides-Extra: pkg-httpx
Requires-Dist: httpx; extra == "pkg-httpx"
Provides-Extra: pkg-aiohttp
Requires-Dist: aiohttp; extra == "pkg-aiohttp"
Provides-Extra: pkg-urllib3
Requires-Dist: urllib3; extra == "pkg-urllib3"
Provides-Extra: pkg-h11
Requires-Dist: h11; extra == "pkg-h11"
Provides-Extra: pkg-h2
Requires-Dist: h2; extra == "pkg-h2"
Provides-Extra: pkg-httptools
Requires-Dist: httptools; extra == "pkg-httptools"
Provides-Extra: pkg-requests-cache
Requires-Dist: requests-cache; extra == "pkg-requests-cache"
Provides-Extra: pkg-requests-toolbelt
Requires-Dist: requests-toolbelt; extra == "pkg-requests-toolbelt"
Provides-Extra: pkg-tenacity
Requires-Dist: tenacity; extra == "pkg-tenacity"
Provides-Extra: pkg-backoff
Requires-Dist: backoff; extra == "pkg-backoff"
Provides-Extra: pkg-lxml
Requires-Dist: lxml; extra == "pkg-lxml"
Provides-Extra: pkg-html5lib
Requires-Dist: html5lib; extra == "pkg-html5lib"
Provides-Extra: pkg-cssselect
Requires-Dist: cssselect; extra == "pkg-cssselect"
Provides-Extra: pkg-soupsieve
Requires-Dist: soupsieve; extra == "pkg-soupsieve"
Provides-Extra: pkg-selectolax
Requires-Dist: selectolax; extra == "pkg-selectolax"
Provides-Extra: pkg-bleach
Requires-Dist: bleach; extra == "pkg-bleach"
Provides-Extra: pkg-nh3
Requires-Dist: nh3; extra == "pkg-nh3"
Provides-Extra: pkg-markdown-it-py
Requires-Dist: markdown-it-py; extra == "pkg-markdown-it-py"
Provides-Extra: pkg-mistune
Requires-Dist: mistune; extra == "pkg-mistune"
Provides-Extra: pkg-jinja2
Requires-Dist: Jinja2; extra == "pkg-jinja2"
Provides-Extra: pkg-pydantic
Requires-Dist: pydantic; extra == "pkg-pydantic"
Provides-Extra: pkg-jsonschema
Requires-Dist: jsonschema; extra == "pkg-jsonschema"
Provides-Extra: pkg-marshmallow
Requires-Dist: marshmallow; extra == "pkg-marshmallow"
Provides-Extra: pkg-attrs
Requires-Dist: attrs; extra == "pkg-attrs"
Provides-Extra: pkg-cattrs
Requires-Dist: cattrs; extra == "pkg-cattrs"
Provides-Extra: pkg-cerberus
Requires-Dist: cerberus; extra == "pkg-cerberus"
Provides-Extra: pkg-voluptuous
Requires-Dist: voluptuous; extra == "pkg-voluptuous"
Provides-Extra: pkg-email-validator
Requires-Dist: email-validator; extra == "pkg-email-validator"
Provides-Extra: pkg-validators
Requires-Dist: validators; extra == "pkg-validators"
Provides-Extra: pkg-referencing
Requires-Dist: referencing; extra == "pkg-referencing"
Provides-Extra: pkg-cryptography
Requires-Dist: cryptography; extra == "pkg-cryptography"
Provides-Extra: pkg-bcrypt
Requires-Dist: bcrypt; extra == "pkg-bcrypt"
Provides-Extra: pkg-argon2-cffi
Requires-Dist: argon2-cffi; extra == "pkg-argon2-cffi"
Provides-Extra: pkg-pynacl
Requires-Dist: PyNaCl; extra == "pkg-pynacl"
Provides-Extra: pkg-pyjwt
Requires-Dist: PyJWT; extra == "pkg-pyjwt"
Provides-Extra: pkg-itsdangerous
Requires-Dist: itsdangerous; extra == "pkg-itsdangerous"
Provides-Extra: pkg-pyopenssl
Requires-Dist: pyOpenSSL; extra == "pkg-pyopenssl"
Provides-Extra: pkg-pyotp
Requires-Dist: pyotp; extra == "pkg-pyotp"
Provides-Extra: pkg-keyring
Requires-Dist: keyring; extra == "pkg-keyring"
Provides-Extra: pkg-zxcvbn
Requires-Dist: zxcvbn; extra == "pkg-zxcvbn"
Provides-Extra: pkg-dnspython
Requires-Dist: dnspython; extra == "pkg-dnspython"
Provides-Extra: pkg-netaddr
Requires-Dist: netaddr; extra == "pkg-netaddr"
Provides-Extra: pkg-psutil
Requires-Dist: psutil; extra == "pkg-psutil"
Provides-Extra: pkg-ifaddr
Requires-Dist: ifaddr; extra == "pkg-ifaddr"
Provides-Extra: pkg-paramiko
Requires-Dist: paramiko; extra == "pkg-paramiko"
Provides-Extra: pkg-asyncssh
Requires-Dist: asyncssh; extra == "pkg-asyncssh"
Provides-Extra: pkg-fabric
Requires-Dist: fabric; extra == "pkg-fabric"
Provides-Extra: pkg-invoke
Requires-Dist: invoke; extra == "pkg-invoke"
Provides-Extra: pkg-websocket-client
Requires-Dist: websocket-client; extra == "pkg-websocket-client"
Provides-Extra: pkg-websockets
Requires-Dist: websockets; extra == "pkg-websockets"
Provides-Extra: pkg-numpy
Requires-Dist: numpy; extra == "pkg-numpy"
Provides-Extra: pkg-pandas
Requires-Dist: pandas; extra == "pkg-pandas"
Provides-Extra: pkg-polars
Requires-Dist: polars; extra == "pkg-polars"
Provides-Extra: pkg-pyarrow
Requires-Dist: pyarrow; extra == "pkg-pyarrow"
Provides-Extra: pkg-orjson
Requires-Dist: orjson; extra == "pkg-orjson"
Provides-Extra: pkg-ujson
Requires-Dist: ujson; extra == "pkg-ujson"
Provides-Extra: pkg-simplejson
Requires-Dist: simplejson; extra == "pkg-simplejson"
Provides-Extra: pkg-msgpack
Requires-Dist: msgpack; extra == "pkg-msgpack"
Provides-Extra: pkg-pyyaml
Requires-Dist: PyYAML; extra == "pkg-pyyaml"
Provides-Extra: pkg-tomlkit
Requires-Dist: tomlkit; extra == "pkg-tomlkit"
Provides-Extra: pkg-sqlalchemy
Requires-Dist: SQLAlchemy; extra == "pkg-sqlalchemy"
Provides-Extra: pkg-aiosqlite
Requires-Dist: aiosqlite; extra == "pkg-aiosqlite"
Provides-Extra: pkg-asyncpg
Requires-Dist: asyncpg; extra == "pkg-asyncpg"
Provides-Extra: pkg-psycopg
Requires-Dist: psycopg; extra == "pkg-psycopg"
Provides-Extra: pkg-pymysql
Requires-Dist: PyMySQL; extra == "pkg-pymysql"
Provides-Extra: pkg-redis
Requires-Dist: redis; extra == "pkg-redis"
Provides-Extra: pkg-pymongo
Requires-Dist: pymongo; extra == "pkg-pymongo"
Provides-Extra: pkg-peewee
Requires-Dist: peewee; extra == "pkg-peewee"
Provides-Extra: pkg-sqlparse
Requires-Dist: sqlparse; extra == "pkg-sqlparse"
Provides-Extra: pkg-duckdb
Requires-Dist: duckdb; extra == "pkg-duckdb"
Provides-Extra: pkg-click
Requires-Dist: click; extra == "pkg-click"
Provides-Extra: pkg-typer
Requires-Dist: typer; extra == "pkg-typer"
Provides-Extra: pkg-rich
Requires-Dist: rich; extra == "pkg-rich"
Provides-Extra: pkg-colorama
Requires-Dist: colorama; extra == "pkg-colorama"
Provides-Extra: pkg-tqdm
Requires-Dist: tqdm; extra == "pkg-tqdm"
Provides-Extra: pkg-loguru
Requires-Dist: loguru; extra == "pkg-loguru"
Provides-Extra: pkg-structlog
Requires-Dist: structlog; extra == "pkg-structlog"
Provides-Extra: pkg-python-dotenv
Requires-Dist: python-dotenv; extra == "pkg-python-dotenv"
Provides-Extra: pkg-platformdirs
Requires-Dist: platformdirs; extra == "pkg-platformdirs"
Provides-Extra: pkg-tabulate
Requires-Dist: tabulate; extra == "pkg-tabulate"
Provides-Extra: pkg-pillow
Requires-Dist: Pillow; extra == "pkg-pillow"
Provides-Extra: pkg-pypdf
Requires-Dist: pypdf; extra == "pkg-pypdf"
Provides-Extra: pkg-openpyxl
Requires-Dist: openpyxl; extra == "pkg-openpyxl"
Provides-Extra: pkg-xlsxwriter
Requires-Dist: XlsxWriter; extra == "pkg-xlsxwriter"
Provides-Extra: pkg-python-docx
Requires-Dist: python-docx; extra == "pkg-python-docx"
Provides-Extra: pkg-python-pptx
Requires-Dist: python-pptx; extra == "pkg-python-pptx"
Provides-Extra: pkg-defusedxml
Requires-Dist: defusedxml; extra == "pkg-defusedxml"
Provides-Extra: pkg-filelock
Requires-Dist: filelock; extra == "pkg-filelock"
Provides-Extra: pkg-watchdog
Requires-Dist: watchdog; extra == "pkg-watchdog"
Provides-Extra: pkg-pathspec
Requires-Dist: pathspec; extra == "pkg-pathspec"
Provides-Extra: pkg-pytest
Requires-Dist: pytest; extra == "pkg-pytest"
Provides-Extra: pkg-hypothesis
Requires-Dist: hypothesis; extra == "pkg-hypothesis"
Provides-Extra: pkg-coverage
Requires-Dist: coverage; extra == "pkg-coverage"
Provides-Extra: pkg-mypy
Requires-Dist: mypy; extra == "pkg-mypy"
Provides-Extra: pkg-pylint
Requires-Dist: pylint; extra == "pkg-pylint"
Provides-Extra: pkg-flake8
Requires-Dist: flake8; extra == "pkg-flake8"
Provides-Extra: pkg-black
Requires-Dist: black; extra == "pkg-black"
Provides-Extra: pkg-isort
Requires-Dist: isort; extra == "pkg-isort"
Provides-Extra: pkg-autopep8
Requires-Dist: autopep8; extra == "pkg-autopep8"
Provides-Extra: pkg-radon
Requires-Dist: radon; extra == "pkg-radon"
Provides-Extra: pkg-fastapi
Requires-Dist: fastapi; extra == "pkg-fastapi"
Provides-Extra: pkg-starlette
Requires-Dist: starlette; extra == "pkg-starlette"
Provides-Extra: pkg-flask
Requires-Dist: Flask; extra == "pkg-flask"
Provides-Extra: pkg-werkzeug
Requires-Dist: Werkzeug; extra == "pkg-werkzeug"
Provides-Extra: pkg-django
Requires-Dist: Django; extra == "pkg-django"
Provides-Extra: pkg-uvicorn
Requires-Dist: uvicorn; extra == "pkg-uvicorn"
Provides-Extra: pkg-hypercorn
Requires-Dist: hypercorn; extra == "pkg-hypercorn"
Provides-Extra: pkg-tornado
Requires-Dist: tornado; extra == "pkg-tornado"
Provides-Extra: pkg-sanic
Requires-Dist: sanic; extra == "pkg-sanic"
Provides-Extra: pkg-falcon
Requires-Dist: falcon; extra == "pkg-falcon"
Provides-Extra: pkg-packaging
Requires-Dist: packaging; extra == "pkg-packaging"
Provides-Extra: pkg-python-dateutil
Requires-Dist: python-dateutil; extra == "pkg-python-dateutil"
Provides-Extra: pkg-pendulum
Requires-Dist: pendulum; extra == "pkg-pendulum"
Provides-Extra: pkg-arrow
Requires-Dist: arrow; extra == "pkg-arrow"
Provides-Extra: pkg-humanize
Requires-Dist: humanize; extra == "pkg-humanize"
Provides-Extra: pkg-cachetools
Requires-Dist: cachetools; extra == "pkg-cachetools"
Provides-Extra: pkg-diskcache
Requires-Dist: diskcache; extra == "pkg-diskcache"
Provides-Extra: pkg-more-itertools
Requires-Dist: more-itertools; extra == "pkg-more-itertools"
Provides-Extra: pkg-sortedcontainers
Requires-Dist: sortedcontainers; extra == "pkg-sortedcontainers"
Provides-Extra: pkg-boltons
Requires-Dist: boltons; extra == "pkg-boltons"
Provides-Extra: integrations-cli
Requires-Dist: click; extra == "integrations-cli"
Requires-Dist: typer; extra == "integrations-cli"
Requires-Dist: rich; extra == "integrations-cli"
Requires-Dist: colorama; extra == "integrations-cli"
Requires-Dist: tqdm; extra == "integrations-cli"
Requires-Dist: loguru; extra == "integrations-cli"
Requires-Dist: structlog; extra == "integrations-cli"
Requires-Dist: python-dotenv; extra == "integrations-cli"
Requires-Dist: platformdirs; extra == "integrations-cli"
Requires-Dist: tabulate; extra == "integrations-cli"
Provides-Extra: integrations-crypto
Requires-Dist: cryptography; extra == "integrations-crypto"
Requires-Dist: bcrypt; extra == "integrations-crypto"
Requires-Dist: argon2-cffi; extra == "integrations-crypto"
Requires-Dist: PyNaCl; extra == "integrations-crypto"
Requires-Dist: PyJWT; extra == "integrations-crypto"
Requires-Dist: itsdangerous; extra == "integrations-crypto"
Requires-Dist: pyOpenSSL; extra == "integrations-crypto"
Requires-Dist: pyotp; extra == "integrations-crypto"
Requires-Dist: keyring; extra == "integrations-crypto"
Requires-Dist: zxcvbn; extra == "integrations-crypto"
Provides-Extra: integrations-data
Requires-Dist: numpy; extra == "integrations-data"
Requires-Dist: pandas; extra == "integrations-data"
Requires-Dist: polars; extra == "integrations-data"
Requires-Dist: pyarrow; extra == "integrations-data"
Requires-Dist: orjson; extra == "integrations-data"
Requires-Dist: ujson; extra == "integrations-data"
Requires-Dist: simplejson; extra == "integrations-data"
Requires-Dist: msgpack; extra == "integrations-data"
Requires-Dist: PyYAML; extra == "integrations-data"
Requires-Dist: tomlkit; extra == "integrations-data"
Provides-Extra: integrations-database
Requires-Dist: SQLAlchemy; extra == "integrations-database"
Requires-Dist: aiosqlite; extra == "integrations-database"
Requires-Dist: asyncpg; extra == "integrations-database"
Requires-Dist: psycopg; extra == "integrations-database"
Requires-Dist: PyMySQL; extra == "integrations-database"
Requires-Dist: redis; extra == "integrations-database"
Requires-Dist: pymongo; extra == "integrations-database"
Requires-Dist: peewee; extra == "integrations-database"
Requires-Dist: sqlparse; extra == "integrations-database"
Requires-Dist: duckdb; extra == "integrations-database"
Provides-Extra: integrations-files
Requires-Dist: Pillow; extra == "integrations-files"
Requires-Dist: pypdf; extra == "integrations-files"
Requires-Dist: openpyxl; extra == "integrations-files"
Requires-Dist: XlsxWriter; extra == "integrations-files"
Requires-Dist: python-docx; extra == "integrations-files"
Requires-Dist: python-pptx; extra == "integrations-files"
Requires-Dist: defusedxml; extra == "integrations-files"
Requires-Dist: filelock; extra == "integrations-files"
Requires-Dist: watchdog; extra == "integrations-files"
Requires-Dist: pathspec; extra == "integrations-files"
Provides-Extra: integrations-http
Requires-Dist: httpx; extra == "integrations-http"
Requires-Dist: aiohttp; extra == "integrations-http"
Requires-Dist: urllib3; extra == "integrations-http"
Requires-Dist: h11; extra == "integrations-http"
Requires-Dist: h2; extra == "integrations-http"
Requires-Dist: httptools; extra == "integrations-http"
Requires-Dist: requests-cache; extra == "integrations-http"
Requires-Dist: requests-toolbelt; extra == "integrations-http"
Requires-Dist: tenacity; extra == "integrations-http"
Requires-Dist: backoff; extra == "integrations-http"
Provides-Extra: integrations-network
Requires-Dist: dnspython; extra == "integrations-network"
Requires-Dist: netaddr; extra == "integrations-network"
Requires-Dist: psutil; extra == "integrations-network"
Requires-Dist: ifaddr; extra == "integrations-network"
Requires-Dist: paramiko; extra == "integrations-network"
Requires-Dist: asyncssh; extra == "integrations-network"
Requires-Dist: fabric; extra == "integrations-network"
Requires-Dist: invoke; extra == "integrations-network"
Requires-Dist: websocket-client; extra == "integrations-network"
Requires-Dist: websockets; extra == "integrations-network"
Provides-Extra: integrations-quality
Requires-Dist: pytest; extra == "integrations-quality"
Requires-Dist: hypothesis; extra == "integrations-quality"
Requires-Dist: coverage; extra == "integrations-quality"
Requires-Dist: mypy; extra == "integrations-quality"
Requires-Dist: pylint; extra == "integrations-quality"
Requires-Dist: flake8; extra == "integrations-quality"
Requires-Dist: black; extra == "integrations-quality"
Requires-Dist: isort; extra == "integrations-quality"
Requires-Dist: autopep8; extra == "integrations-quality"
Requires-Dist: radon; extra == "integrations-quality"
Provides-Extra: integrations-services
Requires-Dist: fastapi; extra == "integrations-services"
Requires-Dist: starlette; extra == "integrations-services"
Requires-Dist: Flask; extra == "integrations-services"
Requires-Dist: Werkzeug; extra == "integrations-services"
Requires-Dist: Django; extra == "integrations-services"
Requires-Dist: uvicorn; extra == "integrations-services"
Requires-Dist: hypercorn; extra == "integrations-services"
Requires-Dist: tornado; extra == "integrations-services"
Requires-Dist: sanic; extra == "integrations-services"
Requires-Dist: falcon; extra == "integrations-services"
Provides-Extra: integrations-utilities
Requires-Dist: packaging; extra == "integrations-utilities"
Requires-Dist: python-dateutil; extra == "integrations-utilities"
Requires-Dist: pendulum; extra == "integrations-utilities"
Requires-Dist: arrow; extra == "integrations-utilities"
Requires-Dist: humanize; extra == "integrations-utilities"
Requires-Dist: cachetools; extra == "integrations-utilities"
Requires-Dist: diskcache; extra == "integrations-utilities"
Requires-Dist: more-itertools; extra == "integrations-utilities"
Requires-Dist: sortedcontainers; extra == "integrations-utilities"
Requires-Dist: boltons; extra == "integrations-utilities"
Provides-Extra: integrations-validation
Requires-Dist: pydantic; extra == "integrations-validation"
Requires-Dist: jsonschema; extra == "integrations-validation"
Requires-Dist: marshmallow; extra == "integrations-validation"
Requires-Dist: attrs; extra == "integrations-validation"
Requires-Dist: cattrs; extra == "integrations-validation"
Requires-Dist: cerberus; extra == "integrations-validation"
Requires-Dist: voluptuous; extra == "integrations-validation"
Requires-Dist: email-validator; extra == "integrations-validation"
Requires-Dist: validators; extra == "integrations-validation"
Requires-Dist: referencing; extra == "integrations-validation"
Provides-Extra: integrations-web
Requires-Dist: lxml; extra == "integrations-web"
Requires-Dist: html5lib; extra == "integrations-web"
Requires-Dist: cssselect; extra == "integrations-web"
Requires-Dist: soupsieve; extra == "integrations-web"
Requires-Dist: selectolax; extra == "integrations-web"
Requires-Dist: bleach; extra == "integrations-web"
Requires-Dist: nh3; extra == "integrations-web"
Requires-Dist: markdown-it-py; extra == "integrations-web"
Requires-Dist: mistune; extra == "integrations-web"
Requires-Dist: Jinja2; extra == "integrations-web"
Provides-Extra: all
Requires-Dist: scapy; extra == "all"
Requires-Dist: python-nmap; extra == "all"
Requires-Dist: requests; extra == "all"
Requires-Dist: beautifulsoup4; extra == "all"
Requires-Dist: pycryptodome>=3.19; extra == "all"
Requires-Dist: yara-python; extra == "all"
Requires-Dist: httpx; extra == "all"
Requires-Dist: aiohttp; extra == "all"
Requires-Dist: urllib3; extra == "all"
Requires-Dist: h11; extra == "all"
Requires-Dist: h2; extra == "all"
Requires-Dist: httptools; extra == "all"
Requires-Dist: requests-cache; extra == "all"
Requires-Dist: requests-toolbelt; extra == "all"
Requires-Dist: tenacity; extra == "all"
Requires-Dist: backoff; extra == "all"
Requires-Dist: lxml; extra == "all"
Requires-Dist: html5lib; extra == "all"
Requires-Dist: cssselect; extra == "all"
Requires-Dist: soupsieve; extra == "all"
Requires-Dist: selectolax; extra == "all"
Requires-Dist: bleach; extra == "all"
Requires-Dist: nh3; extra == "all"
Requires-Dist: markdown-it-py; extra == "all"
Requires-Dist: mistune; extra == "all"
Requires-Dist: Jinja2; extra == "all"
Requires-Dist: pydantic; extra == "all"
Requires-Dist: jsonschema; extra == "all"
Requires-Dist: marshmallow; extra == "all"
Requires-Dist: attrs; extra == "all"
Requires-Dist: cattrs; extra == "all"
Requires-Dist: cerberus; extra == "all"
Requires-Dist: voluptuous; extra == "all"
Requires-Dist: email-validator; extra == "all"
Requires-Dist: validators; extra == "all"
Requires-Dist: referencing; extra == "all"
Requires-Dist: cryptography; extra == "all"
Requires-Dist: bcrypt; extra == "all"
Requires-Dist: argon2-cffi; extra == "all"
Requires-Dist: PyNaCl; extra == "all"
Requires-Dist: PyJWT; extra == "all"
Requires-Dist: itsdangerous; extra == "all"
Requires-Dist: pyOpenSSL; extra == "all"
Requires-Dist: pyotp; extra == "all"
Requires-Dist: keyring; extra == "all"
Requires-Dist: zxcvbn; extra == "all"
Requires-Dist: dnspython; extra == "all"
Requires-Dist: netaddr; extra == "all"
Requires-Dist: psutil; extra == "all"
Requires-Dist: ifaddr; extra == "all"
Requires-Dist: paramiko; extra == "all"
Requires-Dist: asyncssh; extra == "all"
Requires-Dist: fabric; extra == "all"
Requires-Dist: invoke; extra == "all"
Requires-Dist: websocket-client; extra == "all"
Requires-Dist: websockets; extra == "all"
Requires-Dist: numpy; extra == "all"
Requires-Dist: pandas; extra == "all"
Requires-Dist: polars; extra == "all"
Requires-Dist: pyarrow; extra == "all"
Requires-Dist: orjson; extra == "all"
Requires-Dist: ujson; extra == "all"
Requires-Dist: simplejson; extra == "all"
Requires-Dist: msgpack; extra == "all"
Requires-Dist: PyYAML; extra == "all"
Requires-Dist: tomlkit; extra == "all"
Requires-Dist: SQLAlchemy; extra == "all"
Requires-Dist: aiosqlite; extra == "all"
Requires-Dist: asyncpg; extra == "all"
Requires-Dist: psycopg; extra == "all"
Requires-Dist: PyMySQL; extra == "all"
Requires-Dist: redis; extra == "all"
Requires-Dist: pymongo; extra == "all"
Requires-Dist: peewee; extra == "all"
Requires-Dist: sqlparse; extra == "all"
Requires-Dist: duckdb; extra == "all"
Requires-Dist: click; extra == "all"
Requires-Dist: typer; extra == "all"
Requires-Dist: rich; extra == "all"
Requires-Dist: colorama; extra == "all"
Requires-Dist: tqdm; extra == "all"
Requires-Dist: loguru; extra == "all"
Requires-Dist: structlog; extra == "all"
Requires-Dist: python-dotenv; extra == "all"
Requires-Dist: platformdirs; extra == "all"
Requires-Dist: tabulate; extra == "all"
Requires-Dist: Pillow; extra == "all"
Requires-Dist: pypdf; extra == "all"
Requires-Dist: openpyxl; extra == "all"
Requires-Dist: XlsxWriter; extra == "all"
Requires-Dist: python-docx; extra == "all"
Requires-Dist: python-pptx; extra == "all"
Requires-Dist: defusedxml; extra == "all"
Requires-Dist: filelock; extra == "all"
Requires-Dist: watchdog; extra == "all"
Requires-Dist: pathspec; extra == "all"
Requires-Dist: pytest; extra == "all"
Requires-Dist: hypothesis; extra == "all"
Requires-Dist: coverage; extra == "all"
Requires-Dist: mypy; extra == "all"
Requires-Dist: pylint; extra == "all"
Requires-Dist: flake8; extra == "all"
Requires-Dist: black; extra == "all"
Requires-Dist: isort; extra == "all"
Requires-Dist: autopep8; extra == "all"
Requires-Dist: radon; extra == "all"
Requires-Dist: fastapi; extra == "all"
Requires-Dist: starlette; extra == "all"
Requires-Dist: Flask; extra == "all"
Requires-Dist: Werkzeug; extra == "all"
Requires-Dist: Django; extra == "all"
Requires-Dist: uvicorn; extra == "all"
Requires-Dist: hypercorn; extra == "all"
Requires-Dist: tornado; extra == "all"
Requires-Dist: sanic; extra == "all"
Requires-Dist: falcon; extra == "all"
Requires-Dist: packaging; extra == "all"
Requires-Dist: python-dateutil; extra == "all"
Requires-Dist: pendulum; extra == "all"
Requires-Dist: arrow; extra == "all"
Requires-Dist: humanize; extra == "all"
Requires-Dist: cachetools; extra == "all"
Requires-Dist: diskcache; extra == "all"
Requires-Dist: more-itertools; extra == "all"
Requires-Dist: sortedcontainers; extra == "all"
Requires-Dist: boltons; extra == "all"

# Cybersecure Easy 0.5.0

**1,615 Filetypes** across **10 security verbs** — **rebalanced** so Encode/Decode
is lean (38 each, all reversible, 0 broken) and the other verbs are massive.

```python
Cybersecure.Extract(Filetype="Html", Target="https://example.com", Variable="links")
Cybersecure.Scan   (Filetype="Cwe89Sqli", Target="source.py", FromText=Yes)
Cybersecure.Hash   (Filetype="Sha256", Target="file.bin")
Cybersecure.Encrypt(Filetype="AesGcm", Target="secret", Password="long passphrase")
Cybersecure.Validate(Filetype="IbanDE", Target="DE89370400440532013000")
Cybersecure.Generate(Filetype="Password32")
Cybersecure.Encode (Filetype="Base64", Target="hello")
Cybersecure.Sanitize(Filetype="Jinja2", Target="{{x}}")
```

## What's new in 0.5.0 (the rebalance)

You asked for fewer encoding syntaxes and more of everything else — done.

### Encode/Decode: trimmed from 103/91 → 38/38 (all reversible, 0 broken)

**Removed** the redundant variants that were just noise:
- `Binary2` through `Binary12` (12 entries doing the same thing) → 1 `Binary`
- `Rot1` through `Rot25` (25 entries) → kept just `Rot13` + `Rot47` + `Atbash`
- `Base58Flickr`, `Base58Ripple`, `Base64Np`, `Base85Btoa`, `HexUpper`, `Z85`
- `Xxencode`, `BinHex` (broken decoders, removed)
- All 11 case styles (`CamelCase`, `PascalCase`, `SnakeCase`, `Leet`, `PigLatin`, etc.) — these were transformations, not encodings
- `Csv`, `Json` string pseudo-encodings
- `Striptags` (it's a sanitizer, not an encoder)
- `HtmlAttribute`, `UrlFragment` (redundant aliases)

**Fixed** the broken ones: `Base45` now round-trips correctly (RFC 9285 compliant).

### Scan: 86 → 222 (massive expansion)

New scan categories:
- **45 CWE vulnerability class scans** — `Cwe79Xss`, `Cwe89Sqli`, `Cwe22Pt`,
  `Cwe798HardcodedCreds`, `Cwe502Deserialization`, `Cwe611Xxe`, `Cwe918Ssrf`,
  `Cwe601OpenRedirect`, `Cwe1333ReDoS`, and 36 more
- **24 malware family scans** — `MiraiBotnet`, `EmotetBanker`, `TrickBot`,
  `WannaCry`, `RyukRansom`, `LockBit`, `BlackCat`, `Log4Shell`, `Spring4Shell`,
  `ShellShock`, `Heartbleed`, `EternalBlue`, `BlueKeep`, `Zerologon`,
  `PrintNightmare`, `ProxyLogon`, `ProxyShell`, `Follina`, and more
- **13 misconfiguration scans** — `DefaultCreds`, `EmptyPassword`, `WeakSsl`,
  `WeakCipher`, `OpenS3Bucket`, `DebugMode`, `CorsWild`, `MissingHsts`, etc.
- **30+ port-range presets** — `Top100Ports`, `WellKnownPorts`, `WebPorts`,
  `DbPorts`, `VoipPorts`, `VpnPorts`, `ContainerPorts`, `MonitoringPorts`, etc.
- **29 per-protocol service probes** — `ScanHttp`, `ScanSsh`, `ScanMysql`,
  `ScanRedis`, `ScanDocker`, `ScanKubernetes`, etc.

### Extract: 58 → 157 (massive expansion)

New extract file types:
- **30+ source code languages** — `Python`, `Javascript`, `Typescript`, `Java`,
  `Kotlin`, `Scala`, `C`, `Cpp`, `Csharp`, `Go`, `Rust`, `Ruby`, `Php`, `Swift`,
  `R`, `Sql`, `Shell`, `Bash`, `Powershell`, `Lua`, `Perl`
- **More XML family** — `Svg`, `Xul`, `Xspf`, `Opml`, `Plist`, `Soap`, `Wsdl`, `Xslt`
- **More JSON family** — `Topojson`, `Jsonapi`, `Openapi`, `Swagger`
- **More config formats** — `Cfg`, `Properties`
- **More markup** — `Rst`, `AsciiDoc`, `Org`, `Pod`, `Tex`
- **More data formats** — `Cbor`, `Feather`, `Orc`, `Avro`, `Xls`, `Pptx`, `Odt`, `Ods`
- **More bioinformatics** — `Fa`, `Fna`, `Mfa`, `Fastq`, `Gb`, `Ent`, `Mol2`
- **More logs** — `Apache`, `Nginx`, `Authlog`, `Messages`, `W3cLog`, `IisLog`
- **System files** — `Htpasswd`, `Hosts`, `Resolv`, `Crontab`, `Manifest`,
  `License`, `Changelog`, `Readme`, `Todo`
- **Network captures** — `Pcap`, `Netflow`
- **Pipe-separated values** — `Psv`

### Sanitize: 46 → 140 (massive expansion)

New sanitize contexts:
- **SQL dialects** — `Mysql`, `Postgres`, `Sqlite`, `Mssql`, `Oracle`
- **NoSQL** — `Mongodb`, `Redis`, `Cassandra`, `Neo4j`
- **Shell dialects** — `Bash`, `Sh`, `Zsh`, `Powershell`, `Cmd`, `Fish`
- **Template engines** — `Jinja2`, `DjangoTemplate`, `Mako`, `Twig`, `Smarty`,
  `Handlebars`, `Jinja`, `Mustache`
- **Framework-specific** — `Flask`, `Fastapi`, `Django`, `Express`, `Rails`,
  `Spring`, `Laravel`, `Aspnet`
- **Programming language strings** — `PythonString`, `JavaString`, `CsharpString`,
  `CppString`, `GoString`, `RustString`, `RubyString`, `PhpString`, `SwiftString`,
  `KotlinString`
- **Logging contexts** — `Syslog`, `Logfile`, `AccessLog`, `AuditLog`, `SecurityLog`
- **File systems** — `Ntfs`, `Ext4`, `Apfs`, `Fat32`, `Iso9660`
- **Cloud storage** — `S3Key`, `AzureBlob`, `GcsObject`
- **HTTP** — `HttpUserAgent`, `HttpOrigin`, `HttpAccept`, `HttpAuthorization`
- **Email** — `MailBcc`, `MailCc`, `MailReplyTo`
- **More markup** — `HtmlBody`, `HtmlText`, `XmlText`, `Xhtml`, `Svg`, `Rss`, `Atom`
- **More paths** — `Filepath`, `Dirname`, `Basename`, `UrlScheme`, `UrlHost`

## Filetype breakdown (v0.5.0)

| Verb | v0.4.0 | v0.5.0 | Change |
|------|--------|--------|--------|
| Extract | 58 | **157** | +99 |
| Scan | 86 | **222** | +136 |
| Hash | 125 | 125 | — |
| Encrypt | 75 | 75 | — |
| Decrypt | 75 | 75 | — |
| Encode | 103 | **38** | −65 (leaner, all reversible) |
| Decode | 91 | **38** | −53 (leaner, all reversible) |
| Validate | 556 | 556 | — |
| Generate | 189 | 189 | — |
| Sanitize | 46 | **140** | +94 |
| **Total** | 1,404 | **1,615** | +211 |

## Install

```powershell
python -m pip install cybersecure-easy
```

## Quick examples (new v0.5.0 features)

```python
from cybersecure import Cybersecure, Yes

# CWE vulnerability scans
Cybersecure.Scan(Filetype="Cwe89Sqli", Target="source.py", FromText=Yes)
Cybersecure.Scan(Filetype="Cwe79Xss", Target=html_input, FromText=Yes)
Cybersecure.Scan(Filetype="Cwe798HardcodedCreds", Target="config.py", FromText=Yes)
Cybersecure.Scan(Filetype="Cwe502Deserialization", Target="app.py", FromText=Yes)

# Malware family scans
Cybersecure.Scan(Filetype="Log4Shell", Target=log_line, FromText=Yes)
Cybersecure.Scan(Filetype="WannaCry", Target=file_bytes, FromText=Yes)
Cybersecure.Scan(Filetype="EternalBlue", Target=pcap_text, FromText=Yes)

# Misconfiguration scans
Cybersecure.Scan(Filetype="DebugMode", Target="settings.py", FromText=Yes)
Cybersecure.Scan(Filetype="OpenS3Bucket", Target=url_list, FromText=Yes)
Cybersecure.Scan(Filetype="WeakCipher", Target=tls_config, FromText=Yes)

# Port presets
Cybersecure.Scan(Filetype="Top100Ports", Target="127.0.0.1")
Cybersecure.Scan(Filetype="VoipPorts", Target="127.0.0.1")
Cybersecure.Scan(Filetype="ContainerPorts", Target="127.0.0.1")

# Per-protocol service probes
Cybersecure.Scan(Filetype="ScanHttp", Target="127.0.0.1")
Cybersecure.Scan(Filetype="ScanMysql", Target="127.0.0.1")
Cybersecure.Scan(Filetype="ScanDocker", Target="127.0.0.1")

# Extract from source code
emails = Cybersecure.Extract(Filetype="Python", Target="app.py", Variable="emails")
secrets = Cybersecure.Extract(Filetype="Python", Target="app.py", Variable="aws_keys")

# Extract from more formats
Cybersecure.Extract(Filetype="Toml", Target="pyproject.toml", Variable="project.name")
Cybersecure.Extract(Filetype="Ini", Target="config.ini", Variable="db.host")
Cybersecure.Extract(Filetype="Env", Target=".env", Variable="DATABASE_URL")
Cybersecure.Extract(Filetype="Markdown", Target="README.md", Variable="headings")

# Sanitize for specific contexts
Cybersecure.Sanitize(Filetype="Mysql", Target=user_input)
Cybersecure.Sanitize(Filetype="Jinja2", Target="{{user_input}}")
Cybersecure.Sanitize(Filetype="Flask", Target="{{user_input}}")
Cybersecure.Sanitize(Filetype="Logfile", Target=user_input)
Cybersecure.Sanitize(Filetype="S3Key", Target=user_filename)

# Encode/Decode — lean and all working
Cybersecure.Encode(Filetype="Base64", Target="hello")
Cybersecure.Decode(Filetype="Base64", Target="aGVsbG8=")
Cybersecure.Encode(Filetype="Rot13", Target="hello")  # "uryyb"
Cybersecure.Encode(Filetype="Base58", Target="hello")
Cybersecure.Encode(Filetype="Morse", Target="SOS")
```

## Backward compatibility

All v0.2.0, v0.3.0, and v0.4.0 helpers are still present with the same signatures.
The only breaking change in v0.5.0 is the **removal of redundant Encode/Decode
variants** (Binary2-Binary12, Rot1-Rot25 except Rot13, case styles, broken
encoders). If you were using `Cybersecure.Encode(Filetype="Binary8", ...)`,
switch to `Cybersecure.Encode(Filetype="Octal", ...)` (same semantics).

## Verification

Run `python selftest.py`. It now exercises **245 checks** covering:
- All v0.3.0 + v0.4.0 backward-compat checks
- The v0.5.0 rebalance: Encode/Decode trimmed, others expanded
- All 45 CWE vulnerability class scans
- All 24 malware family scans
- All 13 misconfiguration scans
- All new Extract file types (TOML, INI, Env, Markdown, source code)
- All new Sanitize contexts (SQL dialects, template engines, frameworks)
- 0 broken encoders (verified by round-trip audit)

## Publish from Windows PowerShell

```powershell
cd cybersecure-easy-0.5.0-full
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
python -m twine upload --username __token__ dist/*
```
