LEADTOOLS Medical (Leadtools.Dicom assembly)
LEAD Technologies, Inc

VerifySignature Method

Example 







The Digital Signatures Sequence Item that corresponds to the Digital Signature to be verified. To verify all the Digital Signatures in the entire Data Set, set this parameter to null.
Verifies Digital Signatures in the Data Set. .NET support
Syntax
public bool VerifySignature( 
   DicomElement signatureItem
)
'Declaration
 
Public Function VerifySignature( _
   ByVal signatureItem As DicomElement _
) As Boolean
'Usage
 
Dim instance As DicomDataSet
Dim signatureItem As DicomElement
Dim value As Boolean
 
value = instance.VerifySignature(signatureItem)
public bool VerifySignature( 
   DicomElement signatureItem
)
ObjectiveC Syntax
 function Leadtools.Dicom.DicomDataSet.VerifySignature( 
   signatureItem 
)
public:
bool VerifySignature( 
   DicomElement^ signatureItem
) 

Parameters

signatureItem
The Digital Signatures Sequence Item that corresponds to the Digital Signature to be verified. To verify all the Digital Signatures in the entire Data Set, set this parameter to null.

Return Value

true if The Digital Signature(s) was/were verified successfully; false if the Digital Signature is invalid or at least one of the Digital Signatures is invalid.
Remarks
To verify all the Digital Signatures in the entire Data Set, set the signatureItem parameter to null. If at least one of these Digital Signatures is invalid, the method returns false and does not examine the remaining Digital Signatures, if there are any.
Example
Copy CodeCopy Code  
Public Sub ExamineSignature(ByVal dataset As DicomDataSet, ByVal signatureItem As DicomElement)
      ' Verify the Digital Signature; if pSignatureItem is NULL, the function
      ' will verify all the Digital Signatures that exist in the Data Set
      Dim ret As Boolean = dataset.VerifySignature(signatureItem)
      If ret = True Then
         If Not signatureItem Is Nothing Then
            MessageBox.Show("The Digital Signature was verified.", "Sample")
         Else
            MessageBox.Show("All Digital Signatures were verified (if there are any).", "Sample")
         End If
      Else
         If Not signatureItem Is Nothing Then
            MessageBox.Show("The Digital Signature is invalid.", "Sample")
         Else
            MessageBox.Show("At least one Digital Signature is invalid.", "Sample")
         End If
      End If
      ' The Digital Signature UID
      Dim msg As StringBuilder = New StringBuilder()
      msg.Append(dataset.GetSignatureUID(signatureItem))

      ' The Digital Signature DateTime
      Dim digitalSignatureDateTime As DicomDateTimeValue = dataset.GetSignatureDateTime(signatureItem)
      If digitalSignatureDateTime.IsEmpty = False Then
         If (digitalSignatureDateTime.Offset >= 0) Then
            msg.AppendFormat(" Digital Signature DateTime:{0}/{1}/{3} {4}:{5}:{6}.{7} {8}{9}{10}", digitalSignatureDateTime.Month, digitalSignatureDateTime.Day, digitalSignatureDateTime.Year, digitalSignatureDateTime.Hours, digitalSignatureDateTime.Minutes, digitalSignatureDateTime.Seconds, digitalSignatureDateTime.Fractions, "+"c, digitalSignatureDateTime.Offset, Environment.NewLine)
         Else
            msg.AppendFormat(" Digital Signature DateTime:{0}/{1}/{3} {4}:{5}:{6}.{7} {8}{9}{10}", digitalSignatureDateTime.Month, digitalSignatureDateTime.Day, digitalSignatureDateTime.Year, digitalSignatureDateTime.Hours, digitalSignatureDateTime.Minutes, digitalSignatureDateTime.Seconds, digitalSignatureDateTime.Fractions, "-"c, digitalSignatureDateTime.Offset, Environment.NewLine)
         End If
      End If
      Dim macTransferSyntax As String = dataset.GetMacTransferSyntax(signatureItem)
      If Not macTransferSyntax Is Nothing Then
         msg.AppendFormat("MAC Calculation Transfer Syntax UID: {0}", macTransferSyntax)
      End If

      Dim macAlgorithm As String = dataset.GetMacAlgorithm(signatureItem)
      If Not macAlgorithm Is Nothing Then
         msg.AppendFormat("MAC Algorithm: {0}", macAlgorithm)
      End If
      ' The Data Elements Signed
      If dataset.GetSignedElementsCount(signatureItem) > 0 Then
         ' We will display only one
         Dim element As DicomElement = dataset.GetSignedElement(signatureItem, 0)
         msg.AppendFormat(" Data Elements Signed:{0}{1}{1}", element.Tag, Environment.NewLine)
      End If
      msg.AppendFormat("{0}Do you want to save the Certificate of Signer?", Environment.NewLine)
      If MessageBox.Show(msg.ToString(), "Sample", MessageBoxButtons.YesNo) = DialogResult.Yes Then
         dataset.SaveCertificate(signatureItem, Path.Combine(LEAD_VARS.ImagesDir, "CertOfSigner.cer"), DicomCertificateFormat.Pem)
      End If
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void ExamineSignature(DicomDataSet dataset, DicomElement signatureItem)
   {
      // Verify the Digital Signature; if pSignatureItem is NULL, the function
      // will verify all the Digital Signatures that exist in the Data Set
      bool ret = dataset.VerifySignature(signatureItem);
      if (ret == true)
      {
         if (signatureItem != null)
         {
            MessageBox.Show("The Digital Signature was verified.", "Sample");
         }
         else
         {
            MessageBox.Show("All Digital Signatures were verified (if there are any).", "Sample");
         }
      }
      else
      {
         if (signatureItem != null)
         {
            MessageBox.Show("The Digital Signature is invalid.", "Sample");
         }
         else
         {
            MessageBox.Show("At least one Digital Signature is invalid.", "Sample");
         }
      }
      // The Digital Signature UID
      StringBuilder msg = new StringBuilder();
      msg.Append(dataset.GetSignatureUID(signatureItem));

      // The Digital Signature DateTime
      DicomDateTimeValue digitalSignatureDateTime = dataset.GetSignatureDateTime(signatureItem);
      if (digitalSignatureDateTime.IsEmpty == false)
      {
         msg.AppendFormat(" Digital Signature DateTime:{0}/{1}/{3} {4}:{5}:{6}.{7} {8}{9}{10}",
            digitalSignatureDateTime.Month,
            digitalSignatureDateTime.Day,
            digitalSignatureDateTime.Year,
            digitalSignatureDateTime.Hours,
            digitalSignatureDateTime.Minutes,
            digitalSignatureDateTime.Seconds,
            digitalSignatureDateTime.Fractions,
            (digitalSignatureDateTime.Offset >= 0) ? '+' : '-',
            digitalSignatureDateTime.Offset,
            Environment.NewLine);
      }
      string macTransferSyntax = dataset.GetMacTransferSyntax(signatureItem);
      if (macTransferSyntax != null)
      {
         msg.AppendFormat("MAC Calculation Transfer Syntax UID: {0}", macTransferSyntax);
      }

      string macAlgorithm = dataset.GetMacAlgorithm(signatureItem);
      if (macAlgorithm != null)
      {
         msg.AppendFormat("MAC Algorithm: {0}", macAlgorithm);
      }
      // The Data Elements Signed
      if (dataset.GetSignedElementsCount(signatureItem) > 0)
      {
         // We will display only one
         DicomElement element = dataset.GetSignedElement(signatureItem, 0);
         msg.AppendFormat(" Data Elements Signed:{0}{1}{1}", element.Tag, Environment.NewLine);
      }
      msg.AppendFormat("{0}Do you want to save the Certificate of Signer?", Environment.NewLine);
      if (MessageBox.Show(msg.ToString(), "Sample", MessageBoxButtons.YesNo) == DialogResult.Yes)
      {
         dataset.SaveCertificate(signatureItem, Path.Combine(LEAD_VARS.ImagesDir, "CertOfSigner.cer"), DicomCertificateFormat.Pem);
      }
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

DicomDataSet Class
DicomDataSet Members
GetSignature Method
FindSignature Method
DeleteSignature Method
CreateSignature Method

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Dicom requires a Medical toolkit server license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features