@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.
- package/LICENSE +334 -0
- package/README.md +294 -0
- package/dist/cjs/lib/tidecloak.js +1934 -0
- package/dist/cjs/lib/tidecloak.js.map +1 -0
- package/dist/cjs/modules/tide-js/Clients/ClientBase.js +213 -0
- package/dist/cjs/modules/tide-js/Clients/ClientBase.js.map +1 -0
- package/dist/cjs/modules/tide-js/Clients/NetworkClient.js +96 -0
- package/dist/cjs/modules/tide-js/Clients/NetworkClient.js.map +1 -0
- package/dist/cjs/modules/tide-js/Clients/NodeClient.js +491 -0
- package/dist/cjs/modules/tide-js/Clients/NodeClient.js.map +1 -0
- package/dist/cjs/modules/tide-js/Clients/PollingClient.js +87 -0
- package/dist/cjs/modules/tide-js/Clients/PollingClient.js.map +1 -0
- package/dist/cjs/modules/tide-js/Clients/VoucherClient.js +37 -0
- package/dist/cjs/modules/tide-js/Clients/VoucherClient.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/BaseComponent.js +180 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/BaseComponent.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/ComponentRegistry.js +30 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/ComponentRegistry.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js +11 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js +13 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js +166 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js +41 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js +13 -0
- package/dist/cjs/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Ed25519.js +535 -0
- package/dist/cjs/modules/tide-js/Cryptide/Ed25519.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Encryption/AES.js +109 -0
- package/dist/cjs/modules/tide-js/Cryptide/Encryption/AES.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Encryption/DH.js +53 -0
- package/dist/cjs/modules/tide-js/Cryptide/Encryption/DH.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Encryption/ElGamal.js +59 -0
- package/dist/cjs/modules/tide-js/Cryptide/Encryption/ElGamal.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Hashing/H2P.js +248 -0
- package/dist/cjs/modules/tide-js/Cryptide/Hashing/H2P.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Hashing/Hash.js +60 -0
- package/dist/cjs/modules/tide-js/Cryptide/Hashing/Hash.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Interpolation.js +107 -0
- package/dist/cjs/modules/tide-js/Cryptide/Interpolation.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Math.js +134 -0
- package/dist/cjs/modules/tide-js/Cryptide/Math.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Serialization.js +680 -0
- package/dist/cjs/modules/tide-js/Cryptide/Serialization.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Signing/BlindSig.js +56 -0
- package/dist/cjs/modules/tide-js/Cryptide/Signing/BlindSig.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Signing/EdDSA.js +84 -0
- package/dist/cjs/modules/tide-js/Cryptide/Signing/EdDSA.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/Signing/TideSignature.js +102 -0
- package/dist/cjs/modules/tide-js/Cryptide/Signing/TideSignature.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/TideKey.js +77 -0
- package/dist/cjs/modules/tide-js/Cryptide/TideKey.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/TideMemoryObjects.js +34 -0
- package/dist/cjs/modules/tide-js/Cryptide/TideMemoryObjects.js.map +1 -0
- package/dist/cjs/modules/tide-js/Cryptide/index.js +74 -0
- package/dist/cjs/modules/tide-js/Cryptide/index.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js +6 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js +138 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js +83 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js +3 -0
- package/dist/cjs/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js +58 -0
- package/dist/cjs/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js +180 -0
- package/dist/cjs/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js +49 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js +70 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js +73 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js +67 -0
- package/dist/cjs/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/SimulatorFlow.js +57 -0
- package/dist/cjs/modules/tide-js/Flow/SimulatorFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js +51 -0
- package/dist/cjs/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/dAccountRecoveryFlow.js +95 -0
- package/dist/cjs/modules/tide-js/Flow/dAccountRecoveryFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Flow/dKeyGenerationFlow.js +219 -0
- package/dist/cjs/modules/tide-js/Flow/dKeyGenerationFlow.js.map +1 -0
- package/dist/cjs/modules/tide-js/Math/DecryptRequest.js +52 -0
- package/dist/cjs/modules/tide-js/Math/DecryptRequest.js.map +1 -0
- package/dist/cjs/modules/tide-js/Math/EncryptRequest.js +96 -0
- package/dist/cjs/modules/tide-js/Math/EncryptRequest.js.map +1 -0
- package/dist/cjs/modules/tide-js/Math/KeyAuthentication.js +222 -0
- package/dist/cjs/modules/tide-js/Math/KeyAuthentication.js.map +1 -0
- package/dist/cjs/modules/tide-js/Math/KeyDecryption.js +18 -0
- package/dist/cjs/modules/tide-js/Math/KeyDecryption.js.map +1 -0
- package/dist/cjs/modules/tide-js/Math/KeyGeneration.js +148 -0
- package/dist/cjs/modules/tide-js/Math/KeyGeneration.js.map +1 -0
- package/dist/cjs/modules/tide-js/Math/KeySigning.js +24 -0
- package/dist/cjs/modules/tide-js/Math/KeySigning.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/AdminAuthorization.js +83 -0
- package/dist/cjs/modules/tide-js/Models/AdminAuthorization.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/AuthRequest.js +66 -0
- package/dist/cjs/modules/tide-js/Models/AuthRequest.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/AuthorizationBuilder.js +61 -0
- package/dist/cjs/modules/tide-js/Models/AuthorizationBuilder.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/BaseTideRequest.js +106 -0
- package/dist/cjs/modules/tide-js/Models/BaseTideRequest.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Cardano/CardanoTxBody.js +198 -0
- package/dist/cjs/modules/tide-js/Models/Cardano/CardanoTxBody.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Datum.js +41 -0
- package/dist/cjs/modules/tide-js/Models/Datum.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Doken.js +140 -0
- package/dist/cjs/modules/tide-js/Models/Doken.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/EnclaveEntry.js +50 -0
- package/dist/cjs/modules/tide-js/Models/EnclaveEntry.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Infos/KeyInfo.js +49 -0
- package/dist/cjs/modules/tide-js/Models/Infos/KeyInfo.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Infos/OrkInfo.js +53 -0
- package/dist/cjs/modules/tide-js/Models/Infos/OrkInfo.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/InitializationCertificate.js +35 -0
- package/dist/cjs/modules/tide-js/Models/InitializationCertificate.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/ModelRegistry.js +177 -0
- package/dist/cjs/modules/tide-js/Models/ModelRegistry.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js +34 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js +36 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js +36 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js +34 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js +37 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js +37 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js +36 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js +49 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js +34 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js +39 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js +31 -0
- package/dist/cjs/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js +26 -0
- package/dist/cjs/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js +41 -0
- package/dist/cjs/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Rules/RuleSettingSignRequest.js +81 -0
- package/dist/cjs/modules/tide-js/Models/Rules/RuleSettingSignRequest.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Rules/RuleSettings.js +28 -0
- package/dist/cjs/modules/tide-js/Models/Rules/RuleSettings.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/SerializedField.js +63 -0
- package/dist/cjs/modules/tide-js/Models/SerializedField.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js +57 -0
- package/dist/cjs/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/VendorData.js +36 -0
- package/dist/cjs/modules/tide-js/Models/VendorData.js.map +1 -0
- package/dist/cjs/modules/tide-js/Models/VendorSettings.js +26 -0
- package/dist/cjs/modules/tide-js/Models/VendorSettings.js.map +1 -0
- package/dist/cjs/modules/tide-js/RulesEngine/RuleEngineService.js +92 -0
- package/dist/cjs/modules/tide-js/RulesEngine/RuleEngineService.js.map +1 -0
- package/dist/cjs/modules/tide-js/RulesEngine/helperFunctions.js +78 -0
- package/dist/cjs/modules/tide-js/RulesEngine/helperFunctions.js.map +1 -0
- package/dist/cjs/modules/tide-js/RulesEngine/jsonHelpers.js +68 -0
- package/dist/cjs/modules/tide-js/RulesEngine/jsonHelpers.js.map +1 -0
- package/dist/cjs/modules/tide-js/RulesEngine/thresholdRules.js +106 -0
- package/dist/cjs/modules/tide-js/RulesEngine/thresholdRules.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/AccountRecovery.js +58 -0
- package/dist/cjs/modules/tide-js/Tests/AccountRecovery.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/Components.js +18 -0
- package/dist/cjs/modules/tide-js/Tests/Components.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/Encryption.js +172 -0
- package/dist/cjs/modules/tide-js/Tests/Encryption.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/KeyAuthentication.js +113 -0
- package/dist/cjs/modules/tide-js/Tests/KeyAuthentication.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/KeyGeneration.js +222 -0
- package/dist/cjs/modules/tide-js/Tests/KeyGeneration.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/StripeLicensing.js +41 -0
- package/dist/cjs/modules/tide-js/Tests/StripeLicensing.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/TideKey.js +17 -0
- package/dist/cjs/modules/tide-js/Tests/TideKey.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/Verifier.js +12 -0
- package/dist/cjs/modules/tide-js/Tests/Verifier.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tests/index.js +43 -0
- package/dist/cjs/modules/tide-js/Tests/index.js.map +1 -0
- package/dist/cjs/modules/tide-js/Tools/Utils.js +285 -0
- package/dist/cjs/modules/tide-js/Tools/Utils.js.map +1 -0
- package/dist/cjs/modules/tide-js/index.js +71 -0
- package/dist/cjs/modules/tide-js/index.js.map +1 -0
- package/dist/cjs/src/IAMService.js +278 -0
- package/dist/cjs/src/IAMService.js.map +1 -0
- package/dist/cjs/src/index.js +19 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/esm/lib/tidecloak.js +1923 -0
- package/dist/esm/lib/tidecloak.js.map +1 -0
- package/dist/esm/modules/tide-js/Clients/ClientBase.js +210 -0
- package/dist/esm/modules/tide-js/Clients/ClientBase.js.map +1 -0
- package/dist/esm/modules/tide-js/Clients/NetworkClient.js +90 -0
- package/dist/esm/modules/tide-js/Clients/NetworkClient.js.map +1 -0
- package/dist/esm/modules/tide-js/Clients/NodeClient.js +485 -0
- package/dist/esm/modules/tide-js/Clients/NodeClient.js.map +1 -0
- package/dist/esm/modules/tide-js/Clients/PollingClient.js +81 -0
- package/dist/esm/modules/tide-js/Clients/PollingClient.js.map +1 -0
- package/dist/esm/modules/tide-js/Clients/VoucherClient.js +31 -0
- package/dist/esm/modules/tide-js/Clients/VoucherClient.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/BaseComponent.js +169 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/BaseComponent.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/ComponentRegistry.js +24 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/ComponentRegistry.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js +5 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js +11 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js +157 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js +36 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js +7 -0
- package/dist/esm/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Ed25519.js +523 -0
- package/dist/esm/modules/tide-js/Cryptide/Ed25519.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Encryption/AES.js +102 -0
- package/dist/esm/modules/tide-js/Cryptide/Encryption/AES.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Encryption/DH.js +49 -0
- package/dist/esm/modules/tide-js/Cryptide/Encryption/DH.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Encryption/ElGamal.js +56 -0
- package/dist/esm/modules/tide-js/Cryptide/Encryption/ElGamal.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Hashing/H2P.js +245 -0
- package/dist/esm/modules/tide-js/Cryptide/Hashing/H2P.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Hashing/Hash.js +55 -0
- package/dist/esm/modules/tide-js/Cryptide/Hashing/Hash.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Interpolation.js +97 -0
- package/dist/esm/modules/tide-js/Cryptide/Interpolation.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Math.js +120 -0
- package/dist/esm/modules/tide-js/Cryptide/Math.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Serialization.js +642 -0
- package/dist/esm/modules/tide-js/Cryptide/Serialization.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Signing/BlindSig.js +50 -0
- package/dist/esm/modules/tide-js/Cryptide/Signing/BlindSig.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Signing/EdDSA.js +79 -0
- package/dist/esm/modules/tide-js/Cryptide/Signing/EdDSA.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/Signing/TideSignature.js +91 -0
- package/dist/esm/modules/tide-js/Cryptide/Signing/TideSignature.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/TideKey.js +71 -0
- package/dist/esm/modules/tide-js/Cryptide/TideKey.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/TideMemoryObjects.js +30 -0
- package/dist/esm/modules/tide-js/Cryptide/TideMemoryObjects.js.map +1 -0
- package/dist/esm/modules/tide-js/Cryptide/index.js +34 -0
- package/dist/esm/modules/tide-js/Cryptide/index.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js +3 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js +132 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js +77 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js +2 -0
- package/dist/esm/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js +52 -0
- package/dist/esm/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js +174 -0
- package/dist/esm/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js +43 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js +64 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js +67 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js +61 -0
- package/dist/esm/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/SimulatorFlow.js +51 -0
- package/dist/esm/modules/tide-js/Flow/SimulatorFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js +45 -0
- package/dist/esm/modules/tide-js/Flow/VoucherFlows/VoucherFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/dAccountRecoveryFlow.js +89 -0
- package/dist/esm/modules/tide-js/Flow/dAccountRecoveryFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Flow/dKeyGenerationFlow.js +213 -0
- package/dist/esm/modules/tide-js/Flow/dKeyGenerationFlow.js.map +1 -0
- package/dist/esm/modules/tide-js/Math/DecryptRequest.js +46 -0
- package/dist/esm/modules/tide-js/Math/DecryptRequest.js.map +1 -0
- package/dist/esm/modules/tide-js/Math/EncryptRequest.js +90 -0
- package/dist/esm/modules/tide-js/Math/EncryptRequest.js.map +1 -0
- package/dist/esm/modules/tide-js/Math/KeyAuthentication.js +211 -0
- package/dist/esm/modules/tide-js/Math/KeyAuthentication.js.map +1 -0
- package/dist/esm/modules/tide-js/Math/KeyDecryption.js +15 -0
- package/dist/esm/modules/tide-js/Math/KeyDecryption.js.map +1 -0
- package/dist/esm/modules/tide-js/Math/KeyGeneration.js +141 -0
- package/dist/esm/modules/tide-js/Math/KeyGeneration.js.map +1 -0
- package/dist/esm/modules/tide-js/Math/KeySigning.js +20 -0
- package/dist/esm/modules/tide-js/Math/KeySigning.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/AdminAuthorization.js +79 -0
- package/dist/esm/modules/tide-js/Models/AdminAuthorization.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/AuthRequest.js +63 -0
- package/dist/esm/modules/tide-js/Models/AuthRequest.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/AuthorizationBuilder.js +55 -0
- package/dist/esm/modules/tide-js/Models/AuthorizationBuilder.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/BaseTideRequest.js +103 -0
- package/dist/esm/modules/tide-js/Models/BaseTideRequest.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Cardano/CardanoTxBody.js +195 -0
- package/dist/esm/modules/tide-js/Models/Cardano/CardanoTxBody.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Datum.js +38 -0
- package/dist/esm/modules/tide-js/Models/Datum.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Doken.js +134 -0
- package/dist/esm/modules/tide-js/Models/Doken.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/EnclaveEntry.js +44 -0
- package/dist/esm/modules/tide-js/Models/EnclaveEntry.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Infos/KeyInfo.js +43 -0
- package/dist/esm/modules/tide-js/Models/Infos/KeyInfo.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Infos/OrkInfo.js +50 -0
- package/dist/esm/modules/tide-js/Models/Infos/OrkInfo.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/InitializationCertificate.js +32 -0
- package/dist/esm/modules/tide-js/Models/InitializationCertificate.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/ModelRegistry.js +169 -0
- package/dist/esm/modules/tide-js/Models/ModelRegistry.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js +31 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js +33 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js +33 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js +31 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js +34 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js +34 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js +33 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js +46 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js +31 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js +36 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js +28 -0
- package/dist/esm/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js +23 -0
- package/dist/esm/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js +38 -0
- package/dist/esm/modules/tide-js/Models/Responses/Vendor/VoucherResponse.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Rules/RuleSettingSignRequest.js +75 -0
- package/dist/esm/modules/tide-js/Models/Rules/RuleSettingSignRequest.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Rules/RuleSettings.js +25 -0
- package/dist/esm/modules/tide-js/Models/Rules/RuleSettings.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/SerializedField.js +61 -0
- package/dist/esm/modules/tide-js/Models/SerializedField.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js +51 -0
- package/dist/esm/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/VendorData.js +30 -0
- package/dist/esm/modules/tide-js/Models/VendorData.js.map +1 -0
- package/dist/esm/modules/tide-js/Models/VendorSettings.js +23 -0
- package/dist/esm/modules/tide-js/Models/VendorSettings.js.map +1 -0
- package/dist/esm/modules/tide-js/RulesEngine/RuleEngineService.js +89 -0
- package/dist/esm/modules/tide-js/RulesEngine/RuleEngineService.js.map +1 -0
- package/dist/esm/modules/tide-js/RulesEngine/helperFunctions.js +69 -0
- package/dist/esm/modules/tide-js/RulesEngine/helperFunctions.js.map +1 -0
- package/dist/esm/modules/tide-js/RulesEngine/jsonHelpers.js +64 -0
- package/dist/esm/modules/tide-js/RulesEngine/jsonHelpers.js.map +1 -0
- package/dist/esm/modules/tide-js/RulesEngine/thresholdRules.js +100 -0
- package/dist/esm/modules/tide-js/RulesEngine/thresholdRules.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/AccountRecovery.js +52 -0
- package/dist/esm/modules/tide-js/Tests/AccountRecovery.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/Components.js +15 -0
- package/dist/esm/modules/tide-js/Tests/Components.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/Encryption.js +164 -0
- package/dist/esm/modules/tide-js/Tests/Encryption.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/KeyAuthentication.js +106 -0
- package/dist/esm/modules/tide-js/Tests/KeyAuthentication.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/KeyGeneration.js +213 -0
- package/dist/esm/modules/tide-js/Tests/KeyGeneration.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/StripeLicensing.js +34 -0
- package/dist/esm/modules/tide-js/Tests/StripeLicensing.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/TideKey.js +11 -0
- package/dist/esm/modules/tide-js/Tests/TideKey.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/Verifier.js +9 -0
- package/dist/esm/modules/tide-js/Tests/Verifier.js.map +1 -0
- package/dist/esm/modules/tide-js/Tests/index.js +37 -0
- package/dist/esm/modules/tide-js/Tests/index.js.map +1 -0
- package/dist/esm/modules/tide-js/Tools/Utils.js +273 -0
- package/dist/esm/modules/tide-js/Tools/Utils.js.map +1 -0
- package/dist/esm/modules/tide-js/index.js +27 -0
- package/dist/esm/modules/tide-js/index.js.map +1 -0
- package/dist/esm/src/IAMService.js +272 -0
- package/dist/esm/src/IAMService.js.map +1 -0
- package/dist/esm/src/index.js +8 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/silent-check-sso.html +1 -0
- package/dist/types/lib/tidecloak.d.ts +36 -0
- package/dist/types/modules/tide-js/Clients/ClientBase.d.ts +72 -0
- package/dist/types/modules/tide-js/Clients/NetworkClient.d.ts +23 -0
- package/dist/types/modules/tide-js/Clients/NodeClient.d.ts +187 -0
- package/dist/types/modules/tide-js/Clients/PollingClient.d.ts +22 -0
- package/dist/types/modules/tide-js/Clients/VoucherClient.d.ts +12 -0
- package/dist/types/modules/tide-js/Cryptide/Components/BaseComponent.d.ts +59 -0
- package/dist/types/modules/tide-js/Cryptide/Components/ComponentRegistry.d.ts +19 -0
- package/dist/types/modules/tide-js/Cryptide/Components/Schemes/AES/AESScheme.d.ts +4 -0
- package/dist/types/modules/tide-js/Cryptide/Components/Schemes/BaseScheme.d.ts +10 -0
- package/dist/types/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Components.d.ts +51 -0
- package/dist/types/modules/tide-js/Cryptide/Components/Schemes/Ed25519/Ed25519Scheme.d.ts +10 -0
- package/dist/types/modules/tide-js/Cryptide/Components/Schemes/SchemeRegistry.d.ts +3 -0
- package/dist/types/modules/tide-js/Cryptide/Ed25519.d.ts +114 -0
- package/dist/types/modules/tide-js/Cryptide/Encryption/AES.d.ts +30 -0
- package/dist/types/modules/tide-js/Cryptide/Encryption/DH.d.ts +12 -0
- package/dist/types/modules/tide-js/Cryptide/Encryption/ElGamal.d.ts +20 -0
- package/dist/types/modules/tide-js/Cryptide/Hashing/H2P.d.ts +7 -0
- package/dist/types/modules/tide-js/Cryptide/Hashing/Hash.d.ts +16 -0
- package/dist/types/modules/tide-js/Cryptide/Interpolation.d.ts +47 -0
- package/dist/types/modules/tide-js/Cryptide/Math.d.ts +45 -0
- package/dist/types/modules/tide-js/Cryptide/Serialization.d.ts +195 -0
- package/dist/types/modules/tide-js/Cryptide/Signing/BlindSig.d.ts +32 -0
- package/dist/types/modules/tide-js/Cryptide/Signing/EdDSA.d.ts +24 -0
- package/dist/types/modules/tide-js/Cryptide/Signing/TideSignature.d.ts +50 -0
- package/dist/types/modules/tide-js/Cryptide/TideKey.d.ts +24 -0
- package/dist/types/modules/tide-js/Cryptide/TideMemoryObjects.d.ts +15 -0
- package/dist/types/modules/tide-js/Cryptide/index.d.ts +10 -0
- package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.d.ts +2 -0
- package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.d.ts +64 -0
- package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.d.ts +37 -0
- package/dist/types/modules/tide-js/Flow/AuthenticationFlows/dCVKAuthenticationFlow.d.ts +1 -0
- package/dist/types/modules/tide-js/Flow/DecryptionFlows/dVVKDecryptionFlow.d.ts +31 -0
- package/dist/types/modules/tide-js/Flow/EncryptionFlows/AuthorizedEncryptionFlow.d.ts +75 -0
- package/dist/types/modules/tide-js/Flow/SigningFlows/AuthorizedSigningFlow.d.ts +51 -0
- package/dist/types/modules/tide-js/Flow/SigningFlows/dTestVVkSigningFlow.d.ts +25 -0
- package/dist/types/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow.d.ts +32 -0
- package/dist/types/modules/tide-js/Flow/SigningFlows/dVVKSigningFlow_DEPRECATED.d.ts +30 -0
- package/dist/types/modules/tide-js/Flow/SimulatorFlow.d.ts +13 -0
- package/dist/types/modules/tide-js/Flow/VoucherFlows/VoucherFlow.d.ts +23 -0
- package/dist/types/modules/tide-js/Flow/dAccountRecoveryFlow.d.ts +41 -0
- package/dist/types/modules/tide-js/Flow/dKeyGenerationFlow.d.ts +104 -0
- package/dist/types/modules/tide-js/Math/DecryptRequest.d.ts +19 -0
- package/dist/types/modules/tide-js/Math/EncryptRequest.d.ts +57 -0
- package/dist/types/modules/tide-js/Math/KeyAuthentication.d.ts +95 -0
- package/dist/types/modules/tide-js/Math/KeyDecryption.d.ts +7 -0
- package/dist/types/modules/tide-js/Math/KeyGeneration.d.ts +42 -0
- package/dist/types/modules/tide-js/Math/KeySigning.d.ts +10 -0
- package/dist/types/modules/tide-js/Models/AdminAuthorization.d.ts +16 -0
- package/dist/types/modules/tide-js/Models/AuthRequest.d.ts +28 -0
- package/dist/types/modules/tide-js/Models/AuthorizationBuilder.d.ts +17 -0
- package/dist/types/modules/tide-js/Models/BaseTideRequest.d.ts +52 -0
- package/dist/types/modules/tide-js/Models/Cardano/CardanoTxBody.d.ts +16 -0
- package/dist/types/modules/tide-js/Models/Datum.d.ts +14 -0
- package/dist/types/modules/tide-js/Models/Doken.d.ts +52 -0
- package/dist/types/modules/tide-js/Models/EnclaveEntry.d.ts +22 -0
- package/dist/types/modules/tide-js/Models/Infos/KeyInfo.d.ts +30 -0
- package/dist/types/modules/tide-js/Models/Infos/OrkInfo.d.ts +24 -0
- package/dist/types/modules/tide-js/Models/InitializationCertificate.d.ts +21 -0
- package/dist/types/modules/tide-js/Models/ModelRegistry.d.ts +15 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.d.ts +9 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/CMKConvertResponse.d.ts +11 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.d.ts +11 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.d.ts +9 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.d.ts +11 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.d.ts +12 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyAuth/Convert/PrismConvertResponse.d.ts +11 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyGen/GenShard/DecryptedGenShardResponse.d.ts +18 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyGen/GenShard/GenShardResponse.d.ts +10 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyGen/SetShard/DecryptedSetShardResponse.d.ts +10 -0
- package/dist/types/modules/tide-js/Models/Responses/KeyGen/SetShard/SetShardResponse.d.ts +8 -0
- package/dist/types/modules/tide-js/Models/Responses/Reservation/ReservationConfirmation.d.ts +14 -0
- package/dist/types/modules/tide-js/Models/Responses/Vendor/VoucherResponse.d.ts +25 -0
- package/dist/types/modules/tide-js/Models/Rules/RuleSettingSignRequest.d.ts +39 -0
- package/dist/types/modules/tide-js/Models/Rules/RuleSettings.d.ts +12 -0
- package/dist/types/modules/tide-js/Models/SerializedField.d.ts +20 -0
- package/dist/types/modules/tide-js/Models/Transactions/CardanoTxBodySignRequest.d.ts +29 -0
- package/dist/types/modules/tide-js/Models/VendorData.d.ts +17 -0
- package/dist/types/modules/tide-js/Models/VendorSettings.d.ts +14 -0
- package/dist/types/modules/tide-js/RulesEngine/RuleEngineService.d.ts +25 -0
- package/dist/types/modules/tide-js/RulesEngine/helperFunctions.d.ts +7 -0
- package/dist/types/modules/tide-js/RulesEngine/jsonHelpers.d.ts +11 -0
- package/dist/types/modules/tide-js/RulesEngine/thresholdRules.d.ts +17 -0
- package/dist/types/modules/tide-js/Tests/AccountRecovery.d.ts +1 -0
- package/dist/types/modules/tide-js/Tests/Components.d.ts +1 -0
- package/dist/types/modules/tide-js/Tests/Encryption.d.ts +3 -0
- package/dist/types/modules/tide-js/Tests/KeyAuthentication.d.ts +2 -0
- package/dist/types/modules/tide-js/Tests/KeyGeneration.d.ts +4 -0
- package/dist/types/modules/tide-js/Tests/StripeLicensing.d.ts +2 -0
- package/dist/types/modules/tide-js/Tests/TideKey.d.ts +1 -0
- package/dist/types/modules/tide-js/Tests/Verifier.d.ts +1 -0
- package/dist/types/modules/tide-js/Tests/index.d.ts +32 -0
- package/dist/types/modules/tide-js/Tools/Utils.d.ts +34 -0
- package/dist/types/modules/tide-js/index.d.ts +8 -0
- package/dist/types/src/IAMService.d.ts +106 -0
- package/dist/types/src/index.d.ts +4 -0
- package/package.json +48 -0
- package/scripts/postinstall.js +43 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { RandomBigInt, mod, mod_inv } from "../Math.js";
|
|
2
|
+
import { Point } from "../Ed25519.js";
|
|
3
|
+
import { SHA256_Digest, SHA512_Digest } from "../Hashing/Hash.js";
|
|
4
|
+
import { BigIntFromByteArray, BigIntToByteArray, ConcatUint8Arrays, bytesToBase64 } from "../Serialization.js";
|
|
5
|
+
import { EdDSA } from "../index.js";
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @param {Point} gR
|
|
9
|
+
* @param {Point} pub
|
|
10
|
+
* @param {Uint8Array} message
|
|
11
|
+
* @param {bigint} multiplier
|
|
12
|
+
*/
|
|
13
|
+
export async function genBlindMessage(gR, pub, message, multiplier) {
|
|
14
|
+
const blur = RandomBigInt();
|
|
15
|
+
const gRMul = gR.mul(mod_inv(blur));
|
|
16
|
+
const eddsaH = mod(BigIntFromByteArray(await SHA512_Digest(ConcatUint8Arrays([gRMul.toRawBytes(), pub.toRawBytes(), message]))));
|
|
17
|
+
const blurHCMKMul = mod(eddsaH * multiplier * blur);
|
|
18
|
+
return { blurHCMKMul, blur, gRMul };
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param {bigint} blindS
|
|
23
|
+
* @param {bigint} blur
|
|
24
|
+
*/
|
|
25
|
+
export async function unblindSignature(blindS, blur) {
|
|
26
|
+
const s = mod(blindS * mod_inv(blur));
|
|
27
|
+
return s;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* @param {bigint} S
|
|
32
|
+
* @param {Point} noncePublic
|
|
33
|
+
* @param {Point} pub
|
|
34
|
+
* @param {Uint8Array} message
|
|
35
|
+
*/
|
|
36
|
+
export async function verifyBlindSignature(S, noncePublic, pub, message) {
|
|
37
|
+
const valid = await EdDSA.verifyRaw(S, noncePublic, pub, message);
|
|
38
|
+
if (!valid) {
|
|
39
|
+
console.error(`Signature failed. \nM: ${bytesToBase64(message)}\nS: ${S.toString()}\nNoncePublic: ${noncePublic.toBase64()}\nPublic: ${pub.toBase64()}`);
|
|
40
|
+
}
|
|
41
|
+
return valid;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @param {bigint} S
|
|
45
|
+
* @param {Point} noncePublic
|
|
46
|
+
*/
|
|
47
|
+
export function serializeBlindSig(S, noncePublic) {
|
|
48
|
+
return ConcatUint8Arrays([BigIntToByteArray(S), noncePublic.toRawBytes()]);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=BlindSig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlindSig.js","sourceRoot":"","sources":["../../../../../../modules/tide-js/Cryptide/Signing/BlindSig.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/G,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU;IAC9D,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,CAAC,MAAM,aAAa,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjI,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;IAEpD,OAAO,EAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;AACtC,CAAC;AACD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAM,EAAE,IAAI;IAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;IACnE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAElE,IAAG,CAAC,KAAK,EAAC,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,0BAA0B,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,kBAAkB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7J,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAC,EAAE,WAAW;IAC5C,OAAO,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
|
|
3
|
+
// Copyright (C) 2022 Tide Foundation Ltd
|
|
4
|
+
//
|
|
5
|
+
// This program is free software and is subject to the terms of
|
|
6
|
+
// the Tide Community Open Code License as published by the
|
|
7
|
+
// Tide Foundation Limited. You may modify it and redistribute
|
|
8
|
+
// it in accordance with and subject to the terms of that License.
|
|
9
|
+
// This program is distributed WITHOUT WARRANTY of any kind,
|
|
10
|
+
// including without any implied warranty of MERCHANTABILITY or
|
|
11
|
+
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
12
|
+
// See the Tide Community Open Code License for more details.
|
|
13
|
+
// You should have received a copy of the Tide Community Open
|
|
14
|
+
// Code License along with this program.
|
|
15
|
+
// If not, see https://tide.org/licenses_tcoc2-0-0-en
|
|
16
|
+
//
|
|
17
|
+
import { Point, CURVE } from "../Ed25519.js";
|
|
18
|
+
import { SHA512_Digest } from "../Hashing/Hash.js";
|
|
19
|
+
import { RandomBigInt, mod } from "../Math.js";
|
|
20
|
+
import { base64ToBytes, BigIntFromByteArray, BigIntToByteArray, bytesToBase64, ConcatUint8Arrays, StringToUint8Array } from "../Serialization.js";
|
|
21
|
+
/**
|
|
22
|
+
* Sign the msg with a private key in non-standard way as it uses a random number generator. Non-deterministic.
|
|
23
|
+
* @param {string | Uint8Array} msg
|
|
24
|
+
* @param {bigint} priv
|
|
25
|
+
* @returns A base64 encoding of the signature
|
|
26
|
+
*/
|
|
27
|
+
export async function sign(msg, priv) {
|
|
28
|
+
if (typeof (msg) == 'string') {
|
|
29
|
+
msg = StringToUint8Array(msg);
|
|
30
|
+
}
|
|
31
|
+
const A = Point.BASE.mul(priv).toRawBytes();
|
|
32
|
+
const r = RandomBigInt();
|
|
33
|
+
const R = Point.BASE.mul(r).toRawBytes();
|
|
34
|
+
const to_hash2 = ConcatUint8Arrays([R, A, msg]);
|
|
35
|
+
const k = mod(BigIntFromByteArray(await SHA512_Digest(to_hash2)));
|
|
36
|
+
const S = mod(r + (k * priv));
|
|
37
|
+
const sig_bytes = ConcatUint8Arrays([R, BigIntToByteArray(S)]);
|
|
38
|
+
return bytesToBase64(sig_bytes);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Verify a EdDSA signature, given a signature, public key and message.
|
|
42
|
+
* @param {string} sig In base64
|
|
43
|
+
* @param {string | Point} pub
|
|
44
|
+
* @param {string | Uint8Array} msg
|
|
45
|
+
* @returns Boolean dependant on whether the signature is valid or not.
|
|
46
|
+
*/
|
|
47
|
+
export async function verify(sig, pub, msg) {
|
|
48
|
+
try {
|
|
49
|
+
if (typeof (msg) == 'string') {
|
|
50
|
+
msg = StringToUint8Array(msg);
|
|
51
|
+
}
|
|
52
|
+
const sig_bytes = base64ToBytes(sig);
|
|
53
|
+
if (sig_bytes.length != 64)
|
|
54
|
+
return false;
|
|
55
|
+
const R = Point.fromBytes(sig_bytes.slice(0, 32));
|
|
56
|
+
const S = BigIntFromByteArray(sig_bytes.slice(-32));
|
|
57
|
+
const A = typeof (pub) === 'string' ? Point.fromBase64(pub) : pub;
|
|
58
|
+
return await verifyRaw(S, R, A, msg);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return false; // very strict indeed
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Verify a message with raw S and R
|
|
66
|
+
* @param {bigint} S
|
|
67
|
+
* @param {Point} R
|
|
68
|
+
* @param {Point} A
|
|
69
|
+
* @param {Uint8Array} M
|
|
70
|
+
*/
|
|
71
|
+
export async function verifyRaw(S, R, A, M) {
|
|
72
|
+
if (S < BigInt(0) || S >= CURVE.n) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
const to_hash = ConcatUint8Arrays([R.toRawBytes(), A.toRawBytes(), M]);
|
|
76
|
+
const k = mod(BigIntFromByteArray(await SHA512_Digest(to_hash)));
|
|
77
|
+
return Point.BASE.mul(S).mul(BigInt(8)).equals(R.mul(BigInt(8)).add(A.mul(k).mul(BigInt(8))));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=EdDSA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EdDSA.js","sourceRoot":"","sources":["../../../../../../modules/tide-js/Cryptide/Signing/EdDSA.js"],"names":[],"mappings":"AAAA,GAAG;AACH,gEAAgE;AAChE,yCAAyC;AACzC,GAAG;AACH,gEAAgE;AAChE,4DAA4D;AAC5D,+DAA+D;AAC/D,kEAAkE;AAClE,6DAA6D;AAC7D,gEAAgE;AAChE,oCAAoC;AACpC,6DAA6D;AAC7D,8DAA8D;AAC9D,wCAAwC;AACxC,qDAAqD;AACrD,EAAE;AAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGlJ;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI;IAChC,IAAG,OAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAC,CAAC;QACxB,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5C,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,GAAG,CAAC,mBAAmB,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;IACtC,IAAG,CAAC;QACA,IAAG,OAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAC,CAAC;YACxB,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACrC,IAAG,SAAS,CAAC,MAAM,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;QAExC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,OAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEjE,OAAO,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAAA,MAAK,CAAC;QACH,OAAO,KAAK,CAAA,CAAC,qBAAqB;IACtC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACtC,IAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,EAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,GAAG,CAAC,mBAAmB,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Serialization } from "../index.js";
|
|
2
|
+
import { ConcatUint8Arrays, StringToUint8Array } from "../Serialization.js";
|
|
3
|
+
export class TideSignatureFormat {
|
|
4
|
+
/**
|
|
5
|
+
* @param {string|Uint8Array} message
|
|
6
|
+
*/
|
|
7
|
+
constructor(message) {
|
|
8
|
+
this.Header = () => "=====TIDE_" + this.Name + ":" + this.Version + "_START=====\n";
|
|
9
|
+
this.Footer = () => "\n=====TIDE_" + this.Name + ":" + this.Version + "_END=====";
|
|
10
|
+
if (typeof (message) == 'string') {
|
|
11
|
+
this.Message = StringToUint8Array(message);
|
|
12
|
+
}
|
|
13
|
+
else if (message instanceof Uint8Array) {
|
|
14
|
+
this.Message = message.slice();
|
|
15
|
+
}
|
|
16
|
+
else
|
|
17
|
+
throw Error("Unknown type provided");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @returns {Uint8Array}
|
|
22
|
+
*/
|
|
23
|
+
format() {
|
|
24
|
+
return ConcatUint8Arrays([StringToUint8Array(this.Header()), this.Message, StringToUint8Array(this.Footer())]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class URLSignatureFormat extends TideSignatureFormat {
|
|
28
|
+
constructor(message) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.Name = "URL";
|
|
31
|
+
this.Version = "1";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class ClientURLSignatureFormat extends TideSignatureFormat {
|
|
35
|
+
constructor(message) {
|
|
36
|
+
super(message);
|
|
37
|
+
this.Name = "ClientURL";
|
|
38
|
+
this.Version = "1";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class PublicKeySignatureFormat extends TideSignatureFormat {
|
|
42
|
+
constructor(message) {
|
|
43
|
+
super(message);
|
|
44
|
+
this.Name = "PublicKey";
|
|
45
|
+
this.Version = "1";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class AuthorizerSignatureFormat extends TideSignatureFormat {
|
|
49
|
+
constructor(authflow, modelIds, authorizer) {
|
|
50
|
+
const authflow_b = StringToUint8Array(authflow);
|
|
51
|
+
const models_b = modelIds.map(k => StringToUint8Array(k));
|
|
52
|
+
const authorizer_pack = Serialization.CreateTideMemory(authflow_b, 8 + (4 * models_b.length) + authflow_b.length + models_b.reduce((sum, next) => sum + next.length, 0) + authorizer.length);
|
|
53
|
+
Serialization.WriteValue(authorizer_pack, 1, authorizer);
|
|
54
|
+
models_b.forEach((model, i) => {
|
|
55
|
+
Serialization.WriteValue(authorizer_pack, i + 2, model);
|
|
56
|
+
});
|
|
57
|
+
super(authorizer_pack);
|
|
58
|
+
this.Name = "Authorizer";
|
|
59
|
+
this.Version = "1";
|
|
60
|
+
}
|
|
61
|
+
format() {
|
|
62
|
+
return this.Message.slice();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export class TidecloakSettingsSignatureFormat extends TideSignatureFormat {
|
|
66
|
+
constructor(message) {
|
|
67
|
+
super(message);
|
|
68
|
+
this.Name = "TidecloakSettings";
|
|
69
|
+
this.Version = "1";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export class TestSignatureFormat extends TideSignatureFormat {
|
|
73
|
+
constructor(message) {
|
|
74
|
+
super(message);
|
|
75
|
+
this.Name = "TestMessage";
|
|
76
|
+
this.Version = "1";
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export class PlainSignatureFormat extends TideSignatureFormat {
|
|
80
|
+
/**
|
|
81
|
+
* WARNING: Only use this class if you are SURE that the data you are signing is ALREADY serialized in some form.
|
|
82
|
+
* @param {string|Uint8Array} message
|
|
83
|
+
*/
|
|
84
|
+
constructor(message) {
|
|
85
|
+
super(message);
|
|
86
|
+
}
|
|
87
|
+
format() {
|
|
88
|
+
return this.Message.slice();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=TideSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideSignature.js","sourceRoot":"","sources":["../../../../../../modules/tide-js/Cryptide/Signing/TideSignature.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { BaseComponent, BasePrivateComponent, BasePublicComponent, Seed } from "./Components/BaseComponent.js";
|
|
2
|
+
import { Registery } from "./Components/ComponentRegistry.js";
|
|
3
|
+
import { Ed25519SeedComponent } from "./Components/Schemes/Ed25519/Ed25519Components.js";
|
|
4
|
+
import Ed25519Scheme from "./Components/Schemes/Ed25519/Ed25519Scheme.js";
|
|
5
|
+
import { SchemeType } from "./Components/Schemes/SchemeRegistry.js";
|
|
6
|
+
import { computeSharedKey } from "./Encryption/DH.js";
|
|
7
|
+
import { GetPublic, mod, RandomBigInt } from "./Math.js";
|
|
8
|
+
import { BigIntFromByteArray, BigIntToByteArray, Bytes2Hex, bytesToBase64 } from "./Serialization.js";
|
|
9
|
+
export default class TideKey {
|
|
10
|
+
static NewKey(scheme) {
|
|
11
|
+
const seedFactory = Registery[scheme.Name][Seed];
|
|
12
|
+
return new TideKey(seedFactory.Create(undefined));
|
|
13
|
+
}
|
|
14
|
+
static FromSerializedComponent(c) {
|
|
15
|
+
return new TideKey(BaseComponent.DeserializeComponent(c));
|
|
16
|
+
}
|
|
17
|
+
constructor(c) {
|
|
18
|
+
/**@type { BaseComponent } */
|
|
19
|
+
this.component = undefined;
|
|
20
|
+
if (c instanceof BaseComponent)
|
|
21
|
+
this.component = c;
|
|
22
|
+
else
|
|
23
|
+
throw Error("Expecting object derived from BaseComponent");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @returns {BasePrivateComponent}
|
|
28
|
+
*/
|
|
29
|
+
get_private_component() {
|
|
30
|
+
if (!hasOwnInstanceMethod(this.component, "GetPrivate") && !(this.component instanceof BasePrivateComponent))
|
|
31
|
+
throw Error("Cannot generate or find private component");
|
|
32
|
+
this.privateComponent = this.component instanceof BasePrivateComponent ? this.component : this.component.GetPrivate();
|
|
33
|
+
return this.privateComponent;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @returns {BasePublicComponent}
|
|
37
|
+
*/
|
|
38
|
+
get_public_component() {
|
|
39
|
+
if (!hasOwnInstanceMethod(this.component, "GetPublic") && !(this.component instanceof BasePublicComponent))
|
|
40
|
+
throw Error("Cannot generate or find public component");
|
|
41
|
+
this.publicComponent = this.component instanceof BasePublicComponent ? this.component : this.component.GetPublic();
|
|
42
|
+
return this.publicComponent;
|
|
43
|
+
}
|
|
44
|
+
async sign(message) {
|
|
45
|
+
const f = this.component.Scheme.GetSigningFunction();
|
|
46
|
+
return await f(message, this.get_private_component());
|
|
47
|
+
}
|
|
48
|
+
async verify(message, signature) {
|
|
49
|
+
const f = this.component.Scheme.GetVerifyingFunction();
|
|
50
|
+
return await f(message, signature, this.get_public_component());
|
|
51
|
+
}
|
|
52
|
+
async prepVouchersReq(gORKn) {
|
|
53
|
+
// Ensure scheme is Ed25519 for tide vouchers
|
|
54
|
+
if (this.component.Scheme !== Ed25519Scheme)
|
|
55
|
+
throw Error("Cannot execute prepVouchersReq on a non Ed25519 key");
|
|
56
|
+
let blurKeyPub = [];
|
|
57
|
+
for (let i = 0; i < gORKn.length; i++) {
|
|
58
|
+
const z = mod(BigIntFromByteArray(await computeSharedKey(gORKn[i], this.get_private_component().priv)));
|
|
59
|
+
blurKeyPub[i] = gORKn[i].mul(z);
|
|
60
|
+
}
|
|
61
|
+
return blurKeyPub;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function hasOwnInstanceMethod(obj, methodName) {
|
|
65
|
+
// get the “own” prototype of this object’s class
|
|
66
|
+
const proto = Object.getPrototypeOf(obj);
|
|
67
|
+
// check it has its own property of that name, and that it’s a function
|
|
68
|
+
return Object.prototype.hasOwnProperty.call(proto, methodName)
|
|
69
|
+
&& typeof proto[methodName] === 'function';
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=TideKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideKey.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Cryptide/TideKey.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CreateTideMemory, writeInt64LittleEndian, WriteValue } from "./Serialization.js";
|
|
2
|
+
import { Utils } from "../index.js";
|
|
3
|
+
import { Ed25519PublicComponent } from "./Components/Schemes/Ed25519/Ed25519Components.js";
|
|
4
|
+
import { AuthorizerSignatureFormat } from "./Signing/TideSignature.js";
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param {Ed25519PublicComponent} gvrk
|
|
8
|
+
* @param {number | bigint} expiry
|
|
9
|
+
*/
|
|
10
|
+
export function CreateVRKPackage(gvrk, expiry) {
|
|
11
|
+
const serializedgvrk = gvrk.Serialize().ToBytes();
|
|
12
|
+
const ex = typeof expiry == "bigint" ? expiry : BigInt(expiry);
|
|
13
|
+
if (ex < BigInt(Utils.CurrentTime() + 5))
|
|
14
|
+
throw Error("Expiry must be at least 5 seconds into future");
|
|
15
|
+
const time_b = writeInt64LittleEndian(ex);
|
|
16
|
+
const vrk_pack = CreateTideMemory(serializedgvrk, 4 + 4 + serializedgvrk.length + time_b.length);
|
|
17
|
+
WriteValue(vrk_pack, 1, time_b);
|
|
18
|
+
return vrk_pack;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param {string} authFlow
|
|
23
|
+
* @param {string[]} signModels
|
|
24
|
+
* @param {Uint8Array} vrk_pack
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
export function CreateAuthorizerPackage(authFlow, signModels, vrk_pack) {
|
|
28
|
+
return new AuthorizerSignatureFormat(authFlow, signModels, vrk_pack).format();
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=TideMemoryObjects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideMemoryObjects.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Cryptide/TideMemoryObjects.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAI,EAAE,MAAM;IACzC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC;IAClD,MAAM,EAAE,GAAG,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAG,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAAE,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACtG,MAAM,MAAM,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,cAAc,EAC5C,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAChD,CAAC;IACF,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC;AACpB,CAAC;AACD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ;IAClE,OAAO,IAAI,yBAAyB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
|
|
3
|
+
// Copyright (C) 2022 Tide Foundation Ltd
|
|
4
|
+
//
|
|
5
|
+
// This program is free software and is subject to the terms of
|
|
6
|
+
// the Tide Community Open Code License as published by the
|
|
7
|
+
// Tide Foundation Limited. You may modify it and redistribute
|
|
8
|
+
// it in accordance with and subject to the terms of that License.
|
|
9
|
+
// This program is distributed WITHOUT WARRANTY of any kind,
|
|
10
|
+
// including without any implied warranty of MERCHANTABILITY or
|
|
11
|
+
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
12
|
+
// See the Tide Community Open Code License for more details.
|
|
13
|
+
// You should have received a copy of the Tide Community Open
|
|
14
|
+
// Code License along with this program.
|
|
15
|
+
// If not, see https://tide.org/licenses_tcoc2-0-0-en
|
|
16
|
+
//
|
|
17
|
+
export { default as ElGamal } from "./Encryption/ElGamal.js";
|
|
18
|
+
import * as AES from "./Encryption/AES.js";
|
|
19
|
+
export { AES };
|
|
20
|
+
import * as DH from "./Encryption/DH.js";
|
|
21
|
+
export { DH };
|
|
22
|
+
import * as EdDSA from "./Signing/EdDSA.js";
|
|
23
|
+
export { EdDSA };
|
|
24
|
+
import * as Hash from "./Hashing/Hash.js";
|
|
25
|
+
export { Hash };
|
|
26
|
+
import * as HashToPoint from "./Hashing/H2P.js";
|
|
27
|
+
export { HashToPoint };
|
|
28
|
+
import * as Interpolation from "./Interpolation.js";
|
|
29
|
+
export { Interpolation };
|
|
30
|
+
import * as Math from "./Math.js";
|
|
31
|
+
export { Math };
|
|
32
|
+
import * as Serialization from "./Serialization.js";
|
|
33
|
+
export { Serialization };
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Cryptide/index.js"],"names":[],"mappings":"AAAA,GAAG;AACH,gEAAgE;AAChE,yCAAyC;AACzC,GAAG;AACH,gEAAgE;AAChE,4DAA4D;AAC5D,+DAA+D;AAC/D,kEAAkE;AAClE,6DAA6D;AAC7D,gEAAgE;AAChE,oCAAoC;AACpC,6DAA6D;AAC7D,8DAA8D;AAC9D,wCAAwC;AACxC,qDAAqD;AACrD,EAAE;AAEF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,EAAE,EAAE,CAAC;AAEd,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dCMKAcceptAdminFlow.js","sourceRoot":"","sources":["../../../../../../modules/tide-js/Flow/AuthenticationFlows/dCMKAcceptAdminFlow.js"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,mBAAmB;CAEvC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
|
|
3
|
+
// Copyright (C) 2022 Tide Foundation Ltd
|
|
4
|
+
//
|
|
5
|
+
// This program is free software and is subject to the terms of
|
|
6
|
+
// the Tide Community Open Code License as published by the
|
|
7
|
+
// Tide Foundation Limited. You may modify it and redistribute
|
|
8
|
+
// it in accordance with and subject to the terms of that License.
|
|
9
|
+
// This program is distributed WITHOUT WARRANTY of any kind,
|
|
10
|
+
// including without any implied warranty of MERCHANTABILITY or
|
|
11
|
+
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
12
|
+
// See the Tide Community Open Code License for more details.
|
|
13
|
+
// You should have received a copy of the Tide Community Open
|
|
14
|
+
// Code License along with this program.
|
|
15
|
+
// If not, see https://tide.org/licenses_tcoc2-0-0-en
|
|
16
|
+
//
|
|
17
|
+
import NodeClient from "../../Clients/NodeClient.js";
|
|
18
|
+
import { DH, Interpolation } from "../../Cryptide/index.js";
|
|
19
|
+
import { AuthenticateBasicReply, AuthenticateConsentReply, CmkConvertReply, PrismConvertReply } from "../../Math/KeyAuthentication.js";
|
|
20
|
+
import { Math } from "../../Cryptide/index.js";
|
|
21
|
+
import { Max, Threshold, WaitForNumberofORKs, sortORKs } from "../../Tools/Utils.js";
|
|
22
|
+
import { RandomBigInt } from "../../Cryptide/Math.js";
|
|
23
|
+
import { BigIntFromByteArray, GetUID, Hex2Bytes, base64ToBytes, bitArrayToUint8Array, serializeBitArray, uint8ArrayToBitArray } from "../../Cryptide/Serialization.js";
|
|
24
|
+
import EnclaveEntry from "../../Models/EnclaveEntry.js";
|
|
25
|
+
import VoucherFlow from "../VoucherFlows/VoucherFlow.js";
|
|
26
|
+
import KeyInfo from "../../Models/Infos/KeyInfo.js";
|
|
27
|
+
import { Point } from "../../Cryptide/Ed25519.js";
|
|
28
|
+
import TideKey from "../../Cryptide/TideKey.js";
|
|
29
|
+
export default class dCMKPasswordFlow {
|
|
30
|
+
/**
|
|
31
|
+
* @param {KeyInfo} keyInfo
|
|
32
|
+
* @param {string} sessID
|
|
33
|
+
* @param {boolean} cmkCommitted
|
|
34
|
+
* @param {boolean} prismCommitted
|
|
35
|
+
* @param {string} voucherURL
|
|
36
|
+
* @param {string} purpose
|
|
37
|
+
*/
|
|
38
|
+
constructor(keyInfo, sessID, cmkCommitted, prismCommitted, voucherURL, purpose = null) {
|
|
39
|
+
this.keyInfo = new KeyInfo(keyInfo.UserId, keyInfo.UserPublic, keyInfo.UserM, keyInfo.OrkInfo.slice());
|
|
40
|
+
this.sessID = sessID;
|
|
41
|
+
this.keyInfo.OrkInfo = sortORKs(this.keyInfo.OrkInfo);
|
|
42
|
+
this.cmkCommitted = cmkCommitted;
|
|
43
|
+
this.prismCommitted = prismCommitted;
|
|
44
|
+
this.voucherURL = voucherURL;
|
|
45
|
+
this.purpose = purpose == null ? "auth" : purpose;
|
|
46
|
+
this.cState = undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @param {TideKey} sessKey
|
|
50
|
+
* @param {Point} gSessKeyPub
|
|
51
|
+
* @param {Point} gPass
|
|
52
|
+
* @param {Point} gCMK
|
|
53
|
+
* @param {boolean} rememberMe
|
|
54
|
+
*/
|
|
55
|
+
async Convert(sessKey, gPass, gCMK, rememberMe) {
|
|
56
|
+
const clients = this.keyInfo.OrkInfo.map(ork => new NodeClient(ork.orkURL)); // create node clients
|
|
57
|
+
const voucherFlow = new VoucherFlow(this.keyInfo.OrkInfo.map(o => o.orkPaymentPublic), this.voucherURL, "signin");
|
|
58
|
+
const { vouchers, k } = await voucherFlow.GetVouchers();
|
|
59
|
+
const r1 = Math.RandomBigInt();
|
|
60
|
+
const gBlurPass = gPass.mul(r1);
|
|
61
|
+
// Here we also find out which ORKs are up
|
|
62
|
+
const pre_ConvertResponses = clients.map((client, i) => client.Convert(i, this.keyInfo.UserId, gBlurPass, sessKey.get_public_component(), rememberMe, vouchers.toORK(i), this.keyInfo.UserM, this.cmkCommitted, this.prismCommitted));
|
|
63
|
+
// To save time
|
|
64
|
+
const prkECDHi = await DH.generateECDHi(this.keyInfo.OrkInfo.map(o => o.orkPublic), sessKey.get_private_component().rawBytes);
|
|
65
|
+
const { fulfilledResponses, bitwise } = await WaitForNumberofORKs(this.keyInfo.OrkInfo, pre_ConvertResponses, "CMK", Threshold, null, prkECDHi);
|
|
66
|
+
const ids = this.keyInfo.OrkInfo.map(c => BigInt(c.orkID));
|
|
67
|
+
const { prismAuthis, timestampi, selfRequesti, expired } = await PrismConvertReply(fulfilledResponses.map(c => c.PrismConvertResponse), ids, this.keyInfo.OrkInfo.map(c => c.orkPublic), r1, prkECDHi);
|
|
68
|
+
this.cState = {
|
|
69
|
+
selfRequesti,
|
|
70
|
+
expired,
|
|
71
|
+
bitwise,
|
|
72
|
+
prkECDHi,
|
|
73
|
+
...await CmkConvertReply(fulfilledResponses.map(c => c.CMKConvertResponse), ids, prismAuthis, gCMK, timestampi, this.sessID, this.purpose, Point.fromBytes(Hex2Bytes(vouchers.qPub).slice(-32)), // to translate between tide component and native object
|
|
74
|
+
BigIntFromByteArray(base64ToBytes(vouchers.UDeObf).slice(-32)), // to translate between tide component and native object
|
|
75
|
+
k.get_private_component().priv, sessKey.get_public_component())
|
|
76
|
+
};
|
|
77
|
+
return {
|
|
78
|
+
VUID: this.cState.VUID
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
*
|
|
83
|
+
* @param {TideKey} sessKey
|
|
84
|
+
* @param {Point} gSessKeyPub
|
|
85
|
+
* @param {Point} gPass
|
|
86
|
+
*/
|
|
87
|
+
async ConvertPassword(sessKey, gPass) {
|
|
88
|
+
if (this.cState != undefined)
|
|
89
|
+
throw Error("This function must be called as a standlone in this flow");
|
|
90
|
+
const r1 = RandomBigInt();
|
|
91
|
+
const gBlurPass = gPass.mul(r1);
|
|
92
|
+
const clients = this.keyInfo.OrkInfo.map(ork => new NodeClient(ork.orkURL)); // create node clients
|
|
93
|
+
const voucherFlow = new VoucherFlow(this.keyInfo.OrkInfo.map(o => o.orkPaymentPublic), this.voucherURL, "updateaccount");
|
|
94
|
+
const { vouchers } = await voucherFlow.GetVouchers();
|
|
95
|
+
const pre_convertPassResponses = clients.map((client, i) => client.ConvertPass(i, this.keyInfo.UserId, gBlurPass, sessKey.get_public_component(), vouchers.toORK(i), this.keyInfo.UserM));
|
|
96
|
+
// To save time
|
|
97
|
+
const prkECDHi = await DH.generateECDHi(this.keyInfo.OrkInfo.map(o => o.orkPublic), sessKey.get_private_component().rawBytes);
|
|
98
|
+
const { fulfilledResponses, bitwise } = await WaitForNumberofORKs(this.keyInfo.OrkInfo, pre_convertPassResponses, "CMK", Threshold, null, prkECDHi);
|
|
99
|
+
const { prismAuthis, timestampi, selfRequesti, expired } = await PrismConvertReply(fulfilledResponses, this.keyInfo.OrkInfo.map(c => BigInt(c.orkID)), this.keyInfo.OrkInfo.map(c => c.orkPublic), r1, prkECDHi);
|
|
100
|
+
return {
|
|
101
|
+
bitwise: bitwise,
|
|
102
|
+
expired,
|
|
103
|
+
selfRequesti
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* @param {Point} gVRK If a null value is provided, no encryption is applied.
|
|
108
|
+
* @param {Uint8Array} sessKey
|
|
109
|
+
* @param {string} consentToSign
|
|
110
|
+
*/
|
|
111
|
+
async Authenticate(gVRK, sessKey = null, consentToSign = null) {
|
|
112
|
+
if (this.cState == undefined)
|
|
113
|
+
throw Error("Convert State is undefined");
|
|
114
|
+
const cmkClients = this.keyInfo.OrkInfo.map(ork => new NodeClient(ork.orkURL));
|
|
115
|
+
const pre_encSig = cmkClients.map((client, i) => client.Authenticate(this.keyInfo.UserId, this.cState.selfRequesti[i], this.cState.blurHCMKMul, serializeBitArray(this.cState.bitwise), this.cmkCommitted, this.prismCommitted));
|
|
116
|
+
const encSig = await Promise.all(pre_encSig);
|
|
117
|
+
let vendorEncryptedData;
|
|
118
|
+
if (consentToSign == null) {
|
|
119
|
+
vendorEncryptedData = await AuthenticateBasicReply(this.cState.VUID, this.cState.prkECDHi, encSig, this.cState.gCMKAuth, this.cState.authToken, this.cState.r4, this.cState.gRMul, gVRK);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
vendorEncryptedData = await AuthenticateConsentReply(this.cState.VUID, this.cState.prkECDHi, encSig, this.cState.gCMKAuth, this.cState.authToken, this.cState.r4, this.cState.gRMul, gVRK, BigIntFromByteArray(sessKey), consentToSign);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
bitwise: this.cState.bitwise,
|
|
126
|
+
expired: this.cState.expired,
|
|
127
|
+
selfRequesti: this.cState.selfRequesti,
|
|
128
|
+
vendorEncryptedData: vendorEncryptedData
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=dCMKPasswordFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dCMKPasswordFlow.js","sourceRoot":"","sources":["../../../../../../modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordFlow.js"],"names":[],"mappings":"AAAA,GAAG;AACH,gEAAgE;AAChE,yCAAyC;AACzC,GAAG;AACH,gEAAgE;AAChE,4DAA4D;AAC5D,+DAA+D;AAC/D,kEAAkE;AAClE,6DAA6D;AAC7D,gEAAgE;AAChE,oCAAoC;AACpC,6DAA6D;AAC7D,8DAA8D;AAC9D,wCAAwC;AACxC,qDAAqD;AACrD,EAAE;AAEF,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,EAAE,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAG,MAAM,iCAAiC,CAAC;AACxI,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvK,OAAO,YAAY,MAAM,8BAA8B,CAAC;AACxD,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,OAAO,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC;;;;;;;OAOG;IACH,YAAY,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,GAAC,IAAI;QAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QAEjD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAChC,CAAC;IAEG;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,sBAAsB;QAElG,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClH,MAAM,EAAC,QAAQ,EAAE,CAAC,EAAC,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;QAEtD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhC,0CAA0C;QAC1C,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAEtO,eAAe;QACf,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE9H,MAAM,EAAC,kBAAkB,EAAE,OAAO,EAAC,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE9I,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAC,GAAG,MAAM,iBAAiB,CAC5E,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,EACnD,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC1C,EAAE,EACF,QAAQ,CAAC,CAAC;QAEd,IAAI,CAAC,MAAM,GAAG;YACV,YAAY;YACZ,OAAO;YACP,OAAO;YACP,QAAQ;YACR,GAAI,MAAM,eAAe,CACrB,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EACjD,GAAG,EACH,WAAW,EACX,IAAI,EACJ,UAAU,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,wDAAwD;YAC9G,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,wDAAwD;YACxH,CAAC,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAC9B,OAAO,CAAC,oBAAoB,EAAE,CACjC;SACJ,CAAA;QACD,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SACzB,CAAA;IACL,CAAC;IACD;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK;QAChC,IAAG,IAAI,CAAC,MAAM,IAAI,SAAS;YAAE,MAAM,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAErG,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,sBAAsB;QAElG,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACzH,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;QAEnD,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,oBAAoB,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1L,eAAe;QACf,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE9H,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEpJ,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAC,GAAG,MAAM,iBAAiB,CAC5E,kBAAkB,EAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC1C,EAAE,EACF,QAAQ,CAAC,CAAC;QAEd,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,OAAO;YACP,YAAY;SACf,CAAA;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAC,IAAI,EAAE,aAAa,GAAC,IAAI;QACrD,IAAG,IAAI,CAAC,MAAM,IAAI,SAAS;YAAE,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAE9E,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAChE,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAC3B,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EACtC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAE1B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,mBAAmB,CAAC;QACxB,IAAG,aAAa,IAAI,IAAI,EAAC,CAAC;YACtB,mBAAmB,GAAG,MAAM,sBAAsB,CAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,CACP,CAAC;QACN,CAAC;aAAI,CAAC;YACF,mBAAmB,GAAG,MAAM,wBAAwB,CAChD,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,EACJ,mBAAmB,CAAC,OAAO,CAAC,EAC5B,aAAa,CAChB,CAAC;QACN,CAAC;QACD,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,mBAAmB,EAAE,mBAAmB;SAC3C,CAAA;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
|
|
3
|
+
// Copyright (C) 2022 Tide Foundation Ltd
|
|
4
|
+
//
|
|
5
|
+
// This program is free software and is subject to the terms of
|
|
6
|
+
// the Tide Community Open Code License as published by the
|
|
7
|
+
// Tide Foundation Limited. You may modify it and redistribute
|
|
8
|
+
// it in accordance with and subject to the terms of that License.
|
|
9
|
+
// This program is distributed WITHOUT WARRANTY of any kind,
|
|
10
|
+
// including without any implied warranty of MERCHANTABILITY or
|
|
11
|
+
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
12
|
+
// See the Tide Community Open Code License for more details.
|
|
13
|
+
// You should have received a copy of the Tide Community Open
|
|
14
|
+
// Code License along with this program.
|
|
15
|
+
// If not, see https://tide.org/licenses_tcoc2-0-0-en
|
|
16
|
+
//
|
|
17
|
+
import NodeClient from "../../Clients/NodeClient.js";
|
|
18
|
+
import { DH, Interpolation } from "../../Cryptide/index.js";
|
|
19
|
+
import { AuthenticateBasicReply, CmkConvertReply, ConvertRememberedReply } from "../../Math/KeyAuthentication.js";
|
|
20
|
+
import { CurrentTime, Max, Threshold, WaitForNumberofORKs, sortORKs } from "../../Tools/Utils.js";
|
|
21
|
+
import EnclaveEntry from "../../Models/EnclaveEntry.js";
|
|
22
|
+
import { base64ToBytes, BigIntFromByteArray, Hex2Bytes, serializeBitArray, uint8ArrayToBitArray } from "../../Cryptide/Serialization.js";
|
|
23
|
+
import { GetPublic } from "../../Cryptide/Math.js";
|
|
24
|
+
import VoucherFlow from "../VoucherFlows/VoucherFlow.js";
|
|
25
|
+
import { Point } from "../../Cryptide/Ed25519.js";
|
|
26
|
+
import TideKey from "../../Cryptide/TideKey.js";
|
|
27
|
+
export default class dCMKPasswordlessFlow {
|
|
28
|
+
/**
|
|
29
|
+
* @param {string} sessID
|
|
30
|
+
* @param {EnclaveEntry} flowInitData
|
|
31
|
+
* @param {string} voucherURL
|
|
32
|
+
*/
|
|
33
|
+
constructor(sessID, flowInitData, voucherURL) {
|
|
34
|
+
this.sessID = sessID;
|
|
35
|
+
if (flowInitData.expired < BigInt(CurrentTime()))
|
|
36
|
+
throw Error("Please log in again.");
|
|
37
|
+
this.uid = flowInitData.userInfo.UserId;
|
|
38
|
+
this.selfRequesti = flowInitData.selfRequesti;
|
|
39
|
+
this.bitwise = flowInitData.orksBitwise;
|
|
40
|
+
this.orks = sortORKs(flowInitData.userInfo.OrkInfo).filter((_, i) => this.bitwise[i] == 1);
|
|
41
|
+
this.userPublic = flowInitData.userInfo.UserPublic;
|
|
42
|
+
this.sessKey = TideKey.FromSerializedComponent(flowInitData.sessKey);
|
|
43
|
+
this.voucherURL = voucherURL;
|
|
44
|
+
this.cState = undefined;
|
|
45
|
+
this.aState = undefined;
|
|
46
|
+
}
|
|
47
|
+
async ConvertRemembered() {
|
|
48
|
+
const clients = this.orks.map(ork => new NodeClient(ork.orkURL)); // create node clients
|
|
49
|
+
const voucherFlow = new VoucherFlow(this.orks.map(o => o.orkPaymentPublic), this.voucherURL, "signin");
|
|
50
|
+
const { vouchers, k } = await voucherFlow.GetVouchers();
|
|
51
|
+
const pre_ConvertAuthnResponses = clients.map((client, i) => client.ConvertRemembered(i, this.uid, this.selfRequesti[i], vouchers.toORK(i)));
|
|
52
|
+
// To save time
|
|
53
|
+
const prkECDHi = await DH.generateECDHi(this.orks.map(o => o.orkPublic), this.sessKey.get_private_component().rawBytes);
|
|
54
|
+
const { fulfilledResponses, bitwise } = await WaitForNumberofORKs(this.orks, pre_ConvertAuthnResponses, "CMK", Threshold, this.bitwise, prkECDHi);
|
|
55
|
+
this.cState = {
|
|
56
|
+
bitwise,
|
|
57
|
+
...await ConvertRememberedReply(fulfilledResponses, this.orks.map(o => BigInt(o.orkID)), this.userPublic, this.sessID, prkECDHi, Point.fromBytes(Hex2Bytes(vouchers.qPub).slice(-32)), // to translate between tide component and native object
|
|
58
|
+
BigIntFromByteArray(base64ToBytes(vouchers.UDeObf).slice(-32)), // to translate between tide component and native object
|
|
59
|
+
k.get_private_component().priv, this.sessKey.get_public_component())
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
VUID: this.cState.VUID
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @param {Point} gVRK If a null value is provided, no encryption is applied.
|
|
67
|
+
*/
|
|
68
|
+
async AuthenticateRemembered(gVRK) {
|
|
69
|
+
if (this.cState == undefined)
|
|
70
|
+
throw Error("Convert State is undefined");
|
|
71
|
+
const cmkClients = this.orks.map(ork => new NodeClient(ork.orkURL));
|
|
72
|
+
const pre_encSig = cmkClients.map((client, i) => client.AuthenticateRemembered(this.uid, this.cState.blurHCMKMul, serializeBitArray(this.cState.bitwise)));
|
|
73
|
+
const encSig = await Promise.all(pre_encSig);
|
|
74
|
+
return await AuthenticateBasicReply(this.cState.VUID, this.cState.prkECDHi, encSig, this.cState.gCMKAuth, this.cState.authToken, this.cState.r4, this.cState.gRMul, gVRK);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=dCMKPasswordlessFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dCMKPasswordlessFlow.js","sourceRoot":"","sources":["../../../../../../modules/tide-js/Flow/AuthenticationFlows/dCMKPasswordlessFlow.js"],"names":[],"mappings":"AAAA,GAAG;AACH,gEAAgE;AAChE,yCAAyC;AACzC,GAAG;AACH,gEAAgE;AAChE,4DAA4D;AAC5D,+DAA+D;AAC/D,kEAAkE;AAClE,6DAA6D;AAC7D,gEAAgE;AAChE,oCAAoC;AACpC,6DAA6D;AAC7D,8DAA8D;AAC9D,wCAAwC;AACxC,qDAAqD;AACrD,EAAE;AAEF,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,YAAY,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACzI,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC;;;;OAIG;IACH,YAAY,MAAM,EAAE,YAAY,EAAE,UAAU;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtF,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,sBAAsB;QAEvF,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACvG,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;QAExD,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7I,eAAe;QACf,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAExH,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAElJ,IAAI,CAAC,MAAM,GAAG;YACV,OAAO;YACP,GAAI,MAAM,sBAAsB,CAC5B,kBAAkB,EAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EACnC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,wDAAwD;YAC9G,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,wDAAwD;YACxH,CAAC,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAC9B,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CACtC;SACJ,CAAA;QACD,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SACzB,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,IAAI;QAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;YAAE,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAEnE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAC1E,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CACzC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,MAAM,sBAAsB,CAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,CACP,CAAC;IACN,CAAC;CACJ"}
|