519 |
519 |
520 #include <open62541/client_config_default.h> |
520 #include <open62541/client_config_default.h> |
521 #include <open62541/client_highlevel.h> |
521 #include <open62541/client_highlevel.h> |
522 #include <open62541/plugin/log_stdout.h> |
522 #include <open62541/plugin/log_stdout.h> |
523 #include <open62541/plugin/securitypolicy.h> |
523 #include <open62541/plugin/securitypolicy.h> |
|
524 #include <open62541/plugin/securitypolicy_default.h> |
524 |
525 |
525 #include <open62541/types.h> |
526 #include <open62541/types.h> |
526 #include <open62541/types_generated_handling.h> |
527 #include <open62541/types_generated_handling.h> |
527 |
528 |
528 #define _Log(level, ...) \\ |
529 #define _Log(level, ...) \\ |
585 #define INIT_NoAuth() \\ |
586 #define INIT_NoAuth() \\ |
586 LogInfo("OPC-UA Init no auth"); \\ |
587 LogInfo("OPC-UA Init no auth"); \\ |
587 UA_ClientConfig_setDefault(cc); \\ |
588 UA_ClientConfig_setDefault(cc); \\ |
588 retval = UA_Client_connect(client, uri); |
589 retval = UA_Client_connect(client, uri); |
589 |
590 |
590 /* Note : Policy is ignored here since open62541 client supports all policies by default */ |
591 /* Note : Single policy is enforced here, by default open62541 client supports all policies */ |
591 #define INIT_x509(Policy, UpperCaseMode, PrivateKey, Certificate) \\ |
592 #define INIT_x509(Policy, UpperCaseMode, PrivateKey, Certificate) \\ |
592 LogInfo("OPC-UA Init x509 %s,%s,%s,%s", #Policy, #UpperCaseMode, PrivateKey, Certificate); \\ |
593 LogInfo("OPC-UA Init x509 %s,%s,%s,%s", #Policy, #UpperCaseMode, PrivateKey, Certificate); \\ |
593 \\ |
594 \\ |
594 UA_ByteString certificate = loadFile(Certificate); \\ |
595 UA_ByteString certificate = loadFile(Certificate); \\ |
595 UA_ByteString privateKey = loadFile(PrivateKey); \\ |
596 UA_ByteString privateKey = loadFile(PrivateKey); \\ |
596 \\ |
597 \\ |
597 cc->securityMode = UA_MESSAGESECURITYMODE_##UpperCaseMode; \\ |
598 cc->securityMode = UA_MESSAGESECURITYMODE_##UpperCaseMode; \\ |
598 UA_ClientConfig_setDefaultEncryption(cc, certificate, privateKey, NULL, 0, NULL, 0); \\ |
599 \\ |
|
600 /* replacement for default behaviour */ \\ |
|
601 /* UA_ClientConfig_setDefaultEncryption(cc, certificate, privateKey, NULL, 0, NULL, 0); */ \\ |
|
602 do{{ \\ |
|
603 retval = UA_ClientConfig_setDefault(cc); \\ |
|
604 if(retval != UA_STATUSCODE_GOOD) \\ |
|
605 break; \\ |
|
606 \\ |
|
607 UA_SecurityPolicy *sp = (UA_SecurityPolicy*) \\ |
|
608 UA_realloc(cc->securityPolicies, sizeof(UA_SecurityPolicy) * 2); \\ |
|
609 if(!sp){{ \\ |
|
610 retval = UA_STATUSCODE_BADOUTOFMEMORY; \\ |
|
611 break; \\ |
|
612 }} \\ |
|
613 cc->securityPolicies = sp; \\ |
|
614 \\ |
|
615 retval = UA_SecurityPolicy_##Policy(&cc->securityPolicies[cc->securityPoliciesSize], \\ |
|
616 certificate, privateKey, &cc->logger); \\ |
|
617 if(retval != UA_STATUSCODE_GOOD) {{ \\ |
|
618 UA_LOG_WARNING(&cc->logger, UA_LOGCATEGORY_USERLAND, \\ |
|
619 "Could not add SecurityPolicy Policy with error code %s", \\ |
|
620 UA_StatusCode_name(retval)); \\ |
|
621 UA_free(cc->securityPolicies); \\ |
|
622 cc->securityPolicies = NULL; \\ |
|
623 break; \\ |
|
624 }} \\ |
|
625 \\ |
|
626 ++cc->securityPoliciesSize; \\ |
|
627 }} while(0); \\ |
599 \\ |
628 \\ |
600 retval = UA_Client_connect(client, uri); \\ |
629 retval = UA_Client_connect(client, uri); \\ |
601 \\ |
630 \\ |
602 UA_ByteString_clear(&certificate); \\ |
631 UA_ByteString_clear(&certificate); \\ |
603 UA_ByteString_clear(&privateKey); |
632 UA_ByteString_clear(&privateKey); |