node-opcua-server-configuration 2.74.0 → 2.76.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/clientTools/index.d.ts +1 -1
  2. package/dist/clientTools/index.js +17 -17
  3. package/dist/clientTools/push_certificate_management_client.d.ts +176 -176
  4. package/dist/clientTools/push_certificate_management_client.js +463 -463
  5. package/dist/index.d.ts +10 -10
  6. package/dist/index.js +27 -27
  7. package/dist/push_certificate_manager.d.ts +141 -141
  8. package/dist/push_certificate_manager.js +2 -2
  9. package/dist/server/install_certificate_file_watcher.d.ts +5 -5
  10. package/dist/server/install_certificate_file_watcher.js +23 -23
  11. package/dist/server/install_push_certitifate_management.d.ts +19 -19
  12. package/dist/server/install_push_certitifate_management.js +213 -213
  13. package/dist/server/promote_trust_list.d.ts +6 -6
  14. package/dist/server/promote_trust_list.js +175 -175
  15. package/dist/server/push_certificate_manager_helpers.d.ts +4 -4
  16. package/dist/server/push_certificate_manager_helpers.js +410 -409
  17. package/dist/server/push_certificate_manager_helpers.js.map +1 -1
  18. package/dist/server/push_certificate_manager_server_impl.d.ts +49 -49
  19. package/dist/server/push_certificate_manager_server_impl.js +522 -522
  20. package/dist/server/roles_and_permissions.d.ts +3 -3
  21. package/dist/server/roles_and_permissions.js +40 -40
  22. package/dist/server/tools.d.ts +3 -3
  23. package/dist/server/tools.js +19 -19
  24. package/dist/server/trust_list_server.d.ts +13 -13
  25. package/dist/server/trust_list_server.js +89 -89
  26. package/dist/standard_certificate_types.d.ts +6 -6
  27. package/dist/standard_certificate_types.js +13 -13
  28. package/dist/trust_list.d.ts +79 -79
  29. package/dist/trust_list.js +2 -2
  30. package/dist/trust_list_impl.js +25 -25
  31. package/package.json +27 -27
  32. package/source/server/push_certificate_manager_helpers.ts +3 -3
  33. package/dist/server/install_CertificateAlarm.d.ts +0 -11
  34. package/dist/server/install_CertificateAlarm.js +0 -46
  35. package/dist/server/install_CertificateAlarm.js.map +0 -1
  36. package/source/server/install_CertificateAlarm.ts +0 -56
@@ -1 +1 @@
1
- export * from "./push_certificate_management_client";
1
+ export * from "./push_certificate_management_client";
@@ -1,18 +1,18 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./push_certificate_management_client"), exports);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./push_certificate_management_client"), exports);
18
18
  //# sourceMappingURL=index.js.map
@@ -1,176 +1,176 @@
1
- /// <reference types="node" />
2
- /**
3
- * @module node-opcua-server-configuration.client
4
- */
5
- import { ByteString } from "node-opcua-basic-types";
6
- import { NodeId } from "node-opcua-nodeid";
7
- import { IBasicSession } from "node-opcua-pseudo-session";
8
- import { StatusCode } from "node-opcua-status-code";
9
- import { ClientFile } from "node-opcua-file-transfer";
10
- import { QualifiedNameLike } from "node-opcua-data-model";
11
- import { Certificate } from "node-opcua-crypto";
12
- import { TrustListDataType } from "node-opcua-types";
13
- import { CreateSigningRequestResult, GetRejectedListResult, PushCertificateManager, UpdateCertificateResult } from "../push_certificate_manager";
14
- import { ITrustList } from "../trust_list";
15
- import { TrustListMasks } from "../server/trust_list_server";
16
- export declare class TrustListClient extends ClientFile implements ITrustList {
17
- nodeId: NodeId;
18
- private closeAndUpdateNodeId?;
19
- private addCertificateNodeId?;
20
- private removeCertificateNodeId?;
21
- private openWithMasksNodeId?;
22
- constructor(session: IBasicSession, nodeId: NodeId);
23
- /**
24
- * @private
25
- */
26
- _extractMethodIds(): Promise<void>;
27
- protected extractMethodsIds(): Promise<void>;
28
- openWithMasks(trustListMask: TrustListMasks): Promise<number>;
29
- closeAndUpdate(applyChangesRequired: boolean): Promise<boolean>;
30
- addCertificate(certificate: Certificate, isTrustedCertificate: boolean): Promise<StatusCode>;
31
- removeCertificate(thumbprint: string, isTrustedCertificate: boolean): Promise<StatusCode>;
32
- /**
33
- * helper function to retrieve the list of certificates ...
34
- * @returns
35
- */
36
- readTrustedCertificateList(): Promise<TrustListDataType>;
37
- readTrustedCertificateListWithMasks(trustListMask: TrustListMasks): Promise<TrustListDataType>;
38
- writeTrustedCertificateList(trustedList: TrustListDataType): Promise<boolean>;
39
- }
40
- export declare class CertificateGroup {
41
- session: IBasicSession;
42
- nodeId: NodeId;
43
- constructor(session: IBasicSession, nodeId: NodeId);
44
- getCertificateTypes(): Promise<NodeId[]>;
45
- getTrustList(): Promise<TrustListClient>;
46
- }
47
- export declare class ClientPushCertificateManagement implements PushCertificateManager {
48
- static rsaSha256ApplicationCertificateType: NodeId;
49
- session: IBasicSession;
50
- constructor(session: IBasicSession);
51
- /**
52
- * CreateSigningRequest Method asks the Server to create a PKCS #10 DER encoded
53
- * Certificate Request that is signed with the Server’s private key. This request can be then used
54
- * to request a Certificate from a CA that expects requests in this format.
55
- * This Method requires an encrypted channel and that the Client provide credentials with
56
- * administrative rights on the Server.
57
- *
58
- * @param certificateGroupId - The NodeId of the Certificate Group Object which is affected by the request.
59
- * If null the DefaultApplicationGroup is used.
60
- * @param certificateTypeId - The type of Certificate being requested. The set of permitted types is specified by
61
- * the CertificateTypes Property belonging to the Certificate Group.
62
- * @param subjectName - The subject name to use in the Certificate Request.
63
- * If not specified the SubjectName from the current Certificate is used.
64
- * The subjectName parameter is a sequence of X.500 name value pairs separated by a ‘/’. For
65
- * example: CN=ApplicationName/OU=Group/O=Company.
66
- * If the certificateType is a subtype of ApplicationCertificateType the Certificate subject name
67
- * shall have an organization (O=) or domain name (DC=) field. The public key length shall meet
68
- * the length restrictions for the CertificateType. The domain name field specified in the subject
69
- * name is a logical domain used to qualify the subject name that may or may not be the same
70
- * as a domain or IP address in the subjectAltName field of the Certificate.
71
- * If the certificateType is a subtype of HttpsCertificateType the Certificate common name (CN=)
72
- * shall be the same as a domain from a DiscoveryUrl which uses HTTPS and the subject name
73
- * shall have an organization (O=) field.
74
- * If the subjectName is blank or null the CertificateManager generates a suitable default.
75
- * @param regeneratePrivateKey If TRUE the Server shall create a new Private Key which it stores until the
76
- * matching signed Certificate is uploaded with the UpdateCertificate Method.
77
- * Previously created Private Keys may be discarded if UpdateCertificate was not
78
- * called before calling this method again. If FALSE the Server uses its existing
79
- * Private Key.
80
- * @param nonce Additional entropy which the caller shall provide if regeneratePrivateKey is TRUE.
81
- * It shall be at least 32 bytes long.
82
- *
83
- * @return The PKCS #10 DER encoded Certificate Request.
84
- *
85
- * Result Code Description
86
- * BadInvalidArgument The certificateTypeId, certificateGroupId or subjectName is not valid.
87
- * BadUserAccessDenied The current user does not have the rights required.
88
- */
89
- createSigningRequest(certificateGroupId: NodeId | string, certificateTypeId: NodeId | string, subjectName: string | null, regeneratePrivateKey?: boolean, nonce?: ByteString): Promise<CreateSigningRequestResult>;
90
- /**
91
- * GetRejectedList Method returns the list of Certificates that have been rejected by the Server.
92
- * rules are defined for how the Server updates this list or how long a Certificate is kept in
93
- * the list. It is recommended that every valid but untrusted Certificate be added to the rejected
94
- * list as long as storage is available. Servers should omit older entries from the list returned if
95
- * the maximum message size is not large enough to allow the entire list to be returned.
96
- * This Method requires an encrypted channel and that the Client provides credentials with
97
- * administrative rights on the Server
98
- *
99
- * @return certificates The DER encoded form of the Certificates rejected by the Server
100
- */
101
- getRejectedList(): Promise<GetRejectedListResult>;
102
- /**
103
- * UpdateCertificate is used to update a Certificate for a Server.
104
- * There are the following three use cases for this Method:
105
- * • The new Certificate was created based on a signing request created with the Method
106
- * CreateSigningRequest. In this case there is no privateKey provided.
107
- * • A new privateKey and Certificate was created outside the Server and both are updated
108
- * with this Method.
109
- * • A new Certificate was created and signed with the information from the old Certificate.
110
- * In this case there is no privateKey provided.
111
- *
112
- * The Server will do all normal integrity checks on the Certificate and all of the issuer
113
- * Certificates. If errors occur the BadSecurityChecksFailed error is returned.
114
- * The Server will report an error if the public key does not match the existing Certificate and
115
- * the privateKey was not provided.
116
- * If the Server returns applyChangesRequired=FALSE then it is indicating that it is able to
117
- * satisfy the requirements specified for the ApplyChanges Method.
118
- * This Method requires an encrypted channel and that the Client provides credentials with
119
- * administrative rights on the Server.
120
- *
121
- * @param certificateGroupId - The NodeId of the Certificate Group Object which is affected by the update.
122
- * If null the DefaultApplicationGroup is used.
123
- * @param certificateTypeId - The type of Certificate being updated. The set of permitted types is specified by
124
- * the CertificateTypes Property belonging to the Certificate Group
125
- * @param certificate - The DER encoded Certificate which replaces the existing Certificate.
126
- * @param issuerCertificates - The issuer Certificates needed to verify the signature on the new Certificate
127
- * @return retVal.applyChangesRequired - Indicates that the ApplyChanges Method shall be called before the new
128
- * Certificate will be used.
129
- *
130
- *
131
- */
132
- updateCertificate(certificateGroupId: NodeId | string, certificateTypeId: NodeId | string, certificate: Buffer, issuerCertificates: Buffer[]): Promise<UpdateCertificateResult>;
133
- /**
134
- *
135
- * @param certificateGroupId
136
- * @param certificateTypeId
137
- * @param certificate
138
- * @param issuerCertificates
139
- * @param privateKeyFormat - The format of the Private Key (PEM or PFX). If the privateKey is not specified
140
- * the privateKeyFormat is null or empty
141
- * @param privateKey - The Private Key encoded in the privateKeyFormat
142
- *
143
- */
144
- updateCertificate(certificateGroupId: NodeId | string, certificateTypeId: NodeId | string, certificate: Buffer, issuerCertificates: Buffer[], privateKeyFormat: string, privateKey: Buffer): Promise<UpdateCertificateResult>;
145
- /**
146
- * ApplyChanges tells the Server to apply any security changes.
147
- * This Method should only be called if a previous call to a Method that changed the
148
- * configuration returns applyChangesRequired=true (see 7.7.4).
149
- * If the Server Certificate has changed, Secure Channels using the old Certificate will
150
- * eventually be interrupted. The only leeway the Server has is with the timing. In the best case,
151
- * the Server can close the TransportConnections for the affected Endpoints and leave any
152
- * Subscriptions intact. This should appear no different than a network interruption from the
153
- * perspective of the Client. The Client should be prepared to deal with Certificate changes
154
- * during its reconnect logic. In the worst case, a full shutdown which affects all connected
155
- * Clients will be necessary. In the latter case, the Server shall advertise its intent to interrupt
156
- * connections by setting the SecondsTillShutdown and ShutdownReason Properties in the
157
- * ServerStatus Variable.
158
- * If the Secure Channel being used to call this Method will be affected by the Certificate change
159
- * then the Server shall introduce a delay long enough to allow the caller to receive a reply.
160
- * This Method requires an encrypted channel and that the Client provide credentials with
161
- * administrative rights on the Server.
162
- *
163
- * Result Code Description
164
- * BadUserAccessDenied The current user does not have the rights required.
165
- */
166
- applyChanges(): Promise<StatusCode>;
167
- getSupportedPrivateKeyFormats(): Promise<string[]>;
168
- getCertificateGroupId(certificateGroupName: string): Promise<NodeId>;
169
- /**
170
- *
171
- * @param browseName
172
- */
173
- getCertificateGroup(browseName: QualifiedNameLike | "DefaultApplicationGroup" | "DefaultUserTokenGroup"): Promise<CertificateGroup>;
174
- getApplicationGroup(): Promise<CertificateGroup>;
175
- getUserTokenGroup(): Promise<CertificateGroup>;
176
- }
1
+ /// <reference types="node" />
2
+ /**
3
+ * @module node-opcua-server-configuration.client
4
+ */
5
+ import { ByteString } from "node-opcua-basic-types";
6
+ import { NodeId } from "node-opcua-nodeid";
7
+ import { IBasicSession } from "node-opcua-pseudo-session";
8
+ import { StatusCode } from "node-opcua-status-code";
9
+ import { ClientFile } from "node-opcua-file-transfer";
10
+ import { QualifiedNameLike } from "node-opcua-data-model";
11
+ import { Certificate } from "node-opcua-crypto";
12
+ import { TrustListDataType } from "node-opcua-types";
13
+ import { CreateSigningRequestResult, GetRejectedListResult, PushCertificateManager, UpdateCertificateResult } from "../push_certificate_manager";
14
+ import { ITrustList } from "../trust_list";
15
+ import { TrustListMasks } from "../server/trust_list_server";
16
+ export declare class TrustListClient extends ClientFile implements ITrustList {
17
+ nodeId: NodeId;
18
+ private closeAndUpdateNodeId?;
19
+ private addCertificateNodeId?;
20
+ private removeCertificateNodeId?;
21
+ private openWithMasksNodeId?;
22
+ constructor(session: IBasicSession, nodeId: NodeId);
23
+ /**
24
+ * @private
25
+ */
26
+ _extractMethodIds(): Promise<void>;
27
+ protected extractMethodsIds(): Promise<void>;
28
+ openWithMasks(trustListMask: TrustListMasks): Promise<number>;
29
+ closeAndUpdate(applyChangesRequired: boolean): Promise<boolean>;
30
+ addCertificate(certificate: Certificate, isTrustedCertificate: boolean): Promise<StatusCode>;
31
+ removeCertificate(thumbprint: string, isTrustedCertificate: boolean): Promise<StatusCode>;
32
+ /**
33
+ * helper function to retrieve the list of certificates ...
34
+ * @returns
35
+ */
36
+ readTrustedCertificateList(): Promise<TrustListDataType>;
37
+ readTrustedCertificateListWithMasks(trustListMask: TrustListMasks): Promise<TrustListDataType>;
38
+ writeTrustedCertificateList(trustedList: TrustListDataType): Promise<boolean>;
39
+ }
40
+ export declare class CertificateGroup {
41
+ session: IBasicSession;
42
+ nodeId: NodeId;
43
+ constructor(session: IBasicSession, nodeId: NodeId);
44
+ getCertificateTypes(): Promise<NodeId[]>;
45
+ getTrustList(): Promise<TrustListClient>;
46
+ }
47
+ export declare class ClientPushCertificateManagement implements PushCertificateManager {
48
+ static rsaSha256ApplicationCertificateType: NodeId;
49
+ session: IBasicSession;
50
+ constructor(session: IBasicSession);
51
+ /**
52
+ * CreateSigningRequest Method asks the Server to create a PKCS #10 DER encoded
53
+ * Certificate Request that is signed with the Server’s private key. This request can be then used
54
+ * to request a Certificate from a CA that expects requests in this format.
55
+ * This Method requires an encrypted channel and that the Client provide credentials with
56
+ * administrative rights on the Server.
57
+ *
58
+ * @param certificateGroupId - The NodeId of the Certificate Group Object which is affected by the request.
59
+ * If null the DefaultApplicationGroup is used.
60
+ * @param certificateTypeId - The type of Certificate being requested. The set of permitted types is specified by
61
+ * the CertificateTypes Property belonging to the Certificate Group.
62
+ * @param subjectName - The subject name to use in the Certificate Request.
63
+ * If not specified the SubjectName from the current Certificate is used.
64
+ * The subjectName parameter is a sequence of X.500 name value pairs separated by a ‘/’. For
65
+ * example: CN=ApplicationName/OU=Group/O=Company.
66
+ * If the certificateType is a subtype of ApplicationCertificateType the Certificate subject name
67
+ * shall have an organization (O=) or domain name (DC=) field. The public key length shall meet
68
+ * the length restrictions for the CertificateType. The domain name field specified in the subject
69
+ * name is a logical domain used to qualify the subject name that may or may not be the same
70
+ * as a domain or IP address in the subjectAltName field of the Certificate.
71
+ * If the certificateType is a subtype of HttpsCertificateType the Certificate common name (CN=)
72
+ * shall be the same as a domain from a DiscoveryUrl which uses HTTPS and the subject name
73
+ * shall have an organization (O=) field.
74
+ * If the subjectName is blank or null the CertificateManager generates a suitable default.
75
+ * @param regeneratePrivateKey If TRUE the Server shall create a new Private Key which it stores until the
76
+ * matching signed Certificate is uploaded with the UpdateCertificate Method.
77
+ * Previously created Private Keys may be discarded if UpdateCertificate was not
78
+ * called before calling this method again. If FALSE the Server uses its existing
79
+ * Private Key.
80
+ * @param nonce Additional entropy which the caller shall provide if regeneratePrivateKey is TRUE.
81
+ * It shall be at least 32 bytes long.
82
+ *
83
+ * @return The PKCS #10 DER encoded Certificate Request.
84
+ *
85
+ * Result Code Description
86
+ * BadInvalidArgument The certificateTypeId, certificateGroupId or subjectName is not valid.
87
+ * BadUserAccessDenied The current user does not have the rights required.
88
+ */
89
+ createSigningRequest(certificateGroupId: NodeId | string, certificateTypeId: NodeId | string, subjectName: string | null, regeneratePrivateKey?: boolean, nonce?: ByteString): Promise<CreateSigningRequestResult>;
90
+ /**
91
+ * GetRejectedList Method returns the list of Certificates that have been rejected by the Server.
92
+ * rules are defined for how the Server updates this list or how long a Certificate is kept in
93
+ * the list. It is recommended that every valid but untrusted Certificate be added to the rejected
94
+ * list as long as storage is available. Servers should omit older entries from the list returned if
95
+ * the maximum message size is not large enough to allow the entire list to be returned.
96
+ * This Method requires an encrypted channel and that the Client provides credentials with
97
+ * administrative rights on the Server
98
+ *
99
+ * @return certificates The DER encoded form of the Certificates rejected by the Server
100
+ */
101
+ getRejectedList(): Promise<GetRejectedListResult>;
102
+ /**
103
+ * UpdateCertificate is used to update a Certificate for a Server.
104
+ * There are the following three use cases for this Method:
105
+ * • The new Certificate was created based on a signing request created with the Method
106
+ * CreateSigningRequest. In this case there is no privateKey provided.
107
+ * • A new privateKey and Certificate was created outside the Server and both are updated
108
+ * with this Method.
109
+ * • A new Certificate was created and signed with the information from the old Certificate.
110
+ * In this case there is no privateKey provided.
111
+ *
112
+ * The Server will do all normal integrity checks on the Certificate and all of the issuer
113
+ * Certificates. If errors occur the BadSecurityChecksFailed error is returned.
114
+ * The Server will report an error if the public key does not match the existing Certificate and
115
+ * the privateKey was not provided.
116
+ * If the Server returns applyChangesRequired=FALSE then it is indicating that it is able to
117
+ * satisfy the requirements specified for the ApplyChanges Method.
118
+ * This Method requires an encrypted channel and that the Client provides credentials with
119
+ * administrative rights on the Server.
120
+ *
121
+ * @param certificateGroupId - The NodeId of the Certificate Group Object which is affected by the update.
122
+ * If null the DefaultApplicationGroup is used.
123
+ * @param certificateTypeId - The type of Certificate being updated. The set of permitted types is specified by
124
+ * the CertificateTypes Property belonging to the Certificate Group
125
+ * @param certificate - The DER encoded Certificate which replaces the existing Certificate.
126
+ * @param issuerCertificates - The issuer Certificates needed to verify the signature on the new Certificate
127
+ * @return retVal.applyChangesRequired - Indicates that the ApplyChanges Method shall be called before the new
128
+ * Certificate will be used.
129
+ *
130
+ *
131
+ */
132
+ updateCertificate(certificateGroupId: NodeId | string, certificateTypeId: NodeId | string, certificate: Buffer, issuerCertificates: Buffer[]): Promise<UpdateCertificateResult>;
133
+ /**
134
+ *
135
+ * @param certificateGroupId
136
+ * @param certificateTypeId
137
+ * @param certificate
138
+ * @param issuerCertificates
139
+ * @param privateKeyFormat - The format of the Private Key (PEM or PFX). If the privateKey is not specified
140
+ * the privateKeyFormat is null or empty
141
+ * @param privateKey - The Private Key encoded in the privateKeyFormat
142
+ *
143
+ */
144
+ updateCertificate(certificateGroupId: NodeId | string, certificateTypeId: NodeId | string, certificate: Buffer, issuerCertificates: Buffer[], privateKeyFormat: string, privateKey: Buffer): Promise<UpdateCertificateResult>;
145
+ /**
146
+ * ApplyChanges tells the Server to apply any security changes.
147
+ * This Method should only be called if a previous call to a Method that changed the
148
+ * configuration returns applyChangesRequired=true (see 7.7.4).
149
+ * If the Server Certificate has changed, Secure Channels using the old Certificate will
150
+ * eventually be interrupted. The only leeway the Server has is with the timing. In the best case,
151
+ * the Server can close the TransportConnections for the affected Endpoints and leave any
152
+ * Subscriptions intact. This should appear no different than a network interruption from the
153
+ * perspective of the Client. The Client should be prepared to deal with Certificate changes
154
+ * during its reconnect logic. In the worst case, a full shutdown which affects all connected
155
+ * Clients will be necessary. In the latter case, the Server shall advertise its intent to interrupt
156
+ * connections by setting the SecondsTillShutdown and ShutdownReason Properties in the
157
+ * ServerStatus Variable.
158
+ * If the Secure Channel being used to call this Method will be affected by the Certificate change
159
+ * then the Server shall introduce a delay long enough to allow the caller to receive a reply.
160
+ * This Method requires an encrypted channel and that the Client provide credentials with
161
+ * administrative rights on the Server.
162
+ *
163
+ * Result Code Description
164
+ * BadUserAccessDenied The current user does not have the rights required.
165
+ */
166
+ applyChanges(): Promise<StatusCode>;
167
+ getSupportedPrivateKeyFormats(): Promise<string[]>;
168
+ getCertificateGroupId(certificateGroupName: string): Promise<NodeId>;
169
+ /**
170
+ *
171
+ * @param browseName
172
+ */
173
+ getCertificateGroup(browseName: QualifiedNameLike | "DefaultApplicationGroup" | "DefaultUserTokenGroup"): Promise<CertificateGroup>;
174
+ getApplicationGroup(): Promise<CertificateGroup>;
175
+ getUserTokenGroup(): Promise<CertificateGroup>;
176
+ }