Public Member Functions | |
SiMACConstructor () | |
constructor | |
virtual | ~SiMACConstructor () |
destructor | |
OFCondition | encodeDataset (DcmItem &item, SiMAC &mac, E_TransferSyntax oxfer, DcmAttributeTag &tagListOut, DcmAttributeTag *tagListIn=NULL) |
encodes a DICOM dataset (or parts of it) as a byte stream in the format required for DICOM digital signatures and feeds the byte stream into the given MAC codec. | |
OFCondition | encodeDigitalSignatureItem (DcmItem &signatureItem, SiMAC &mac, E_TransferSyntax oxfer) |
encodes the contents of the digital signature sequence except CertificateOfSigner, Signature, CertifiedTimestampType and CertifiedTimestamp as a byte stream in the format required for DICOM digital signatures and feeds the byte stream into the given MAC codec. | |
OFCondition | flush (SiMAC &mac) |
flushes all buffers inside this object, finalizing the MAC code | |
void | setDumpFile (FILE *f) |
dump all data that is fed into the MAC algorithm into the given file, which must be opened and closed by caller. | |
Private Member Functions | |
SiMACConstructor (SiMACConstructor &arg) | |
private undefined copy constructor | |
SiMACConstructor & | operator= (SiMACConstructor &arg) |
private undefined copy assignment operator | |
OFCondition | flushBuffer (SiMAC &mac) |
flushes the internal buffer to the given MAC and to dumpFile if open | |
OFCondition | encodeElement (DcmElement *element, SiMAC &mac, E_TransferSyntax oxfer) |
feeds a DcmElement into the MAC data stream if is signable. | |
Static Private Member Functions | |
static OFBool | inTagList (const DcmElement *element, DcmAttributeTag *tagList) |
checks whether the attribute tag of the given DcmElement is contained in the given list of tags. | |
Private Attributes | |
unsigned char * | buf |
the buffer to which data is written | |
DcmOutputBufferStream | stream |
the internal buffer stream | |
FILE * | dumpFile |
if nonzero, the data fed to the MAC algorithm is also stored in this file. |
Definition at line 52 of file simaccon.h.
OFCondition SiMACConstructor::encodeDataset | ( | DcmItem & | item, | |
SiMAC & | mac, | |||
E_TransferSyntax | oxfer, | |||
DcmAttributeTag & | tagListOut, | |||
DcmAttributeTag * | tagListIn = NULL | |||
) |
encodes a DICOM dataset (or parts of it) as a byte stream in the format required for DICOM digital signatures and feeds the byte stream into the given MAC codec.
If a dump file was set with setDumpFile(), the byte stream is written to file as well.
item | the DICOM dataset to be encoded | |
mac | the MAC codec into which the resulting byte stream is fed | |
oxfer | the transfer syntax to be used when encoding the dataset. The caller might wish to use DcmItem::canWriteXfer() to check beforehand whether this transfer syntax can be used. | |
tagListOut | upon return this parameter contains the list of attribute tags which were fed into the MAC codec. For sequences, only the sequence attribute tag is contained in this list; the items and elements within the items are not encoded. | |
tagListIn | optional parameter restricting the parts of the dataset to be encoded. Only elements which are present in this list of tags, which are signable (see DcmTagKey::isSignable()) and are present in the dataset are encoded. Upon verification of a signature the caller might wish to compare tagListIn and tagListOut after successful return to see whether the lists of attributes are the same. If parameter is absent or NULL, a global match is assumed, i.e. all elements of the dataset which are present and signable are encoded. |
OFCondition SiMACConstructor::encodeDigitalSignatureItem | ( | DcmItem & | signatureItem, | |
SiMAC & | mac, | |||
E_TransferSyntax | oxfer | |||
) |
encodes the contents of the digital signature sequence except CertificateOfSigner, Signature, CertifiedTimestampType and CertifiedTimestamp as a byte stream in the format required for DICOM digital signatures and feeds the byte stream into the given MAC codec.
If a dump file was set with setDumpFile(), the byte stream is written to file as well.
signatureItem | the DICOM digital signature item to be encoded | |
mac | the MAC codec into which the resulting byte stream is fed | |
oxfer | the transfer syntax to be used when encoding the dataset. The caller might wish to use DcmItem::canWriteXfer() to check beforehand whether this transfer syntax can be used. |
OFCondition SiMACConstructor::flush | ( | SiMAC & | mac | ) |
flushes all buffers inside this object, finalizing the MAC code
mac | the MAC codec into which the resulting byte stream is fed |
void SiMACConstructor::setDumpFile | ( | FILE * | f | ) |
dump all data that is fed into the MAC algorithm into the given file, which must be opened and closed by caller.
f | pointer to file already opened for writing; may be NULL. |
OFCondition SiMACConstructor::flushBuffer | ( | SiMAC & | mac | ) | [private] |
flushes the internal buffer to the given MAC and to dumpFile if open
mac | MAC to which the buffer content is added |
OFCondition SiMACConstructor::encodeElement | ( | DcmElement * | element, | |
SiMAC & | mac, | |||
E_TransferSyntax | oxfer | |||
) | [private] |
feeds a DcmElement into the MAC data stream if is signable.
If the element is a sequence, all signable elements from all items are added.
element | pointer to element, must not be NULL | |
mac | MAC to use | |
oxfer | transfer syntax in which data is encoded |
static OFBool SiMACConstructor::inTagList | ( | const DcmElement * | element, | |
DcmAttributeTag * | tagList | |||
) | [static, private] |
checks whether the attribute tag of the given DcmElement is contained in the given list of tags.
If the list is absent (NULL), a universal match is assumed, i.e. always returns true if element is nonzero. Does not check whether an element is signable.
element | pointer to element to check | |
tagList | pointer to list of attribute tags, may be NULL |