OFFIS DCMTK  Version 3.6.0
sisprof.h
1 /*
2  *
3  * Copyright (C) 1998-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmsign
15  *
16  * Author: Norbert Loxen, Marco Eichelberg
17  *
18  * Purpose:
19  * classes: SiSecurityProfile
20  *
21  * Last Update: $Author: joergr $
22  * Update Date: $Date: 2010-10-14 13:17:25 $
23  * CVS/RCS Revision: $Revision: 1.7 $
24  * Status: $State: Exp $
25  *
26  * CVS/RCS Log at end of file
27  *
28  */
29 
30 #ifndef SISPROF_H
31 #define SISPROF_H
32 
33 #include "dcmtk/config/osconfig.h"
34 #include "dcmtk/dcmsign/sitypes.h" /* for E_KeyType */
35 
36 #ifdef WITH_OPENSSL
37 
38 #include "dcmtk/dcmdata/dcxfer.h" /* for E_TransferSyntax */
39 
40 class SiAlgorithm;
41 class DcmItem;
42 class DcmAttributeTag;
43 class SiMAC;
44 class DcmTagKey;
45 
49 {
50 public:
51 
54 
56  virtual ~SiSecurityProfile() { }
57 
62  virtual OFBool isAllowableMACType(E_MACType macType) const = 0;
63 
68  virtual OFBool isAllowableMAC(const SiMAC& mac) const;
69 
74  virtual OFBool isAllowableAlgorithmType(E_KeyType keyType) const = 0;
75 
80  virtual OFBool isAllowableAlgorithm(const SiAlgorithm& algo) const;
81 
86  virtual OFBool isAllowableTransferSyntax(E_TransferSyntax xfer) const = 0;
87 
93  virtual OFBool attributeRequired(const DcmTagKey& key) const = 0;
94 
100  virtual OFBool attributeForbidden(const DcmTagKey& key) const = 0;
101 
109  virtual OFCondition updateAttributeList(DcmItem &item, DcmAttributeTag& tagList);
110 
117  virtual OFBool checkAttributeList(DcmItem &item, DcmAttributeTag& tagList);
118 
124  static OFBool containsTag(DcmAttributeTag& tagList, const DcmTagKey& key);
125 
126 private:
127 
130 
133 
134 };
135 
136 #endif
137 #endif
138 
139 /*
140  * $Log: sisprof.h,v $
141  * Revision 1.7 2010-10-14 13:17:25 joergr
142  * Updated copyright header. Added reference to COPYRIGHT file.
143  *
144  * Revision 1.6 2005-12-08 16:04:45 meichel
145  * Changed include path schema for all DCMTK header files
146  *
147  * Revision 1.5 2003/06/04 14:21:03 meichel
148  * Simplified include structure to avoid preprocessor limitation
149  * (max 32 #if levels) on MSVC5 with STL.
150  *
151  * Revision 1.4 2001/11/16 15:50:50 meichel
152  * Adapted digital signature code to final text of supplement 41.
153  *
154  * Revision 1.3 2001/09/26 14:30:22 meichel
155  * Adapted dcmsign to class OFCondition
156  *
157  * Revision 1.2 2001/06/01 15:50:51 meichel
158  * Updated copyright header
159  *
160  * Revision 1.1 2000/11/07 16:48:59 meichel
161  * Initial release of dcmsign module for DICOM Digital Signatures
162  *
163  *
164  */
165 
SiSecurityProfile()
default constructor
Definition: sisprof.h:53
a class representing a list of DICOM elements in which each element has a different tag and elements ...
Definition: dcitem.h:51
class maintaining a attribute tag (group and element number)
Definition: dctagkey.h:46
virtual ~SiSecurityProfile()
destructor
Definition: sisprof.h:56
virtual OFBool isAllowableAlgorithm(const SiAlgorithm &algo) const
checks whether the given public/private key object can be used with this security profile...
virtual OFBool isAllowableMAC(const SiMAC &mac) const
checks whether the given MAC object can be used with this security profile.
SiSecurityProfile & operator=(SiSecurityProfile &arg)
private undefined copy assignment operator
static OFBool containsTag(DcmAttributeTag &tagList, const DcmTagKey &key)
checks if the given tag key is contained in the given list.
abstract base class for all security profiles.
Definition: sisprof.h:48
virtual OFBool isAllowableMACType(E_MACType macType) const =0
checks whether the given MAC type can be used with this security profile.
virtual OFCondition updateAttributeList(DcmItem &item, DcmAttributeTag &tagList)
updates the given list of attribute tags according to the requirements of the current security profil...
pure virtual base class of the public key crypto systems used for signature creation and verification...
Definition: sialgo.h:46
a base class for all classes that implement hash functions.
Definition: simac.h:41
virtual OFBool checkAttributeList(DcmItem &item, DcmAttributeTag &tagList)
checks whether the given list of attribute tags fulfils the requirements of the current security prof...
virtual OFBool attributeRequired(const DcmTagKey &key) const =0
checks whether an attribute with the given tag is required to be signed for the current security prof...
virtual OFBool attributeForbidden(const DcmTagKey &key) const =0
checks whether an attribute with the given tag must not be signed for the current security profile...
virtual OFBool isAllowableAlgorithmType(E_KeyType keyType) const =0
checks whether the given public/private key algorithm can be used with this security profile...
virtual OFBool isAllowableTransferSyntax(E_TransferSyntax xfer) const =0
checks whether the given transfer syntax can be used with this security profile
General purpose class for condition codes.
Definition: ofcond.h:305
a class representing the DICOM value representation 'Attribute Tag' (AT)
Definition: dcvrat.h:40


Generated on Sun Aug 23 2015 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.9.1