diff --git a/nvflare/lighter/dummy_project.yml b/nvflare/lighter/dummy_project.yml index e16aef44df..3acb1aff99 100644 --- a/nvflare/lighter/dummy_project.yml +++ b/nvflare/lighter/dummy_project.yml @@ -67,12 +67,12 @@ builders: args: sp_end_point: server1:8002:8003 - docker_image: localhost/nvflare:0.0.1 - - - path: nvflare.lighter.impl.docker.DockerBuilder - args: - docker_image: localhost/nvflare:0.0.1 - base_image: python:3.10 - requirements_file: docker_compose_requirements.txt +# docker_image: localhost/nvflare:0.0.1 +# +# - path: nvflare.lighter.impl.docker.DockerBuilder +# args: +# docker_image: localhost/nvflare:0.0.1 +# base_image: python:3.10 +# requirements_file: docker_compose_requirements.txt - path: nvflare.lighter.impl.cert.CertBuilder - path: nvflare.lighter.impl.signature.SignatureBuilder diff --git a/nvflare/private/fed/simulator/simulator_server.py b/nvflare/private/fed/simulator/simulator_server.py index 69d1f16df1..881eed6039 100644 --- a/nvflare/private/fed/simulator/simulator_server.py +++ b/nvflare/private/fed/simulator/simulator_server.py @@ -25,6 +25,7 @@ from ..server.fed_server import FederatedServer from ..server.server_engine import ServerEngine +from ..utils.identity_utils import IdentityAsserter class SimulatorServerEngine(ServerEngine): @@ -77,6 +78,22 @@ def create_job_processing_context_properties(self, workspace, job_id): return {} +class SimulatorIdentityAsserter(IdentityAsserter): + + def __init__(self, private_key_file: str, cert_file: str): + self.private_key_file = private_key_file + self.cert_file = cert_file + + def sign_common_name(self, nonce: str) -> str: + return nonce + + def sign(self, content, return_str: bool) -> str: + return "signature" + + def verify_signature(self, content, signature) -> bool: + return True + + class SimulatorServer(FederatedServer): def __init__( self, @@ -143,6 +160,9 @@ def _create_server_engine(self, args, snapshot_persistor): server=self, args=args, client_manager=self.client_manager, snapshot_persistor=snapshot_persistor ) + def _get_id_asserter(self): + return SimulatorIdentityAsserter("private_key_file", "cert_file") + def deploy(self, args, grpc_args=None, secure_train=False): super(FederatedServer, self).deploy(args, grpc_args, secure_train) os.makedirs(os.path.join(args.workspace, "local"), exist_ok=True)