#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <memory>
#include <vector>
#include <gtest/gtest.h>
#include <openssl/asn1.h>
#include <openssl/bytestring.h>
#include <openssl/crypto.h>
#include <openssl/digest.h>
#include <openssl/err.h>
#include <openssl/md4.h>
#include <openssl/md5.h>
#include <openssl/nid.h>
#include <openssl/obj.h>
#include <openssl/sha.h>
#include "../internal.h"
#include "../test/test_util.h"
struct MD { … };
static const MD md4 = …;
static const MD md5 = …;
static const MD sha1 = …;
static const MD sha224 = …;
static const MD sha256 = …;
static const MD sha384 = …;
static const MD sha512 = …;
static const MD sha512_256 = …;
static const MD md5_sha1 = …;
static const MD blake2b256 = …;
struct DigestTestVector { … };
static const DigestTestVector kTestVectors[] = …;
static void CompareDigest(const DigestTestVector *test,
const uint8_t *digest,
size_t digest_len) { … }
static void TestDigest(const DigestTestVector *test) { … }
TEST(DigestTest, TestVectors) { … }
TEST(DigestTest, Getters) { … }
TEST(DigestTest, ASN1) { … }
TEST(DigestTest, TransformBlocks) { … }