SSLCreateFlags Example for Visual Basic

' This sample creates an ILEADDicomNet object with security
' The ILEADDicomNet object is configured so that if a client connects:
' 1. it requires and verifies the client certificate
' 2. it will support SSL version 3 or TLS Version 1 for the handshake
' 3. it uses trusted certificate authority CA_CERT_NAME to verify the client certificate
' 4. it verifies the client certificate chain to a maximum depth of 2
'
' The ILEADDicomNet object is assigned the certificate SERVER_CERT_NAME,
' which contains a password encrypted private key
' The DicomNet_SSLPrivateKeyPasswordEvent is used
' to supply the encryption password of the private key

Dim DicomKernel As New LEADDicomKernel
Public WithEvents LEADDICOMNET1 As LEADDicomNet

Const CA_CERT_NAME = "e:\certificates\ca.pem"
Const SERVER_CERT_NAME = "e:\certificates\server.pem"

Private Sub Command1_Click()
Dim szMsg As String
Dim nRet As Integer

LEADDICOMNET1.UseSSLOptions = True
LEADDICOMNET1.SSLCreateFlags= DICOM_SSL_CTX_CREATE_CAFILE Or DICOM_SSL_CTX_CREATE_METHOD_TYPE Or DICOM_SSL_CTX_CREATE_OPTIONS Or DICOM_SSL_CTX_CREATE_VERIFY_DEPTH Or DICOM_SSL_CTX_CREATE_VERIFY_MODE
LEADDICOMNET1.SSLCAFile = CA_CERT_NAME
LEADDICOMNET1.SSLVerifyMode = DICOM_SSL_VERIFY_PEER Or DICOM_SSL_VERIFY_FAIL_IF_NO_PEER_CERT
LEADDICOMNET1.SSLVerifyDepth = 2
LEADDICOMNET1.SSLOptions = DICOM_SSL_OP_NO_SSLv2 Or DICOM_SSL_OP_ALL

LEADDICOMNET1.NetworkSecurityMode = DICOM_SECURE_TLS

LEADDICOMNET1.StartUp 

nRet = LEADDICOMNET1.SetServerCertificateTLS(LEADDICOMNET1.hNet, SERVER_CERT_NAME, L_TLS_FILETYPE_PEM, SERVER_CERT_NAME)
If nRet = DICOM_SUCCESS Then
    szMsg = SERVER_CERT_NAME + " loaded successfully"
Else
    szMsg = SERVER_CERT_NAME + " could not be loaded successfully -- error " + CStr(nRet)
End If

MsgBox szMsg

'
' Use the hNet
'
    
End Sub