convertersystems / opc-ua-client

Visualize and control your enterprise using OPC Unified Architecture (OPC UA) and Visual Studio.
MIT License
403 stars 119 forks source link

StackProfile part 2: Ua secure conversation provider #221

Closed quinmars closed 2 years ago

quinmars commented 2 years ago

This is the second PR in the StackProfile series. Here I concentrate on the Security Profile provider. Unlike in my original playground branch I named the interface IConversation. ISecurityProfile would be closer to the specs chapter name, but I think the word "conversation" can be better used for instances. The word "security profile" sounds stateless where a conversation is not.

The session channel used some certificate related properties of the secure channel, which do no longer exists. First I thought about exposing them from the conversation. However, I can think of cases where a conversation does not need those certificates on its own, e.g., a dummy pass-through conversation for wss-uajson or https-uajson. So I moved those properties up to the session channel itself. That means that we might have cases where we do query/retreive twice. I hope that does not a large performance impact on the session creation. Else we could think about a pooling mechanism in the certificate store.

All integration tests pass. I added some unit tests for the Uasc conversation.