Skip to content

Commit

Permalink
Update some documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
locka99 committed Nov 29, 2020
1 parent f36d752 commit fb76c89
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 10 deletions.
11 changes: 5 additions & 6 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down
6 changes: 2 additions & 4 deletions docs/crypto.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
47 changes: 47 additions & 0 deletions docs/developer.md
Original file line number Diff line number Diff line change
@@ -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.
2 changes: 2 additions & 0 deletions docs/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit fb76c89

Please sign in to comment.