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;
}