L_DicomFindSignature

#include "ltdic.h"

pDICOMELEMENT EXT_FUNCTION L_DicomFindSignature(hDS,pszSignatureUID)

HDICOMDS hDS;

/* a DICOM handle */

const L_CHAR * pszSignatureUID;

/* character string containing the Digital Signature UID */

Returns a pointer to the Digital Signatures Sequence Item that corresponds to the Digital Signature which has the specified Digital Signature UID, if found in the Data Set.

Parameter

Description

hDS

A DICOM handle.

pszSignatureUID

Character string that contains the Digital Signature UID of the Digital Signature for which to search.

Returns

!NULL

Pointer to the DICOMELEMENT structure that specifies the Digital Signatures Sequence Item which corresponds to the Digital Signature with the specified Digital Signature UID.

NULL

No Digital Signature with the specified Digital Signature UID was found in the Data Set.

Comments

Each Digital Signature should be uniquely identified by a UID specified by the Digital Signature UID (0400,0100) under the corresponding Digital Signatures Sequence Item. Use this function to search the whole Data Set for a Digital Signature by its Digital Signature UID.

Once a pointer to the Digital Signatures Sequence Item is obtained, the following functions can be used to verify, delete, or get information about the Digital Signature:

L_DicomVerifySignature

L_DicomDeleteSignature

L_DicomGetSignatureUID

L_DicomGetSignatureDateTime

L_DicomGetSignedElementsCount

L_DicomGetSignedElement

L_DicomGetMacTransferSyntax

L_DicomGetMacAlgorithm

L_DicomSaveCertificate

You can also use the L_DicomGetSignaturesCount and L_DicomGetSignature functions to enumerate the Digital Signatures in the main Data Set or in an Item of a Sequence of Items.

Required DLLs and Libraries

LTDIC

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application

See Also

Functions:

L_DicomGetSignaturesCount, L_DicomGetSignature, L_DicomVerifySignature, L_DicomDeleteSignature, L_DicomGetSignatureUID, L_DicomGetSignatureDateTime, L_DicomGetSignedElementsCount, L_DicomGetSignedElement, L_DicomGetMacTransferSyntax, L_DicomGetMacAlgorithm, L_DicomSaveCertificate, L_DicomCreateSignature

Topics:

Working with Digital Signatures

Example

L_VOID FindSignature(HDICOMDS hDS, L_PCSTR pszSignatureUID)
{
   // Search the whole Data Set for the Digital Signature with the
   // specified Digital Signature UID
   pDICOMELEMENT pSignatureItem = L_DicomFindSignature(hDS,pszSignatureUID);
   if (pSignatureItem)
   {
      L_CHAR* pszMsg = "The Digital Signature was found.\n"
                       "Press Yes to examine it or No to delete it.";
      
      switch (MessageBox(NULL, pszMsg, "Sample", MB_YESNOCANCEL))
      {
      case IDYES:
         // Refer to the example of L_DicomVerifySignature for the
         // function ExamineSignature
         ExamineSignature(hDS, pSignatureItem);
         break;

      case IDNO:
         // Delete the Digital Signature
         L_DicomDeleteSignature(hDS,pSignatureItem);
         break;
      }
   }
   else
   {
      MessageBox(NULL,
                   "The Digital Signature was not found.",
                   "Sample",
                   MB_OK);
   }
}