@sudoplatform/sudo-common 6.4.0 → 7.0.0

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 (236) hide show
  1. package/.gitignore +2 -1
  2. package/.yarn/releases/{yarn-1.22.18.cjs → yarn-1.22.19.cjs} +13 -4
  3. package/.yarnrc +1 -1
  4. package/bin/outdated-with-suppression.sh +117 -11
  5. package/bin/suppress-outdated.sh +36 -9
  6. package/dependencies-report.json +388 -4
  7. package/docs/assets/highlight.css +11 -11
  8. package/docs/assets/main.js +4 -2
  9. package/docs/assets/search.js +1 -1
  10. package/docs/assets/style.css +427 -617
  11. package/docs/classes/AccountLockedError.html +163 -8
  12. package/docs/classes/AuthenticationError.html +168 -8
  13. package/docs/classes/Base64.html +134 -3
  14. package/docs/classes/Buffer.html +158 -3
  15. package/docs/classes/ConfigurationNotSetError.html +163 -8
  16. package/docs/classes/ConfigurationSetNotFoundError.html +168 -8
  17. package/docs/classes/DecodeError.html +168 -8
  18. package/docs/classes/DefaultConfigurationManager.html +206 -18
  19. package/docs/classes/DefaultLogger.html +291 -25
  20. package/docs/classes/DefaultSudoKeyArchive.html +337 -39
  21. package/docs/classes/DefaultSudoKeyManager.html +857 -63
  22. package/docs/classes/FatalError.html +168 -8
  23. package/docs/classes/IllegalArgumentError.html +168 -8
  24. package/docs/classes/IllegalStateError.html +168 -8
  25. package/docs/classes/InsufficientEntitlementsError.html +163 -8
  26. package/docs/classes/InvalidOwnershipProofError.html +163 -8
  27. package/docs/classes/InvalidTokenError.html +163 -8
  28. package/docs/classes/KeyArchiveDecodingError.html +168 -8
  29. package/docs/classes/KeyArchiveIncorrectPasswordError.html +168 -8
  30. package/docs/classes/KeyArchiveMissingError.html +168 -8
  31. package/docs/classes/KeyArchiveNoPasswordRequiredError.html +168 -8
  32. package/docs/classes/KeyArchivePasswordRequiredError.html +168 -8
  33. package/docs/classes/KeyArchiveTypeError.html +168 -8
  34. package/docs/classes/KeyArchiveUnknownKeyTypeError.html +168 -8
  35. package/docs/classes/KeyArchiveVersionError.html +168 -8
  36. package/docs/classes/KeyNotFoundError.html +168 -8
  37. package/docs/classes/KeyStoreNotExportableError.html +168 -8
  38. package/docs/classes/LimitExceededError.html +163 -8
  39. package/docs/classes/NoEntitlementsError.html +163 -8
  40. package/docs/classes/NotAuthorizedError.html +168 -8
  41. package/docs/classes/NotRegisteredError.html +168 -8
  42. package/docs/classes/NotSignedInError.html +163 -8
  43. package/docs/classes/OperationNotImplementedError.html +168 -8
  44. package/docs/classes/RegisterError.html +168 -8
  45. package/docs/classes/RequestFailedError.html +188 -12
  46. package/docs/classes/ServiceError.html +168 -8
  47. package/docs/classes/SignOutError.html +168 -8
  48. package/docs/classes/SudoCryptoProviderDefaults.html +106 -1
  49. package/docs/classes/UnknownGraphQLError.html +168 -8
  50. package/docs/classes/UnrecognizedAlgorithmError.html +168 -8
  51. package/docs/classes/UserNotConfirmedError.html +163 -8
  52. package/docs/classes/VersionMismatchError.html +163 -8
  53. package/docs/enums/CachePolicy.html +71 -3
  54. package/docs/enums/EncryptionAlgorithm.html +78 -3
  55. package/docs/enums/KeyArchiveKeyType.html +86 -4
  56. package/docs/enums/KeyDataKeyFormat.html +84 -10
  57. package/docs/enums/KeyDataKeyType.html +85 -3
  58. package/docs/enums/ListOperationResultStatus.html +84 -9
  59. package/docs/enums/PublicKeyFormat.html +68 -1
  60. package/docs/functions/isAppSyncNetworkError.html +147 -0
  61. package/docs/functions/isInsecureKeyArchive.html +147 -0
  62. package/docs/functions/isSecureKeyArchive.html +147 -0
  63. package/docs/functions/isUnrecognizedKeyArchive.html +147 -0
  64. package/docs/functions/keyArchiveInfoFromKeyData.html +147 -0
  65. package/docs/functions/keyArchiveKeyTypeFromKeyDataKeyType.html +147 -0
  66. package/docs/functions/mapGraphQLToClientError.html +154 -0
  67. package/docs/functions/mapNetworkErrorToClientError.html +154 -0
  68. package/docs/index.html +134 -2
  69. package/docs/interfaces/AsymmetricEncryptionOptions.html +68 -3
  70. package/docs/interfaces/BooleanFilter.html +75 -3
  71. package/docs/interfaces/ConfigurationManager.html +191 -35
  72. package/docs/interfaces/KeyData.html +106 -8
  73. package/docs/interfaces/ListOperationFailureResult.html +76 -5
  74. package/docs/interfaces/ListOperationPartialResult.html +101 -9
  75. package/docs/interfaces/ListOperationSuccessResult.html +90 -7
  76. package/docs/interfaces/ListOutput.html +80 -3
  77. package/docs/interfaces/Logger.html +251 -45
  78. package/docs/interfaces/Owner.html +72 -1
  79. package/docs/interfaces/PublicKey.html +72 -1
  80. package/docs/interfaces/ServiceCompatibilityInfo.html +106 -13
  81. package/docs/interfaces/StringFilter.html +82 -3
  82. package/docs/interfaces/SudoCryptoProvider.html +902 -175
  83. package/docs/interfaces/SudoKeyArchive.html +245 -42
  84. package/docs/interfaces/SudoKeyManager.html +884 -169
  85. package/docs/interfaces/SymmetricEncryptionOptions.html +75 -3
  86. package/docs/interfaces/ValidationResult.html +79 -7
  87. package/docs/modules.html +248 -33
  88. package/docs/types/AppSyncError.html +138 -0
  89. package/docs/types/AppSyncNetworkError.html +138 -0
  90. package/docs/types/InsecureKeyArchive.html +138 -0
  91. package/docs/types/KeyArchive.html +138 -0
  92. package/docs/types/KeyArchiveKeyInfo.html +154 -0
  93. package/docs/types/KeyArchiveKeyInfoDecoded.html +138 -0
  94. package/docs/types/ListOperationResult.html +148 -0
  95. package/docs/types/SecureKeyArchive.html +138 -0
  96. package/docs/types/Subset.html +144 -0
  97. package/docs/types/UnrecognizedKeyArchive.html +138 -0
  98. package/docs/variables/CURRENT_ARCHIVE_VERSION.html +138 -0
  99. package/docs/variables/InsecureKeyArchiveCodec.html +138 -0
  100. package/docs/variables/InsecureKeyArchiveType.html +138 -0
  101. package/docs/variables/KeyArchiveCodec.html +138 -0
  102. package/docs/variables/KeyArchiveKeyInfoArrayCodec.html +138 -0
  103. package/docs/variables/KeyArchiveKeyInfoCodec.html +138 -0
  104. package/docs/variables/KeyArchiveKeyTypeCodec.html +138 -0
  105. package/docs/variables/SecureKeyArchiveCodec.html +138 -0
  106. package/docs/variables/SecureKeyArchiveType.html +138 -0
  107. package/docs/variables/UnrecognizedKeyArchiveCodec.html +138 -0
  108. package/github/.gitignore +2 -1
  109. package/github/.yarn/releases/{yarn-1.22.18.cjs → yarn-1.22.19.cjs} +13 -4
  110. package/github/.yarnrc +1 -1
  111. package/github/bin/outdated-with-suppression.sh +117 -11
  112. package/github/bin/suppress-outdated.sh +36 -9
  113. package/github/docs/assets/highlight.css +11 -11
  114. package/github/docs/assets/main.js +4 -2
  115. package/github/docs/assets/search.js +1 -1
  116. package/github/docs/assets/style.css +427 -617
  117. package/github/docs/classes/AccountLockedError.html +163 -8
  118. package/github/docs/classes/AuthenticationError.html +168 -8
  119. package/github/docs/classes/Base64.html +134 -3
  120. package/github/docs/classes/Buffer.html +158 -3
  121. package/github/docs/classes/ConfigurationNotSetError.html +163 -8
  122. package/github/docs/classes/ConfigurationSetNotFoundError.html +168 -8
  123. package/github/docs/classes/DecodeError.html +168 -8
  124. package/github/docs/classes/DefaultConfigurationManager.html +206 -18
  125. package/github/docs/classes/DefaultLogger.html +291 -25
  126. package/github/docs/classes/DefaultSudoKeyArchive.html +337 -39
  127. package/github/docs/classes/DefaultSudoKeyManager.html +857 -63
  128. package/github/docs/classes/FatalError.html +168 -8
  129. package/github/docs/classes/IllegalArgumentError.html +168 -8
  130. package/github/docs/classes/IllegalStateError.html +168 -8
  131. package/github/docs/classes/InsufficientEntitlementsError.html +163 -8
  132. package/github/docs/classes/InvalidOwnershipProofError.html +163 -8
  133. package/github/docs/classes/InvalidTokenError.html +163 -8
  134. package/github/docs/classes/KeyArchiveDecodingError.html +168 -8
  135. package/github/docs/classes/KeyArchiveIncorrectPasswordError.html +168 -8
  136. package/github/docs/classes/KeyArchiveMissingError.html +168 -8
  137. package/github/docs/classes/KeyArchiveNoPasswordRequiredError.html +168 -8
  138. package/github/docs/classes/KeyArchivePasswordRequiredError.html +168 -8
  139. package/github/docs/classes/KeyArchiveTypeError.html +168 -8
  140. package/github/docs/classes/KeyArchiveUnknownKeyTypeError.html +168 -8
  141. package/github/docs/classes/KeyArchiveVersionError.html +168 -8
  142. package/github/docs/classes/KeyNotFoundError.html +168 -8
  143. package/github/docs/classes/KeyStoreNotExportableError.html +168 -8
  144. package/github/docs/classes/LimitExceededError.html +163 -8
  145. package/github/docs/classes/NoEntitlementsError.html +163 -8
  146. package/github/docs/classes/NotAuthorizedError.html +168 -8
  147. package/github/docs/classes/NotRegisteredError.html +168 -8
  148. package/github/docs/classes/NotSignedInError.html +163 -8
  149. package/github/docs/classes/OperationNotImplementedError.html +168 -8
  150. package/github/docs/classes/RegisterError.html +168 -8
  151. package/github/docs/classes/RequestFailedError.html +188 -12
  152. package/github/docs/classes/ServiceError.html +168 -8
  153. package/github/docs/classes/SignOutError.html +168 -8
  154. package/github/docs/classes/SudoCryptoProviderDefaults.html +106 -1
  155. package/github/docs/classes/UnknownGraphQLError.html +168 -8
  156. package/github/docs/classes/UnrecognizedAlgorithmError.html +168 -8
  157. package/github/docs/classes/UserNotConfirmedError.html +163 -8
  158. package/github/docs/classes/VersionMismatchError.html +163 -8
  159. package/github/docs/enums/CachePolicy.html +71 -3
  160. package/github/docs/enums/EncryptionAlgorithm.html +78 -3
  161. package/github/docs/enums/KeyArchiveKeyType.html +86 -4
  162. package/github/docs/enums/KeyDataKeyFormat.html +84 -10
  163. package/github/docs/enums/KeyDataKeyType.html +85 -3
  164. package/github/docs/enums/ListOperationResultStatus.html +84 -9
  165. package/github/docs/enums/PublicKeyFormat.html +68 -1
  166. package/github/docs/functions/isAppSyncNetworkError.html +147 -0
  167. package/github/docs/functions/isInsecureKeyArchive.html +147 -0
  168. package/github/docs/functions/isSecureKeyArchive.html +147 -0
  169. package/github/docs/functions/isUnrecognizedKeyArchive.html +147 -0
  170. package/github/docs/functions/keyArchiveInfoFromKeyData.html +147 -0
  171. package/github/docs/functions/keyArchiveKeyTypeFromKeyDataKeyType.html +147 -0
  172. package/github/docs/functions/mapGraphQLToClientError.html +154 -0
  173. package/github/docs/functions/mapNetworkErrorToClientError.html +154 -0
  174. package/github/docs/index.html +134 -2
  175. package/github/docs/interfaces/AsymmetricEncryptionOptions.html +68 -3
  176. package/github/docs/interfaces/BooleanFilter.html +75 -3
  177. package/github/docs/interfaces/ConfigurationManager.html +191 -35
  178. package/github/docs/interfaces/KeyData.html +106 -8
  179. package/github/docs/interfaces/ListOperationFailureResult.html +76 -5
  180. package/github/docs/interfaces/ListOperationPartialResult.html +101 -9
  181. package/github/docs/interfaces/ListOperationSuccessResult.html +90 -7
  182. package/github/docs/interfaces/ListOutput.html +80 -3
  183. package/github/docs/interfaces/Logger.html +251 -45
  184. package/github/docs/interfaces/Owner.html +72 -1
  185. package/github/docs/interfaces/PublicKey.html +72 -1
  186. package/github/docs/interfaces/ServiceCompatibilityInfo.html +106 -13
  187. package/github/docs/interfaces/StringFilter.html +82 -3
  188. package/github/docs/interfaces/SudoCryptoProvider.html +902 -175
  189. package/github/docs/interfaces/SudoKeyArchive.html +245 -42
  190. package/github/docs/interfaces/SudoKeyManager.html +884 -169
  191. package/github/docs/interfaces/SymmetricEncryptionOptions.html +75 -3
  192. package/github/docs/interfaces/ValidationResult.html +79 -7
  193. package/github/docs/modules.html +248 -33
  194. package/github/docs/types/AppSyncError.html +138 -0
  195. package/github/docs/types/AppSyncNetworkError.html +138 -0
  196. package/github/docs/types/InsecureKeyArchive.html +138 -0
  197. package/github/docs/types/KeyArchive.html +138 -0
  198. package/github/docs/types/KeyArchiveKeyInfo.html +154 -0
  199. package/github/docs/types/KeyArchiveKeyInfoDecoded.html +138 -0
  200. package/github/docs/types/ListOperationResult.html +148 -0
  201. package/github/docs/types/SecureKeyArchive.html +138 -0
  202. package/github/docs/types/Subset.html +144 -0
  203. package/github/docs/types/UnrecognizedKeyArchive.html +138 -0
  204. package/github/docs/variables/CURRENT_ARCHIVE_VERSION.html +138 -0
  205. package/github/docs/variables/InsecureKeyArchiveCodec.html +138 -0
  206. package/github/docs/variables/InsecureKeyArchiveType.html +138 -0
  207. package/github/docs/variables/KeyArchiveCodec.html +138 -0
  208. package/github/docs/variables/KeyArchiveKeyInfoArrayCodec.html +138 -0
  209. package/github/docs/variables/KeyArchiveKeyInfoCodec.html +138 -0
  210. package/github/docs/variables/KeyArchiveKeyTypeCodec.html +138 -0
  211. package/github/docs/variables/SecureKeyArchiveCodec.html +138 -0
  212. package/github/docs/variables/SecureKeyArchiveType.html +138 -0
  213. package/github/docs/variables/UnrecognizedKeyArchiveCodec.html +138 -0
  214. package/github/package.json +25 -17
  215. package/github/src/sudoKeyArchive/sudoKeyArchive.ts +1 -1
  216. package/github/src/sudoKeyManager/sudoCryptoProvider.ts +60 -1
  217. package/github/src/sudoKeyManager/sudoKeyManager.ts +84 -0
  218. package/github/test/unit/sudoKeyManager.spec.ts +41 -0
  219. package/github/yarn.lock +1012 -735
  220. package/lib/sudoKeyArchive/sudoKeyArchive.d.ts +1 -1
  221. package/lib/sudoKeyArchive/sudoKeyArchive.js +1 -1
  222. package/lib/sudoKeyManager/sudoCryptoProvider.d.ts +48 -1
  223. package/lib/sudoKeyManager/sudoKeyManager.d.ts +46 -0
  224. package/lib/sudoKeyManager/sudoKeyManager.js +20 -0
  225. package/package.json +26 -18
  226. package/src/sudoKeyArchive/sudoKeyArchive.ts +1 -1
  227. package/src/sudoKeyManager/sudoCryptoProvider.ts +60 -1
  228. package/src/sudoKeyManager/sudoKeyManager.ts +84 -0
  229. package/test/unit/sudoKeyManager.spec.ts +41 -0
  230. package/yarn.lock +1012 -735
  231. package/docs/assets/icons.css +0 -1043
  232. package/docs/assets/icons.png +0 -0
  233. package/docs/assets/icons@2x.png +0 -0
  234. package/github/docs/assets/icons.css +0 -1043
  235. package/github/docs/assets/icons.png +0 -0
  236. package/github/docs/assets/icons@2x.png +0 -0
@@ -91,6 +91,15 @@ export interface SudoCryptoProvider {
91
91
  *
92
92
  * @param name The name of the symmetric key.
93
93
  */
94
+ doesSymmetricKeyExist(name: string): Promise<boolean>
95
+
96
+ /**
97
+ * Checks to see if the specified symmetric key exists.
98
+ *
99
+ * @param name The name of the symmetric key.
100
+ *
101
+ * @deprecated Use doesSymmetricKeyExist
102
+ */
94
103
  doesSymmetricKeyExists(name: string): Promise<boolean>
95
104
 
96
105
  /**
@@ -138,6 +147,36 @@ export interface SudoCryptoProvider {
138
147
  */
139
148
  deleteKeyPair(name: string): Promise<void>
140
149
 
150
+ /**
151
+ * Generates a signature for the given data with the specified private key.
152
+ *
153
+ * @param name The name of the private key to use for generation.
154
+ * @param data The data to sign.
155
+ *
156
+ * @returns Data signature
157
+ *
158
+ * @throws {@link KeyNotFoundError}
159
+ */
160
+ generateSignatureWithPrivateKey(
161
+ name: string,
162
+ data: ArrayBuffer,
163
+ ): Promise<ArrayBuffer>
164
+
165
+ /**
166
+ * Verifies the given data against the provided signature using the specified public key.
167
+ *
168
+ * @param name The name of the public key to use for validation.
169
+ * @param data The data to verify
170
+ * @param signature The signature to verify against
171
+ *
172
+ * @returns True if the data and signature could be successfully verified
173
+ */
174
+ verifySignatureWithPublicKey(
175
+ name: string,
176
+ data: ArrayBuffer,
177
+ signature: ArrayBuffer,
178
+ ): Promise<boolean>
179
+
141
180
  /**
142
181
  * Adds a private key to the secure store.
143
182
  *
@@ -160,6 +199,15 @@ export interface SudoCryptoProvider {
160
199
  *
161
200
  * @param name The name of the private key.
162
201
  */
202
+ doesPrivateKeyExist(name: string): Promise<boolean>
203
+
204
+ /**
205
+ * Checks to see if the specified private key exists.
206
+ *
207
+ * @param name The name of the private key.
208
+ *
209
+ * @deprecated Use doesPrivateKeyExist
210
+ */
163
211
  doesPrivateKeyExists(name: string): Promise<boolean>
164
212
 
165
213
  /**
@@ -170,6 +218,13 @@ export interface SudoCryptoProvider {
170
218
  */
171
219
  addPublicKey(key: ArrayBuffer, name: string): Promise<void>
172
220
 
221
+ /**
222
+ * Deletes the specified public key from the secure store.
223
+ *
224
+ * @param name The name of the public key to be removed.
225
+ */
226
+ deletePublicKey(name: string): Promise<void>
227
+
173
228
  /**
174
229
  * Retrieves the public key from the secure store.
175
230
  *
@@ -211,6 +266,7 @@ export interface SudoCryptoProvider {
211
266
  * @returns Encrypted data and IV
212
267
  *
213
268
  * @throws {@link UnrecognizedAlgorithmError}
269
+ * @throws {@link KeyNotFoundError}
214
270
  */
215
271
  encryptWithSymmetricKeyName(
216
272
  name: string,
@@ -244,6 +300,7 @@ export interface SudoCryptoProvider {
244
300
  * @returns Decrypted data
245
301
  *
246
302
  * @throws {@link UnrecognizedAlgorithmError}
303
+ * @throws {@link KeyNotFoundError}
247
304
  */
248
305
  decryptWithSymmetricKeyName(
249
306
  name: string,
@@ -326,6 +383,7 @@ export interface SudoCryptoProvider {
326
383
  * @returns Encrypted data
327
384
  *
328
385
  * @throws {@link UnrecognizedAlgorithmError}
386
+ * @throws {@link KeyNotFoundError}
329
387
  */
330
388
  encryptWithPublicKey(
331
389
  name: string,
@@ -339,9 +397,10 @@ export interface SudoCryptoProvider {
339
397
  * @param name The name of the private key to use for decryption.
340
398
  * @param data The data to decrypt.
341
399
  *
342
- * @returns Decrypted data or undefined if the private key is not found.
400
+ * @returns Decrypted data.
343
401
  *
344
402
  * @throws {@link UnrecognizedAlgorithmError}
403
+ * @throws {@link KeyNotFoundError}
345
404
  */
346
405
  decryptWithPrivateKey(
347
406
  name: string,
@@ -68,6 +68,15 @@ export interface SudoKeyManager {
68
68
  *
69
69
  * @param name The name of the symmetric key.
70
70
  */
71
+ doesSymmetricKeyExist(name: string): Promise<boolean>
72
+
73
+ /**
74
+ * Checks to see if the specified symmetric key exists.
75
+ *
76
+ * @param name The name of the symmetric key.
77
+ *
78
+ * @deprecated Use doesSymmetricKeyExist
79
+ */
71
80
  doesSymmetricKeyExists(name: string): Promise<boolean>
72
81
 
73
82
  /**
@@ -99,6 +108,15 @@ export interface SudoKeyManager {
99
108
  *
100
109
  * @param name The name of the private key.
101
110
  */
111
+ doesPrivateKeyExist(name: string): Promise<boolean>
112
+
113
+ /**
114
+ * Checks to see if the specified private key exists.
115
+ *
116
+ * @param name The name of the private key.
117
+ *
118
+ * @deprecated Use doesPrivateKeyExist
119
+ */
102
120
  doesPrivateKeyExists(name: string): Promise<boolean>
103
121
 
104
122
  /**
@@ -111,6 +129,13 @@ export interface SudoKeyManager {
111
129
  */
112
130
  addPublicKey(key: ArrayBuffer, name: string): Promise<void>
113
131
 
132
+ /**
133
+ * Deletes the specified public key from the secure store.
134
+ *
135
+ * @param name The name of the public key to be removed.
136
+ */
137
+ deletePublicKey(name: string): Promise<void>
138
+
114
139
  /**
115
140
  * Retrieves the public key from the secure store.
116
141
  *
@@ -129,6 +154,34 @@ export interface SudoKeyManager {
129
154
  */
130
155
  deleteKeyPair(name: string): Promise<void>
131
156
 
157
+ /**
158
+ * Generates a signature for the given data with the specified private key.
159
+ *
160
+ * @param name The name of the private key to use for generation.
161
+ * @param data The data to sign.
162
+ *
163
+ * @returns Data signature or undefined if the private key is not found.
164
+ */
165
+ generateSignatureWithPrivateKey(
166
+ name: string,
167
+ data: ArrayBuffer,
168
+ ): Promise<ArrayBuffer>
169
+
170
+ /**
171
+ * Verifies the given data against the provided signature using the specified public key.
172
+ *
173
+ * @param name The name of the public key to use for validation.
174
+ * @param data The data to verify
175
+ * @param signature The signature to verify against
176
+ *
177
+ * @returns True if the data and signature could be successfully verified
178
+ */
179
+ verifySignatureWithPublicKey(
180
+ name: string,
181
+ data: ArrayBuffer,
182
+ signature: ArrayBuffer,
183
+ ): Promise<boolean>
184
+
132
185
  /**
133
186
  * @deprecated Use version with `options` param.
134
187
  *
@@ -393,6 +446,10 @@ export class DefaultSudoKeyManager implements SudoKeyManager {
393
446
  return this.sudoCryptoProvider.getSymmetricKey(name)
394
447
  }
395
448
 
449
+ public doesSymmetricKeyExist(name: string): Promise<boolean> {
450
+ return this.sudoCryptoProvider.doesSymmetricKeyExists(name)
451
+ }
452
+
396
453
  public doesSymmetricKeyExists(name: string): Promise<boolean> {
397
454
  return this.sudoCryptoProvider.doesSymmetricKeyExists(name)
398
455
  }
@@ -413,6 +470,10 @@ export class DefaultSudoKeyManager implements SudoKeyManager {
413
470
  return this.sudoCryptoProvider.getPrivateKey(name)
414
471
  }
415
472
 
473
+ public doesPrivateKeyExist(name: string): Promise<boolean> {
474
+ return this.sudoCryptoProvider.doesPrivateKeyExists(name)
475
+ }
476
+
416
477
  public doesPrivateKeyExists(name: string): Promise<boolean> {
417
478
  return this.sudoCryptoProvider.doesPrivateKeyExists(name)
418
479
  }
@@ -421,6 +482,10 @@ export class DefaultSudoKeyManager implements SudoKeyManager {
421
482
  return this.sudoCryptoProvider.addPublicKey(key, name)
422
483
  }
423
484
 
485
+ public deletePublicKey(name: string): Promise<void> {
486
+ return this.sudoCryptoProvider.deletePublicKey(name)
487
+ }
488
+
424
489
  public getPublicKey(name: string): Promise<PublicKey | undefined> {
425
490
  return this.sudoCryptoProvider.getPublicKey(name)
426
491
  }
@@ -429,6 +494,25 @@ export class DefaultSudoKeyManager implements SudoKeyManager {
429
494
  return this.sudoCryptoProvider.deleteKeyPair(name)
430
495
  }
431
496
 
497
+ public generateSignatureWithPrivateKey(
498
+ name: string,
499
+ data: ArrayBuffer,
500
+ ): Promise<ArrayBuffer> {
501
+ return this.sudoCryptoProvider.generateSignatureWithPrivateKey(name, data)
502
+ }
503
+
504
+ verifySignatureWithPublicKey(
505
+ name: string,
506
+ data: ArrayBuffer,
507
+ signature: ArrayBuffer,
508
+ ): Promise<boolean> {
509
+ return this.sudoCryptoProvider.verifySignatureWithPublicKey(
510
+ name,
511
+ data,
512
+ signature,
513
+ )
514
+ }
515
+
432
516
  public encryptWithSymmetricKey(
433
517
  key: ArrayBuffer,
434
518
  data: ArrayBuffer,
@@ -177,6 +177,25 @@ describe('DefaultSudoKeyManager', () => {
177
177
  })
178
178
  })
179
179
 
180
+ describe('doesSymmetricKeyExist', () => {
181
+ it('should call crypto provider doesSymmetricKeyExists', async () => {
182
+ when(
183
+ sudoCryptoProviderMock.doesSymmetricKeyExists(anything()),
184
+ ).thenResolve(true)
185
+
186
+ await expect(
187
+ sudoKeyManager.doesSymmetricKeyExist('VpnKey'),
188
+ ).resolves.toEqual(true)
189
+ const [actualKey] = capture(
190
+ sudoCryptoProviderMock.doesSymmetricKeyExists,
191
+ ).first()
192
+ expect(actualKey).toStrictEqual('VpnKey')
193
+
194
+ verify(sudoCryptoProviderMock.doesSymmetricKeyExists(anything())).once()
195
+ verify(sudoCryptoProviderMock.doesSymmetricKeyExist(anything())).never()
196
+ })
197
+ })
198
+
180
199
  describe('doesSymmetricKeyExists', () => {
181
200
  it('should call crypto provider doesSymmetricKeyExists', async () => {
182
201
  when(
@@ -192,6 +211,7 @@ describe('DefaultSudoKeyManager', () => {
192
211
  expect(actualKey).toStrictEqual('VpnKey')
193
212
 
194
213
  verify(sudoCryptoProviderMock.doesSymmetricKeyExists(anything())).once()
214
+ verify(sudoCryptoProviderMock.doesSymmetricKeyExist(anything())).never()
195
215
  })
196
216
  })
197
217
 
@@ -281,6 +301,26 @@ describe('DefaultSudoKeyManager', () => {
281
301
  })
282
302
  })
283
303
 
304
+ describe('doesPrivateKeyExist', () => {
305
+ it('should call crypto provider doesPrivateKeyExists', async () => {
306
+ when(sudoCryptoProviderMock.doesPrivateKeyExists(anything())).thenResolve(
307
+ true,
308
+ )
309
+
310
+ await expect(
311
+ sudoKeyManager.doesPrivateKeyExist('VpnKeyPair'),
312
+ ).resolves.toBeTruthy()
313
+
314
+ const [actualKeyName] = capture(
315
+ sudoCryptoProviderMock.doesPrivateKeyExists,
316
+ ).first()
317
+ expect(actualKeyName).toStrictEqual('VpnKeyPair')
318
+
319
+ verify(sudoCryptoProviderMock.doesPrivateKeyExists(anything())).once()
320
+ verify(sudoCryptoProviderMock.doesPrivateKeyExist(anything())).never()
321
+ })
322
+ })
323
+
284
324
  describe('doesPrivateKeyExists', () => {
285
325
  it('should call crypto provider doesPrivateKeyExists', async () => {
286
326
  when(sudoCryptoProviderMock.doesPrivateKeyExists(anything())).thenResolve(
@@ -297,6 +337,7 @@ describe('DefaultSudoKeyManager', () => {
297
337
  expect(actualKeyName).toStrictEqual('VpnKeyPair')
298
338
 
299
339
  verify(sudoCryptoProviderMock.doesPrivateKeyExists(anything())).once()
340
+ verify(sudoCryptoProviderMock.doesPrivateKeyExist(anything())).never()
300
341
  })
301
342
  })
302
343