Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorporation of Modbus/TCP Security #82

Open
wants to merge 119 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
008aaf4
Update README.md
rossmann-engineering Jan 11, 2018
f355dd2
Update README.md
rossmann-engineering Jan 11, 2018
22e233b
Update README.md
rossmann-engineering Jan 11, 2018
43b4a9c
Update README.md
rossmann-engineering Jan 11, 2018
00a102c
Merge branch 'master' of https://github.com/rossmann-engineering/Easy…
rossmann-engineering Jan 15, 2018
ff28895
Changed eventhandlers
rossmann-engineering Mar 27, 2018
efa021a
Event Handler changed
rossmann-engineering Mar 27, 2018
22b5fa6
Version Update 5.0
rossmann-engineering Mar 27, 2018
b03915b
MQTT feature Removed
rossmann-engineering Sep 20, 2018
ac7f111
MQTT removed
rossmann-engineering Sep 20, 2018
c56fa7b
MQTT
rossmann-engineering Sep 20, 2018
3e7052c
V5.5
rossmann-engineering Sep 20, 2018
7f2a4f3
V5.5
rossmann-engineering Sep 20, 2018
2039701
V5.5
rossmann-engineering Sep 20, 2018
d6a3e6d
V5.5
rossmann-engineering Sep 21, 2018
3f5842a
V5.5
rossmann-engineering Sep 21, 2018
160386b
Don't reset countRetries to prevent endless loop
Mar 3, 2020
28318fc
Updated License Information
rossmann-engineering Apr 29, 2020
7afed94
Changed license to MIT
rossmann-engineering Jun 20, 2020
a5aa872
Changed license to MIT
rossmann-engineering Jun 20, 2020
f1290b3
Changed license to MIT
rossmann-engineering Jun 20, 2020
2d82dc5
Merge pull request #40 from irishismyname/master
rossmann-engineering Jun 22, 2020
7e3674c
Write Single Coil issue
rossmann-engineering Jun 22, 2020
39c3034
When creating TCP and UDP servers, you can specify which network inte…
da66en Oct 12, 2020
4e7d1ff
Removed the new delegates
da66en Oct 21, 2020
e836b23
Merge pull request #50 from da66en/feature_server_specify_ip
rossmann-engineering Oct 27, 2020
fb5998b
Alpha Version of .NET5 integration and complete redesign
rossmann-engineering Dec 30, 2020
f72fa1a
Merge branch 'master' of https://github.com/rossmann-engineering/Easy…
rossmann-engineering Dec 30, 2020
7ea0185
Alpha Version of .NET5 integration and complete redesign
rossmann-engineering Dec 30, 2020
a08eb25
Alpha Version of .NET5 integration and complete redesign
rossmann-engineering Dec 30, 2020
dbb9fd2
Push to Nuget
rossmann-engineering Jan 4, 2021
67d1cba
Pushed to NuGet
rossmann-engineering Jan 4, 2021
314b41c
Fixed absolute path in solution
rossmann-engineering Jan 5, 2021
3d9b2df
Fixed missing dependency for .NET5 test application
rossmann-engineering Jan 5, 2021
dd6d0e9
Moved the basic project - Lot of TODO to be addressed
georgemakrakis Aug 5, 2021
95159bd
Moved the basic project - Lot of TODO to be addressed
georgemakrakis Aug 5, 2021
b465e28
Passwords for certs moved as CMD parameter.
georgemakrakis Aug 9, 2021
dd6ddd8
Passwords for certs moved as CMD parameter.
georgemakrakis Aug 9, 2021
a7533db
Tried to include mutual authentication options - Having problem when …
georgemakrakis Aug 11, 2021
90600dc
Tried to include mutual authentication options - Having problem when …
georgemakrakis Aug 11, 2021
4cfff91
Started adding check for closed connection in client.
georgemakrakis Aug 19, 2021
cf95795
Started adding check for closed connection in client.
georgemakrakis Aug 19, 2021
9501114
Addes connection check for both mutual and non-mutual authentication
georgemakrakis Aug 25, 2021
b4c9cbd
Addes connection check for both mutual and non-mutual authentication
georgemakrakis Aug 25, 2021
d29f682
Added some exception handling to the client's constructor.
georgemakrakis Aug 25, 2021
e8add08
Added some exception handling to the client's constructor.
georgemakrakis Aug 25, 2021
b34ac68
Added some logging to the client
georgemakrakis Aug 25, 2021
317f857
Added some logging to the client
georgemakrakis Aug 25, 2021
acc99eb
Changed default port to 802 by MODBUS/TCP Security Protocol Spec
georgemakrakis Aug 27, 2021
6a454ed
Changed default port to 802 by MODBUS/TCP Security Protocol Spec
georgemakrakis Aug 27, 2021
947bd28
Updated example to verify TLS session resumption using caching.
georgemakrakis Aug 27, 2021
447bb7a
Updated example to verify TLS session resumption using caching.
georgemakrakis Aug 27, 2021
647fc6a
Check and set of roles
georgemakrakis Sep 17, 2021
fe0efc5
Check and set of roles
georgemakrakis Sep 17, 2021
42f87d2
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
00e26b8
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
dc74844
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
a0baa61
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
fa826e4
Used BouncyCastle to extract RoleOID
georgemakrakis Oct 6, 2021
373694f
Used BouncyCastle to extract RoleOID
georgemakrakis Oct 6, 2021
26558c0
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
20de5f1
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
c5aa67b
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
b3b4a95
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
9fcd996
Started creating a decorator pattern to hav AuthZ and non-AuthZ mbaps…
georgemakrakis Oct 13, 2021
4b4eb9d
Started creating a decorator pattern to hav AuthZ and non-AuthZ mbaps…
georgemakrakis Oct 13, 2021
0361866
Stopped Decorator Pattern impl., added extra AuthZ properties and che…
georgemakrakis Oct 15, 2021
0ccc9f3
Stopped Decorator Pattern impl., added extra AuthZ properties and che…
georgemakrakis Oct 15, 2021
aa65d8c
Added new class the extends the previous ModbusSecureServer and inclu…
georgemakrakis Oct 24, 2021
5e4d94a
Added new class the extends the previous ModbusSecureServer and inclu…
georgemakrakis Oct 24, 2021
a76ce64
Started addnig function code specific AuthZ
georgemakrakis Oct 27, 2021
c84dcf4
Started addnig function code specific AuthZ
georgemakrakis Oct 27, 2021
eeec704
Improvement in role initilization and checking part
georgemakrakis Oct 29, 2021
494e06c
Improvement in role initilization and checking part
georgemakrakis Oct 29, 2021
c7daec3
Some logging when non-included role is provided
georgemakrakis Oct 29, 2021
de6770e
Some logging when non-included role is provided
georgemakrakis Oct 29, 2021
fc302b5
List of Function codes can be handled in AuthZ now
georgemakrakis Oct 29, 2021
e999d50
List of Function codes can be handled in AuthZ now
georgemakrakis Oct 29, 2021
522a05a
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
da1f894
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
3f7b50c
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
11320c3
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
c55185c
In testing, used reflection to test ReadCoils startingAddress is out …
georgemakrakis Feb 4, 2022
564f597
In testing, used reflection to test ReadCoils startingAddress is out …
georgemakrakis Feb 4, 2022
c2aea68
Removed testing project, code cannot be tested without refactoring
georgemakrakis Feb 18, 2022
7ad09af
Removed testing project, code cannot be tested without refactoring
georgemakrakis Feb 18, 2022
86b8623
Tested some more FC AuthZ manually
georgemakrakis Feb 18, 2022
39fd9b2
Tested some more FC AuthZ manually
georgemakrakis Feb 18, 2022
9ffbcc5
Started adding Client Example README information
georgemakrakis Mar 7, 2022
ae195a5
Started adding Client Example README information
georgemakrakis Mar 7, 2022
37c094c
Started adding Server Example README info
georgemakrakis Mar 7, 2022
5643879
Started adding Server Example README info
georgemakrakis Mar 7, 2022
4a71473
Started adding the cert creation process
georgemakrakis Mar 9, 2022
466ae0b
Started adding the cert creation process
georgemakrakis Mar 9, 2022
c59846f
Added certs scirpt and cnf for the server
georgemakrakis Mar 9, 2022
b867713
Added certs scirpt and cnf for the server
georgemakrakis Mar 9, 2022
ad90da0
Added certs script and cnf for the server
georgemakrakis Mar 9, 2022
8c8f64e
Added certs script and cnf for the server
georgemakrakis Mar 9, 2022
2e36d1f
Removed unused key and crt files
georgemakrakis Mar 9, 2022
57baf47
Removed unused key and crt files
georgemakrakis Mar 9, 2022
0980aa5
Removed unused key and crt files
georgemakrakis Mar 9, 2022
8782f15
Removed unused key and crt files
georgemakrakis Mar 9, 2022
7a779b2
Removed unused files from history
georgemakrakis Mar 9, 2022
e06ec37
Merge Fixed
georgemakrakis Mar 9, 2022
5277ccd
Added some more clarifications for certs and AuthZ
georgemakrakis Mar 9, 2022
3a551fd
Put the cert path as CLI option as well.
georgemakrakis Mar 16, 2022
51b774e
Specified some more info about Role.
georgemakrakis Mar 16, 2022
394ce0e
Info on how to import the PFX, CRL etc.
georgemakrakis Mar 16, 2022
2cb8bad
Started Requirements Listing and Implementation Description
georgemakrakis Mar 25, 2022
30872cc
Added information to README Description list
georgemakrakis Mar 25, 2022
7e4bb6d
Added screeshot of packet capture to README
georgemakrakis Mar 30, 2022
ee0aa91
Added screeshot of packet capture to README
georgemakrakis Mar 30, 2022
c3cd0b4
Added Demo Client and Server README links
georgemakrakis Mar 30, 2022
16bb0a5
Added Demo Client and Server README links
georgemakrakis Mar 30, 2022
e2ac32e
Removed RemoteCertificateNameMismatch from Client Cert verification
georgemakrakis Apr 1, 2022
8efb930
Added some TODO items to address
georgemakrakis Apr 1, 2022
7a85217
Minized a code section to "one-liner"
georgemakrakis Apr 6, 2022
555fb2c
Abstracted Modbus Functions with delegated execution
georgemakrakis Apr 6, 2022
4eaeda7
Used the same functionality for 2 Connect() in Client
georgemakrakis Apr 6, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -240,3 +240,14 @@ ModelManifest.xml

# FAKE - F# Make
.fake/

certs/
certs2/



*.csr
*.key
*.pem
*.pfx
*.crt
50 changes: 50 additions & 0 deletions EasyModbus.sln
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleAppStd", "ConsoleApp
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EasyModbus_V5.0", "EasyModbus_NET5\EasyModbus_V5.0.csproj", "{83AFFC60-BC95-46B1-861F-B1F80270FBFA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EasyModbus_Net45_Secure", "EasyModbus_Secure\EasyModbus_Net45_Secure.csproj", "{797FC4BA-AE93-4756-8C92-9F73801BBA9E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -331,6 +333,54 @@ Global
{83AFFC60-BC95-46B1-861F-B1F80270FBFA}.Release|x64.Build.0 = Release|Any CPU
{83AFFC60-BC95-46B1-861F-B1F80270FBFA}.Release|x86.ActiveCfg = Release|Any CPU
{83AFFC60-BC95-46B1-861F-B1F80270FBFA}.Release|x86.Build.0 = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|ARM.ActiveCfg = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|ARM.Build.0 = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|x64.ActiveCfg = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|x64.Build.0 = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|x86.ActiveCfg = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Debug|x86.Build.0 = Debug|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|Any CPU.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|Any CPU.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|ARM.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|ARM.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|x64.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|x64.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|x86.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial|x86.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|Any CPU.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|Any CPU.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|ARM.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|ARM.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|x64.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|x64.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|x86.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial1|x86.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|Any CPU.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|Any CPU.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|ARM.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|ARM.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|x64.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|x64.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|x86.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial2|x86.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|Any CPU.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|Any CPU.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|ARM.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|ARM.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|x64.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|x64.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|x86.ActiveCfg = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.DebugCommercial3|x86.Build.0 = DebugCommercial|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|Any CPU.Build.0 = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|ARM.ActiveCfg = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|ARM.Build.0 = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|x64.ActiveCfg = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|x64.Build.0 = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|x86.ActiveCfg = Release|Any CPU
{797FC4BA-AE93-4756-8C92-9F73801BBA9E}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
2 changes: 1 addition & 1 deletion EasyModbus/AdvancedModbusClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;

namespace EasyModbus
namespace EasyModbusSecure
{
public partial class ModbusClient
{
Expand Down
2 changes: 1 addition & 1 deletion EasyModbus/Exceptions/Exceptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using System;
using System.Runtime.Serialization;

namespace EasyModbus.Exceptions
namespace EasyModbusSecure.Exceptions
{
/// <summary>
/// Exception to be thrown if serial port is not opened
Expand Down
Loading