79 lines
2.2 KiB
C
79 lines
2.2 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: Norbert Loxen, Marco Eichelberg
|
||
|
*
|
||
|
* Purpose:
|
||
|
* classes: SiBaseRSAProfile
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef SIBRSAPR_H
|
||
|
#define SIBRSAPR_H
|
||
|
|
||
|
#include "dcmtk/config/osconfig.h"
|
||
|
#include "dcmtk/dcmsign/sisprof.h" /* for SiSecurityProfile */
|
||
|
|
||
|
#ifdef WITH_OPENSSL
|
||
|
|
||
|
/** Base RSA Digital Signature Profile
|
||
|
*/
|
||
|
class DCMTK_DCMSIGN_EXPORT SiBaseRSAProfile: public SiSecurityProfile
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
/// default constructor
|
||
|
SiBaseRSAProfile() { }
|
||
|
|
||
|
/// destructor
|
||
|
virtual ~SiBaseRSAProfile() { }
|
||
|
|
||
|
/** 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
|