DCMTK Version 3.7.0 OFFIS DICOM Toolkit

Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
SiSecurityProfile Class Referenceabstract

abstract base class for all security profiles. More...

Inheritance diagram for SiSecurityProfile:

## Public Member Functions
| SiSecurityProfile ()
| default constructor
virtual | ~SiSecurityProfile ()
| destructor
virtual OFBool | isAllowableMACType (E_MACType macType) const =0
| checks whether the given MAC type can be used with this security profile. More...
virtual OFBool | isAllowableMAC (const SiMAC &mac) const
| checks whether the given MAC object can be used with this security profile. More...
virtual OFBool | isAllowableAlgorithmType (E_KeyType keyType) const =0
| checks whether the given public/private key algorithm can be used with this security profile. More...
virtual OFBool | isAllowableAlgorithm (const SiAlgorithm &algo) const
| checks whether the given public/private key object can be used with this security profile. More...
virtual OFBool | isAllowableTransferSyntax (E_TransferSyntax xfer) const =0
| checks whether the given transfer syntax can be used with this security profile More...
virtual OFBool | attributeRequiredIfPresent (const DcmTagKey &key) const =0
| checks whether an attribute with the given tag is required to be signed for the current security profile if the attribute is present in the dataset More...
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. More...
virtual OFCondition | updateAttributeList (DcmItem &item, DcmAttributeTag &tagList)
| updates the given list of attribute tags according to the requirements of the current security profile. More...
virtual OFCondition | createAttributeList (DcmItem &item, DcmAttributeTag &tagList)
| create a maximum list of attribute tags according to the requirements of the current security profile. More...
virtual OFBool | checkAttributeList (DcmItem &item, DcmAttributeTag &tagList)
| checks whether the given list of attribute tags fulfils the requirements of the current security profile for the given dataset. More...
virtual OFBool | checkRequiredAttributeList (DcmAttributeTag &tagList) const =0
| checks whether all attributes that are required unconditionally to be signed in this profile are included in the given tagList. More...
virtual OFCondition | inspectSignatureDataset (DcmItem &item)=0
| some digital signature profiles specify conditions under which certain attributes must be included into the signature. More...
virtual SiSignaturePurpose::E_SignaturePurposeType | getOverrideSignaturePurpose () const
| return the required digital signature purpose for this signature profile More...
virtual OFBool | mainDatasetRequired () const =0
| returns true if this signature profile only applies to main dataset level More...

## Static Public Member Functions
static OFBool | containsTag (DcmAttributeTag &tagList, const DcmTagKey &key)
| checks if the given tag key is contained in the given list. More...

## Private Member Functions
| SiSecurityProfile (SiSecurityProfile &arg)
| private undefined copy constructor
SiSecurityProfile & | operator= (SiSecurityProfile &arg)
| private undefined copy assignment operator

## Detailed Description

abstract base class for all security profiles.

Remarks
  this class is only available if DCMTK is compiled with OpenSSL support enabled.

## Member Function Documentation

## ◆ attributeForbidden()

virtual OFBool SiSecurityProfile::attributeForbidden | ( | const DcmTagKey & | key | ) | const
| pure virtual

checks whether an attribute with the given tag must not be signed for the current security profile.

Parameters

  key | tag key to be checked

Returns
  true if attribute must not be signed, false otherwise.

Implemented in SiNullProfile, and SiBaseRSAProfile.

## ◆ attributeRequiredIfPresent()

virtual OFBool SiSecurityProfile::attributeRequiredIfPresent | ( | const DcmTagKey & | key | ) | const
| pure virtual

checks whether an attribute with the given tag is required to be signed for the current security profile if the attribute is present in the dataset

Parameters

  key | tag key to be checked

Returns
  true if required, false otherwise.

Implemented in SiStructuredReportingVerificationProfile, SiStructuredReportingProfile, SiNullProfile, SiCreatorProfile, SiBaseRSAProfile, and SiAuthorizationProfile.

## ◆ checkAttributeList()

virtual OFBool SiSecurityProfile::checkAttributeList | ( | DcmItem & | item,
|  | DcmAttributeTag & | tagList
| ) |  |
| virtual

checks whether the given list of attribute tags fulfils the requirements of the current security profile for the given dataset.

Parameters

  item | dataset to be checked
  tagList | attribute tag list.

Returns
  true if minimum requirements for profile are fulfilled, false otherwise.

## ◆ checkRequiredAttributeList()

virtual OFBool SiSecurityProfile::checkRequiredAttributeList | ( | DcmAttributeTag & | tagList | ) | const
| pure virtual

checks whether all attributes that are required unconditionally to be signed in this profile are included in the given tagList.

Parameters

  taglist | attribute tag list

Returns
  true if requirements for profile are fulfilled, false otherwise.

Implemented in SiStructuredReportingVerificationProfile, SiStructuredReportingProfile, SiNullProfile, SiCreatorProfile, SiBaseRSAProfile, and SiAuthorizationProfile.

## ◆ containsTag()

static OFBool SiSecurityProfile::containsTag | ( | DcmAttributeTag & | tagList,
|  | const DcmTagKey & | key
| ) |  |
| static

checks if the given tag key is contained in the given list.

Parameters

  tagList | list of tag keys
  key | tag key

Returns
  true if tag key is present in list, false otherwise.

## ◆ createAttributeList()

virtual OFCondition SiSecurityProfile::createAttributeList | ( | DcmItem & | item,
|  | DcmAttributeTag & | tagList
| ) |  |
| virtual

create a maximum list of attribute tags according to the requirements of the current security profile.

For all elements present in the dataset, the attribute tag is inserted if permitted by the profile.

Parameters

  item | dataset to be handled
  tagList | attribute tag list to be created

Returns
  status code

## ◆ getOverrideSignaturePurpose()

virtual SiSignaturePurpose::E_SignaturePurposeType SiSecurityProfile::getOverrideSignaturePurpose | ( |  | ) | const
| virtual

return the required digital signature purpose for this signature profile

Returns
  required signature purpose if any, ESP_none otherwise

Reimplemented in SiStructuredReportingVerificationProfile.

## ◆ inspectSignatureDataset()

virtual OFCondition SiSecurityProfile::inspectSignatureDataset | ( | DcmItem & | item | ) |
| pure virtual

some digital signature profiles specify conditions under which certain attributes must be included into the signature.

This method allows the signature profile to inspect the dataset in order to determine whether or not the conditions are met. This method should be called before DcmSignature::createSignature() is executed.

Parameters

  item | the dataset or item to which the signature will be added

Returns
  status code

Implemented in SiStructuredReportingVerificationProfile, SiStructuredReportingProfile, SiNullProfile, SiCreatorProfile, SiBaseRSAProfile, and SiAuthorizationProfile.

## ◆ isAllowableAlgorithm()

virtual OFBool SiSecurityProfile::isAllowableAlgorithm | ( | const SiAlgorithm & | algo | ) | const
| virtual

checks whether the given public/private key object can be used with this security profile.

Parameters

  algo | object to be checked

Returns
  true if object is allowable for this profile, false otherwise.

## ◆ isAllowableAlgorithmType()

virtual OFBool SiSecurityProfile::isAllowableAlgorithmType | ( | E_KeyType | keyType | ) | const
| pure virtual

checks whether the given public/private key algorithm can be used with this security profile.

Parameters

  keyType | public key algorithm type to be checked

Returns
  true if public key algorithm is allowable for this profile, false otherwise.

Implemented in SiNullProfile, and SiBaseRSAProfile.

## ◆ isAllowableMAC()

virtual OFBool SiSecurityProfile::isAllowableMAC | ( | const SiMAC & | mac | ) | const
| virtual

checks whether the given MAC object can be used with this security profile.

Parameters

  mac | macType object to be checked

Returns
  true if object is allowable for this profile, false otherwise.

## ◆ isAllowableMACType()

virtual OFBool SiSecurityProfile::isAllowableMACType | ( | E_MACType | macType | ) | const
| pure virtual

checks whether the given MAC type can be used with this security profile.

Parameters

  macType | MAC type to be checked

Returns
  true if MAC type is allowable for this profile, false otherwise.

Implemented in SiNullProfile, and SiBaseRSAProfile.

## ◆ isAllowableTransferSyntax()

virtual OFBool SiSecurityProfile::isAllowableTransferSyntax | ( | E_TransferSyntax | xfer | ) | const
| pure virtual

checks whether the given transfer syntax can be used with this security profile

Parameters

  xfer | transfer syntax to be checked

Returns
  true if transfer syntax is allowable for this profile, false otherwise.

Implemented in SiNullProfile, and SiBaseRSAProfile.

## ◆ mainDatasetRequired()

virtual OFBool SiSecurityProfile::mainDatasetRequired | ( |  | ) | const
| pure virtual

returns true if this signature profile only applies to main dataset level

Returns
  OFTrue if this signature profile only applies to main dataset level, OFFalse otherwise

Implemented in SiStructuredReportingProfile, SiNullProfile, SiCreatorProfile, SiBaseRSAProfile, and SiAuthorizationProfile.

## ◆ updateAttributeList()

virtual OFCondition SiSecurityProfile::updateAttributeList | ( | DcmItem & | item,
|  | DcmAttributeTag & | tagList
| ) |  |
| virtual

updates the given list of attribute tags according to the requirements of the current security profile.

For all elements present in the dataset, the attribute tag is inserted or removed from the list if required by the profile.

Parameters

  item | dataset to be handled
  tagList | attribute tag list to be updated

Returns
  status code

The documentation for this class was generated from the following file:

- dcmsign/include/dcmtk/dcmsign/sisprof.h

Generated on Mon Dec 15 2025 for DCMTK Version 3.7.0 by Doxygen 1.9.1