diff --git a/docs/compatibility.md b/docs/compatibility.md index f3c254ec8..4b9a02eac 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -68,13 +68,10 @@ The following services are supported in the server: * Publish * Republish * SetPublishingMode - + * Method service set * Call -Other service / method calls are unsupported. Calling an unsupported service will terminate the session. Calling -an unsupported method will generate a service fault. - ### Address Space / Nodeset The standard OPC UA address space is exposed. OPC UA for Rust uses a script to generate code to create and @@ -122,14 +119,16 @@ Server and client support endpoints with the standard message security modes: * None * Sign -* SignAndEncrypt. +* SignAndEncrypt The following security policies are supported: * None * Basic128Rsa15 * Basic256 -* Basic256Rsa256. +* Basic256Rsa256 +* Aes128-Sha256-RsaOaep +* Aes256-Sha256-RsaPss ## User identities diff --git a/docs/crypto.md b/docs/crypto.md index 91ccf1032..6f6333581 100644 --- a/docs/crypto.md +++ b/docs/crypto.md @@ -44,13 +44,11 @@ At present OPC UA for Rust supports these OPC UA 1.03 security profiles: * Basic128Rsa15 - AES-128 / SHA-1 / RSA-15 * Basic256 - AES-256 / SHA-1 / RSA-OAEP * Basic256Sha256 - AES-256 / SHA-256 / RSA-OAEP - -OPC UA 1.04 deprecates Basic128Rsa15 and Basic256 due to SHA-1 and introduces these security policies which are presently -not supported but will be at some point: - * Aes128-Sha256-RsaOaep - AES-128 / SHA-256 / RSA-OAEP (a replacement for Basic128Rsa15 with stronger hash & padding) * Aes256-Sha256-RsaPss - AES256 / SHA-256 / RSA-OAEP with RSA-PSS for signature algorithm +OPC UA 1.04 deprecates Basic128Rsa15 and Basic256 due to SHA-1 and introduces The Aes128-* and Aes256-* security policies. + ## Hash Hashing functions are used to produce message authentication codes and for signing / verification. diff --git a/docs/developer.md b/docs/developer.md new file mode 100644 index 000000000..89ff75d72 --- /dev/null +++ b/docs/developer.md @@ -0,0 +1,47 @@ +# Debugging / Development information + +This is just a loose list of things that can come in useful for debugging and development. +This is on top of anything written in the [setup](./setup.md) documentation. + +## Use latest stable Rust + +OPCUA for Rust will always track quite close to the most stable version of Rust, therefore ensure your toolchain is kept up to date. + +## Rustfmt + +Rustfmt will be used to format the sources and ensure a consistent style. Install rustfmt like so: + +``` +rustup component add rustfmt +``` + +Ensure you run `cargo fmt` on any changes you make. e.g. + +``` +cd opcua +cargo fmt +``` + +## CLion + +CLion has very good Rust support. Install the `rust` and `toml` plugins and choose to use them with your existing Rust toolchain. + +1. Enable "Use rustfmt instead of built-in formatter" +2. Enable "Run rustfmt on save" + +## Visual Studio Code + +TODO + +## OpenSSL + +OpenSSL is the most painful build component so ensure you read [setup](./setup.md) for information. + +It would be very nice if OpenSSL could be replaced by a native Rust crypto library but given the breadth +of things we use, this seems unlikely in the short term. See [crypto](./crypto.md) for more info. + +## Wireshark + +This is a useful link to follow about setting up [Wireshark for OPC UA](https://opcconnect.opcfoundation.org/2017/02/analyzing-opc-ua-communications-with-wireshark/). This allows you to capture network traffic and see how clients and servers are talking to each other. Wireshark has an OPC UA filter that decodes the binary traffic and tells you what requests and responses were being sent. + +The only thing to add to the article is that most of the samples run on port 4855, so you should edit the settings for OPC UA and add port `4855` so that when you capture traffic and filter on `opcua` you see the port. \ No newline at end of file diff --git a/docs/setup.md b/docs/setup.md index 9ab7eb197..d15dacab3 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -6,6 +6,8 @@ OPC UA for Rust generally requires the most recent stable version of Rust to com The recommendation is to install [rustup](https://rustup.rs/) to manage your toolchain and keep it up to date. +There are some [developer](./developer.md) related notes too for people actually modifying the source code. + ## Windows Rust supports two compiler backends - gcc or MSVC, the choice of which is up to you. If you choose the MSVC then you