#include "ltdic.h"
L_UINT32 pEXT_CALLBACK Your_Function(hNet, nChallenge, nResponse, nParameter, pUserData)
HDICOMNET hNet; |
handle to an existing DICOM Network |
L_UINT64 nChallenge; |
challenge code |
L_UINT64 *nResponse; |
pointer to a variable to be updated |
L_UINT64 nParameter; |
key |
L_VOID * pUserData; |
optional pointer to more parameters for the callback |
Generates a response code, based on the specified challenge code. This function is available in PACS Imaging.
Parameter |
Description |
hNet |
Handle to an existing DICOM Network. This is the handle returned from the L_DicomCreateNet function. |
nChallenge |
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. |
nResponse |
Pointer to a variable to be updated with the response code generated by the callback function. |
nParameter |
Value that indicates the current mutual authentication key. |
pUserData |
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. |
DICOM_SUCCESS |
The generation of the response code was successful. |
<> DICOM_SUCCESS |
The generation of the response code was not successful. |
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 |
Win32, x64
Functions: |
|
Topics: |
|
|
|
|
General Integrated Secure Communication Layer (ISCL) Information |
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;
}
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET