@tidecloak/js 0.9.11

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 (485) hide show
  1. package/LICENSE +334 -0
  2. package/README.md +294 -0
  3. package/dist/cjs/lib/tidecloak.js +1934 -0
  4. package/dist/cjs/lib/tidecloak.js.map +1 -0
  5. package/dist/cjs/modules/tide-js/Clients/ClientBase.js +213 -0
  6. package/dist/cjs/modules/tide-js/Clients/ClientBase.js.map +1 -0
  7. package/dist/cjs/modules/tide-js/Clients/NetworkClient.js +96 -0
  8. package/dist/cjs/modules/tide-js/Clients/NetworkClient.js.map +1 -0
  9. package/dist/cjs/modules/tide-js/Clients/NodeClient.js +491 -0
  10. package/dist/cjs/modules/tide-js/Clients/NodeClient.js.map +1 -0
  11. package/dist/cjs/modules/tide-js/Clients/PollingClient.js +87 -0
  12. package/dist/cjs/modules/tide-js/Clients/PollingClient.js.map +1 -0
  13. package/dist/cjs/modules/tide-js/Clients/VoucherClient.js +37 -0
  14. package/dist/cjs/modules/tide-js/Clients/VoucherClient.js.map +1 -0
  15. package/dist/cjs/modules/tide-js/Cryptide/Components/BaseComponent.js +180 -0
  16. package/dist/cjs/modules/tide-js/Cryptide/Components/BaseComponent.js.map +1 -0
  17. package/dist/cjs/modules/tide-js/Cryptide/Components/ComponentRegistry.js +30 -0
  18. package/dist/cjs/modules/tide-js/Cryptide/Components/ComponentRegistry.js.map +1 -0
  19. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js +11 -0
  20. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js.map +1 -0
  21. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js +13 -0
  22. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js.map +1 -0
  23. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js +166 -0
  24. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js.map +1 -0
  25. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js +41 -0
  26. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js.map +1 -0
  27. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js +13 -0
  28. package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js.map +1 -0
  29. package/dist/cjs/modules/tide-js/Cryptide/Ed25519.js +535 -0
  30. package/dist/cjs/modules/tide-js/Cryptide/Ed25519.js.map +1 -0
  31. package/dist/cjs/modules/tide-js/Cryptide/Encryption/AES.js +109 -0
  32. package/dist/cjs/modules/tide-js/Cryptide/Encryption/AES.js.map +1 -0
  33. package/dist/cjs/modules/tide-js/Cryptide/Encryption/DH.js +53 -0
  34. package/dist/cjs/modules/tide-js/Cryptide/Encryption/DH.js.map +1 -0
  35. package/dist/cjs/modules/tide-js/Cryptide/Encryption/ElGamal.js +59 -0
  36. package/dist/cjs/modules/tide-js/Cryptide/Encryption/ElGamal.js.map +1 -0
  37. package/dist/cjs/modules/tide-js/Cryptide/Hashing/H2P.js +248 -0
  38. package/dist/cjs/modules/tide-js/Cryptide/Hashing/H2P.js.map +1 -0
  39. package/dist/cjs/modules/tide-js/Cryptide/Hashing/Hash.js +60 -0
  40. package/dist/cjs/modules/tide-js/Cryptide/Hashing/Hash.js.map +1 -0
  41. package/dist/cjs/modules/tide-js/Cryptide/Interpolation.js +107 -0
  42. package/dist/cjs/modules/tide-js/Cryptide/Interpolation.js.map +1 -0
  43. package/dist/cjs/modules/tide-js/Cryptide/Math.js +134 -0
  44. package/dist/cjs/modules/tide-js/Cryptide/Math.js.map +1 -0
  45. package/dist/cjs/modules/tide-js/Cryptide/Serialization.js +680 -0
  46. package/dist/cjs/modules/tide-js/Cryptide/Serialization.js.map +1 -0
  47. package/dist/cjs/modules/tide-js/Cryptide/Signing/BlindSig.js +56 -0
  48. package/dist/cjs/modules/tide-js/Cryptide/Signing/BlindSig.js.map +1 -0
  49. package/dist/cjs/modules/tide-js/Cryptide/Signing/EdDSA.js +84 -0
  50. package/dist/cjs/modules/tide-js/Cryptide/Signing/EdDSA.js.map +1 -0
  51. package/dist/cjs/modules/tide-js/Cryptide/Signing/TideSignature.js +102 -0
  52. package/dist/cjs/modules/tide-js/Cryptide/Signing/TideSignature.js.map +1 -0
  53. package/dist/cjs/modules/tide-js/Cryptide/TideKey.js +77 -0
  54. package/dist/cjs/modules/tide-js/Cryptide/TideKey.js.map +1 -0
  55. package/dist/cjs/modules/tide-js/Cryptide/TideMemoryObjects.js +34 -0
  56. package/dist/cjs/modules/tide-js/Cryptide/TideMemoryObjects.js.map +1 -0
  57. package/dist/cjs/modules/tide-js/Cryptide/index.js +74 -0
  58. package/dist/cjs/modules/tide-js/Cryptide/index.js.map +1 -0
  59. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js +6 -0
  60. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js.map +1 -0
  61. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js +138 -0
  62. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js.map +1 -0
  63. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js +83 -0
  64. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js.map +1 -0
  65. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js +3 -0
  66. package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js.map +1 -0
  67. package/dist/cjs/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js +58 -0
  68. package/dist/cjs/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js.map +1 -0
  69. package/dist/cjs/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js +180 -0
  70. package/dist/cjs/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js.map +1 -0
  71. package/dist/cjs/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js +49 -0
  72. package/dist/cjs/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js.map +1 -0
  73. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js +70 -0
  74. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js.map +1 -0
  75. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js +73 -0
  76. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js.map +1 -0
  77. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js +67 -0
  78. package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js.map +1 -0
  79. package/dist/cjs/modules/tide-js/Flow/SimulatorFlow.js +57 -0
  80. package/dist/cjs/modules/tide-js/Flow/SimulatorFlow.js.map +1 -0
  81. package/dist/cjs/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js +51 -0
  82. package/dist/cjs/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js.map +1 -0
  83. package/dist/cjs/modules/tide-js/Flow/dAccountRecoveryFlow.js +95 -0
  84. package/dist/cjs/modules/tide-js/Flow/dAccountRecoveryFlow.js.map +1 -0
  85. package/dist/cjs/modules/tide-js/Flow/dKeyGenerationFlow.js +219 -0
  86. package/dist/cjs/modules/tide-js/Flow/dKeyGenerationFlow.js.map +1 -0
  87. package/dist/cjs/modules/tide-js/Math/DecryptRequest.js +52 -0
  88. package/dist/cjs/modules/tide-js/Math/DecryptRequest.js.map +1 -0
  89. package/dist/cjs/modules/tide-js/Math/EncryptRequest.js +96 -0
  90. package/dist/cjs/modules/tide-js/Math/EncryptRequest.js.map +1 -0
  91. package/dist/cjs/modules/tide-js/Math/KeyAuthentication.js +222 -0
  92. package/dist/cjs/modules/tide-js/Math/KeyAuthentication.js.map +1 -0
  93. package/dist/cjs/modules/tide-js/Math/KeyDecryption.js +18 -0
  94. package/dist/cjs/modules/tide-js/Math/KeyDecryption.js.map +1 -0
  95. package/dist/cjs/modules/tide-js/Math/KeyGeneration.js +148 -0
  96. package/dist/cjs/modules/tide-js/Math/KeyGeneration.js.map +1 -0
  97. package/dist/cjs/modules/tide-js/Math/KeySigning.js +24 -0
  98. package/dist/cjs/modules/tide-js/Math/KeySigning.js.map +1 -0
  99. package/dist/cjs/modules/tide-js/Models/AdminAuthorization.js +83 -0
  100. package/dist/cjs/modules/tide-js/Models/AdminAuthorization.js.map +1 -0
  101. package/dist/cjs/modules/tide-js/Models/AuthRequest.js +66 -0
  102. package/dist/cjs/modules/tide-js/Models/AuthRequest.js.map +1 -0
  103. package/dist/cjs/modules/tide-js/Models/AuthorizationBuilder.js +61 -0
  104. package/dist/cjs/modules/tide-js/Models/AuthorizationBuilder.js.map +1 -0
  105. package/dist/cjs/modules/tide-js/Models/BaseTideRequest.js +106 -0
  106. package/dist/cjs/modules/tide-js/Models/BaseTideRequest.js.map +1 -0
  107. package/dist/cjs/modules/tide-js/Models/Cardano/CardanoTxBody.js +198 -0
  108. package/dist/cjs/modules/tide-js/Models/Cardano/CardanoTxBody.js.map +1 -0
  109. package/dist/cjs/modules/tide-js/Models/Datum.js +41 -0
  110. package/dist/cjs/modules/tide-js/Models/Datum.js.map +1 -0
  111. package/dist/cjs/modules/tide-js/Models/Doken.js +140 -0
  112. package/dist/cjs/modules/tide-js/Models/Doken.js.map +1 -0
  113. package/dist/cjs/modules/tide-js/Models/EnclaveEntry.js +50 -0
  114. package/dist/cjs/modules/tide-js/Models/EnclaveEntry.js.map +1 -0
  115. package/dist/cjs/modules/tide-js/Models/Infos/KeyInfo.js +49 -0
  116. package/dist/cjs/modules/tide-js/Models/Infos/KeyInfo.js.map +1 -0
  117. package/dist/cjs/modules/tide-js/Models/Infos/OrkInfo.js +53 -0
  118. package/dist/cjs/modules/tide-js/Models/Infos/OrkInfo.js.map +1 -0
  119. package/dist/cjs/modules/tide-js/Models/InitializationCertificate.js +35 -0
  120. package/dist/cjs/modules/tide-js/Models/InitializationCertificate.js.map +1 -0
  121. package/dist/cjs/modules/tide-js/Models/ModelRegistry.js +177 -0
  122. package/dist/cjs/modules/tide-js/Models/ModelRegistry.js.map +1 -0
  123. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js +34 -0
  124. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js.map +1 -0
  125. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js +36 -0
  126. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js.map +1 -0
  127. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js +36 -0
  128. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js.map +1 -0
  129. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js +34 -0
  130. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js.map +1 -0
  131. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js +37 -0
  132. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js.map +1 -0
  133. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js +37 -0
  134. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js.map +1 -0
  135. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js +36 -0
  136. package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js.map +1 -0
  137. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js +49 -0
  138. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js.map +1 -0
  139. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js +34 -0
  140. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js.map +1 -0
  141. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js +39 -0
  142. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js.map +1 -0
  143. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js +31 -0
  144. package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js.map +1 -0
  145. package/dist/cjs/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js +26 -0
  146. package/dist/cjs/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js.map +1 -0
  147. package/dist/cjs/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js +41 -0
  148. package/dist/cjs/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js.map +1 -0
  149. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettingSignRequest.js +81 -0
  150. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettingSignRequest.js.map +1 -0
  151. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettings.js +28 -0
  152. package/dist/cjs/modules/tide-js/Models/Rules/RuleSettings.js.map +1 -0
  153. package/dist/cjs/modules/tide-js/Models/SerializedField.js +63 -0
  154. package/dist/cjs/modules/tide-js/Models/SerializedField.js.map +1 -0
  155. package/dist/cjs/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js +57 -0
  156. package/dist/cjs/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js.map +1 -0
  157. package/dist/cjs/modules/tide-js/Models/VendorData.js +36 -0
  158. package/dist/cjs/modules/tide-js/Models/VendorData.js.map +1 -0
  159. package/dist/cjs/modules/tide-js/Models/VendorSettings.js +26 -0
  160. package/dist/cjs/modules/tide-js/Models/VendorSettings.js.map +1 -0
  161. package/dist/cjs/modules/tide-js/RulesEngine/RuleEngineService.js +92 -0
  162. package/dist/cjs/modules/tide-js/RulesEngine/RuleEngineService.js.map +1 -0
  163. package/dist/cjs/modules/tide-js/RulesEngine/helperFunctions.js +78 -0
  164. package/dist/cjs/modules/tide-js/RulesEngine/helperFunctions.js.map +1 -0
  165. package/dist/cjs/modules/tide-js/RulesEngine/jsonHelpers.js +68 -0
  166. package/dist/cjs/modules/tide-js/RulesEngine/jsonHelpers.js.map +1 -0
  167. package/dist/cjs/modules/tide-js/RulesEngine/thresholdRules.js +106 -0
  168. package/dist/cjs/modules/tide-js/RulesEngine/thresholdRules.js.map +1 -0
  169. package/dist/cjs/modules/tide-js/Tests/AccountRecovery.js +58 -0
  170. package/dist/cjs/modules/tide-js/Tests/AccountRecovery.js.map +1 -0
  171. package/dist/cjs/modules/tide-js/Tests/Components.js +18 -0
  172. package/dist/cjs/modules/tide-js/Tests/Components.js.map +1 -0
  173. package/dist/cjs/modules/tide-js/Tests/Encryption.js +172 -0
  174. package/dist/cjs/modules/tide-js/Tests/Encryption.js.map +1 -0
  175. package/dist/cjs/modules/tide-js/Tests/KeyAuthentication.js +113 -0
  176. package/dist/cjs/modules/tide-js/Tests/KeyAuthentication.js.map +1 -0
  177. package/dist/cjs/modules/tide-js/Tests/KeyGeneration.js +222 -0
  178. package/dist/cjs/modules/tide-js/Tests/KeyGeneration.js.map +1 -0
  179. package/dist/cjs/modules/tide-js/Tests/StripeLicensing.js +41 -0
  180. package/dist/cjs/modules/tide-js/Tests/StripeLicensing.js.map +1 -0
  181. package/dist/cjs/modules/tide-js/Tests/TideKey.js +17 -0
  182. package/dist/cjs/modules/tide-js/Tests/TideKey.js.map +1 -0
  183. package/dist/cjs/modules/tide-js/Tests/Verifier.js +12 -0
  184. package/dist/cjs/modules/tide-js/Tests/Verifier.js.map +1 -0
  185. package/dist/cjs/modules/tide-js/Tests/index.js +43 -0
  186. package/dist/cjs/modules/tide-js/Tests/index.js.map +1 -0
  187. package/dist/cjs/modules/tide-js/Tools/Utils.js +285 -0
  188. package/dist/cjs/modules/tide-js/Tools/Utils.js.map +1 -0
  189. package/dist/cjs/modules/tide-js/index.js +71 -0
  190. package/dist/cjs/modules/tide-js/index.js.map +1 -0
  191. package/dist/cjs/src/IAMService.js +278 -0
  192. package/dist/cjs/src/IAMService.js.map +1 -0
  193. package/dist/cjs/src/index.js +19 -0
  194. package/dist/cjs/src/index.js.map +1 -0
  195. package/dist/esm/lib/tidecloak.js +1923 -0
  196. package/dist/esm/lib/tidecloak.js.map +1 -0
  197. package/dist/esm/modules/tide-js/Clients/ClientBase.js +210 -0
  198. package/dist/esm/modules/tide-js/Clients/ClientBase.js.map +1 -0
  199. package/dist/esm/modules/tide-js/Clients/NetworkClient.js +90 -0
  200. package/dist/esm/modules/tide-js/Clients/NetworkClient.js.map +1 -0
  201. package/dist/esm/modules/tide-js/Clients/NodeClient.js +485 -0
  202. package/dist/esm/modules/tide-js/Clients/NodeClient.js.map +1 -0
  203. package/dist/esm/modules/tide-js/Clients/PollingClient.js +81 -0
  204. package/dist/esm/modules/tide-js/Clients/PollingClient.js.map +1 -0
  205. package/dist/esm/modules/tide-js/Clients/VoucherClient.js +31 -0
  206. package/dist/esm/modules/tide-js/Clients/VoucherClient.js.map +1 -0
  207. package/dist/esm/modules/tide-js/Cryptide/Components/BaseComponent.js +169 -0
  208. package/dist/esm/modules/tide-js/Cryptide/Components/BaseComponent.js.map +1 -0
  209. package/dist/esm/modules/tide-js/Cryptide/Components/ComponentRegistry.js +24 -0
  210. package/dist/esm/modules/tide-js/Cryptide/Components/ComponentRegistry.js.map +1 -0
  211. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js +5 -0
  212. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js.map +1 -0
  213. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js +11 -0
  214. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js.map +1 -0
  215. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js +157 -0
  216. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js.map +1 -0
  217. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js +36 -0
  218. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js.map +1 -0
  219. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js +7 -0
  220. package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js.map +1 -0
  221. package/dist/esm/modules/tide-js/Cryptide/Ed25519.js +523 -0
  222. package/dist/esm/modules/tide-js/Cryptide/Ed25519.js.map +1 -0
  223. package/dist/esm/modules/tide-js/Cryptide/Encryption/AES.js +102 -0
  224. package/dist/esm/modules/tide-js/Cryptide/Encryption/AES.js.map +1 -0
  225. package/dist/esm/modules/tide-js/Cryptide/Encryption/DH.js +49 -0
  226. package/dist/esm/modules/tide-js/Cryptide/Encryption/DH.js.map +1 -0
  227. package/dist/esm/modules/tide-js/Cryptide/Encryption/ElGamal.js +56 -0
  228. package/dist/esm/modules/tide-js/Cryptide/Encryption/ElGamal.js.map +1 -0
  229. package/dist/esm/modules/tide-js/Cryptide/Hashing/H2P.js +245 -0
  230. package/dist/esm/modules/tide-js/Cryptide/Hashing/H2P.js.map +1 -0
  231. package/dist/esm/modules/tide-js/Cryptide/Hashing/Hash.js +55 -0
  232. package/dist/esm/modules/tide-js/Cryptide/Hashing/Hash.js.map +1 -0
  233. package/dist/esm/modules/tide-js/Cryptide/Interpolation.js +97 -0
  234. package/dist/esm/modules/tide-js/Cryptide/Interpolation.js.map +1 -0
  235. package/dist/esm/modules/tide-js/Cryptide/Math.js +120 -0
  236. package/dist/esm/modules/tide-js/Cryptide/Math.js.map +1 -0
  237. package/dist/esm/modules/tide-js/Cryptide/Serialization.js +642 -0
  238. package/dist/esm/modules/tide-js/Cryptide/Serialization.js.map +1 -0
  239. package/dist/esm/modules/tide-js/Cryptide/Signing/BlindSig.js +50 -0
  240. package/dist/esm/modules/tide-js/Cryptide/Signing/BlindSig.js.map +1 -0
  241. package/dist/esm/modules/tide-js/Cryptide/Signing/EdDSA.js +79 -0
  242. package/dist/esm/modules/tide-js/Cryptide/Signing/EdDSA.js.map +1 -0
  243. package/dist/esm/modules/tide-js/Cryptide/Signing/TideSignature.js +91 -0
  244. package/dist/esm/modules/tide-js/Cryptide/Signing/TideSignature.js.map +1 -0
  245. package/dist/esm/modules/tide-js/Cryptide/TideKey.js +71 -0
  246. package/dist/esm/modules/tide-js/Cryptide/TideKey.js.map +1 -0
  247. package/dist/esm/modules/tide-js/Cryptide/TideMemoryObjects.js +30 -0
  248. package/dist/esm/modules/tide-js/Cryptide/TideMemoryObjects.js.map +1 -0
  249. package/dist/esm/modules/tide-js/Cryptide/index.js +34 -0
  250. package/dist/esm/modules/tide-js/Cryptide/index.js.map +1 -0
  251. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js +3 -0
  252. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js.map +1 -0
  253. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js +132 -0
  254. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js.map +1 -0
  255. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js +77 -0
  256. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js.map +1 -0
  257. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js +2 -0
  258. package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js.map +1 -0
  259. package/dist/esm/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js +52 -0
  260. package/dist/esm/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js.map +1 -0
  261. package/dist/esm/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js +174 -0
  262. package/dist/esm/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js.map +1 -0
  263. package/dist/esm/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js +43 -0
  264. package/dist/esm/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js.map +1 -0
  265. package/dist/esm/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js +64 -0
  266. package/dist/esm/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js.map +1 -0
  267. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js +67 -0
  268. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js.map +1 -0
  269. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js +61 -0
  270. package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js.map +1 -0
  271. package/dist/esm/modules/tide-js/Flow/SimulatorFlow.js +51 -0
  272. package/dist/esm/modules/tide-js/Flow/SimulatorFlow.js.map +1 -0
  273. package/dist/esm/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js +45 -0
  274. package/dist/esm/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js.map +1 -0
  275. package/dist/esm/modules/tide-js/Flow/dAccountRecoveryFlow.js +89 -0
  276. package/dist/esm/modules/tide-js/Flow/dAccountRecoveryFlow.js.map +1 -0
  277. package/dist/esm/modules/tide-js/Flow/dKeyGenerationFlow.js +213 -0
  278. package/dist/esm/modules/tide-js/Flow/dKeyGenerationFlow.js.map +1 -0
  279. package/dist/esm/modules/tide-js/Math/DecryptRequest.js +46 -0
  280. package/dist/esm/modules/tide-js/Math/DecryptRequest.js.map +1 -0
  281. package/dist/esm/modules/tide-js/Math/EncryptRequest.js +90 -0
  282. package/dist/esm/modules/tide-js/Math/EncryptRequest.js.map +1 -0
  283. package/dist/esm/modules/tide-js/Math/KeyAuthentication.js +211 -0
  284. package/dist/esm/modules/tide-js/Math/KeyAuthentication.js.map +1 -0
  285. package/dist/esm/modules/tide-js/Math/KeyDecryption.js +15 -0
  286. package/dist/esm/modules/tide-js/Math/KeyDecryption.js.map +1 -0
  287. package/dist/esm/modules/tide-js/Math/KeyGeneration.js +141 -0
  288. package/dist/esm/modules/tide-js/Math/KeyGeneration.js.map +1 -0
  289. package/dist/esm/modules/tide-js/Math/KeySigning.js +20 -0
  290. package/dist/esm/modules/tide-js/Math/KeySigning.js.map +1 -0
  291. package/dist/esm/modules/tide-js/Models/AdminAuthorization.js +79 -0
  292. package/dist/esm/modules/tide-js/Models/AdminAuthorization.js.map +1 -0
  293. package/dist/esm/modules/tide-js/Models/AuthRequest.js +63 -0
  294. package/dist/esm/modules/tide-js/Models/AuthRequest.js.map +1 -0
  295. package/dist/esm/modules/tide-js/Models/AuthorizationBuilder.js +55 -0
  296. package/dist/esm/modules/tide-js/Models/AuthorizationBuilder.js.map +1 -0
  297. package/dist/esm/modules/tide-js/Models/BaseTideRequest.js +103 -0
  298. package/dist/esm/modules/tide-js/Models/BaseTideRequest.js.map +1 -0
  299. package/dist/esm/modules/tide-js/Models/Cardano/CardanoTxBody.js +195 -0
  300. package/dist/esm/modules/tide-js/Models/Cardano/CardanoTxBody.js.map +1 -0
  301. package/dist/esm/modules/tide-js/Models/Datum.js +38 -0
  302. package/dist/esm/modules/tide-js/Models/Datum.js.map +1 -0
  303. package/dist/esm/modules/tide-js/Models/Doken.js +134 -0
  304. package/dist/esm/modules/tide-js/Models/Doken.js.map +1 -0
  305. package/dist/esm/modules/tide-js/Models/EnclaveEntry.js +44 -0
  306. package/dist/esm/modules/tide-js/Models/EnclaveEntry.js.map +1 -0
  307. package/dist/esm/modules/tide-js/Models/Infos/KeyInfo.js +43 -0
  308. package/dist/esm/modules/tide-js/Models/Infos/KeyInfo.js.map +1 -0
  309. package/dist/esm/modules/tide-js/Models/Infos/OrkInfo.js +50 -0
  310. package/dist/esm/modules/tide-js/Models/Infos/OrkInfo.js.map +1 -0
  311. package/dist/esm/modules/tide-js/Models/InitializationCertificate.js +32 -0
  312. package/dist/esm/modules/tide-js/Models/InitializationCertificate.js.map +1 -0
  313. package/dist/esm/modules/tide-js/Models/ModelRegistry.js +169 -0
  314. package/dist/esm/modules/tide-js/Models/ModelRegistry.js.map +1 -0
  315. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js +31 -0
  316. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js.map +1 -0
  317. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js +33 -0
  318. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js.map +1 -0
  319. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js +33 -0
  320. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js.map +1 -0
  321. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js +31 -0
  322. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js.map +1 -0
  323. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js +34 -0
  324. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js.map +1 -0
  325. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js +34 -0
  326. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js.map +1 -0
  327. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js +33 -0
  328. package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js.map +1 -0
  329. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js +46 -0
  330. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js.map +1 -0
  331. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js +31 -0
  332. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js.map +1 -0
  333. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js +36 -0
  334. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js.map +1 -0
  335. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js +28 -0
  336. package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js.map +1 -0
  337. package/dist/esm/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js +23 -0
  338. package/dist/esm/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js.map +1 -0
  339. package/dist/esm/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js +38 -0
  340. package/dist/esm/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js.map +1 -0
  341. package/dist/esm/modules/tide-js/Models/Rules/RuleSettingSignRequest.js +75 -0
  342. package/dist/esm/modules/tide-js/Models/Rules/RuleSettingSignRequest.js.map +1 -0
  343. package/dist/esm/modules/tide-js/Models/Rules/RuleSettings.js +25 -0
  344. package/dist/esm/modules/tide-js/Models/Rules/RuleSettings.js.map +1 -0
  345. package/dist/esm/modules/tide-js/Models/SerializedField.js +61 -0
  346. package/dist/esm/modules/tide-js/Models/SerializedField.js.map +1 -0
  347. package/dist/esm/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js +51 -0
  348. package/dist/esm/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js.map +1 -0
  349. package/dist/esm/modules/tide-js/Models/VendorData.js +30 -0
  350. package/dist/esm/modules/tide-js/Models/VendorData.js.map +1 -0
  351. package/dist/esm/modules/tide-js/Models/VendorSettings.js +23 -0
  352. package/dist/esm/modules/tide-js/Models/VendorSettings.js.map +1 -0
  353. package/dist/esm/modules/tide-js/RulesEngine/RuleEngineService.js +89 -0
  354. package/dist/esm/modules/tide-js/RulesEngine/RuleEngineService.js.map +1 -0
  355. package/dist/esm/modules/tide-js/RulesEngine/helperFunctions.js +69 -0
  356. package/dist/esm/modules/tide-js/RulesEngine/helperFunctions.js.map +1 -0
  357. package/dist/esm/modules/tide-js/RulesEngine/jsonHelpers.js +64 -0
  358. package/dist/esm/modules/tide-js/RulesEngine/jsonHelpers.js.map +1 -0
  359. package/dist/esm/modules/tide-js/RulesEngine/thresholdRules.js +100 -0
  360. package/dist/esm/modules/tide-js/RulesEngine/thresholdRules.js.map +1 -0
  361. package/dist/esm/modules/tide-js/Tests/AccountRecovery.js +52 -0
  362. package/dist/esm/modules/tide-js/Tests/AccountRecovery.js.map +1 -0
  363. package/dist/esm/modules/tide-js/Tests/Components.js +15 -0
  364. package/dist/esm/modules/tide-js/Tests/Components.js.map +1 -0
  365. package/dist/esm/modules/tide-js/Tests/Encryption.js +164 -0
  366. package/dist/esm/modules/tide-js/Tests/Encryption.js.map +1 -0
  367. package/dist/esm/modules/tide-js/Tests/KeyAuthentication.js +106 -0
  368. package/dist/esm/modules/tide-js/Tests/KeyAuthentication.js.map +1 -0
  369. package/dist/esm/modules/tide-js/Tests/KeyGeneration.js +213 -0
  370. package/dist/esm/modules/tide-js/Tests/KeyGeneration.js.map +1 -0
  371. package/dist/esm/modules/tide-js/Tests/StripeLicensing.js +34 -0
  372. package/dist/esm/modules/tide-js/Tests/StripeLicensing.js.map +1 -0
  373. package/dist/esm/modules/tide-js/Tests/TideKey.js +11 -0
  374. package/dist/esm/modules/tide-js/Tests/TideKey.js.map +1 -0
  375. package/dist/esm/modules/tide-js/Tests/Verifier.js +9 -0
  376. package/dist/esm/modules/tide-js/Tests/Verifier.js.map +1 -0
  377. package/dist/esm/modules/tide-js/Tests/index.js +37 -0
  378. package/dist/esm/modules/tide-js/Tests/index.js.map +1 -0
  379. package/dist/esm/modules/tide-js/Tools/Utils.js +273 -0
  380. package/dist/esm/modules/tide-js/Tools/Utils.js.map +1 -0
  381. package/dist/esm/modules/tide-js/index.js +27 -0
  382. package/dist/esm/modules/tide-js/index.js.map +1 -0
  383. package/dist/esm/src/IAMService.js +272 -0
  384. package/dist/esm/src/IAMService.js.map +1 -0
  385. package/dist/esm/src/index.js +8 -0
  386. package/dist/esm/src/index.js.map +1 -0
  387. package/dist/silent-check-sso.html +1 -0
  388. package/dist/types/lib/tidecloak.d.ts +36 -0
  389. package/dist/types/modules/tide-js/Clients/ClientBase.d.ts +72 -0
  390. package/dist/types/modules/tide-js/Clients/NetworkClient.d.ts +23 -0
  391. package/dist/types/modules/tide-js/Clients/NodeClient.d.ts +187 -0
  392. package/dist/types/modules/tide-js/Clients/PollingClient.d.ts +22 -0
  393. package/dist/types/modules/tide-js/Clients/VoucherClient.d.ts +12 -0
  394. package/dist/types/modules/tide-js/Cryptide/Components/BaseComponent.d.ts +59 -0
  395. package/dist/types/modules/tide-js/Cryptide/Components/ComponentRegistry.d.ts +19 -0
  396. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.d.ts +4 -0
  397. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.d.ts +10 -0
  398. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.d.ts +51 -0
  399. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.d.ts +10 -0
  400. package/dist/types/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.d.ts +3 -0
  401. package/dist/types/modules/tide-js/Cryptide/Ed25519.d.ts +114 -0
  402. package/dist/types/modules/tide-js/Cryptide/Encryption/AES.d.ts +30 -0
  403. package/dist/types/modules/tide-js/Cryptide/Encryption/DH.d.ts +12 -0
  404. package/dist/types/modules/tide-js/Cryptide/Encryption/ElGamal.d.ts +20 -0
  405. package/dist/types/modules/tide-js/Cryptide/Hashing/H2P.d.ts +7 -0
  406. package/dist/types/modules/tide-js/Cryptide/Hashing/Hash.d.ts +16 -0
  407. package/dist/types/modules/tide-js/Cryptide/Interpolation.d.ts +47 -0
  408. package/dist/types/modules/tide-js/Cryptide/Math.d.ts +45 -0
  409. package/dist/types/modules/tide-js/Cryptide/Serialization.d.ts +195 -0
  410. package/dist/types/modules/tide-js/Cryptide/Signing/BlindSig.d.ts +32 -0
  411. package/dist/types/modules/tide-js/Cryptide/Signing/EdDSA.d.ts +24 -0
  412. package/dist/types/modules/tide-js/Cryptide/Signing/TideSignature.d.ts +50 -0
  413. package/dist/types/modules/tide-js/Cryptide/TideKey.d.ts +24 -0
  414. package/dist/types/modules/tide-js/Cryptide/TideMemoryObjects.d.ts +15 -0
  415. package/dist/types/modules/tide-js/Cryptide/index.d.ts +10 -0
  416. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.d.ts +2 -0
  417. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.d.ts +64 -0
  418. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.d.ts +37 -0
  419. package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.d.ts +1 -0
  420. package/dist/types/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.d.ts +31 -0
  421. package/dist/types/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.d.ts +75 -0
  422. package/dist/types/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.d.ts +51 -0
  423. package/dist/types/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.d.ts +25 -0
  424. package/dist/types/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.d.ts +32 -0
  425. package/dist/types/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.d.ts +30 -0
  426. package/dist/types/modules/tide-js/Flow/SimulatorFlow.d.ts +13 -0
  427. package/dist/types/modules/tide-js/Flow/VoucherFlows/VoucherFlow.d.ts +23 -0
  428. package/dist/types/modules/tide-js/Flow/dAccountRecoveryFlow.d.ts +41 -0
  429. package/dist/types/modules/tide-js/Flow/dKeyGenerationFlow.d.ts +104 -0
  430. package/dist/types/modules/tide-js/Math/DecryptRequest.d.ts +19 -0
  431. package/dist/types/modules/tide-js/Math/EncryptRequest.d.ts +57 -0
  432. package/dist/types/modules/tide-js/Math/KeyAuthentication.d.ts +95 -0
  433. package/dist/types/modules/tide-js/Math/KeyDecryption.d.ts +7 -0
  434. package/dist/types/modules/tide-js/Math/KeyGeneration.d.ts +42 -0
  435. package/dist/types/modules/tide-js/Math/KeySigning.d.ts +10 -0
  436. package/dist/types/modules/tide-js/Models/AdminAuthorization.d.ts +16 -0
  437. package/dist/types/modules/tide-js/Models/AuthRequest.d.ts +28 -0
  438. package/dist/types/modules/tide-js/Models/AuthorizationBuilder.d.ts +17 -0
  439. package/dist/types/modules/tide-js/Models/BaseTideRequest.d.ts +52 -0
  440. package/dist/types/modules/tide-js/Models/Cardano/CardanoTxBody.d.ts +16 -0
  441. package/dist/types/modules/tide-js/Models/Datum.d.ts +14 -0
  442. package/dist/types/modules/tide-js/Models/Doken.d.ts +52 -0
  443. package/dist/types/modules/tide-js/Models/EnclaveEntry.d.ts +22 -0
  444. package/dist/types/modules/tide-js/Models/Infos/KeyInfo.d.ts +30 -0
  445. package/dist/types/modules/tide-js/Models/Infos/OrkInfo.d.ts +24 -0
  446. package/dist/types/modules/tide-js/Models/InitializationCertificate.d.ts +21 -0
  447. package/dist/types/modules/tide-js/Models/ModelRegistry.d.ts +15 -0
  448. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.d.ts +9 -0
  449. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.d.ts +11 -0
  450. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.d.ts +11 -0
  451. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.d.ts +9 -0
  452. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.d.ts +11 -0
  453. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.d.ts +12 -0
  454. package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.d.ts +11 -0
  455. package/dist/types/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.d.ts +18 -0
  456. package/dist/types/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.d.ts +10 -0
  457. package/dist/types/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.d.ts +10 -0
  458. package/dist/types/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.d.ts +8 -0
  459. package/dist/types/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.d.ts +14 -0
  460. package/dist/types/modules/tide-js/Models/Responses/Vendor/VoucherResponse.d.ts +25 -0
  461. package/dist/types/modules/tide-js/Models/Rules/RuleSettingSignRequest.d.ts +39 -0
  462. package/dist/types/modules/tide-js/Models/Rules/RuleSettings.d.ts +12 -0
  463. package/dist/types/modules/tide-js/Models/SerializedField.d.ts +20 -0
  464. package/dist/types/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.d.ts +29 -0
  465. package/dist/types/modules/tide-js/Models/VendorData.d.ts +17 -0
  466. package/dist/types/modules/tide-js/Models/VendorSettings.d.ts +14 -0
  467. package/dist/types/modules/tide-js/RulesEngine/RuleEngineService.d.ts +25 -0
  468. package/dist/types/modules/tide-js/RulesEngine/helperFunctions.d.ts +7 -0
  469. package/dist/types/modules/tide-js/RulesEngine/jsonHelpers.d.ts +11 -0
  470. package/dist/types/modules/tide-js/RulesEngine/thresholdRules.d.ts +17 -0
  471. package/dist/types/modules/tide-js/Tests/AccountRecovery.d.ts +1 -0
  472. package/dist/types/modules/tide-js/Tests/Components.d.ts +1 -0
  473. package/dist/types/modules/tide-js/Tests/Encryption.d.ts +3 -0
  474. package/dist/types/modules/tide-js/Tests/KeyAuthentication.d.ts +2 -0
  475. package/dist/types/modules/tide-js/Tests/KeyGeneration.d.ts +4 -0
  476. package/dist/types/modules/tide-js/Tests/StripeLicensing.d.ts +2 -0
  477. package/dist/types/modules/tide-js/Tests/TideKey.d.ts +1 -0
  478. package/dist/types/modules/tide-js/Tests/Verifier.d.ts +1 -0
  479. package/dist/types/modules/tide-js/Tests/index.d.ts +32 -0
  480. package/dist/types/modules/tide-js/Tools/Utils.d.ts +34 -0
  481. package/dist/types/modules/tide-js/index.d.ts +8 -0
  482. package/dist/types/src/IAMService.d.ts +106 -0
  483. package/dist/types/src/index.d.ts +4 -0
  484. package/package.json +48 -0
  485. package/scripts/postinstall.js +43 -0
@@ -0,0 +1,535 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyAsync = exports.verify = exports.utils = exports.signNonDeterministicAsync = exports.signAsync = exports.sign = exports.getPublicKeyAsync = exports.getPublicKey = exports.Point = exports.etc = exports.CURVE = void 0;
4
+ //
5
+ // Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
6
+ // Copyright (C) 2022 Tide Foundation Ltd
7
+ //
8
+ // This program is free software and is subject to the terms of
9
+ // the Tide Community Open Code License as published by the
10
+ // Tide Foundation Limited. You may modify it and redistribute
11
+ // it in accordance with and subject to the terms of that License.
12
+ // This program is distributed WITHOUT WARRANTY of any kind,
13
+ // including without any implied warranty of MERCHANTABILITY or
14
+ // FITNESS FOR A PARTICULAR PURPOSE.
15
+ // See the Tide Community Open Code License for more details.
16
+ // You should have received a copy of the Tide Community Open
17
+ // Code License along with this program.
18
+ // If not, see https://tide.org/licenses_tcoc2-0-0-en
19
+ //
20
+ // Some parts of the code were taken from @noble/curves project and are protected under the following license:
21
+ //
22
+ // The MIT License (MIT)
23
+ //
24
+ // Copyright (c) 2022 Paul Miller (https://paulmillr.com)
25
+ //
26
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
27
+ // of this software and associated documentation files (the "Software"), to deal
28
+ // in the Software without restriction, including without limitation the rights
29
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
30
+ // copies of the Software, and to permit persons to whom the Software is
31
+ // furnished to do so, subject to the following conditions:
32
+ //
33
+ // The above copyright notice and this permission notice shall be included in
34
+ // all copies or substantial portions of the Software.
35
+ //
36
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
40
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
41
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
42
+ // THE SOFTWARE.
43
+ //
44
+ const Serialization_js_1 = require("./Serialization.js");
45
+ const Hash_js_1 = require("./Hashing/Hash.js");
46
+ const P = 2n ** 255n - 19n; // ed25519 is twisted edwards curve
47
+ const N = 2n ** 252n + 27742317777372353535851937790883648493n; // curve's (group) order
48
+ const Gx = 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an; // base point x
49
+ const Gy = 0x6666666666666666666666666666666666666666666666666666666666666658n; // base point y
50
+ const _d = 37095705934669439343138083508754565189542113879843219016388785533085940283555n;
51
+ const MASK = 2n ** 256n;
52
+ /**
53
+ * ed25519 curve parameters. Equation is −x² + y² = -a + dx²y².
54
+ * Gx and Gy are generator coordinates. p is field order, n is group order.
55
+ * h is cofactor.
56
+ */
57
+ const CURVE = {
58
+ a: -1n, // -1 mod p
59
+ d: _d, // -(121665/121666) mod p
60
+ p: P, n: N, h: 8, Gx: Gx, Gy: Gy // field prime, curve (group) order, cofactor
61
+ };
62
+ exports.CURVE = CURVE;
63
+ const err = (m = '') => { throw new Error(m); }; // error helper, messes-up stack trace
64
+ const isS = (s) => typeof s === 'string'; // is string
65
+ const isB = (s) => typeof s === 'bigint'; // is bigint
66
+ const isu8 = (a) => (a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array'));
67
+ const au8 = (a, l) => // is Uint8Array (of specific length)
68
+ !isu8(a) || (typeof l === 'number' && l > 0 && a.length !== l) ?
69
+ err('Uint8Array of valid length expected') : a;
70
+ const u8n = (len) => new Uint8Array(len); // creates Uint8Array
71
+ const u8fr = (buf) => Uint8Array.from(buf);
72
+ const toU8 = (a, len) => au8(isS(a) ? h2b(a) : u8fr(au8(a)), len); // norm(hex/u8a) to u8a
73
+ const M = (a, b = P) => { let r = a % b; return r >= 0n ? r : b + r; }; // mod division
74
+ const arange = (n, min, max = MASK, msg = 'bad number: out of range') => isB(n) && min <= n && n < max ? n : err(msg);
75
+ const apoint = (p) => (p instanceof Point ? p : err('Point expected')); // is xyzt point
76
+ /** Point in xyzt extended coordinates. */
77
+ class Point {
78
+ constructor(ex, ey, ez, et) {
79
+ this.ex = arange(ex, 0n);
80
+ this.ey = arange(ey, 0n);
81
+ this.ez = arange(ez, 1n);
82
+ this.et = arange(et, 0n);
83
+ Object.freeze(this);
84
+ }
85
+ static fromAffine(p) { return new Point(p.x, p.y, 1n, M(p.x * p.y)); }
86
+ /** RFC8032 5.1.3: hex / Uint8Array to Point. */
87
+ static fromHex(hex) {
88
+ hex = toU8(hex, 32);
89
+ return this.fromBytes(hex);
90
+ }
91
+ static fromBase64(b64string) {
92
+ if (isS(b64string))
93
+ return this.fromBytes((0, Serialization_js_1.base64ToBytes)(b64string));
94
+ else
95
+ err("Point.fromBase64 not provided with a string");
96
+ }
97
+ static fromBytes(bytes, zip215 = false) {
98
+ const { d } = CURVE;
99
+ const normed = bytes.slice(); // copy the array to not mess it up
100
+ const lastByte = bytes[31];
101
+ normed[31] = lastByte & ~0x80; // adjust first LE byte = last BE byte
102
+ const y = b2n_LE(normed); // decode as little-endian, convert to num
103
+ const max = zip215 ? MASK : P; // RFC8032 prohibits >= p, ZIP215 doesn't
104
+ arange(y, 0n, max); // zip215=true: 0 <= y < 2^256
105
+ // zip215=false: 0 <= y < 2^255-19
106
+ const y2 = M(y * y); // y²
107
+ const u = M(y2 - 1n); // u=y²-1
108
+ const v = M(d * y2 + 1n); // v=dy²+1
109
+ let { isValid, value: x } = uvRatio(u, v); // (uv³)(uv⁷)^(p-5)/8; square root
110
+ if (!isValid)
111
+ err('bad y coord 3'); // not square root: bad point
112
+ const isXOdd = (x & 1n) === 1n; // adjust sign of x coordinate
113
+ const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit
114
+ if (!zip215 && x === 0n && isLastByteOdd)
115
+ err('bad y coord 4'); // x=0 and x_0 = 1
116
+ if (isLastByteOdd !== isXOdd)
117
+ x = M(-x);
118
+ return new Point(x, y, 1n, M(x * y)); // Z=1, T=xy
119
+ }
120
+ get x() { return this.toAffine().x; } // .x, .y will call expensive toAffine.
121
+ get y() { return this.toAffine().y; } // Should be used with care.
122
+ assertValidity() {
123
+ const { a, d } = CURVE;
124
+ const p = this;
125
+ if (p.is0())
126
+ throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?
127
+ // Equation in affine coordinates: ax² + y² = 1 + dx²y²
128
+ // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y²
129
+ const { ex: X, ey: Y, ez: Z, et: T } = p;
130
+ const X2 = M(X * X); // X²
131
+ const Y2 = M(Y * Y); // Y²
132
+ const Z2 = M(Z * Z); // Z²
133
+ const Z4 = M(Z2 * Z2); // Z⁴
134
+ const aX2 = M(X2 * a); // aX²
135
+ const left = M(Z2 * M(aX2 + Y2)); // (aX² + Y²)Z²
136
+ const right = M(Z4 + M(d * M(X2 * Y2))); // Z⁴ + dX²Y²
137
+ if (left !== right)
138
+ throw new Error('bad point: equation left != right (1)');
139
+ // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T
140
+ const XY = M(X * Y);
141
+ const ZT = M(Z * T);
142
+ if (XY !== ZT)
143
+ throw new Error('bad point: equation left != right (2)');
144
+ return true;
145
+ }
146
+ equals(other) {
147
+ const { ex: X1, ey: Y1, ez: Z1 } = this;
148
+ const { ex: X2, ey: Y2, ez: Z2 } = apoint(other); // isPoint() checks class equality
149
+ const X1Z2 = M(X1 * Z2), X2Z1 = M(X2 * Z1);
150
+ const Y1Z2 = M(Y1 * Z2), Y2Z1 = M(Y2 * Z1);
151
+ return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;
152
+ }
153
+ is0() { return this.equals(I); }
154
+ negate() {
155
+ return new Point(M(-this.ex), this.ey, this.ez, M(-this.et));
156
+ }
157
+ /** Point doubling. Complete formula. */
158
+ double() {
159
+ const { ex: X1, ey: Y1, ez: Z1 } = this; // Cost: 4M + 4S + 1*a + 6add + 1*2
160
+ const { a } = CURVE; // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd
161
+ const A = M(X1 * X1);
162
+ const B = M(Y1 * Y1);
163
+ const C = M(2n * M(Z1 * Z1));
164
+ const D = M(a * A);
165
+ const x1y1 = X1 + Y1;
166
+ const E = M(M(x1y1 * x1y1) - A - B);
167
+ const G = D + B;
168
+ const F = G - C;
169
+ const H = D - B;
170
+ const X3 = M(E * F);
171
+ const Y3 = M(G * H);
172
+ const T3 = M(E * H);
173
+ const Z3 = M(F * G);
174
+ return new Point(X3, Y3, Z3, T3);
175
+ }
176
+ /** Point addition. Complete formula. */
177
+ add(other) {
178
+ const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this; // Cost: 8M + 1*k + 8add + 1*2.
179
+ const { ex: X2, ey: Y2, ez: Z2, et: T2 } = apoint(other); // doesn't check if other on-curve
180
+ const { a, d } = CURVE; // http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-3
181
+ const A = M(X1 * X2);
182
+ const B = M(Y1 * Y2);
183
+ const C = M(T1 * d * T2);
184
+ const D = M(Z1 * Z2);
185
+ const E = M((X1 + Y1) * (X2 + Y2) - A - B);
186
+ const F = M(D - C);
187
+ const G = M(D + C);
188
+ const H = M(B - a * A);
189
+ const X3 = M(E * F);
190
+ const Y3 = M(G * H);
191
+ const T3 = M(E * H);
192
+ const Z3 = M(F * G);
193
+ return new Point(X3, Y3, Z3, T3);
194
+ }
195
+ mul(n, safe = true) {
196
+ if (n === 0n)
197
+ return safe === true ? err('cannot multiply by 0') : I;
198
+ arange(n, 1n, N);
199
+ if (n === 1n || (!safe && this.is0()))
200
+ return this; // safe=true bans 0. safe=false allows 0.
201
+ if (this.equals(G))
202
+ return wNAF(n).p; // use wNAF precomputes for base points
203
+ let p = I, f = G; // init result point & fake point
204
+ for (let d = this; n > 0n; d = d.double(), n >>= 1n) { // double-and-add ladder
205
+ if (n & 1n)
206
+ p = p.add(d); // if bit is present, add to point
207
+ else if (safe)
208
+ f = f.add(d); // if not, add to fake for timing safety
209
+ }
210
+ return p;
211
+ }
212
+ multiply(scalar) { return this.mul(scalar); } // Aliases for compatibilty
213
+ divide(scalar) { return this.mul(invert(scalar, CURVE.n)); }
214
+ clearCofactor() { return this.mul(BigInt(CURVE.h), false); } // multiply by cofactor
215
+ isSmallOrder() { return this.clearCofactor().is0(); } // check if P is small order
216
+ isTorsionFree() {
217
+ let p = this.mul(N / 2n, false).double(); // ensures the point is not "bad".
218
+ if (N % 2n)
219
+ p = p.add(this); // P^(N+1) // P*N == (P*(N/2))*2+P
220
+ return p.is0();
221
+ }
222
+ /** converts point to 2d xy affine point. (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy). */
223
+ toAffine() {
224
+ const { ex: x, ey: y, ez: z } = this;
225
+ if (this.equals(I))
226
+ return { x: 0n, y: 1n }; // fast-path for zero point
227
+ const iz = invert(z, P); // z^-1: invert z
228
+ if (M(z * iz) !== 1n)
229
+ err('invalid inverse'); // (z * z^-1) must be 1, otherwise bad math
230
+ return { x: M(x * iz), y: M(y * iz) }; // x = x*z^-1; y = y*z^-1
231
+ }
232
+ toRawBytes() {
233
+ const { x, y } = this.toAffine(); // convert to affine 2d point
234
+ this.assertValidity();
235
+ const b = n2b_32LE(y); // encode number to 32 bytes
236
+ b[31] |= x & 1n ? 0x80 : 0; // store sign in first LE byte
237
+ return b;
238
+ }
239
+ toHex() { return b2h(this.toRawBytes()); } // encode to hex string
240
+ toBase64() { return (0, Serialization_js_1.bytesToBase64)(this.toRawBytes()); }
241
+ async hash() { return M(b2n_LE(await (0, Hash_js_1.SHA256_Digest)(this.toRawBytes())), CURVE.n); }
242
+ }
243
+ exports.Point = Point;
244
+ /** Generator / Base point */
245
+ Point.BASE = new Point(Gx, Gy, 1n, M(Gx * Gy));
246
+ /** Identity / Zero point */
247
+ Point.ZERO = new Point(0n, 1n, 1n, 0n);
248
+ const { BASE: G, ZERO: I } = Point; // Generator, identity points
249
+ const padh = (num, pad) => num.toString(16).padStart(pad, '0');
250
+ const b2h = (b) => Array.from(au8(b)).map(e => padh(e, 2)).join(''); // bytes to hex
251
+ const C = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; // ASCII characters
252
+ const _ch = (ch) => {
253
+ if (ch >= C._0 && ch <= C._9)
254
+ return ch - C._0; // '2' => 50-48
255
+ if (ch >= C.A && ch <= C.F)
256
+ return ch - (C.A - 10); // 'B' => 66-(65-10)
257
+ if (ch >= C.a && ch <= C.f)
258
+ return ch - (C.a - 10); // 'b' => 98-(97-10)
259
+ return;
260
+ };
261
+ const h2b = (hex) => {
262
+ const e = 'hex invalid';
263
+ if (!isS(hex))
264
+ return err(e);
265
+ const hl = hex.length, al = hl / 2;
266
+ if (hl % 2)
267
+ return err(e);
268
+ const array = u8n(al);
269
+ for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { // treat each char as ASCII
270
+ const n1 = _ch(hex.charCodeAt(hi)); // parse first char, multiply it by 16
271
+ const n2 = _ch(hex.charCodeAt(hi + 1)); // parse second char
272
+ if (n1 === undefined || n2 === undefined)
273
+ return err(e);
274
+ array[ai] = n1 * 16 + n2; // example: 'A9' => 10*16 + 9
275
+ }
276
+ return array;
277
+ };
278
+ const n2b_32LE = (num) => h2b(padh(num, 32 * 2)).reverse(); // number to bytes LE
279
+ const b2n_LE = (b) => BigInt('0x' + b2h(u8fr(au8(b)).reverse())); // bytes LE to num
280
+ const concatB = (...arrs) => {
281
+ const r = u8n(arrs.reduce((sum, a) => sum + au8(a).length, 0)); // create u8a of summed length
282
+ let pad = 0; // walk through each array,
283
+ arrs.forEach(a => { r.set(a, pad); pad += a.length; }); // ensure they have proper type
284
+ return r;
285
+ };
286
+ const invert = (num, md) => {
287
+ if (!isB(num))
288
+ throw Error("Expecting bigint");
289
+ if (num === 0n || md <= 0n)
290
+ err('no inverse n=' + num + ' mod=' + md); // no neg exponent for now
291
+ let a = M(num, md), b = md, x = 0n, y = 1n, u = 1n, v = 0n;
292
+ while (a !== 0n) { // uses euclidean gcd algorithm
293
+ const q = b / a, r = b % a; // not constant-time
294
+ const m = x - u * q, n = y - v * q;
295
+ b = a, a = r, x = u, y = v, u = m, v = n;
296
+ }
297
+ return b === 1n ? M(x, md) : err('no inverse'); // b is gcd at this point
298
+ };
299
+ const pow2 = (x, power) => {
300
+ let r = x;
301
+ while (power-- > 0n) {
302
+ r *= r;
303
+ r %= P;
304
+ }
305
+ return r;
306
+ };
307
+ const pow_2_252_3 = (x) => {
308
+ const x2 = (x * x) % P; // x^2, bits 1
309
+ const b2 = (x2 * x) % P; // x^3, bits 11
310
+ const b4 = (pow2(b2, 2n) * b2) % P; // x^(2^4-1), bits 1111
311
+ const b5 = (pow2(b4, 1n) * x) % P; // x^(2^5-1), bits 11111
312
+ const b10 = (pow2(b5, 5n) * b5) % P; // x^(2^10)
313
+ const b20 = (pow2(b10, 10n) * b10) % P; // x^(2^20)
314
+ const b40 = (pow2(b20, 20n) * b20) % P; // x^(2^40)
315
+ const b80 = (pow2(b40, 40n) * b40) % P; // x^(2^80)
316
+ const b160 = (pow2(b80, 80n) * b80) % P; // x^(2^160)
317
+ const b240 = (pow2(b160, 80n) * b80) % P; // x^(2^240)
318
+ const b250 = (pow2(b240, 10n) * b10) % P; // x^(2^250)
319
+ const pow_p_5_8 = (pow2(b250, 2n) * x) % P; // < To pow to (p+3)/8, multiply it by x.
320
+ return { pow_p_5_8, b2 };
321
+ };
322
+ const RM1 = 19681161376707505956807079304988542015446066515923890162744021073123829784752n; // √-1
323
+ const uvRatio = (u, v) => {
324
+ const v3 = M(v * v * v); // v³
325
+ const v7 = M(v3 * v3 * v); // v⁷
326
+ const pow = pow_2_252_3(u * v7).pow_p_5_8; // (uv⁷)^(p-5)/8
327
+ let x = M(u * v3 * pow); // (uv³)(uv⁷)^(p-5)/8
328
+ const vx2 = M(v * x * x); // vx²
329
+ const root1 = x; // First root candidate
330
+ const root2 = M(x * RM1); // Second root candidate; RM1 is √-1
331
+ const useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root
332
+ const useRoot2 = vx2 === M(-u); // If vx² = -u, set x <-- x * 2^((p-1)/4)
333
+ const noRoot = vx2 === M(-u * RM1); // There is no valid root, vx² = -u√-1
334
+ if (useRoot1)
335
+ x = root1;
336
+ if (useRoot2 || noRoot)
337
+ x = root2; // We return root2 anyway, for const-time
338
+ if ((M(x) & 1n) === 1n)
339
+ x = M(-x); // edIsNegative
340
+ return { isValid: useRoot1 || useRoot2, value: x };
341
+ };
342
+ const modL_LE = (hash) => M(b2n_LE(hash), N); // modulo L; but little-endian
343
+ const sha512a = (...m) => etc.sha512Async(...m); // Async SHA512
344
+ const sha512s = (...m) => {
345
+ const fn = etc.sha512Sync;
346
+ if (typeof fn !== 'function')
347
+ err('etc.sha512Sync not set');
348
+ return fn(...m);
349
+ };
350
+ const hash2extK = (hashed) => {
351
+ const head = hashed.slice(0, 32); // slice creates a copy, unlike subarray
352
+ head[0] &= 248; // Clamp bits: 0b1111_1000,
353
+ head[31] &= 127; // 0b0111_1111,
354
+ head[31] |= 64; // 0b0100_0000
355
+ const prefix = hashed.slice(32, 64); // private key "prefix"
356
+ const scalar = modL_LE(head); // modular division over curve order
357
+ const point = G.mul(scalar); // public key point
358
+ const pointBytes = point.toRawBytes(); // point serialized to Uint8Array
359
+ return { head, prefix, scalar, point, pointBytes };
360
+ };
361
+ // RFC8032 5.1.5; getPublicKey async, sync. Hash priv key and extract point.
362
+ const getExtendedPublicKeyAsync = (priv) => sha512a(toU8(priv, 32)).then(hash2extK);
363
+ const getExtendedNonDeterministicPublicKeyAsync = (priv) => {
364
+ const prefix = etc.randomBytes(32); // private key "prefix"
365
+ const point = G.mul(priv); // public key point
366
+ const pointBytes = point.toRawBytes(); // point serialized to Uint8Array
367
+ return { head: undefined, prefix, scalar: priv, point, pointBytes }; // head is undefined as we didn't hash the priv
368
+ };
369
+ const getExtendedPublicKey = (priv) => hash2extK(sha512s(toU8(priv, 32)));
370
+ /** Creates 32-byte ed25519 public key from 32-byte private key. Async. */
371
+ const getPublicKeyAsync = (priv) => getExtendedPublicKeyAsync(priv).then(p => p.pointBytes);
372
+ exports.getPublicKeyAsync = getPublicKeyAsync;
373
+ /** Creates 32-byte ed25519 public key from 32-byte private key. To use, set `etc.sha512Sync` first. */
374
+ const getPublicKey = (priv) => getExtendedPublicKey(priv).pointBytes;
375
+ exports.getPublicKey = getPublicKey;
376
+ function hashFinish(asynchronous, res) {
377
+ if (asynchronous)
378
+ return sha512a(res.hashable).then(res.finish);
379
+ return res.finish(sha512s(res.hashable));
380
+ }
381
+ const _sign = (e, rBytes, msg) => {
382
+ const { pointBytes: P, scalar: s } = e;
383
+ const r = modL_LE(rBytes); // r was created outside, reduce it modulo L
384
+ const R = G.mul(r).toRawBytes(); // R = [r]B
385
+ const hashable = concatB(R, P, msg); // dom2(F, C) || R || A || PH(M)
386
+ const finish = (hashed) => {
387
+ const S = M(r + modL_LE(hashed) * s, N); // S = (r + k * s) mod L; 0 <= s < l
388
+ return au8(concatB(R, n2b_32LE(S)), 64); // 64-byte sig: 32b R.x + 32b LE(S)
389
+ };
390
+ return { hashable, finish };
391
+ };
392
+ /** Signs message (NOT message hash) using private key. Async. */
393
+ const signAsync = async (msg, privKey) => {
394
+ const m = toU8(msg); // RFC8032 5.1.6: sign msg with key async
395
+ const e = await getExtendedPublicKeyAsync(privKey); // pub,prfx
396
+ const rBytes = await sha512a(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))
397
+ return hashFinish(true, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature
398
+ };
399
+ exports.signAsync = signAsync;
400
+ /** Signs message (NOT message hash) using private key without determinism. Async. */
401
+ const signNonDeterministicAsync = async (msg, privKey) => {
402
+ const m = toU8(msg); // RFC8032 5.1.6: sign msg with key async
403
+ const e = await getExtendedNonDeterministicPublicKeyAsync(privKey); // pub,prfx
404
+ const rBytes = await sha512a(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))
405
+ return hashFinish(true, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature
406
+ };
407
+ exports.signNonDeterministicAsync = signNonDeterministicAsync;
408
+ /** Signs message (NOT message hash) using private key. To use, set `etc.sha512Sync` first. */
409
+ const sign = (msg, privKey) => {
410
+ const m = toU8(msg); // RFC8032 5.1.6: sign msg with key sync
411
+ const e = getExtendedPublicKey(privKey); // pub,prfx
412
+ const rBytes = sha512s(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M))
413
+ return hashFinish(false, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature
414
+ };
415
+ exports.sign = sign;
416
+ const dvo = { zip215: false }; // Julio set this to false
417
+ const _verify = (sig, msg, pub, opts = dvo) => {
418
+ sig = toU8(sig, 64); // Signature hex str/Bytes, must be 64 bytes
419
+ msg = toU8(msg); // Message hex str/Bytes
420
+ pub = toU8(pub, 32);
421
+ const { zip215 } = opts; // switch between zip215 and rfc8032 verif
422
+ let A, R, s, SB, hashable = new Uint8Array();
423
+ try {
424
+ A = Point.fromHex(pub, zip215); // public key A decoded
425
+ R = Point.fromHex(sig.slice(0, 32), zip215); // 0 <= R < 2^256: ZIP215 R can be >= P
426
+ s = b2n_LE(sig.slice(32, 64)); // Decode second half as an integer S
427
+ SB = G.mul(s, false); // in the range 0 <= s < L
428
+ hashable = concatB(R.toRawBytes(), A.toRawBytes(), msg); // dom2(F, C) || R || A || PH(M)
429
+ }
430
+ catch (error) { }
431
+ const finish = (hashed) => {
432
+ if (SB == null)
433
+ return false; // false if try-catch catched an error
434
+ if (!zip215 && A.isSmallOrder())
435
+ return false; // false for SBS: Strongly Binding Signature
436
+ const k = modL_LE(hashed); // decode in little-endian, modulo L
437
+ const RkA = R.add(A.mul(k, false)); // [8]R + [8][k]A'
438
+ return RkA.add(SB.negate()).clearCofactor().is0(); // [8][S]B = [8]R + [8][k]A'
439
+ };
440
+ return { hashable, finish };
441
+ };
442
+ // RFC8032 5.1.7: verification async, sync
443
+ /** Verifies signature on message and public key. Async. */
444
+ const verifyAsync = async (s, m, p, opts = dvo) => hashFinish(true, _verify(s, m, p, opts));
445
+ exports.verifyAsync = verifyAsync;
446
+ /** Verifies signature on message and public key. To use, set `etc.sha512Sync` first. */
447
+ const verify = (s, m, p, opts = dvo) => hashFinish(false, _verify(s, m, p, opts));
448
+ exports.verify = verify;
449
+ const cr = () => // We support: 1) browsers 2) node.js 19+
450
+ typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;
451
+ const subtle = () => {
452
+ const c = cr();
453
+ return c && c.subtle || err('crypto.subtle must be defined');
454
+ };
455
+ /** Math, hex, byte helpers. Not in `utils` because utils share API with noble-curves. */
456
+ const etc = {
457
+ bytesToHex: b2h,
458
+ hexToBytes: h2b,
459
+ concatBytes: concatB,
460
+ mod: M,
461
+ invert: invert,
462
+ randomBytes: (len = 32) => {
463
+ const c = cr(); // Can be shimmed in node.js <= 18 to prevent error:
464
+ // import { webcrypto } from 'node:crypto';
465
+ // if (!globalThis.crypto) globalThis.crypto = webcrypto;
466
+ if (!c || !c.getRandomValues)
467
+ err('crypto.getRandomValues must be defined');
468
+ return c.getRandomValues(u8n(len));
469
+ },
470
+ sha512Async: async (...messages) => {
471
+ const s = subtle();
472
+ const m = concatB(...messages);
473
+ return u8n(await s.digest('SHA-512', m.buffer));
474
+ },
475
+ sha512Sync: undefined, // Actual logic below
476
+ bigIntToBytes: n2b_32LE,
477
+ bytesToBigInt: b2n_LE
478
+ };
479
+ exports.etc = etc;
480
+ /** ed25519-specific key utilities. */
481
+ const utils = {
482
+ getExtendedPublicKeyAsync: getExtendedPublicKeyAsync,
483
+ getExtendedPublicKey: getExtendedPublicKey,
484
+ randomPrivateKey: () => etc.randomBytes(32),
485
+ precompute: (w = 8, p = G) => { p.multiply(3n); w; return p; }, // no-op
486
+ };
487
+ exports.utils = utils;
488
+ const W = 8; // Precomputes-related code. W = window size
489
+ const scalarBits = 256;
490
+ const pwindows = Math.ceil(scalarBits / W) + 1;
491
+ const pwindowSize = 2 ** (W - 1);
492
+ const precompute = () => {
493
+ const points = []; // 10x sign(), 2x verify(). To achieve this,
494
+ let p = G, b = p; // a lot of points related to base point G.
495
+ for (let w = 0; w < pwindows; w++) { // Points are stored in array and used
496
+ b = p; // any time Gx multiplication is done.
497
+ points.push(b); // They consume 16-32 MiB of RAM.
498
+ for (let i = 1; i < pwindowSize; i++) {
499
+ b = b.add(p);
500
+ points.push(b);
501
+ }
502
+ p = b.double(); // Precomputes don't speed-up getSharedKey,
503
+ } // which multiplies user point by scalar,
504
+ return points; // when precomputes are using base point
505
+ };
506
+ let Gpows = undefined; // precomputes for base point G
507
+ const wNAF = (n) => {
508
+ // Compared to other point mult methods,
509
+ const comp = Gpows || (Gpows = precompute()); // stores 2x less points using subtraction
510
+ const ctneg = (cnd, p) => { let n = p.negate(); return cnd ? n : p; }; // negate
511
+ let p = I, f = G; // f must be G, or could become I in the end
512
+ const pow_2_w = 2 ** W; // W=8 256
513
+ const maxNum = pow_2_w; // W=8 256
514
+ const mask = BigInt(pow_2_w - 1); // W=8 255 == mask 0b11111111
515
+ const shiftBy = BigInt(W); // W=8 8
516
+ for (let w = 0; w < pwindows; w++) {
517
+ let wbits = Number(n & mask); // extract W bits.
518
+ n >>= shiftBy; // shift number by W bits.
519
+ if (wbits > pwindowSize) {
520
+ wbits -= maxNum;
521
+ n += 1n;
522
+ } // split if bits > max: +224 => 256-32
523
+ const off = w * pwindowSize;
524
+ const offF = off, offP = off + Math.abs(wbits) - 1; // offsets, evaluate both
525
+ const isEven = w % 2 !== 0, isNeg = wbits < 0; // conditions, evaluate both
526
+ if (wbits === 0) {
527
+ f = f.add(ctneg(isEven, comp[offF])); // bits are 0: add garbage to fake point
528
+ }
529
+ else { // ^ can't add off2, off2 = I
530
+ p = p.add(ctneg(isNeg, comp[offP])); // bits are 1: add to result point
531
+ }
532
+ }
533
+ return { p, f }; // return both real and fake points for JIT
534
+ }; // !! you can disable precomputes by commenting-out call of the wNAF() inside Point#mul()
535
+ //# sourceMappingURL=Ed25519.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ed25519.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Cryptide/Ed25519.js"],"names":[],"mappings":"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"}