test: test

This commit is contained in:
dqy 2023-10-24 21:43:34 +08:00
parent 0e3ecd475a
commit 3f5fbbcc91
2 changed files with 21 additions and 12 deletions

View File

@ -184,23 +184,23 @@ async def send_messages(
):
global pk, sk
id_list = []
print(node_ips)
# calculate id of nodes
for node_ip in node_ips:
node_ip = node_ip[0]
ip_parts = node_ip.split(".")
id = 0
for i in range(4):
id += int(ip_parts[i]) << (24 - (8 * i))
id_list.append(id)
# generate rk
rk_list = GenerateReKey(sk, pk_B, len(node_ips), shreshold, tuple(id_list)) # type: ignore
capsule_ct = Encrypt(pk, message) # type: ignore
for i in range(len(node_ips)):
url = "http://" + node_ips[i] + ":8001" + "/user_src?message"
url = "http://" + node_ips[i][0] + ":8001" + "/user_src?message"
print(url)
payload = {
"source_ip": local_ip,
"dest_ip": dest_ip,
@ -208,6 +208,7 @@ async def send_messages(
"rk": rk_list[i],
}
response = requests.post(url, json=payload)
if response.status_code == 200:
print(f"send to {node_ips[i]} successful")
return 0
@ -327,6 +328,7 @@ async def recieve_request(i_m: IP_Message):
# send message to nodes
await send_messages(tuple(node_ips), message, dest_ip, pk_B, threshold)
response = {"threshold": threshold, "public_key": own_public_key}
print("###############RESPONSE = ", response)
return response

View File

@ -6,6 +6,7 @@ import asyncio
from pydantic import BaseModel
from tpre import *
import os
from typing import Any, Tuple
@asynccontextmanager
@ -71,8 +72,15 @@ async def send_heartbeat_internal() -> None:
await asyncio.sleep(timeout)
class Req(BaseModel):
source_ip: str
dest_ip: str
capsule_ct: Tuple[capsule, bytes]
rk: Any
@app.post("/user_src") # 接收用户1发送的信息
async def receive_user_src_message(message: Request):
async def receive_user_src_message(message: Req):
global client_ip_src, client_ip_des
# kfrag , capsule_ct ,client_ip_src , client_ip_des = json_data[] # 看梁俊勇
"""
@ -83,12 +91,11 @@ async def receive_user_src_message(message: Request):
"rk": rk_list[i],
}
"""
data = await message.json()
source_ip = data.get("source_ip")
dest_ip = data.get("dest_ip")
capsule_ct = data.get("capsule_ct")
rk = data.get("rk")
print(type(message))
source_ip = message.source_ip
dest_ip = message.dest_ip
capsule_ct = message.capsule_ct
rk = message.rk
processed_message = ReEncrypt(rk, capsule_ct)
await send_user_des_message(source_ip, dest_ip, processed_message)
@ -108,4 +115,4 @@ async def send_user_des_message(source_ip: str, dest_ip: str, re_message): #
if __name__ == "__main__":
import uvicorn # pylint: disable=e0401
uvicorn.run("node:app", host="0.0.0.0", port=8001, reload=False)
uvicorn.run("node:app", host="0.0.0.0", port=8001, reload=True)