Added a minimal rogue client detection mechanism at the transport level #3499
Annotations
1 error and 10 warnings
Test
Process completed with exit code 1.
|
Build:
Libraries/Opc.Ua.Security.Certificates/X509Crl/CrlReason.cs#L53
Mark enums with FlagsAttribute (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1027)
|
Build:
Libraries/Opc.Ua.Security.Certificates/Extensions/X509AuthorityKeyIdentifierExtension.cs#L66
In externally visible method 'X509AuthorityKeyIdentifierExtension.X509AuthorityKeyIdentifierExtension(AsnEncodedData encodedExtension, bool critical)', validate parameter 'encodedExtension' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)
|
Build:
Libraries/Opc.Ua.Security.Certificates/Common/AsnUtils.cs#L96
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Opc.Ua.Security.Certificates.AsnUtils.FromHexString(string)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
Build:
Libraries/Opc.Ua.Security.Certificates/Common/AsnUtils.cs#L108
'string.IndexOf(char)' has a method overload that takes a 'StringComparison' parameter. Replace this call in 'Opc.Ua.Security.Certificates.AsnUtils.FromHexString(string)' with a call to 'string.IndexOf(char, System.StringComparison)' for clarity of intent. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1307)
|
Build:
Libraries/Opc.Ua.Security.Certificates/Extensions/X509CrlNumberExtension.cs#L60
In externally visible method 'X509CrlNumberExtension.X509CrlNumberExtension(AsnEncodedData encodedExtension, bool critical)', validate parameter 'encodedExtension' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)
|
Build:
Libraries/Opc.Ua.Security.Certificates/Extensions/X509SubjectAltNameExtension.cs#L88
In externally visible method 'X509SubjectAltNameExtension.X509SubjectAltNameExtension(AsnEncodedData encodedExtension, bool critical)', validate parameter 'encodedExtension' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)
|
Build:
Libraries/Opc.Ua.Security.Certificates/Extensions/X509SubjectAltNameExtension.cs#L116
Change the type of parameter 'applicationUri' of method 'X509SubjectAltNameExtension.X509SubjectAltNameExtension(string, IEnumerable<string>)' from 'string' to 'System.Uri', or provide an overload to 'X509SubjectAltNameExtension.X509SubjectAltNameExtension(string, IEnumerable<string>)' that allows 'applicationUri' to be passed as a 'System.Uri' object (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1054)
|
Build:
Libraries/Opc.Ua.Security.Certificates/Extensions/X509SubjectAltNameExtension.cs#L121
In externally visible method 'X509SubjectAltNameExtension.X509SubjectAltNameExtension(string applicationUri, IEnumerable<string> domainNames)', validate parameter 'domainNames' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)
|
Build:
Libraries/Opc.Ua.Security.Certificates/PEM/PEMWriter.cs#L66
In externally visible method 'byte[] PEMWriter.ExportCertificateAsPEM(X509Certificate2 certificate)', validate parameter 'certificate' is non-null before using it. If appropriate, throw an 'ArgumentNullException' when the argument is 'null'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1062)
|
Build:
Libraries/Opc.Ua.Security.Certificates/PEM/PEMReader.cs#L84
Use recommended dispose pattern to ensure that object created by 'RSA.Create()' is disposed on all paths. If possible, wrap the creation within a 'using' statement or a 'using' declaration. Otherwise, use a try-finally pattern, with a dedicated local variable declared before the try region and an unconditional Dispose invocation on non-null value in the 'finally' region, say 'x?.Dispose()'. If the object is explicitly disposed within the try region or the dispose ownership is transfered to another object or method, assign 'null' to the local variable just after such an operation to prevent double dispose in 'finally'. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000)
|
Loading