Generates a response code, based on the specified challenge code. This function is available in PACS Imaging..
#include "ltdic.h"
L_UINT32 pEXT_CALLBACK YourFunction(hNet, nChallenge, nResponse, nParameter, pUserData)
Handle to an existing DICOM Network. This is the handle returned from the L_DicomCreateNet function.
Challenge code received by the callback function. This challenge code will be used in the generation of the response code. This value is similar to a time stamp.
Pointer to a variable to be updated with the response code generated by the callback function.
Value that indicates the current mutual authentication key.
Void pointer that you can use to pass one or more additional parameters that the callback function needs. To use this feature, assign a value to a variable or create a structure that contains as many fields as you need. Then, in this parameter, pass the address of the variable or structure, casting it to L_VOID *. The callback function, which receives the address in its own pUserData parameter, can cast it to a pointer of the appropriate data type to access your variable or structure. If the additional parameters are not needed, you can pass NULL in this parameter.
Value | Meaning |
---|---|
DICOM_SUCCESS | The generation of the response code was successful. |
<> DICOM_SUCCESS | The generation of the response code was not successful. |
Win32, x64
L_UINT64 * nResponse;
L_UINT64 GetRandom()
{
L_UINT64 nRet;
nRet = ((L_UINT64)(rand())<<48) + ((L_UINT64)(rand())<<32) + (rand()<<16) + (rand()<<8) + rand();
return nRet;
}
// Definitions of the ISCL callbacks.
L_UINT32 EXT_CALLBACK exGetChallengeISCL(HDICOMNET hNet, L_UINT64 *nChallenge, L_UINT64 nParameter, L_VOID * pUserData)
{
UNREFERENCED_PARAMETER(pUserData);
UNREFERENCED_PARAMETER(hNet);
nResponse = nChallenge + nParameter;
return 0;
}
L_UINT32 EXT_CALLBACK exInternalAuthenticateISCL (HDICOMNET hNet, L_UINT64 nChallenge, L_UINT64 *nResponse, L_UINT64 nParameter, L_VOID * pUserData)
{
UNREFERENCED_PARAMETER(pUserData);
UNREFERENCED_PARAMETER(hNet);
*nResponse = nChallenge + nParameter;
return 0;
}
L_UINT32 EXT_CALLBACK exExternalAuthenticateISCL (HDICOMNET hNet, L_UINT64 nChallenge, L_UINT64 nResponse, L_UINT64 nParameter, L_VOID * pUserData)
{
UNREFERENCED_PARAMETER(pUserData);
UNREFERENCED_PARAMETER(hNet);
if (nResponse == nChallenge + nParameter)
return 0;
else
return 1;
}
L_INT InternalAuthenticateCBExample(HDICOMNET hNet)
{
DICOMNETCALLBACK cb;
//…
//…
cb.pfnGetChallenge = exGetChallengeISCL;
cb.pfnInternalAuthenticate = exInternalAuthenticateISCL;
cb.pfnExternalAuthenticate = exExternalAuthenticateISCL;
L_DicomSetCallback (hNet, &cb);
return DICOM_SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.