OPC Studio User's Guide and Reference
ObtainNewCertificateOrCertificatePack(IEasyUAClientServerApplication,UAObtainCertificateArguments) Method



OpcLabs.EasyOpcUA Assembly > OpcLabs.EasyOpc.UA.Application.Extensions Namespace > IEasyUAClientServerApplicationExtension Class > ObtainNewCertificateOrCertificatePack Method : ObtainNewCertificateOrCertificatePack(IEasyUAClientServerApplication,UAObtainCertificateArguments) Method
The OPC UA client/server application object that will perform the operation.

In client applications, this is typically obtained by calling System.IServiceProvider.GetService(System.Type) on the OpcLabs.EasyOpc.UA.IEasyUAClient (EasyUAClient object) with the type of OpcLabs.EasyOpc.UA.Application.IEasyUAClientServerApplication as an argument.

The value of this parameter cannot be null (Nothing in Visual Basic).

The arguments describing how the certificate should be obtained.

The value of this parameter cannot be null (Nothing in Visual Basic).

Obtains a new certificate or certificate pack from the certificate manager using the arguments object.
Syntax
'Declaration
 
<ExtensionAttribute()>
<JetBrains.Annotations.NotNullAttribute()>
Public Overloads Shared Function ObtainNewCertificateOrCertificatePack( _
   ByVal application As IEasyUAClientServerApplication, _
   ByVal arguments As UAObtainCertificateArguments _
) As UANodeIdPkiCertificateDictionary
'Usage
 
Dim application As IEasyUAClientServerApplication
Dim arguments As UAObtainCertificateArguments
Dim value As UANodeIdPkiCertificateDictionary
 
value = IEasyUAClientServerApplicationExtension.ObtainNewCertificateOrCertificatePack(application, arguments)
[Extension()]
[JetBrains.Annotations.NotNull()]
public static UANodeIdPkiCertificateDictionary ObtainNewCertificateOrCertificatePack( 
   IEasyUAClientServerApplication application,
   UAObtainCertificateArguments arguments
)
[Extension()]
[JetBrains.Annotations.NotNull()]
public:
static UANodeIdPkiCertificateDictionary^ ObtainNewCertificateOrCertificatePack( 
   IEasyUAClientServerApplication^ application,
   UAObtainCertificateArguments^ arguments
) 

Parameters

application
The OPC UA client/server application object that will perform the operation.

In client applications, this is typically obtained by calling System.IServiceProvider.GetService(System.Type) on the OpcLabs.EasyOpc.UA.IEasyUAClient (EasyUAClient object) with the type of OpcLabs.EasyOpc.UA.Application.IEasyUAClientServerApplication as an argument.

The value of this parameter cannot be null (Nothing in Visual Basic).

arguments
The arguments describing how the certificate should be obtained.

The value of this parameter cannot be null (Nothing in Visual Basic).

Return Value

Returns the collection of certificates obtained from the certificate manager.

This method never returns null (Nothing in Visual Basic).

The individual elements of the returned value can be null (Nothing in Visual Basic).

Exceptions
ExceptionDescription

A null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument.

This is a usage error, i.e. it will never occur (the exception will not be thrown) in a correctly written program. Your code should not catch this exception.

An operation that the thread was execution has been cancelled.

The OPC UA operation has failed. This operation exception in uniformly used to allow common handling of various kinds of errors. The System.Exception.InnerException always contains information about the actual error cause.

This is an operation error that depends on factors external to your program, and thus cannot be always avoided. Your code must handle it appropriately.

Remarks

The ObtainNewCertificateOrCertificatePack methods obtain a new application own certificate or certificate pack from the certificate manager, and store it for subsequent usage.

When certificate pack is used, this method operates on certificates with certificate type Ids given by PackCertificateTypeIds.

If the specified certificate type Id is Null, the default certificate type Id from DefaultCertificateTypeId is used instead.

The actual number of certificates in the application certificate pack may be lower than the count of PackCertificateTypeIds. This is because multiple certificate types may end up using the same certificate. For example, OpcLabs.EasyOpc.UA.Gds.AddressSpace.UACertificateTypeIds.RsaMinApplicationCertificateType specifies an application certificate with RSA key size 1024 or 2048 bits, and OpcLabs.EasyOpc.UA.Gds.AddressSpace.UACertificateTypeIds.RsaSha256ApplicationCertificateType specifies an application certificate with RSA key size 2048, 3072 or 4096 bits. A single certificate with RSA key size of 2048 bits can therefore be used with both these certificate types.

The certificate manager may not support all certificate types in the application certificate pack. For an unsupported certificate type, the value of the certificate in the resulting dictionary is null (Nothing in Visual Basic). Unsupported certificate types do not cause the method to fail (throw an exception).

The operation is synchronous. It can take considerable time to execute, because it involves multiple steps, and waiting for a finalization of the requests by the GDS (see the OpcLabs.EasyOpc.UA.Gds.IEasyUACertificateManagement.FinishRequest method).

For an alternative based on asynchronous programming model (APM, System.IAsyncResult) pattern, see the BeginObtainNewCertificateOrCertificatePack method and related extension methods.

For a task-based asynchronous programming pattern alternative, see the ObtainNewCertificateOrCertificatePackAsync(IEasyUAClientServerApplication,UAObtainCertificateArguments) extension method and its overloads.

When CertificateTypeId in arguments is null (Nothing in Visual Basic), the operation obtains the whole certificate pack. Otherwise, it obtains the certificate of certificate type specified by the CertificateTypeId in arguments.

This is an extension method (info: C#, VB.NET). In languages that have support for extensions methods (such as C# and VB.NET), you can use the extension method as if it were a regular method on the object that is its first parameter. In other languages (such as with Python.NET), you will call the extension as a static method, and pass it the object on which it acts as its first parameter.

Requirements

Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows

See Also