Skip to main content

Open-source crypto-secure communication system

Project description

OSSCS

This is small messanger base.

It is:

  • open source
  • crypto secure
  • peer to peer
  • end to end encrypted

Installing

pip install osscs

Usage

import threading

from osscs.backend.client import MessageSender
from osscs.backend.server import MessageListener
from osscs.backend.core import SocketSender, SocketListener
from osscs.backend.storage import IPv4Address
from osscs.backend.models import Message, MessagePreparer, User
from osscs.cryptography.core import SignatureFabric, Encryptor, KeyLoader, Decryptor, SignatureVerifier
from osscs.types import BaseAddress


password = '12345'

addr = IPv4Address('127.0.0.1', 12012)

key_loader = KeyLoader()

decryptor = Decryptor(key_loader, key_loader.generate_private_key(), password)
encryptor = Encryptor(key_loader, decryptor.public_key())

signature_fabric = SignatureFabric(encryptor, decryptor)
signature_verifier = SignatureVerifier(encryptor, key_loader)


message_preparer = MessagePreparer(encryptor, decryptor, signature_fabric)
message_sender = MessageSender(SocketSender())
message_listener = MessageListener(SocketListener())

def on_message(message: Message, address: BaseAddress) -> None:
    user = 'Anonim'
    if message.signature and signature_verifier(message.signature):
        user = User(Encryptor(key_loader, key_loader.get_rsa_public_key(message.signature.public_key)))
    print(f'{user}[{address.data()}]: {decryptor.decrypt(message.text)}')

threading.Thread(
    target=message_listener.listen_on,
    args=[addr, on_message]
).start()

message = Message(text=b'Hello world')
message_preparer.encrypt(message, User(encryptor))
message_preparer.sign(message)

message_sender.send(
    message,
    addr
)

Documentation in DOC.py

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

osscs-0.0.9.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

osscs-0.0.9-py3-none-any.whl (26.9 kB view details)

Uploaded Python 3

File details

Details for the file osscs-0.0.9.tar.gz.

File metadata

  • Download URL: osscs-0.0.9.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for osscs-0.0.9.tar.gz
Algorithm Hash digest
SHA256 9ccd76d592c66036889965b40fc718cf12821f7493b0014085fce0cc07bc7a24
MD5 3aa22e2c81f137230ffbd2afca481902
BLAKE2b-256 07ab060a05b24513108dff6fe4f10b9c609aa14ae645b12ce4f660f99ea31b3c

See more details on using hashes here.

File details

Details for the file osscs-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: osscs-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 26.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for osscs-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d6e0d781304d88d8c430d983439c1cad3c3950d2534f181ce9ff7fa2ddc3f4ee
MD5 9c836c87de4002413c598a3c627123f2
BLAKE2b-256 f3e5c543d91610f12e8d92d3f0d04e6cb38301dc742b78f7b1c8fc676cf9c3ba

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