Skip to content

SGProcessingManager/src/util/sha256.cpp

Namespaces

Name
sgns
sgns::sgprocmanagersha

Functions

Name
std::vector< uint8_t > sha256(const void * data, size_t dataSize)

Functions Documentation

function sha256

std::vector< uint8_t > sha256(
    const void * data,
    size_t dataSize
)

Source code

#include "util/sha256.hpp"

#include <openssl/evp.h>

namespace sgns::sgprocmanagersha
{
    std::vector<uint8_t> sha256(const void* data, size_t dataSize) {
        std::vector<uint8_t> hash(EVP_MAX_MD_SIZE);
        unsigned int hashLen;

        EVP_MD_CTX* ctx = EVP_MD_CTX_new();
        EVP_DigestInit_ex(ctx, EVP_sha256(), nullptr);
        EVP_DigestUpdate(ctx, data, dataSize);
        EVP_DigestFinal_ex(ctx, hash.data(), &hashLen);
        EVP_MD_CTX_free(ctx);

        hash.resize(hashLen);
        return hash;
    }
} // namepace sgns::sgprocmanagersha

Updated on 2026-03-04 at 13:10:44 -0800