00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef SISPROF_H
00035 #define SISPROF_H
00036
00037 #include "osconfig.h"
00038 #include "sitypes.h"
00039
00040 #ifdef WITH_OPENSSL
00041
00042 #include "dcxfer.h"
00043
00044 class SiAlgorithm;
00045 class DcmItem;
00046 class DcmAttributeTag;
00047 class SiMAC;
00048 class DcmTagKey;
00049
00052 class SiSecurityProfile
00053 {
00054 public:
00055
00057 SiSecurityProfile() { }
00058
00060 virtual ~SiSecurityProfile() { }
00061
00066 virtual OFBool isAllowableMACType(E_MACType macType) const = 0;
00067
00072 virtual OFBool isAllowableMAC(const SiMAC& mac) const;
00073
00078 virtual OFBool isAllowableAlgorithmType(E_KeyType keyType) const = 0;
00079
00084 virtual OFBool isAllowableAlgorithm(const SiAlgorithm& algo) const;
00085
00090 virtual OFBool isAllowableTransferSyntax(E_TransferSyntax xfer) const = 0;
00091
00097 virtual OFBool attributeRequired(const DcmTagKey& key) const = 0;
00098
00104 virtual OFBool attributeForbidden(const DcmTagKey& key) const = 0;
00105
00113 virtual OFCondition updateAttributeList(DcmItem &item, DcmAttributeTag& tagList);
00114
00121 virtual OFBool checkAttributeList(DcmItem &item, DcmAttributeTag& tagList);
00122
00128 static OFBool containsTag(DcmAttributeTag& tagList, const DcmTagKey& key);
00129
00130 private:
00131
00133 SiSecurityProfile(SiSecurityProfile& arg);
00134
00136 SiSecurityProfile& operator=(SiSecurityProfile& arg);
00137
00138 };
00139
00140 #endif
00141 #endif
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163