#include <stdio.h>
#include <utility>
#include <vector>
#include <gtest/gtest.h>
#include <openssl/bn.h>
#include <openssl/bytestring.h>
#include <openssl/crypto.h>
#include <openssl/ec.h>
#include <openssl/ec_key.h>
#include <openssl/ecdh.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/nid.h>
#include <openssl/sha.h>
#include "../test/file_test.h"
#include "../test/test_util.h"
#include "../test/wycheproof_util.h"
static const EC_GROUP *GetCurve(FileTest *t, const char *key) { … }
static bssl::UniquePtr<BIGNUM> GetBIGNUM(FileTest *t, const char *key) { … }
TEST(ECDHTest, TestVectors) { … }
static void RunWycheproofTest(FileTest *t) { … }
TEST(ECDHTest, WycheproofP224) { … }
TEST(ECDHTest, WycheproofP256) { … }
TEST(ECDHTest, WycheproofP384) { … }
TEST(ECDHTest, WycheproofP512) { … }
static bssl::UniquePtr<EC_GROUP> MakeCustomGroup() { … }
TEST(ECDHTest, GroupMismatch) { … }