L_DicomSetAuthDataISCL

#include "ltdic.h"

L_LTDIC_API L_UINT32 L_DicomSetAuthDataISCL(hNet, pBuffer, nLength)

HDICOMNET hNet;

/* handle to an existing DICOM Network */

L_VOID *pBuffer;

/* pointer to the authentication data */

L_UINT32 nLength;

/* the size of the authentication data */

Sets the authentication data used during the mutual authentication process. This function is available in PACS Imaging toolkits.

Parameter

Description

hNet

Handle to an existing DICOM Network. This is the handle returned from the L_DicomCreateNet function.

pBuffer

Pointer to an array containing the authentication data.

nLength

Length of the authentication data, in bytes.

Returns

DICOM_SUCCESS

The function was successful.

DICOM_ERROR_PARAMETER

A parameter error occurred. The authentication data could not be set. (pBuffer is NULL, or nLength is not in the range 1 128.). Refer to Return Codes.

Comments

Every ISCL-compliant entity must have between 1 and 128 bytes of authentication data. These authentication data are exchanged between client and server during the mutual authentication process. This function sets an array of 1 to 128 bytes that contains authentication data.

The authentication data is data exchanged in plain text. After the mutual authentication process, the communication entities can verify the authentication data of the other entity (client or server) and, if the authentication data is wrong, can close the connection.

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_DicomCreateNet, L_DicomSetDefaultSigningISCL, L_DicomSetDefaultEncryptionISCL, L_DicomSetMaxCommBlockLengthISCL, L_DicomSetMaxMessageLengthISCL, L_DicomSetMutualAuthAlgISCL, L_DicomSetMutualAuthKeyISCL, L_DicomSetIndexForMutualAuthISCL, L_DicomSetEncryptKeyISCL, L_DicomSetIndexForEncryptISCL

Topics:

DICOM Net: Authentication Data, mode and process

 

Adding Security to a DICOM Connection

 

General Integrated Secure Communication Layer (ISCL) Information

Example

L_INT DicomSetAuthDataISCLExample(L_VOID)
{
   HDICOMNET hNet1, hNet2;
   L_INT nRet;

   nRet = L_DicomStartUp();
   if (nRet != DICOM_SUCCESS)
      return nRet;

   hNet1 = L_DicomCreateNet (TEXT(""), DICOM_SECURE_ISCL);
   hNet2 = L_DicomCreateNet(TEXT(""), DICOM_SECURE_ISCL);
   nRet = L_DicomSetAuthDataISCL(hNet1, TEXT("Server LEAD ISCL"), 13);
   if (nRet != DICOM_SUCCESS)
   {
      L_DicomFreeNet(hNet1);
      L_DicomFreeNet(hNet2);
      L_DicomShutDown();
      return nRet;
   }

   char data[5] = {0x21, 0x14, 0x00, 0x45, 0x0F};
   nRet = L_DicomSetAuthDataISCL(hNet2, data, 5);

   // authentication data can be binary data
   // delete hNet1, hNet2 and shutdown the DICOM network
   L_DicomFreeNet(hNet1);
   L_DicomFreeNet(hNet2);
   L_DicomShutDown();
   return nRet;
}