dcmsign/include/dcmtk/dcmsign/sisprof.h

00001 /*
00002  *
00003  *  Copyright (C) 1998-2010, OFFIS e.V.
00004  *  All rights reserved.  See COPYRIGHT file for details.
00005  *
00006  *  This software and supporting documentation were developed by
00007  *
00008  *    OFFIS e.V.
00009  *    R&D Division Health
00010  *    Escherweg 2
00011  *    D-26121 Oldenburg, Germany
00012  *
00013  *
00014  *  Module: dcmsign
00015  *
00016  *  Author: Norbert Loxen, Marco Eichelberg
00017  *
00018  *  Purpose:
00019  *    classes: SiSecurityProfile
00020  *
00021  *  Last Update:      $Author: joergr $
00022  *  Update Date:      $Date: 2010-10-14 13:17:25 $
00023  *  CVS/RCS Revision: $Revision: 1.7 $
00024  *  Status:           $State: Exp $
00025  *
00026  *  CVS/RCS Log at end of file
00027  *
00028  */
00029 
00030 #ifndef SISPROF_H
00031 #define SISPROF_H
00032 
00033 #include "dcmtk/config/osconfig.h"
00034 #include "dcmtk/dcmsign/sitypes.h"  /* for E_KeyType */
00035 
00036 #ifdef WITH_OPENSSL
00037 
00038 #include "dcmtk/dcmdata/dcxfer.h"   /* for E_TransferSyntax */
00039 
00040 class SiAlgorithm;
00041 class DcmItem;
00042 class DcmAttributeTag;
00043 class SiMAC;
00044 class DcmTagKey;
00045 
00048 class SiSecurityProfile
00049 {
00050 public:
00051 
00053   SiSecurityProfile() { }
00054 
00056   virtual ~SiSecurityProfile() { }
00057   
00062   virtual OFBool isAllowableMACType(E_MACType macType) const = 0;
00063 
00068   virtual OFBool isAllowableMAC(const SiMAC& mac) const;
00069 
00074   virtual OFBool isAllowableAlgorithmType(E_KeyType keyType) const = 0;
00075   
00080   virtual OFBool isAllowableAlgorithm(const SiAlgorithm& algo) const;
00081 
00086   virtual OFBool isAllowableTransferSyntax(E_TransferSyntax xfer) const = 0;
00087   
00093   virtual OFBool attributeRequired(const DcmTagKey& key) const = 0;
00094 
00100   virtual OFBool attributeForbidden(const DcmTagKey& key) const = 0;
00101   
00109   virtual OFCondition updateAttributeList(DcmItem &item, DcmAttributeTag& tagList);
00110 
00117   virtual OFBool checkAttributeList(DcmItem &item, DcmAttributeTag& tagList);
00118 
00124   static OFBool containsTag(DcmAttributeTag& tagList, const DcmTagKey& key);
00125 
00126 private:
00127 
00129   SiSecurityProfile(SiSecurityProfile& arg);
00130 
00132   SiSecurityProfile& operator=(SiSecurityProfile& arg);
00133 
00134 };
00135 
00136 #endif
00137 #endif
00138 
00139 /*
00140  *  $Log: sisprof.h,v $
00141  *  Revision 1.7  2010-10-14 13:17:25  joergr
00142  *  Updated copyright header. Added reference to COPYRIGHT file.
00143  *
00144  *  Revision 1.6  2005-12-08 16:04:45  meichel
00145  *  Changed include path schema for all DCMTK header files
00146  *
00147  *  Revision 1.5  2003/06/04 14:21:03  meichel
00148  *  Simplified include structure to avoid preprocessor limitation
00149  *    (max 32 #if levels) on MSVC5 with STL.
00150  *
00151  *  Revision 1.4  2001/11/16 15:50:50  meichel
00152  *  Adapted digital signature code to final text of supplement 41.
00153  *
00154  *  Revision 1.3  2001/09/26 14:30:22  meichel
00155  *  Adapted dcmsign to class OFCondition
00156  *
00157  *  Revision 1.2  2001/06/01 15:50:51  meichel
00158  *  Updated copyright header
00159  *
00160  *  Revision 1.1  2000/11/07 16:48:59  meichel
00161  *  Initial release of dcmsign module for DICOM Digital Signatures
00162  *
00163  *
00164  */
00165 


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1