int main()

in scripts/openssl_3/main.c [29:58]


int main(int argc, char **argv) {
  int num_test_vectors = 0;

  FILE *fp;
  char buff[255];
  unsigned char msg[32];
  unsigned char pk[32];
  unsigned char sig[64];

  fp = fopen("../../cases.txt", "r");
  fscanf(fp, "%i", &num_test_vectors);
  printf("|OpenSSL-3.0    |");
  for (int i = 0; i < num_test_vectors; i++) {
    fscanf(fp, "%s", buff);
    hex_string_to_byte_array(buff + 4, 32, msg);
    fscanf(fp, "%s", buff);
    hex_string_to_byte_array(buff + 4, 32, pk);
    fscanf(fp, "%s", buff);
    hex_string_to_byte_array(buff + 4, 64, sig);

    EVP_MD_CTX *ctx = EVP_MD_CTX_new();
    EVP_PKEY *ed_pkey = EVP_PKEY_new_raw_public_key(NID_ED25519, NULL, pk, 32);
    EVP_DigestVerifyInit(ctx, NULL, NULL, NULL, ed_pkey);
    int result = EVP_DigestVerify(ctx, sig, 64, msg, 32);
    printf(result ? " V |" : " X |");
  }
  printf("\n");
  fclose(fp);
  return 1;
}