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.2.2.tar.gz (31.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.2.2-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fognode-0.2.2.tar.gz
  • Upload date:
  • Size: 31.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fognode-0.2.2.tar.gz
Algorithm Hash digest
SHA256 a5d2e41cf025fb5297a2d43e10de3bd1c2bc946822d2b511a42d0f706c25407d
MD5 04f18d90713461bc3aaa1b57af3f24e3
BLAKE2b-256 daad59c33ad50055db9eefc2a56616908cb5c37f3011c0d5878a4f7aad21a31b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fognode-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fognode-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 191b7416fc9e1db3e96f7922921ce9f23c58cac9dd2dbeedf492c65dcb455aa4
MD5 e0859c138993f87ddbeed24b6596d596
BLAKE2b-256 f7126fee726203812ba313cca6c30a1570a80a209b62f17ac43c4a5ef20bf55d

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