mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-04-10 19:15:13 +00:00
100 lines
3.1 KiB
Plaintext
100 lines
3.1 KiB
Plaintext
//========================================================================
|
|
//
|
|
// SignatureInfo.h
|
|
//
|
|
// This file is licensed under the GPLv2 or later
|
|
//
|
|
// Copyright 2015 André Guerreiro <aguerreiro1985@gmail.com>
|
|
// Copyright 2015 André Esser <bepandre@hotmail.com>
|
|
// Copyright 2015, 2017, 2018, 2020 Albert Astals Cid <aacid@kde.org>
|
|
// Copyright 2017 Hans-Ulrich Jüttner <huj@froreich-bioscientia.de>
|
|
// Copyright 2018 Chinmoy Ranjan Pradhan <chinmoyrp65@protonmail.com>
|
|
// Copyright 2018 Oliver Sander <oliver.sander@tu-dresden.de>
|
|
// Copyright 2021 Georgiy Sgibnev <georgiy@sgibnev.com>. Work sponsored by lab50.net.
|
|
// Copyright 2021 André Guerreiro <aguerreiro1985@gmail.com>
|
|
// Copyright 2021 Marek Kasik <mkasik@redhat.com>
|
|
//
|
|
//========================================================================
|
|
|
|
#ifndef SIGNATUREINFO_H
|
|
#define SIGNATUREINFO_H
|
|
|
|
#include <memory>
|
|
#include <ctime>
|
|
|
|
#include "poppler_private_export.h"
|
|
#include "goo/GooString.h"
|
|
|
|
enum SignatureValidationStatus
|
|
{
|
|
SIGNATURE_VALID,
|
|
SIGNATURE_INVALID,
|
|
SIGNATURE_DIGEST_MISMATCH,
|
|
SIGNATURE_DECODING_ERROR,
|
|
SIGNATURE_GENERIC_ERROR,
|
|
SIGNATURE_NOT_FOUND,
|
|
SIGNATURE_NOT_VERIFIED
|
|
};
|
|
|
|
enum CertificateValidationStatus
|
|
{
|
|
CERTIFICATE_TRUSTED,
|
|
CERTIFICATE_UNTRUSTED_ISSUER,
|
|
CERTIFICATE_UNKNOWN_ISSUER,
|
|
CERTIFICATE_REVOKED,
|
|
CERTIFICATE_EXPIRED,
|
|
CERTIFICATE_GENERIC_ERROR,
|
|
CERTIFICATE_NOT_VERIFIED
|
|
};
|
|
|
|
class X509CertificateInfo;
|
|
|
|
class POPPLER_PRIVATE_EXPORT SignatureInfo
|
|
{
|
|
public:
|
|
SignatureInfo();
|
|
SignatureInfo(SignatureValidationStatus, CertificateValidationStatus);
|
|
~SignatureInfo();
|
|
|
|
SignatureInfo(const SignatureInfo &) = delete;
|
|
SignatureInfo &operator=(const SignatureInfo &) = delete;
|
|
|
|
/* GETTERS */
|
|
SignatureValidationStatus getSignatureValStatus() const;
|
|
CertificateValidationStatus getCertificateValStatus() const;
|
|
const char *getSignerName() const;
|
|
const char *getSubjectDN() const;
|
|
const GooString &getLocation() const;
|
|
const GooString &getReason() const;
|
|
int getHashAlgorithm() const; // Returns a NSS3 HASH_HashType or -1 if compiled without NSS3
|
|
time_t getSigningTime() const;
|
|
bool isSubfilterSupported() const { return sig_subfilter_supported; }
|
|
const X509CertificateInfo *getCertificateInfo() const;
|
|
|
|
/* SETTERS */
|
|
void setSignatureValStatus(enum SignatureValidationStatus);
|
|
void setCertificateValStatus(enum CertificateValidationStatus);
|
|
void setSignerName(const char *);
|
|
void setSubjectDN(const char *);
|
|
void setLocation(const GooString *);
|
|
void setReason(const GooString *);
|
|
void setHashAlgorithm(int);
|
|
void setSigningTime(time_t);
|
|
void setSubFilterSupport(bool isSupported) { sig_subfilter_supported = isSupported; }
|
|
void setCertificateInfo(std::unique_ptr<X509CertificateInfo>);
|
|
|
|
private:
|
|
SignatureValidationStatus sig_status;
|
|
CertificateValidationStatus cert_status;
|
|
std::unique_ptr<X509CertificateInfo> cert_info;
|
|
char *signer_name;
|
|
char *subject_dn;
|
|
GooString location;
|
|
GooString reason;
|
|
int hash_type;
|
|
time_t signing_time;
|
|
bool sig_subfilter_supported;
|
|
};
|
|
|
|
#endif
|