Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shikhary10/pysock
A Python package for creating E2E ( Server to Client )encrypted TCP server-client program, It also allows users to create a TCP chat application with E2E ( Client to Client ) encryption.
https://github.com/shikhary10/pysock
e2e encryption networking python socket tcp
Last synced: about 1 month ago
JSON representation
A Python package for creating E2E ( Server to Client )encrypted TCP server-client program, It also allows users to create a TCP chat application with E2E ( Client to Client ) encryption.
- Host: GitHub
- URL: https://github.com/shikhary10/pysock
- Owner: ShikharY10
- License: mit
- Created: 2021-08-01T21:47:35.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-10-16T07:38:55.000Z (about 3 years ago)
- Last Synced: 2024-11-14T16:48:38.283Z (about 2 months ago)
- Topics: e2e, encryption, networking, python, socket, tcp
- Language: Python
- Homepage: https://pypi.org/project/PySock/0.0.2/
- Size: 97.7 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### This Repository is depricated and you can use shiSock which is just same thing but with lots of refactoring and advancement
A python package for creating multi-client server with high level of abstarction, meaning user don't need to write 100s of lines of code. User can write a multi-client server with just 12 lines fo code, it's that simple.
In addition to this PySock also make the connections end-to-end encrypted. It also provide the functionality of creating a end-to-end encrypted connection between two or more client, meaning client can share the data with others client available.In more simple terms PySock brings to versions of multi-client server. First one is just normal multi-client server with no encryption, user need to write there own wrapper kind fucntion to make it secure if they wants. Other version is highly secure. PySock implements E2E with the help of AES.
The encryption is not just limited to client-server communication but it also encrypts cleint-client communication.## Below there are two examples listed, first is secure other is unsecure:
---
>
Sample Secure Server
Before creating secure version of server make sure you have a .yaml file as it is required
server.py
```python
from PySock import Sserverdef client_msg(data):
print(f"Message From : {data['sender_name']} => {data['data']}")s = Sserver(
file = r'server_yml.yaml',
debug = False
)
s.SERVER("localhost",1234,10)
s.CREATE_CHANNEL("test")new_client = []
while True:
for d in s.varifiedDevices:
if d in s.conClients:
if d not in new_client:
s.SEND(d,"test","Hello From Server")
new_client.append(d)
else:
if d in new_client:
new_client.remove(d)s.LISTEN("test",client_msg)
```>
Sample Secure Clients
Before creating server make sure you have a .yaml file as it is required
clientOne.py
```python
from PySock import Sclientname = "shikhar"
def abc(data,con):
print(f"Message from : {data['sender_name']} => {data['data']}")
con.SEND("test","Hello!")def client_msg(data):
print(f"Message from : {data['sender_name']} => {data['data']}")c = Sclient(client_name = name, file = r'clientOne_yml.yaml', debug = False)
c.CLIENT("localhost",1234)
c.CREATE_CHANNEL("test")c.HANDSHAKE(target_name = "swat")
count = 0
while True:
c.LISTEN( channel = "test", function = abc, args = (c,) )
c.LISTEN( channel = "DSP_MSG", function = client_msg)if count == 0:
if c.check("swat") in c.HS_Devices:
c.SEND_TO_CLIENT(target_name = "swat", data = "Hello, what are you doing.")
count += 1
```clientTwo.py
```python
from PySock import Sclientname = "swat"
def abc(data,con):
print(f"Message from : {data['sender_name']} => {data['data']}")
con.SEND("test","What are you doing!")def client_msg(data,con):
print(f"Message From : {data['sender_name']} => {data['data']}")
con.SEND_TO_CLIENT(target_name = data["sender_name"], data = f"Hello From {name}")c = Sclient(client_name = name, file = r'clientTwo_yml.yaml', debug = False)
c.CLIENT("localhost",1234)
c.CREATE_CHANNEL("test")count = 0
while True:
c.LISTEN( channel = "test", function = abc, args = (c,) )
c.LISTEN( channel = "DSP_MSG", function = client_msg, args = (c,))if count == 0:
if "swat" in c.HS_Devices:
c.SEND_TO_CLIENT(target_name = "swat", data = "Hello, what are you doing.")
count += 1
```### ===You can add as many client like these===
### Result after running server.py, clientOne.py and clientTwo.py
![Markdown logo](resource/PySock-test.png)
---
---## Now its time for normal multi-client server and clients:
>
Sample Server
server.py
```python
from PySock import serverdef client_msg(data):
print(f"Message From : {data['sender_name']} => {data['data']}")s = server(secure = False,debug = True)
s.SERVER("localhost",8888,10)
s.CREATE_CHANNEL("test")new_client = []
while True:
for d in s.conClients:
if d not in new_client:
s.SEND(d,"test","Hello From Server")
new_client.append(d)s.LISTEN("test",client_msg)
```>
Sample Clients
clientOne.py
```python
from PySock import clientname = "shikhar"
def abc(data,con):
print(f"Message from {data['sender_name']} : {data['data']}")
con.SEND("test","Hello!")c = client(client_name = name, debug = True)
c.CLIENT("localhost",8888)
c.CREATE_CHANNEL("test")count = 0
while True:
c.LISTEN( channel = "test", function = abc, args = (c,) )if count == 0:
c.SEND_TO_CLIENT(target_name = "swat", data = "Hello, what are you doing.")
count += 1```
clientTwo.py
```python
from PySock import clientdef abc(data,con):
print(f"Message from {data['sender_name']} : {data['data']}")
con.SEND("test","Hurrah! it's working.")def client_msg(data):
print(f"Message from : {data['sender_name']} => {data['data']}")c = client(client_name = "swat", debug = True)
c.CLIENT("localhost",8888)
c.CREATE_CHANNEL("test")
while True:
c.LISTEN( channel = "test", function = abc, args = (c,) )c.LISTEN( channel = "DSP_MSG", function = client_msg)
```
There is no docs for this library but i'm working on docs, hope it will uploaded soon.Thanks for visiting
---