/usr/include/dcmtk/dcmsign/sicert.h is in libdcmtk-dev 3.6.2-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | /*
*
* Copyright (C) 1998-2011, OFFIS e.V.
* All rights reserved. See COPYRIGHT file for details.
*
* This software and supporting documentation were developed by
*
* OFFIS e.V.
* R&D Division Health
* Escherweg 2
* D-26121 Oldenburg, Germany
*
*
* Module: dcmsign
*
* Author: Norbert Loxen
*
* Purpose:
* classes: SiCertificate
*
*/
#ifndef SICERT_H
#define SICERT_H
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmsign/sitypes.h"
#ifdef WITH_OPENSSL
#include "dcmtk/ofstd/ofstring.h" /* for class OFString */
class DcmItem;
class SiAlgorithm;
struct x509_st;
typedef struct x509_st X509;
/** a class representing X.509 public key certificates.
*/
class DCMTK_DCMSIGN_EXPORT SiCertificate
{
public:
/// default constructor
SiCertificate();
///destructor
virtual ~SiCertificate();
/** loads an X.509 certificate from file.
* @param filename file name of X.509 certificate
* @param filetype file format: X509_FILETYPE_PEM or X509_FILETYPE_ASN1
* @return status code
*/
OFCondition loadCertificate(const char *filename, int filetype);
/** reads an X.509 certificate from an item of the Digital Signatures Sequence
* and checks the certificate type information in the item.
* @param item item of the DigitalSignatureSQ from which the certificate is read
* @return status code
*/
OFCondition read(DcmItem& item);
/** writes the current X.509 certificate into an item of the Digital Signatures Sequence
* and creates the certificate type information in the item.
* @param item item of the DigitalSignatureSQ to which the certificate is written
* @return dcmdata OFCondition status code
*/
OFCondition write(DcmItem& item);
/** returns the type of public key stored in this certificate
*/
E_KeyType getKeyType();
/** creates an SiAlgorithm object for the public key contained in this certificate.
* If no certificate loaded or operation fails, returns NULL.
* New SiAlgorithm object must be deleted by caller.
* @return pointer to new SiAlgorithm object
*/
SiAlgorithm *createAlgorithmForPublicKey();
/** returns the format version of the X.509 certificate.
* If no certificate is loaded, returns 0.
* @return X.509 certificate version
*/
long getX509Version();
/** returns the subject name (distinguished name) of the current certificate.
* If no certificate is loaded, returns an empty string.
* @param str subject name returned in this string.
*/
void getCertSubjectName(OFString& str);
/** returns the issuer name (distinguished name) of the current certificate.
* If no certificate is loaded, returns an empty string.
* @param str issuer name returned in this string.
*/
void getCertIssuerName(OFString& str);
/** returns the serial number of the X.509 certificate.
* If no certificate is loaded, returns -1.
* @return X.509 certificate serial number
*/
long getCertSerialNo();
/** returns the start of validity of the current certificate in human readable form.
* If no certificate is loaded, returns an empty string.
* @param str start of validity returned in this string.
*/
void getCertValidityNotBefore(OFString& str);
/** returns the end of validity of the current certificate in human readable form.
* If no certificate is loaded, returns an empty string.
* @param str end of validity returned in this string.
*/
void getCertValidityNotAfter(OFString& str);
/** returns the strength (number of bits) of the public key contained
* in the current certificate.
* If no certificate is loaded, returns 0.
* @return key strength in bits.
*/
long getCertKeyBits();
/** returns a pointer to the raw certificate structure or NULL if no
* certificate present. Should not be called by users of this library.
*/
X509 *getRawCertificate();
private:
/// private undefined copy constructor
SiCertificate(SiCertificate& arg);
/// private undefined copy assignment operator
SiCertificate& operator=(SiCertificate& arg);
/// OpenSSL X.509 structure
X509* x509;
};
#endif
#endif
|