static void test_precomp(void) {

    long long i, j;

    pseudorandombytes(space, sizeof space);

    checksum_zero();
    for (i = 0; i < 1080; ++i) {
        for (j = 31; j >= 0; --j) sk[j     ] = skdata[i][j];
        for (j = 31; j >= 0; --j) sk[j + 32] = skdata[i][j];
        for (j = 63; j >= 0; --j) pk[j     ] = pkdata[i][j];
        if (iszero(sk)) continue;
        crypto_sign_nistp256ecdsa(sm, &smlen, space, MLEN - i, sk);
        checksum(sm, crypto_sign_nistp256ecdsa_BYTES);
        if (crypto_sign_nistp256ecdsa_open(m, &mlen, sm, smlen, pk) != 0) {
            fail_printdata("sm", sm, smlen);
            fail_printdata("pk", pk, crypto_sign_nistp256ecdsa_PUBLICKEYBYTES);
            fail_printdata("sk", sk, crypto_sign_nistp256ecdsa_SECRETKEYBYTES);
            fail("crypto_sign_nistp256ecdsa_open() failure, please report it !!!!!!!!!");
        }
    }
    if (!checksum_check((test_precomp_checksumsha2)) && !checksum_check((test_precomp_checksumsha3))) {
        fail_whenbadchecksum(test_precomp_checksumsha3);
    }
}
Exemple #2
0
int recognize_packet(uint8_t * buff){
  struct nhrp_fixed_h *fixed = (struct nhrp_fixed_h *)buff;
  uint8_t  type;
  if(!checksum_check(buff)){
    printf("mpcd: p_recogn.c: checksum error!\n");
    return -1;
  }
  if (fixed->ar_extoff > (fixed->ar_pktsz - sizeof(struct nhrp_extension))) {
          printf("mpcd: p_recogn.c: extension offset beyond packet limits!\n");
          return -1;
  }
  type = fixed->ar_op_type;
  dprintf("mpcd: p_recogn.c: ");
  switch(type){
  case NHRP_PURGE_REQUEST :
    dprintf("purge request received.\n");
    return nhrp_purge_request(buff);
  case MPOA_CACHE_IMPOSITION_REQUEST :
    dprintf("cache imposition request recieved.\n");
    return mpoa_cache_imposition_request(buff);
  case MPOA_EGRESS_CACHE_PURGE_REPLY :
    dprintf("mpoa egress cache purge reply recieved.\n");
    return mpoa_egress_cache_purge_reply(buff);
  case MPOA_KEEP_ALIVE : 
    dprintf("keep alive recieved. \n");
    return mpoa_keep_alive(buff);
  case MPOA_TRIGGER :
    printf("mpoa trigger recieved. \n");
    return mpoa_trigger(buff);
  case MPOA_RESOLUTION_REPLY:
    dprintf("mpoa resolution reply recieved. \n");
    return mpoa_resolution_reply(buff); 
  default:
    printf("p_recogn.c: unrecognized packet: %d\n",type);
    return -1;
  }
}