81 lines
2.4 KiB
C++
81 lines
2.4 KiB
C++
/*
|
|
*
|
|
* 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: Marco Eichelberg
|
|
*
|
|
* Purpose:
|
|
* classes: SiNullProfile
|
|
*
|
|
*/
|
|
|
|
#ifndef SINULLPR_H
|
|
#define SINULLPR_H
|
|
|
|
#include "dcmtk/config/osconfig.h"
|
|
#include "dcmtk/dcmsign/sisprof.h" /* for SiSecurityProfile */
|
|
|
|
#ifdef WITH_OPENSSL
|
|
|
|
/** defines a "null" security profile that does not require or forbid any
|
|
* MAC algorithm, signature algorithm, or attribute tag. This class can be
|
|
* used to clean up a proposed attribute list against a dataset.
|
|
*/
|
|
class DCMTK_DCMSIGN_EXPORT SiNullProfile: public SiSecurityProfile
|
|
{
|
|
public:
|
|
|
|
/// default constructor
|
|
SiNullProfile() { }
|
|
|
|
/// destructor
|
|
virtual ~SiNullProfile() { }
|
|
|
|
/** checks whether the given MAC type can be used with this security profile.
|
|
* @param macType MAC type to be checked
|
|
* @return true if MAC type is allowable for this profile, false otherwise.
|
|
*/
|
|
virtual OFBool isAllowableMACType(E_MACType macType) const;
|
|
|
|
/** checks whether the given public/private key algorithm can be used with this security profile.
|
|
* @param keyType public key algorithm type to be checked
|
|
* @return true if public key algorithm is allowable for this profile, false otherwise.
|
|
*/
|
|
virtual OFBool isAllowableAlgorithmType(E_KeyType keyType) const;
|
|
|
|
/** checks whether the given transfer syntax can be used with this security profile
|
|
* @param xfer transfer syntax to be checked
|
|
* @return true if transfer syntax is allowable for this profile, false otherwise.
|
|
*/
|
|
virtual OFBool isAllowableTransferSyntax(E_TransferSyntax xfer) const;
|
|
|
|
/** checks whether an attribute with the given tag is required to be signed
|
|
* for the current security profile.
|
|
* @param key tag key to be checked
|
|
* @return true if required, false otherwise.
|
|
*/
|
|
virtual OFBool attributeRequired(const DcmTagKey& key) const;
|
|
|
|
/** checks whether an attribute with the given tag must not be signed
|
|
* for the current security profile.
|
|
* @param key tag key to be checked
|
|
* @return true if attribute must not be signed, false otherwise.
|
|
*/
|
|
virtual OFBool attributeForbidden(const DcmTagKey& key) const;
|
|
|
|
};
|
|
|
|
#endif
|
|
#endif
|