Commit Graph
122 Commits
Author SHA1 Message Date
Martin Regen 1ff1ae7e52 IOP 2020: Workshop fixes (#916)
- fix to validate structuredefinition if servers do not fill out the DataTypeDefinition correctly
- The GDS creates the CRL cert with its own CA serial number, invalidating the CA by default on some stacks
- complex structuretype must be virtual, non reversible union encoding could not be detected 
- fix binary schema validation, allow the \" character in a qualified name
- support use of simple subtypes in a complex type. For custom and standard subtypes.
- only support structure objects with valuerank scalar or onedimension
2020-03-18 18:49:53 +01:00
Martin Regen 32e0660a7a Enable Azurepipelines build (#907)
-Starter for Azure pipelin builds, a bunch of tests in appveyor and travis can be disabled once this is working
-fix Opc.Ua.Core rootnamespace
-a few minor changes due to Ctrl-K,D refactoring, removal of dead code
2020-02-28 07:51:48 +01:00
Martin Regen c39b1e3623 Tests and fixes for encoders and decoders (#897)
- Unit test project for Core, so far only types and cert validator
- CertValidator test moved to Core.Tests
- ComplexTypes client tests for encode / decode
- bug fixes for issues found in encoders/decoders and complex types tests

** breaking change for JSON encoding of NodeId **

encoding was not according to spec. see #874.

#874, #892 fixed
2020-02-06 17:38:00 +01:00
Alin Moldovean 3e640bf702 Update UA NodeSets and generated code (#895)
* Update UA NodeSets and generated code with the latest updates for 1.04.04 Errata Release.

* Revert error in generated code.
2020-01-30 16:08:19 +02:00
Martin Regen a1faa0f7a1 Remove netstandard1.3 (#887)
* remove netstandard1.3 and unify csproj settings
* switch tests to silent mode
2020-01-23 07:22:26 +01:00
Kurt 300d9ffd62 Minor analyzer (roslynator) fixes (#880)
* Use nameof() where applicable

Category: Maintainability
https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1015.md

* Rethrow original exception

Preserves original stack trace of the exception, easier to diagnose
Category: Maintainability
https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1044.md
https://stackoverflow.com/a/178464

Remove variable from the catch if not logged (compiler warning).

* Combine Where->FirstOrDefault, use Find if applicable

Category: Performance
https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1077.md

In ApplicationConfiguration:
ServerSecurityPolicyCollection inherits from List<T>, so use List.Find (better performance than FirstOrDefault)

* Use List.Count rather than LINQ Any()

Category: Performance
https://github.com/JosefPihrt/Roslynator/blob/master/docs/analyzers/RCS1080.md
refsToRemove is a List<T>, which we know the count of (no need to iterate).

* Add [Flags] Attribute for OpenFileMode

Each enum is a bitflag here
Just noticed this is in the "Generated" folder... some prior commits had touched other "Generated" files -- see nameof commit.

* Minor performance behavior

- EventArgs.Empty instead of allocating a new blank EventArgs

It only really happens on Connect/Disconnect so it's not like a single allocation really matters

- Use array[0] instead of First()
https://stackoverflow.com/a/25607951
- Use !Any() instead of Count() == 0
If a dependent field is found, it will stop evaluating the rest and Add instead of Insert. Count() == 0 required evaluation of all

- Use All() instead of FirstOrDefault(any) == null
Clearer intent (all are not matching the group BrowseName => clear default)
Slightly faster as the first match found doesn't have to be compared against null

* Revert changes to generated files

* Fix mistake

fixes compile error
2020-01-09 09:28:37 +02:00
Andrew Field d7130a97d4 Spelling (#840) 2019-11-05 10:07:52 +02:00
AlinMoldovean df0cc4287d #791 - Update UA NodeSets and generated code with the latest updates for V1.04.3 Errata. 2019-10-02 17:44:53 +03:00
Martin Regen 23b9c37b48 Make the SQL Db ApplicationNames locale nullable (#812)
App registration for push servers from GDS client stopped working, maybe due to new db version in VS. But nulling the locale fixes the issue.
Note: DB should be recreated or the locale column must be manually set to nullable in the SQL Db.
#811 fixed
2019-10-01 08:27:53 +02:00
Martin Regen 93146020a4 Certificate Validator tests and Pem writer fix (#701)
- add more tests verify how longer cert chains are built and verified with the cert validator
- some tweaks to cert factory to allow for building Sub CA certs
- allow to set the Basic Constraint  / Path Length for CA certs
- fix #695 PKCS#8 format is now used
- add additional check to verify incomplete chain signatures
2019-04-12 16:47:34 +02:00
Martin Regen 64db8c73a9 IOP GDS cert related fixes (#674)
* do not require server capabilities
* fixes for cert creation key usage flags
2019-03-18 12:37:04 +01:00
AlinMoldovean 8b374a7448 Copyright year set to 2019 in license notices. 2019-02-14 12:34:33 +02:00
Alin Moldovean ea1911c4a1 Update UA NodeSets and generated code with the latest fixes for V1.04 (#637) 2019-02-05 16:00:12 +02:00
Martin Regen ce4921988e Refactor gds internal interface to use cert group and type strings (#578)
…instead of node id

It simplifies storage of cert group and type in attached db as string.
All GDS unit tests pass.
Breaking change (for GDS) due to interface change.
2018-10-29 14:54:32 +01:00
Martin Regen d007a41d15 Add Aes profile support (#574)
* add the Aes128 and Aes256 profiles
* Aes profies were tested on IoP workshop against Ascolab, Softing, Matrikon, Milo, ProSys and others
* Pss padding is not supported on all platforms, so autodetect if it is supported and filter out Aes256 if not
* not a breaking change: not specifying the SecurityProfileUri in the config xml will automatically add all supported profiles but not deprecated profiles (e.g. Basic256Sha256, Aes128, Aes256). Aes256 is only added if the platform supports Pss padding. This will simplify the maintenance of config xml, since automatically all supported and secure profiles are exposed.
2018-10-29 09:58:45 +01:00
Martin Regen 493009dd53 Prototyping gds (#46)
* allow GDS configuration which doesn't auto approve
2018-09-25 12:20:50 +02:00
AlinMoldovean 4ed82868da Update GDS certificate stores after code review. 2018-09-13 15:30:14 +03:00
AlinMoldovean ed40dea643 Update GDS certificate stores after code review. 2018-09-13 15:26:18 +03:00
AlinMoldovean 9ff7f61fa1 Certificate stores renamed according to Part 12 specification recommendation. #383 2018-08-07 17:54:14 +03:00
Martin Regen ced33e1957 Improvements for cloud based Gds and V1.04 nodes (#508)
- all changes for cloud based GDS
 - build version of .net standard libs is now set in version.props, it may require updates for the official builds.
  - add new stuff for v1.04 nodeset, e.g. QueryApplications Api
  - gds.client/gds.server common dll changes to support a cloud based GDS.
2018-07-31 13:32:21 +02:00
Martin Regen e6916f31be License info in V1.04 is not quite right (#503)
* Use OPC REDISTRIBUTABLES Agreement of Use in nuget packages (#424)

* Security policy Basic128Rsa15 removed from default server configurations.
2018-07-17 17:31:59 +03:00
Alin Moldovean 0d08d40180 Update NodeSets and generated code with latest fixes for V1.04 (#487)
Update NodeSets and generated code with latest fixes for V1.04 Errata
2018-06-26 09:29:36 +03:00
Martin Regen ec5cdd5ab6 Merge pull request #403 from OPCFoundation/v1.03
reverse integrate V1.03 to master (v1.04)
2018-03-16 19:35:08 +01:00
Martin Regen e2a4020984 Fix V103 nohttps build (#401)
- Fix the NO_HTTPS build to reduce publish size if HTTPS is not needed
e.g. `dotnet build /p:NoHttps=true`
- Limit language Version to C#6 for VS 2015 compat
- add travis & appveyor cases for nohttps build
- enable GDS Https transport
- update nuspec
2018-03-16 10:21:32 +01:00
Martin Regen 21cc6cb178 Merge pull request #377 from OPCFoundation/v1.03
V1.03 reverse integrate to master
2018-03-02 14:28:39 +01:00
Martin Regen 23f0e3abd7 add App Uri to csr / test app uri in signing request. Use domain names in signing request. 2018-02-28 11:49:37 +01:00
AlinMoldovean 0894364ca9 #363 - Generated code and NodeSets for V1.04 OPC UA Specifications 2018-02-22 13:41:30 +02:00
Martin Regen 4d05093462 Clean up nuget dependencies (#353)
- remove dependency on System.Private.ServiceModel, it should not be used directly
- remove packages.config, VS2017 doesn't need it
- use ref to .Net instead of nuget to reduce number of packages used
2018-02-16 19:14:12 +01:00
Martin Regen b9a1a09937 Gds CA provider interface abstraction (#344)
* refactor GDS with a CA provider to allow replacement
* Fill push server list with FindServersOnNetwork
* feedback and issues found in IOP workshop
2018-02-06 14:26:01 +01:00
Martin Regen cebc4f190b Add ServerCap & hostname RegisterServer2 LDS-ME registration (#322)
* Add ServerCap & hostname RegisterServer 2 LDS-ME registration

* GDS always register with LDS-ME
2018-01-11 14:38:12 +01:00
Martin Regen 13b9f00dd3 Add Quickstart Applications from .NET repo
building..
unify the way .Net apps are started
2018-01-05 16:24:56 +01:00
Martin Regen 4a6f34d007 fix links and add sample screenshot to GDS doc (#300) 2017-12-13 09:47:16 +01:00
Martin Regen dac67d09c5 Global Discovery Server and Client documentation (#298) 2017-12-12 13:32:04 +01:00
Martin Regen 4345640c03 Fix CR feedback & travis macOS build fix (#36)
* improve gds creation test, verifiy integrity of returned certs

* split test runs to avoid file handle problem on macOS

* cr feedback
2017-12-08 22:55:27 +01:00
Martin Regen eeec2a8389 Update cert without restarting the TCP listener 2017-12-07 12:05:31 +01:00
Martin Regen 9926e40be8 my own CR feedback 2017-12-06 16:55:43 +01:00
Martin Regen fb5a676209 Gds improvements for SPS demo (#35)
* fixes in gds client app to support server push

* race condition with netcore 2.0.3 with docker

* more server entries

* Revert "race condition with netcore 2.0.3 with docker"

This reverts commit d983452e41dc29c1f3d8c5ca1ae7aa683275a68e.

* listener socket loss if AcceptAsync returns synchronous

* crl store misup

* default port for sps

* comment all changes in respect to UA ANSIC server

* all SPS changes

* remove demo code
2017-12-05 14:33:25 +01:00
Martin Regen 394f5baacf Implement cert update, more tests 2017-11-19 01:47:54 +01:00
Martin Regen 28e3e12cef make client tests configurable to use external GDS/push servers 2017-11-17 10:51:13 +01:00
Martin Regen 5a1ba07619 enable server configuration for reference server and more. 2017-11-16 23:13:04 +01:00
Martin Regen 5b4bfbeac4 Mark GDS template in lib as 'sample' server 2017-11-16 23:10:12 +01:00
Martin Regen e2f23e6d6e Linux/macOS catch bad padding mode 2017-11-16 16:17:52 +01:00
Martin Regen 5de112d59b macOS: cannot verify public/private key with crypto op when keyUsage doesn't allow dataencipherment 2017-11-16 15:14:41 +01:00
Martin Regen e156a3c3da PEM support (#33) 2017-11-15 21:08:43 +01:00
Martin Regen 09fbb05752 Gds work travis (#32)
fix appveyor and travis builds
2017-11-15 09:45:28 +01:00
Martin Regen 36e99a2e09 travis build linux 2017-11-12 22:43:55 +01:00
Martin Regen c87c3f04a6 server configuration
- implement trust list control write
- more test cases
2017-11-12 19:49:15 +01:00
Martin Regen d2356df0fb fix warnings 2017-11-12 19:44:05 +01:00
Martin Regen 35f737d5af implement UpdateCertificate and self signed test case 2017-11-11 00:40:34 +01:00
Martin Regen bfeee65f8a enable server push in gds client, add a few test cases 2017-11-09 12:17:28 +01:00