Beispiel #1
0
        public static async Task <Dictionary <string, RemoteAttestation> > GetAndVerifyMultiRemoteAttestation(PushServiceSocket socket,
                                                                                                              PushServiceSocket.ClientSet clientSet,
                                                                                                              string enclaveName,
                                                                                                              string mrenclave,
                                                                                                              string authorization)
        {
            Curve25519KeyPair keyPair = BuildKeyPair();
            ResponsePair      result  = await MakeAttestationRequestAsync(socket, clientSet, authorization, enclaveName, keyPair);

            MultiRemoteAttestationResponse         response     = JsonUtil.FromJson <MultiRemoteAttestationResponse>(result.body);
            Dictionary <string, RemoteAttestation> attestations = new Dictionary <string, RemoteAttestation>();

            if (response.Attestations !.Count == 0 || response.Attestations.Count > 3)
            {
                throw new MalformedResponseException($"Incorrect number of attestations: {response.Attestations.Count}");
            }

            foreach (var entry in response.Attestations)
            {
                attestations.Add(entry.Key,
                                 ValidateAndBuildRemoteAttestation(entry.Value, result.cookies, keyPair, mrenclave));
            }

            return(attestations);
        }
 public static NetworkResponse Parse(MemoryStream dataStream)
 {
     var response = new ResponsePair();
     response.status = DataReader.ReadShort(dataStream);
     response.id = DataReader.ReadInt(dataStream);
     response.gameID = DataReader.ReadInt(dataStream);
     return response;
 }
    public static NetworkResponse Parse(MemoryStream dataStream)
    {
        var response = new ResponsePair();

        response.status = DataReader.ReadShort(dataStream);
        response.id     = DataReader.ReadInt(dataStream);
        response.gameID = DataReader.ReadInt(dataStream);
        return(response);
    }
Beispiel #4
0
        public static async Task <RemoteAttestation> GetAndVerifyRemoteAttestationAsync(PushServiceSocket socket,
                                                                                        PushServiceSocket.ClientSet clientSet,
                                                                                        string enclaveName,
                                                                                        string mrenclave,
                                                                                        string authorization)
        {
            Curve25519KeyPair keyPair = BuildKeyPair();
            ResponsePair      result  = await MakeAttestationRequestAsync(socket, clientSet, authorization, enclaveName, keyPair);

            RemoteAttestationResponse response = JsonUtil.FromJson <RemoteAttestationResponse>(result.body);

            return(ValidateAndBuildRemoteAttestation(response, result.cookies, keyPair, mrenclave));
        }
Beispiel #5
0
    public void OnPairResult(NetworkResponse response)
    {
        ResponsePair args   = response as ResponsePair;
        int          userID = GameState.account.account_id;

        if (args.status == 0)
        {
            Debug.Log("All players are ready to play [room id=" + args.id + "]");
            this.room_id = args.id;

            this.enableRRButton = true;
            this.enableCWButton = true;

            var room = RoomManager.getInstance().getRoom(args.id);
            if (!room.containsPlayer(userID))
            {
                room.addPlayer(userID);
            }

            // switch scene
            if (args.gameID == Constants.MINIGAME_RUNNING_RHINO)
            {
                RR.RRConnectionManager cManager = RR.RRConnectionManager.getInstance();
                cManager.Send(RR_RequestRaceInit());

                Game.SwitchScene("RRReadyScene");
            }
            else if (args.gameID == Constants.MINIGAME_CARDS_OF_WILD)
            {
                CW.GameManager.matchID = args.id;
                CW.NetworkManager.Send(CW.MatchInitProtocol.Prepare
                                           (GameState.player.GetID(), args.id),
                                       ProcessMatchInit);
            }
        }
        else
        {
            Debug.Log("New room allocated [room id=" + args.id + "]");
            var room = RoomManager.getInstance().addRoom(args.id, args.gameID);
            room.host = GameState.player.GetName();
            room.addPlayer(userID);

            this.enableRRButton = false;
            this.enableCWButton = false;
            this.waiting        = true;
        }
    }
Beispiel #6
0
    public void OnPairResult(NetworkResponse response)
    {
        ResponsePair args   = response as ResponsePair;
        int          userID = GameState.account.account_id;

        if (args.status == 0)
        {
            Debug.Log("All players are ready to play [room id=" + args.id + "]");
            this.room_id = args.id;

            this.enableRRButton = true;
            this.enableCWButton = true;
            // DH change
            this.enableMCButton = true;

            var room = RoomManager.getInstance().getRoom(args.id);
            if (!room.containsPlayer(userID))
            {
                room.addPlayer(userID);
            }

            // switch scene
            if (args.gameID == Constants.MINIGAME_RUNNING_RHINO)
            {
                RR.RRConnectionManager cManager = RR.RRConnectionManager.getInstance();
                cManager.Send(RR_RequestRaceInit());

                Game.SwitchScene("RRReadyScene");
            }
            else if (args.gameID == Constants.MINIGAME_CARDS_OF_WILD)
            {
                CW.GameManager.matchID = args.id;
                CW.NetworkManager.Send(CW.MatchInitProtocol.Prepare
                                           (GameState.player.GetID(), args.id),
                                       ProcessMatchInit);
            }
            else if (args.gameID == Constants.MINIGAME_MULTI_CONVERGENCE)
            {
                // DH change
                MultiConvergeGame.matchID = args.id; // game id
                short host = 0;                      // Default - not the host
                if (GameState.player.GetName() == room.host)
                {
                    host = 1;                      // this is the host
                }
                NetworkManager.Send(MCMatchInitProtocol.Prepare
                                        (GameState.player.GetID(), args.id, host, GameState.player.GetName()),
                                    MCProcessMatchInit);
                Debug.Log("MC notice sent to server(game id, player id): " + args.id + " " + GameState.player.GetID());
                Debug.Log("player id/name: " + userID + " " + GameState.player.GetName());
                Debug.Log("This player host value is: " + host);
            }
        }
        else
        {
            Debug.Log("New room allocated [room id=" + args.id + "]");
            var room = RoomManager.getInstance().addRoom(args.id, args.gameID);
            room.host = GameState.player.GetName();
            room.addPlayer(userID);

            this.enableRRButton = false;
            this.enableCWButton = false;
            // DH change
            this.enableMCButton = false;
            this.waiting        = true;
        }
    }