Example #1
0
Ref<ByteArray> keyExpansion(ByteArray *key, int Nr)
{
    if (Nr <= 0) Nr = numRounds(key->count() / 4);
    Ref<ByteArray> w = ByteArray::create(Ns * (Nr + 1));

    const int Nk = key->count() / 4;
    int i = 0;

    for (; i < Nk; ++i) {
        w->wordAt(i) =
            word(
                key->at(4 * i),
                key->at(4 * i + 1),
                key->at(4 * i + 2),
                key->at(4 * i + 3)
            );
    }

    for (; i < w->count() / 4; ++i) {
        uint32_t h = w->wordAt(i - 1);
        if (i % Nk == 0)
            h = subWord(rotWord(h)) ^ rCon(i / Nk);
        else if (Nk > 6 && i % Nk == 4)
            h = subWord(h);
        w->wordAt(i) = w->wordAt(i - Nk) ^ h;
    }

    return w;
}
const CMTSumCheckResults CMTSumCheckVerifier::
run()
{
  MPZVector expected(trueSums);
  MPZVector poly(conf.batchSize() * polySize);

  CMTSumCheckResults results(numRounds(), conf.batchSize());
  results.success = true;

  for (int i = 0; i < numRounds(); i++)
  {
    results.success = results.success &&
                      doRound(expected,
                              results,
                              i, poly, expected);
  }

  results.success = results.success &&
                    doFinalCheck(results, expected);

  return results;
}
Example #3
0
	BehaviorTreeNode* CNormalMode::roundsSequence(){
		BehaviorTreeInternalNode* sequence = new SequentialNode();
		for(int r=0; r<numRounds(); ++r){
			sequence->addChild(new CCleanHud);
			sequence->addChild(getPlayerHudVisbility(true));
			for(int p=0; p<numPlayers(); ++p) {
				sequence->addChild(new CResetTimeNode((CModeBT*)this));
				sequence->addChild(askQuestionToPlayerSequence(p, r));
				sequence->addChild(answerSequence());
				sequence->addChild(new CSetButtonStatus(_bColorAnswers[0], CButton::NORMAL));		/// Limpio las respuestas
				sequence->addChild(new CSetButtonStatus(_bColorAnswers[1], CButton::NORMAL));
				sequence->addChild(new CSetButtonStatus(_bColorAnswers[2], CButton::NORMAL));
				sequence->addChild(new CSetButtonStatus(_bColorAnswers[3], CButton::NORMAL));
				sequence->addChild(new CRandomIdleNode(1000));
				sequence->addChild(new CAnimateAvatarNode(_players[p], "LEGS_SWINGING", "TORSO_SWINGING", "HEAD_IDLE"));
				sequence->addChild(new CSetButtonStatus(_bPlayerName[p], CButton::NORMAL));
				sequence->addChild(new CNextQuestionNode(this));
				sequence->addChild(new CNextPlayerNode(this));
				//std::cout<<"Jugador: "<<p<<" Pregunta: "<<p+(numPlayers()*r)<<" en ronda: "<<r<<"\n";
			}

			sequence->addChild(new CNextRoundNode(this));

			sequence->addChild((new CConditionNode(new CEndModeCondition))		/// Compruebo si quedan rondas
					->addChild((new SequentialNode())
							->addChild(new CClearCameraQueue)
							->addChild(new COrientAvatarNode(_host,180.0f))
							->addChild(new CChangeStateNode("intro_ganadores"))
							)
					);
			sequence->addChild((new CInvertedConditionNode(new CEndModeCondition))
					->addChild(scoreReviewSequence())
					);
			sequence->addChild(new CClearCameraQueue);
		}

		return sequence;
	}