Skip to main content

fognode - headless secure encrypted data transmission. TLS + X25519 + AESGCM + PBKDF2.

Project description

fognode

headless secure encrypted data transmission.

License Python Platform black ruff pyright


Encrypted channel library for headless projects. Built for speed and zero-trust networking.

Stack: TLS 1.2+ · X25519 · AESGCM-256 · HMAC-SHA256 · PBKDF2 · HKDF


Install

pip install fognode

Quick start (aiogram-style)

Server

from fognode import App, Cipher

app = App(
    host="0.0.0.0",
    port=9443,
    user="alice",
    password="secret",
    cipher=Cipher.AESGCM,
)

@app.on_message()
async def echo(ctx):
    await ctx.answer(f"echo: {ctx.message.text}")

@app.on_command("ping")
async def ping(ctx):
    await ctx.answer("pong")

@app.on_connect()
async def on_connect(ctx):
    print(f"+ {ctx.user}")

if __name__ == "__main__":
    app.run()

Client

from fognode import App, Cipher

app = App.client(
    connect_string="alice@oak-pine-stone-field:9443",
    password="secret",
    cipher=Cipher.AESGCM,
)

@app.on_message()
async def on_message(ctx):
    print(f"{ctx.message.user}: {ctx.message.text}")

if __name__ == "__main__":
    app.run()

Classic API

from fognode import start_server, client_connect

ip, code, fp = start_server("0.0.0.0", 9443, "alice", "secret")
print(f"Connect: alice@{code}:9443")

Structure

src/fognode/
├── app.py          # App class (aiogram-style)
├── cipher.py       # Cipher enum
├── context.py      # Context for handlers
├── message.py      # Message dataclass
├── router.py       # Router for handlers
├── filters/        # Command, Text filters
├── handlers/       # HandlerObject
├── types/          # exceptions, constants, protocol
├── crypto/         # primitives, kdf, cert, channel
├── ciphers/        # aesgcm, chacha20, x25519, hkdf, pbkdf2, hmac
├── wire/           # framing
├── auth/           # handshake
├── core/           # server, client, session, state
├── decorators.py   # retry, rate_limited, timed
├── exceptions.py   # errors
├── utils/          # ipwords, ratelimit, net
└── cli/            # entrypoint

MIT © reekeer

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

fognode-0.1.0.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

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

fognode-0.1.0-py3-none-any.whl (37.7 kB view details)

Uploaded Python 3

File details

Details for the file fognode-0.1.0.tar.gz.

File metadata

  • Download URL: fognode-0.1.0.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for fognode-0.1.0.tar.gz
Algorithm Hash digest
SHA256 16a953919554ec8495ab55502ed93be0a2864e50d54cb89b13a7016bffdee698
MD5 4a77340ccbe8934973d885a43121d16a
BLAKE2b-256 7c6e28e0f0b6b66938300ecb2d281199a7c69f5779a7dd444adecd2a30f6061c

See more details on using hashes here.

File details

Details for the file fognode-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fognode-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 37.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for fognode-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d2f582e9432820a1b98bab74e24ed36a69c1d4e905c0040e24c6d28f1e5bfbd
MD5 eda13cf9b0a6a39f25a5244fe70c5b17
BLAKE2b-256 b144bb0e4b13cc894987fd54a2b15d9d686f680a2af7938b53dfa79b692e35d0

See more details on using hashes here.

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