L_DicomGetStatusISCL

#include "ltdic.h"

L_LTDIC_API L_UINT32 L_DicomGetStatusISCL(hNet)

HDICOMNET hNet;

/* handle to an existing DICOM Network */

Returns the internal ISCL status when an error occurs.

Parameter

Description

hNet

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

Returns

Returns a value that indicates the internal status. Possible values are:

Value

Meaning

0

Not connected.

1

Wait for line connection check request.

2

Got a line connection check request.

3

Wait for mutual authentication request.

4

Got mutual authentication request.

5

Wait for mutual authentication pass 1.

6

Got mutual authentication pass 1.

7

Wait for mutual authentication pass 3.

8

Got mutual auth pass 3.

11

Wait for message transmission response.

12

Encrypt and send message.

14

Compute, encrypt and send MAC.

16

Wait for random number for generating session key response.

33

Wait for line disconnection response.

50

Wait for line connection response.

51

Got line connection response, sending mutual authentication request.

52

Wait for mutual authentication response.

53

Sending mutual authentication pass 1.

54

Wait for mutual authentication pass 2.

55

Got mutual authenticate pass 2, sending mutual authenticate pass 3.

56

Wait for mutual authentication completion.

57

Neutral status.

22

Wait for random number for generating key request.

23

Computing session key.

24

Wait for packets with data.

25

Received all data, wait for MAC code.

Comments

The current ISCL status is set to neutral if certain errors occur, and to 0 if other errors occur.

Use returned error codes with the ISCL internal status returned by this function, to find where a error occurred. For example, DICOM_ERROR_ISCL_LOCAL_ICCARD can occur during GetChallenge, InternalAuthenticate or ExternalAuthenticate.

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_DicomGetErrorSecure

Topics:

DICOM Net: ISCL connection

 

Sending and Receiving Messages

 

General Integrated Secure Communication Layer (ISCL) Information

Example

In this example, assume an error occurs in RECEIVECALLBACK. The code to determine why this happened should look like this:

L_VOID EXT_CALLBACK myRECEIVECALLBACK(HDICOMNET hNet, L_INT nError, L_UCHAR nType, L_UCHAR *pBuffer, L_UINT32 nBytes, L_VOID *pUserData)
{
   UNREFERENCED_PARAMETER(nType);
   UNREFERENCED_PARAMETER(pBuffer);
   UNREFERENCED_PARAMETER(pUserData);
   UNREFERENCED_PARAMETER(nBytes);
   
   // . . . . . . 
   if(nError == DICOM_ERROR_ISCL_DECRYPT)
   {
      if(L_DicomGetStatusISCL(hNet) == 24)
      {
         // error decrypting message data
         MessageBox(NULL, TEXT("Error decrypting message"),TEXT( ""), MB_OK);
      }
      if(L_DicomGetStatusISCL(hNet) == 25)
      {
         // error decrypting MAC code
         MessageBox(NULL, TEXT("Error decrypting MAC code"),TEXT( ""), MB_OK);
      }
   }
   // . . .
}