uthenticode  2.0.1-19005f0
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
uthenticode.h File Reference
#include <openssl/asn1.h>
#include <openssl/asn1t.h>
#include <openssl/crypto.h>
#include <openssl/x509.h>
#include <pe-parse/parse.h>
#include <cstdint>
#include <exception>
#include <memory>
#include <optional>
#include <vector>
Include dependency graph for uthenticode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uthenticode::impl::Authenticode_SpcAttributeTypeAndOptionalValue
 
struct  uthenticode::impl::Authenticode_DigestInfo
 
struct  uthenticode::impl::Authenticode_SpcIndirectDataContent
 
struct  uthenticode::FormatError
 
class  uthenticode::Certificate
 
class  uthenticode::SignedData
 
class  uthenticode::WinCert
 

Namespaces

 uthenticode
 
 uthenticode::impl
 

Typedefs

using uthenticode::impl::BIO_ptr = std::unique_ptr< BIO, decltype(&BIO_free)>
 
using uthenticode::impl::ASN1_OBJECT_ptr = std::unique_ptr< ASN1_OBJECT, decltype(&ASN1_OBJECT_free)>
 
using uthenticode::impl::ASN1_TYPE_ptr = std::unique_ptr< ASN1_TYPE, decltype(&ASN1_TYPE_free)>
 
using uthenticode::impl::OpenSSL_ptr = std::unique_ptr< char, decltype(&OpenSSL_free)>
 
using uthenticode::impl::BN_ptr = std::unique_ptr< BIGNUM, decltype(&BN_free)>
 
using uthenticode::impl::STACK_OF_X509_ptr = std::unique_ptr< STACK_OF(X509), decltype(&SK_X509_free)>
 
using uthenticode::impl::SectionList = std::vector< const peparse::bounded_buffer * >
 
using uthenticode::Checksum = std::tuple< checksum_kind, std::string >
 

Enumerations

enum class  uthenticode::certificate_revision : std::uint16_t { uthenticode::CERT_REVISION_1_0 = 0x0100 , uthenticode::CERT_REVISION_2_0 = 0x0200 }
 
enum class  uthenticode::certificate_type : std::uint16_t { uthenticode::CERT_TYPE_X509 = 0x0001 , uthenticode::CERT_TYPE_PKCS_SIGNED_DATA = 0x0002 , uthenticode::CERT_TYPE_RESERVED_1 = 0x0003 , uthenticode::CERT_TYPE_PKCS1_SIGN = 0x0009 }
 
enum class  uthenticode::checksum_kind : std::uint8_t { uthenticode::UNKNOWN , uthenticode::MD5 , uthenticode::SHA1 , uthenticode::SHA256 }
 

Functions

void uthenticode::impl::OpenSSL_free (void *ptr)
 
void uthenticode::impl::SK_X509_free (stack_st_X509 *ptr)
 
std::ostream & uthenticode::operator<< (std::ostream &os, checksum_kind kind)
 
std::vector< WinCert > uthenticode::read_certs (peparse::parsed_pe *pe)
 
std::vector< Checksum > uthenticode::get_checksums (peparse::parsed_pe *pe)
 
std::optional< std::string > uthenticode::calculate_checksum (peparse::parsed_pe *pe, checksum_kind kind)
 
bool uthenticode::verify (peparse::parsed_pe *pe)
 

Variables

constexpr auto uthenticode::impl::SPC_INDIRECT_DATA_OID = "1.3.6.1.4.1.311.2.1.4"
 
constexpr auto uthenticode::impl::SPC_NESTED_SIGNATURE_OID = "1.3.6.1.4.1.311.2.4.1"
 

Detailed Description

The main uthenticode namespace.