@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,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
|
|
4
|
+
// Copyright (C) 2022 Tide Foundation Ltd
|
|
5
|
+
//
|
|
6
|
+
// This program is free software and is subject to the terms of
|
|
7
|
+
// the Tide Community Open Code License as published by the
|
|
8
|
+
// Tide Foundation Limited. You may modify it and redistribute
|
|
9
|
+
// it in accordance with and subject to the terms of that License.
|
|
10
|
+
// This program is distributed WITHOUT WARRANTY of any kind,
|
|
11
|
+
// including without any implied warranty of MERCHANTABILITY or
|
|
12
|
+
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
+
// See the Tide Community Open Code License for more details.
|
|
14
|
+
// You should have received a copy of the Tide Community Open
|
|
15
|
+
// Code License along with this program.
|
|
16
|
+
// If not, see https://tide.org/licenses_tcoc2-0-0-en
|
|
17
|
+
//
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
const NodeClient_js_1 = __importDefault(require("../Clients/NodeClient.js"));
|
|
23
|
+
const OrkInfo_js_1 = __importDefault(require("../Models/Infos/OrkInfo.js"));
|
|
24
|
+
const KeyGeneration_js_1 = require("../Math/KeyGeneration.js");
|
|
25
|
+
const Utils_js_1 = require("../Tools/Utils.js");
|
|
26
|
+
const Math_js_1 = require("../Cryptide/Math.js");
|
|
27
|
+
const Ed25519_js_1 = require("../Cryptide/Ed25519.js");
|
|
28
|
+
const Serialization_js_1 = require("../Cryptide/Serialization.js");
|
|
29
|
+
const index_js_1 = require("../Cryptide/index.js");
|
|
30
|
+
const VoucherFlow_js_1 = __importDefault(require("./VoucherFlows/VoucherFlow.js"));
|
|
31
|
+
const NetworkClient_js_1 = __importDefault(require("../Clients/NetworkClient.js"));
|
|
32
|
+
const SimulatorFlow_js_1 = __importDefault(require("./SimulatorFlow.js"));
|
|
33
|
+
const Ed25519Components_js_1 = require("../Cryptide/Components/Schemes/Ed25519/Ed25519Components.js");
|
|
34
|
+
class dKeyGenerationFlow {
|
|
35
|
+
/**
|
|
36
|
+
* @param {string} uid
|
|
37
|
+
* @param {string} gVRK
|
|
38
|
+
* @param {OrkInfo[]} orks
|
|
39
|
+
* @param {Uint8Array} sessKey
|
|
40
|
+
* @param {Point} gSessKeyPub
|
|
41
|
+
* @param {string} purpose
|
|
42
|
+
* @param {string} voucherURL
|
|
43
|
+
* @param {string[]} emails
|
|
44
|
+
* @param {(0|1)[]} bitwise
|
|
45
|
+
* @param {string[]} selfRequesti
|
|
46
|
+
* @param {Point} userPublic
|
|
47
|
+
* @param {number} expired
|
|
48
|
+
*/
|
|
49
|
+
constructor(uid, gVRK, orks, sessKey, gSessKeyPub, purpose, voucherURL, emails = null, bitwise = null, selfRequesti = [], userPublic = null, expired = null) {
|
|
50
|
+
if (expired != null)
|
|
51
|
+
if (expired < (0, Utils_js_1.CurrentTime)())
|
|
52
|
+
throw Error("Time has expired. Try again");
|
|
53
|
+
if (orks.length < Utils_js_1.Max)
|
|
54
|
+
throw Error("Not enough orks available to create an account");
|
|
55
|
+
this.uid = uid;
|
|
56
|
+
this.gVRK = Ed25519_js_1.Point.fromBase64(gVRK);
|
|
57
|
+
this.bitwise = bitwise == null ? null : bitwise;
|
|
58
|
+
this.orks = (0, Utils_js_1.sortORKs)(orks);
|
|
59
|
+
this.selfRequesti = selfRequesti;
|
|
60
|
+
this.userPublic = userPublic;
|
|
61
|
+
this.sessKey = sessKey;
|
|
62
|
+
this.gSessKeyPub = gSessKeyPub;
|
|
63
|
+
this.purpose = purpose;
|
|
64
|
+
this.voucherURL = voucherURL;
|
|
65
|
+
this.emails = emails;
|
|
66
|
+
this.getVouchersFunction = null;
|
|
67
|
+
this.savedOrkPublics = this.orks.map(o => o.orkPublic);
|
|
68
|
+
this.orksToWaitFor = purpose == "NEW" ? Utils_js_1.Max : Utils_js_1.Threshold;
|
|
69
|
+
}
|
|
70
|
+
static async ReserveUID(uid, voucherURL, gSessKeyPub) {
|
|
71
|
+
const simClient = new NetworkClient_js_1.default();
|
|
72
|
+
const availableOrks = (await simClient.FindReservers(uid));
|
|
73
|
+
const pre_activeOrks = SimulatorFlow_js_1.default.FilterInactiveOrks(availableOrks);
|
|
74
|
+
const reservers = availableOrks.slice(0, 5); // super unlikely all 5 orks are down
|
|
75
|
+
const voucherFlow = new VoucherFlow_js_1.default(reservers.map(o => o.orkPaymentPublic), voucherURL, "reserve");
|
|
76
|
+
const vouchers = (await voucherFlow.GetVouchers()).vouchers;
|
|
77
|
+
const reserveClients = reservers.map(r => new NodeClient_js_1.default(r.orkURL));
|
|
78
|
+
const pre_ReserveResponses = reserveClients.map((client, i) => client.ReserveUID(i, uid, 'SESSIONID', vouchers.toORK(i), gSessKeyPub));
|
|
79
|
+
const { fulfilledResponses } = await (0, Utils_js_1.WaitForNumberofORKs)(reservers, pre_ReserveResponses, "NEW", 1);
|
|
80
|
+
const lowestProximityresConf = fulfilledResponses.reduce((prev, curr) => (curr.proximity < prev.proximity ? curr : prev)); // get closest proximity
|
|
81
|
+
return {
|
|
82
|
+
reservationConfirmation: lowestProximityresConf.toString(),
|
|
83
|
+
activeOrks: (await pre_activeOrks)
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* @param {(request: string) => Promise<string> } getVouchersFunction
|
|
88
|
+
* @returns {dKeyGenerationFlow}
|
|
89
|
+
*/
|
|
90
|
+
setVoucherRetrievalFunction(getVouchersFunction) {
|
|
91
|
+
this.getVouchersFunction = getVouchersFunction;
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @param {number} numKeys
|
|
96
|
+
* @param {Point[]} gMultipliers
|
|
97
|
+
* @param {string} reservationAuth
|
|
98
|
+
*/
|
|
99
|
+
async GenShard(numKeys, gMultipliers, reservationAuth = null) {
|
|
100
|
+
const clients = this.orks.map(ork => new NodeClient_js_1.default(ork.orkURL)); // create node clients
|
|
101
|
+
let vouchers;
|
|
102
|
+
if (this.purpose == "NEW") {
|
|
103
|
+
if (reservationAuth == null)
|
|
104
|
+
throw Error("reservationAuth must not be null for new keys");
|
|
105
|
+
const voucherFlow = new VoucherFlow_js_1.default(this.orks.map(o => o.orkPaymentPublic), this.voucherURL, "signup");
|
|
106
|
+
vouchers = (await voucherFlow.GetVouchers()).vouchers;
|
|
107
|
+
}
|
|
108
|
+
let blurs = [];
|
|
109
|
+
const gBluredMultipliers = gMultipliers.map(gMul => {
|
|
110
|
+
if (gMul != null) {
|
|
111
|
+
const b = (0, Math_js_1.RandomBigInt)();
|
|
112
|
+
blurs.push(b);
|
|
113
|
+
return gMul.mul(b);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
blurs.push(null);
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const ids = this.orks.map(ork => ork.orkID);
|
|
121
|
+
let count = 0;
|
|
122
|
+
const pre_GenShardResponses = clients.map((client, i) => {
|
|
123
|
+
let auth = "";
|
|
124
|
+
if (this.bitwise != null) {
|
|
125
|
+
if (this.bitwise[i] == true) {
|
|
126
|
+
auth = this.selfRequesti[count];
|
|
127
|
+
count++;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (this.purpose == "NEW")
|
|
131
|
+
return client.GenShard(i, this.uid, vouchers.toORK(i), reservationAuth, this.purpose, ids, numKeys, gBluredMultipliers, this.gSessKeyPub);
|
|
132
|
+
else
|
|
133
|
+
return client.UpdateShard(i, this.uid, this.purpose, gBluredMultipliers, auth, this.gSessKeyPub, auth == "");
|
|
134
|
+
});
|
|
135
|
+
// create prkECDHi here to save time
|
|
136
|
+
const prkECHi = await index_js_1.DH.generateECDHi(this.orks.map(o => o.orkPublic), this.sessKey);
|
|
137
|
+
const { fulfilledResponses, bitwise } = await (0, Utils_js_1.WaitForNumberofORKs)(this.orks, pre_GenShardResponses, this.purpose, this.orksToWaitFor, null, prkECHi, null, this.purpose == "NEW" ? null : (result) => {
|
|
138
|
+
if (result.tag == true)
|
|
139
|
+
return false; // tag == "", inactive ork, don't add to promises to wait for
|
|
140
|
+
else
|
|
141
|
+
return true; // active ork
|
|
142
|
+
});
|
|
143
|
+
this.gState = {
|
|
144
|
+
bitwise: bitwise,
|
|
145
|
+
keyUse: ["", ""], // not VVK, doesn't matter
|
|
146
|
+
prkECHi,
|
|
147
|
+
...await (0, KeyGeneration_js_1.ProcessShards)(fulfilledResponses, bitwise, this.sessKey)
|
|
148
|
+
};
|
|
149
|
+
const UnblurredGMultipled = this.gState.gMultiplied.map((gMultiplied, i) => {
|
|
150
|
+
if (gMultiplied != null) {
|
|
151
|
+
return gMultiplied.public.divide(blurs[i]);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
return { gMultiplied: UnblurredGMultipled, gK: this.gState.gK };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @param {string} auth
|
|
161
|
+
* @param {string} authSig
|
|
162
|
+
*/
|
|
163
|
+
async GenVVKShard(auth, authSig) {
|
|
164
|
+
const clients = this.orks.map(ork => new NodeClient_js_1.default(ork.orkURL)); // create node clients
|
|
165
|
+
const { vouchers } = await (new VoucherFlow_js_1.default(this.orks.map(o => o.orkPaymentPublic), this.voucherURL, "vendorcreation").GetVouchers(this.getVouchersFunction));
|
|
166
|
+
const ids = this.orks.map(ork => ork.orkID);
|
|
167
|
+
const pre_GenShardResponses = clients.map((client, i) => client.GenVVKShard(this.uid, this.gVRK, auth, authSig, ids, vouchers.toORK(i)));
|
|
168
|
+
// create prkECDHi here to save time
|
|
169
|
+
const prkECHi = await index_js_1.DH.generateECDHi(this.orks.map(o => o.orkPublic), this.sessKey);
|
|
170
|
+
const fulfilledResponses = await Promise.all(pre_GenShardResponses);
|
|
171
|
+
const bitwise = new Array(Utils_js_1.Max).fill(1); // all must respond
|
|
172
|
+
this.gState = {
|
|
173
|
+
bitwise: bitwise,
|
|
174
|
+
prkECHi,
|
|
175
|
+
...await (0, KeyGeneration_js_1.ProcessShards)(fulfilledResponses, bitwise, this.sessKey, true)
|
|
176
|
+
};
|
|
177
|
+
return { gK: this.gState.gK };
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* @param {string} authorizer
|
|
181
|
+
* @param {string} keyType
|
|
182
|
+
*/
|
|
183
|
+
async SetShard(authorizer, keyType) {
|
|
184
|
+
if (this.gState == undefined)
|
|
185
|
+
throw Error("GState is not defined");
|
|
186
|
+
const clients = this.orks.map(ork => new NodeClient_js_1.default(ork.orkURL)); // create node clients
|
|
187
|
+
const randomisedEmails = (0, Utils_js_1.randomiseEmails)(this.emails);
|
|
188
|
+
// No pretty place to put this line
|
|
189
|
+
const pre_encAuthi = this.gState.prkECHi.map(async (dh, i) => await index_js_1.AES.encryptData(JSON.stringify({
|
|
190
|
+
'GR': this.gState.gR.toBase64(),
|
|
191
|
+
'Auth': authorizer,
|
|
192
|
+
'Email': randomisedEmails[i],
|
|
193
|
+
'InitGVRK_GR': keyType == "VVK" ? this.gState.VRK_gR.map(gr => gr.toBase64()) : [],
|
|
194
|
+
}), dh));
|
|
195
|
+
const encAuthi = await Promise.all(pre_encAuthi);
|
|
196
|
+
const pre_SendShardResponses = clients.map((client, i) => client.SetShard(this.uid, this.gState.sortedShares[i], encAuthi[i], this.gSessKeyPub, keyType));
|
|
197
|
+
const SendShardResponses = await Promise.all(pre_SendShardResponses);
|
|
198
|
+
this.sState = await (0, KeyGeneration_js_1.CommitShardPrep)(this.uid, SendShardResponses, this.savedOrkPublics, this.gState.timestamp, this.gState.gR, this.userPublic == null ? this.gState.gK : this.userPublic, this.bitwise == null ? this.gState.bitwise : (0, Serialization_js_1.bitArrayAND)(this.gState.bitwise, this.bitwise), // given a list of orks that responded to genshard, and a list that were requested to be active, determine the particpating orks
|
|
199
|
+
this.purpose, this.sessKey, this.gSessKeyPub, keyType == "VVK" ? this.gState.VRK_gR : null, keyType == "VVK" ? authorizer : null);
|
|
200
|
+
this.gState = undefined;
|
|
201
|
+
const resp = {
|
|
202
|
+
"VRK_SIGNATURE_TO_STORE": this.sState.vrkSignatureToStore,
|
|
203
|
+
"M": (0, Serialization_js_1.bytesToBase64)(this.sState.M),
|
|
204
|
+
"FIRST_ADMIN": this.sState.firstAdmin
|
|
205
|
+
};
|
|
206
|
+
return resp;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
*/
|
|
210
|
+
async Commit() {
|
|
211
|
+
if (this.sState == undefined)
|
|
212
|
+
throw Error("SState is undefined");
|
|
213
|
+
const clients = this.orks.map(ork => new NodeClient_js_1.default(ork.orkURL)); // create node clients
|
|
214
|
+
const pre_CommitResponses = clients.map(client => client.Commit(this.uid, this.sState.S, this.sState.gSessKeyPub));
|
|
215
|
+
await Promise.all(pre_CommitResponses);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.default = dKeyGenerationFlow;
|
|
219
|
+
//# sourceMappingURL=dKeyGenerationFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dKeyGenerationFlow.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Flow/dKeyGenerationFlow.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const SerializedField_js_1 = __importDefault(require("../Models/SerializedField.js"));
|
|
7
|
+
const AES_js_1 = require("../Cryptide/Encryption/AES.js");
|
|
8
|
+
const Hash_js_1 = require("../Cryptide/Hashing/Hash.js");
|
|
9
|
+
const Serialization_js_1 = require("../Cryptide/Serialization.js");
|
|
10
|
+
const Ed25519_js_1 = require("../Cryptide/Ed25519.js");
|
|
11
|
+
class DecryptRequest {
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param {Uint8Array[]} serializedFields
|
|
15
|
+
* @param {Uint8Array[]} ECDHi
|
|
16
|
+
*/
|
|
17
|
+
static async generateRequests(serializedFields, ECDHi) {
|
|
18
|
+
const deserializedFields = serializedFields.map(field => SerializedField_js_1.default.deserialize(field));
|
|
19
|
+
const pre_encFieldChks = deserializedFields.map(df => (0, Hash_js_1.SHA256_Digest)(df.data));
|
|
20
|
+
const encFieldChks = await Promise.all(pre_encFieldChks);
|
|
21
|
+
const toEncrypt = {
|
|
22
|
+
Timestamps: deserializedFields.map(df => df.timestamp), // using first as theyre all the same
|
|
23
|
+
EncFieldChks: encFieldChks.map(e => (0, Serialization_js_1.bytesToBase64)(e)),
|
|
24
|
+
C1s: deserializedFields.map(df => df.key.toBase64()),
|
|
25
|
+
Tags: deserializedFields.map(df => df.tag),
|
|
26
|
+
Sigs: deserializedFields.map(df => (0, Serialization_js_1.bytesToBase64)(df.sig))
|
|
27
|
+
};
|
|
28
|
+
const pre_encRequests = ECDHi.map(ECDH => (0, AES_js_1.encryptData)(JSON.stringify(toEncrypt), ECDH));
|
|
29
|
+
const encRequests = await Promise.all(pre_encRequests);
|
|
30
|
+
return {
|
|
31
|
+
encRequests,
|
|
32
|
+
encryptedFields: deserializedFields.map(df => df.data),
|
|
33
|
+
tags: toEncrypt.Tags // i don't want to use map again here
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @param {Uint8Array[]} encryptedFields
|
|
38
|
+
* @param {Uint8Array[]} ECDHi
|
|
39
|
+
* @param {string[]} encryptedFieldKeys
|
|
40
|
+
* @param {bignt[]} lis
|
|
41
|
+
*/
|
|
42
|
+
static async decryptFields(encryptedFields, ECDHi, encryptedFieldKeys, lis) {
|
|
43
|
+
const pre_decryptedData = encryptedFieldKeys.map(async (encK, i) => JSON.parse(await (0, AES_js_1.decryptData)(encK, ECDHi[i])));
|
|
44
|
+
const decryptedData = await Promise.all(pre_decryptedData);
|
|
45
|
+
const fieldKeys = encryptedFields.map((_, i) => decryptedData.reduce((sum, next, j) => sum.add(Ed25519_js_1.Point.fromBase64(next.AppliedFieldKeys[i]).mul(lis[j])), Ed25519_js_1.Point.ZERO)); // main loop over amount of encrypted datas
|
|
46
|
+
const pre_decryptedFields = fieldKeys.map(async (fk, i) => (0, AES_js_1.decryptDataRawOutput)(encryptedFields[i], await (0, Hash_js_1.SHA256_Digest)(fk.toRawBytes())));
|
|
47
|
+
const decryptedFields = await Promise.all(pre_decryptedFields);
|
|
48
|
+
return decryptedFields;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.default = DecryptRequest;
|
|
52
|
+
//# sourceMappingURL=DecryptRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DecryptRequest.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Math/DecryptRequest.js"],"names":[],"mappings":";;;;;AAAA,sFAA2D;AAC3D,0DAA+F;AAC/F,yDAA4D;AAC5D,mEAA6D;AAC7D,uDAA+C;AAE/C,MAAqB,cAAc;IAC/B;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK;QACjD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,4BAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7F,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,uBAAa,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG;YACd,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,qCAAqC;YAC7F,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,gCAAa,EAAC,CAAC,CAAC,CAAC;YACrD,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACpD,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;YAC1C,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,gCAAa,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAC5D,CAAA;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACvD,OAAO;YACH,WAAW;YACX,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACtD,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,qCAAqC;SAC7D,CAAA;IACL,CAAC;IACD;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG;QACtE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,oBAAW,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE3D,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAK,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,2CAA2C;QAEjN,MAAM,mBAAmB,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,6BAAoB,EAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,IAAA,uBAAa,EAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3I,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC/D,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ;AA3CD,iCA2CC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const Hash_js_1 = require("../Cryptide/Hashing/Hash.js");
|
|
7
|
+
const Serialization_js_1 = require("../Cryptide/Serialization.js");
|
|
8
|
+
const Math_js_1 = require("../Cryptide/Math.js");
|
|
9
|
+
const index_js_1 = require("../Cryptide/index.js");
|
|
10
|
+
const AES_js_1 = require("../Cryptide/Encryption/AES.js");
|
|
11
|
+
const Datum_js_1 = __importDefault(require("../Models/Datum.js"));
|
|
12
|
+
const SerializedField_js_1 = __importDefault(require("../Models/SerializedField.js"));
|
|
13
|
+
const Ed25519_js_1 = require("../Cryptide/Ed25519.js");
|
|
14
|
+
class EncryptRequest {
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param {Point} gCVK
|
|
18
|
+
* @param {Uint8Array} fieldDatum
|
|
19
|
+
* @param {number} timestamp
|
|
20
|
+
*/
|
|
21
|
+
static async generatePartialRequest(gCVK, fieldDatum, timestamp) {
|
|
22
|
+
const ephKey = (0, Math_js_1.RandomBigInt)(); // not to be stored
|
|
23
|
+
const fieldKey = await (0, Hash_js_1.SHA256_Digest)((gCVK.mul(ephKey).toRawBytes())); // not to be stored
|
|
24
|
+
const encField = await (0, AES_js_1.encryptDataRawOutput)(fieldDatum, fieldKey);
|
|
25
|
+
const data = {
|
|
26
|
+
C1: Ed25519_js_1.Point.BASE.mul(ephKey),
|
|
27
|
+
EncField: encField,
|
|
28
|
+
EncFieldChk: await (0, Hash_js_1.SHA256_Digest)(encField),
|
|
29
|
+
timestamp: timestamp
|
|
30
|
+
};
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @param {{
|
|
35
|
+
C1: Point;
|
|
36
|
+
EncField: Uint8Array;
|
|
37
|
+
EncFieldChk: Uint8Array;
|
|
38
|
+
timestamp: number;
|
|
39
|
+
}[]} partialRequests
|
|
40
|
+
* @param {bigint} li
|
|
41
|
+
* @param {Datum[]} datums
|
|
42
|
+
* @param {Point[]} gCVKRi
|
|
43
|
+
* @param {Uint8Array} ECDHi
|
|
44
|
+
*/
|
|
45
|
+
static async generateEncryptedRequest(partialRequests, li, datums, gCVKRi, ECDHi) {
|
|
46
|
+
const toEncrypt = {
|
|
47
|
+
Timestamp: partialRequests[0].timestamp, // using first as theyre all the same
|
|
48
|
+
EncFieldChks: partialRequests.map(p => (0, Serialization_js_1.bytesToBase64)(p.EncFieldChk)),
|
|
49
|
+
C1s: partialRequests.map(p => p.C1.toBase64()),
|
|
50
|
+
Tags: datums.map(d => d.tag),
|
|
51
|
+
GCVKRi: gCVKRi.map(gcvkr => gcvkr.toBase64()),
|
|
52
|
+
Li: li.toString()
|
|
53
|
+
};
|
|
54
|
+
const encrypted = await (0, AES_js_1.encryptData)(JSON.stringify(toEncrypt), ECDHi);
|
|
55
|
+
return encrypted;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Will decrypt encrypted sigs, validate those sigs, and generate the serialized fields for the vendor to store
|
|
59
|
+
* @param {string[]} encryptedS
|
|
60
|
+
* @param {{
|
|
61
|
+
EncFields: Uint8Array[];
|
|
62
|
+
EncFieldChks: Uint8Array[];
|
|
63
|
+
C1s: Point[];
|
|
64
|
+
Tags: number[];
|
|
65
|
+
GCVKRi: Point[];
|
|
66
|
+
Timestamp: number;
|
|
67
|
+
}} plainRequest
|
|
68
|
+
* @param {bigint[]} lis
|
|
69
|
+
* @param {Uint8Array[]} ECDHi
|
|
70
|
+
* @param {Point} gCVK
|
|
71
|
+
*/
|
|
72
|
+
static async generateSerializedFields(encryptedS, plainRequest, lis, ECDHi, gCVK) {
|
|
73
|
+
const pre_decryptedData = encryptedS.map(async (encS, i) => JSON.parse(await (0, AES_js_1.decryptData)(encS, ECDHi[i])));
|
|
74
|
+
const decryptedData = await Promise.all(pre_decryptedData);
|
|
75
|
+
const CVKSi = plainRequest.C1s.map((_, i) => (0, Math_js_1.mod)(decryptedData.reduce((sum, next, j) => sum + (0, Math_js_1.mod)(BigInt(next.Si[i]) * lis[j]), BigInt(0))));
|
|
76
|
+
// validate signatures
|
|
77
|
+
for (let i = 0; i < plainRequest.C1s.length; i++) {
|
|
78
|
+
const M = await (0, Hash_js_1.SHA256_Digest)((0, Serialization_js_1.ConcatUint8Arrays)([
|
|
79
|
+
plainRequest.EncFieldChks[i],
|
|
80
|
+
plainRequest.C1s[i].toRawBytes(),
|
|
81
|
+
(0, Serialization_js_1.numberToUint8Array)(plainRequest.Tags[i], 8),
|
|
82
|
+
(0, Serialization_js_1.numberToUint8Array)(plainRequest.Timestamp, 8)
|
|
83
|
+
]));
|
|
84
|
+
const valid = await index_js_1.EdDSA.verifyRaw(CVKSi[i], plainRequest.GCVKRi[i], gCVK, M);
|
|
85
|
+
if (valid == false) {
|
|
86
|
+
throw Error("Generalize Serialized Fields: Not all fields passed verification");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
;
|
|
90
|
+
// Create Serialized Fields as neat little byte arrays
|
|
91
|
+
const serializedFields = CVKSi.map((CVKS, i) => SerializedField_js_1.default.create(plainRequest.EncFields[i], plainRequest.C1s[i], plainRequest.Tags[i], plainRequest.Timestamp, plainRequest.GCVKRi[i], CVKS));
|
|
92
|
+
return serializedFields;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.default = EncryptRequest;
|
|
96
|
+
//# sourceMappingURL=EncryptRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EncryptRequest.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Math/EncryptRequest.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Tide Protocol - Infrastructure for a TRUE Zero-Trust paradigm
|
|
4
|
+
// Copyright (C) 2022 Tide Foundation Ltd
|
|
5
|
+
//
|
|
6
|
+
// This program is free software and is subject to the terms of
|
|
7
|
+
// the Tide Community Open Code License as published by the
|
|
8
|
+
// Tide Foundation Limited. You may modify it and redistribute
|
|
9
|
+
// it in accordance with and subject to the terms of that License.
|
|
10
|
+
// This program is distributed WITHOUT WARRANTY of any kind,
|
|
11
|
+
// including without any implied warranty of MERCHANTABILITY or
|
|
12
|
+
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
13
|
+
// See the Tide Community Open Code License for more details.
|
|
14
|
+
// You should have received a copy of the Tide Community Open
|
|
15
|
+
// Code License along with this program.
|
|
16
|
+
// If not, see https://tide.org/licenses_tcoc2-0-0-en
|
|
17
|
+
//
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.GetDecryptedChallenge = GetDecryptedChallenge;
|
|
23
|
+
exports.PrismConvertReply = PrismConvertReply;
|
|
24
|
+
exports.CmkConvertReply = CmkConvertReply;
|
|
25
|
+
exports.ConvertRememberedReply = ConvertRememberedReply;
|
|
26
|
+
exports.AuthenticateBasicReply = AuthenticateBasicReply;
|
|
27
|
+
exports.AuthenticateConsentReply = AuthenticateConsentReply;
|
|
28
|
+
const Hash_js_1 = require("../Cryptide/Hashing/Hash.js");
|
|
29
|
+
const Utils_js_1 = require("../Tools/Utils.js");
|
|
30
|
+
const Serialization_js_1 = require("../Cryptide/Serialization.js");
|
|
31
|
+
const Math_js_1 = require("../Cryptide/Math.js");
|
|
32
|
+
const PrismConvertResponse_js_1 = __importDefault(require("../Models/Responses/KeyAuth/Convert/PrismConvertResponse.js"));
|
|
33
|
+
const index_js_1 = require("../Cryptide/index.js");
|
|
34
|
+
const DecryptedCMKConvertResponse_js_1 = __importDefault(require("../Models/Responses/KeyAuth/Convert/DecryptedCMKConvertResponse.js"));
|
|
35
|
+
const CMKConvertResponse_js_1 = __importDefault(require("../Models/Responses/KeyAuth/Convert/CMKConvertResponse.js"));
|
|
36
|
+
const DecryptedPrismConvertResponse_js_1 = __importDefault(require("../Models/Responses/KeyAuth/Convert/DecryptedPrismConvertResponse.js"));
|
|
37
|
+
const AuthRequest_js_1 = __importDefault(require("../Models/AuthRequest.js"));
|
|
38
|
+
const BlindSig_js_1 = require("../Cryptide/Signing/BlindSig.js");
|
|
39
|
+
const AuthenticateResponse_js_1 = __importDefault(require("../Models/Responses/KeyAuth/Authenticate/AuthenticateResponse.js"));
|
|
40
|
+
const DecryptedConvertRememberedResponse_js_1 = __importDefault(require("../Models/Responses/KeyAuth/Convert/DecryptedConvertRememberedResponse.js"));
|
|
41
|
+
const ConvertRememberedResponse_js_1 = __importDefault(require("../Models/Responses/KeyAuth/Convert/ConvertRememberedResponse.js"));
|
|
42
|
+
const VendorData_js_1 = __importDefault(require("../Models/VendorData.js"));
|
|
43
|
+
const Ed25519_js_1 = require("../Cryptide/Ed25519.js");
|
|
44
|
+
const Ed25519Components_js_1 = require("../Cryptide/Components/Schemes/Ed25519/Ed25519Components.js");
|
|
45
|
+
/**
|
|
46
|
+
* For use in change password flow
|
|
47
|
+
* @param {PrismConvertResponse[]} convertResponses
|
|
48
|
+
* @param {bigint[]} lis
|
|
49
|
+
* @param {Point[]} mgORKi
|
|
50
|
+
* @param {bigint} r1
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
async function GetDecryptedChallenge(convertResponses, lis, mgORKi, r1) {
|
|
54
|
+
const gPassPRISM = convertResponses.reduce((sum, next, i) => sum.add(next.GBlurPassPrismi.mul(lis[i])), Ed25519_js_1.Point.ZERO).mul((0, Math_js_1.mod_inv)(r1));
|
|
55
|
+
const gPassPRISM_hashed = (0, Math_js_1.mod)((0, Serialization_js_1.BigIntFromByteArray)(await (0, Hash_js_1.SHA256_Digest)(gPassPRISM.toRawBytes())));
|
|
56
|
+
const pre_prismAuthi = mgORKi.map(async (ork) => await (0, Hash_js_1.SHA256_Digest)(ork.mul(gPassPRISM_hashed).toRawBytes())); // create a prismAuthi for each ork
|
|
57
|
+
const prismAuthis = await Promise.all(pre_prismAuthi); // wait for all async functions to finish
|
|
58
|
+
let decryptedChallenges;
|
|
59
|
+
try {
|
|
60
|
+
const pre_decData = convertResponses.map(async (resp, i) => await index_js_1.AES.decryptData(resp.EncChallengei, prismAuthis[i]));
|
|
61
|
+
decryptedChallenges = await Promise.all(pre_decData);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
throw Error("enclave.invalidAccount");
|
|
65
|
+
}
|
|
66
|
+
return decryptedChallenges;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @param {PrismConvertResponse[]} convertResponses
|
|
70
|
+
* @param {bigint[]} ids
|
|
71
|
+
* @param {Point[]} mgORKi
|
|
72
|
+
* @param {bigint} r1
|
|
73
|
+
* @param {Uint8Array[]} prkECDHi
|
|
74
|
+
*/
|
|
75
|
+
async function PrismConvertReply(convertResponses, ids, mgORKi, r1, prkECDHi) {
|
|
76
|
+
// ∑ gPass ⋅ r1 ⋅ PRISMi ⋅ li / r1
|
|
77
|
+
const gPassPRISM = index_js_1.Interpolation.AggregatePointsWithIds(convertResponses.map(resp => resp.GBlurPassPrismi), ids).divide(r1);
|
|
78
|
+
const gPassPRISM_hashed = await gPassPRISM.hash();
|
|
79
|
+
const prismAuthis = await index_js_1.DH.generateECDHi(mgORKi, gPassPRISM_hashed);
|
|
80
|
+
let decPrismRequesti;
|
|
81
|
+
try {
|
|
82
|
+
const pre_decPrismRequesti = convertResponses.map(async (chall, i) => DecryptedPrismConvertResponse_js_1.default.from(await index_js_1.AES.decryptData(chall.EncRequesti, prismAuthis[i])));
|
|
83
|
+
decPrismRequesti = await Promise.all(pre_decPrismRequesti);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
throw Error("enclave.invalidAccount");
|
|
87
|
+
}
|
|
88
|
+
const timestampi = (0, Math_js_1.median)(decPrismRequesti.map(resp => resp.Timestampi));
|
|
89
|
+
const pre_selfRequesti = decPrismRequesti.map(async (req, i) => await index_js_1.AES.decryptData(req.PRKRequesti, prkECDHi[i]));
|
|
90
|
+
const selfRequesti = await Promise.all(pre_selfRequesti);
|
|
91
|
+
// Calculate when the stored token expires
|
|
92
|
+
const expired = (0, Utils_js_1.CurrentTime)() + (0, Math_js_1.Min)(decPrismRequesti.map(d => d.Exti));
|
|
93
|
+
return { prismAuthis, timestampi, selfRequesti, expired };
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* @param {CMKConvertResponse[]} convertResponses
|
|
97
|
+
* @param {bigint[]} ids
|
|
98
|
+
* @param {Uint8Array[]} prismAuthis
|
|
99
|
+
* @param {Point} gCMK
|
|
100
|
+
* @param {bigint} timestampi
|
|
101
|
+
* @param {string} sessID
|
|
102
|
+
* @param {string} purpose
|
|
103
|
+
* @param {Point} qPub
|
|
104
|
+
* @param {bigint} uDeObf
|
|
105
|
+
* @param {bigint} blurerKPriv
|
|
106
|
+
* @param {Ed25519PublicComponent} gSessKeyPub
|
|
107
|
+
*/
|
|
108
|
+
async function CmkConvertReply(convertResponses, ids, prismAuthis, gCMK, timestampi, sessID, purpose, qPub, uDeObf, blurerKPriv, gSessKeyPub) {
|
|
109
|
+
let decData;
|
|
110
|
+
try {
|
|
111
|
+
const pre_decData = convertResponses.map(async (resp, i) => DecryptedCMKConvertResponse_js_1.default.from(await index_js_1.AES.decryptData(resp.EncChallengei, prismAuthis[i])));
|
|
112
|
+
decData = await Promise.all(pre_decData);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
throw Error("enclave.invalidAccount");
|
|
116
|
+
}
|
|
117
|
+
const userPRISM = index_js_1.Interpolation.AggregatePointsWithIds(decData.map(d => d.UserPRISMi), ids);
|
|
118
|
+
const userPRISMdec = userPRISM.mul((0, Math_js_1.mod)((0, Serialization_js_1.BigIntFromByteArray)(await index_js_1.DH.computeSharedKey(qPub, blurerKPriv))));
|
|
119
|
+
const gUserCMK = userPRISMdec.divide(uDeObf);
|
|
120
|
+
const gUserCMK_Hash = await index_js_1.Hash.SHA512_Digest(gUserCMK.toRawBytes());
|
|
121
|
+
const CMKMul = (0, Math_js_1.mod)((0, Serialization_js_1.BigIntFromByteArray)(gUserCMK_Hash.slice(0, 32)));
|
|
122
|
+
const VUID = (0, Serialization_js_1.Bytes2Hex)(gUserCMK_Hash.slice(-32));
|
|
123
|
+
const gCMKAuth = gCMK.mul(CMKMul);
|
|
124
|
+
const gCMKR = index_js_1.Interpolation.AggregatePoints(convertResponses.map(resp => resp.GCMKRi));
|
|
125
|
+
const authToken = AuthRequest_js_1.default.new(VUID, purpose, gSessKeyPub.Serialize().ToString(), timestampi + (0, Utils_js_1.randBetween)(30, 90), sessID);
|
|
126
|
+
const { blurHCMKMul, blur, gRMul } = await (0, BlindSig_js_1.genBlindMessage)(gCMKR, gCMKAuth, authToken.toUint8Array(), CMKMul);
|
|
127
|
+
return { VUID: VUID, blurHCMKMul, r4: blur, gCMKAuth, authToken, gRMul };
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* @param {ConvertRememberedResponse[]} responses
|
|
131
|
+
* @param {bigint[]} mIdORKi
|
|
132
|
+
* @param {Point} gCMK
|
|
133
|
+
* @param {string} sessID
|
|
134
|
+
* @param {Uint8Array[]} prkECDHi
|
|
135
|
+
* @param {Point} qPub
|
|
136
|
+
* @param {bigint} uDeObf
|
|
137
|
+
* @param {bigint} blurerKPriv
|
|
138
|
+
* @param {Ed25519PublicComponent} gSessKeyPub
|
|
139
|
+
*/
|
|
140
|
+
async function ConvertRememberedReply(responses, mIdORKi, gCMK, sessID, prkECDHi, qPub, uDeObf, blurerKPriv, gSessKeyPub) {
|
|
141
|
+
const pre_decryptedResonses = responses.map((async (resp, i) => DecryptedConvertRememberedResponse_js_1.default.from(await index_js_1.AES.decryptData(resp.EncRequesti, prkECDHi[i]))));
|
|
142
|
+
const decryptedResponses = await Promise.all(pre_decryptedResonses);
|
|
143
|
+
const timestamp = index_js_1.Math.median(decryptedResponses.map(d => d.timestampi));
|
|
144
|
+
const userPRISM = index_js_1.Interpolation.AggregatePointsWithIds(decryptedResponses.map(d => d.UserPRISMi), mIdORKi);
|
|
145
|
+
const userPRISMdec = userPRISM.mul((0, Math_js_1.mod)((0, Serialization_js_1.BigIntFromByteArray)(await index_js_1.DH.computeSharedKey(qPub, blurerKPriv))));
|
|
146
|
+
const gUserCMK = userPRISMdec.divide(uDeObf);
|
|
147
|
+
const gUserCMK_Hash = await index_js_1.Hash.SHA512_Digest(gUserCMK.toRawBytes());
|
|
148
|
+
const CMKMul = (0, Math_js_1.mod)((0, Serialization_js_1.BigIntFromByteArray)(gUserCMK_Hash.slice(0, 32)));
|
|
149
|
+
const VUID = (0, Serialization_js_1.Bytes2Hex)(gUserCMK_Hash.slice(-32));
|
|
150
|
+
const gCMKAuth = gCMK.mul(CMKMul);
|
|
151
|
+
const gCMKR = index_js_1.Interpolation.AggregatePoints(responses.map(resp => resp.GCMKRi));
|
|
152
|
+
const authToken = AuthRequest_js_1.default.new(VUID, "auth", gSessKeyPub.Serialize().ToString(), timestamp + (0, Utils_js_1.randBetween)(30, 90), sessID);
|
|
153
|
+
const { blurHCMKMul, blur: r4, gRMul } = await (0, BlindSig_js_1.genBlindMessage)(gCMKR, gCMKAuth, authToken.toUint8Array(), CMKMul);
|
|
154
|
+
return {
|
|
155
|
+
VUID,
|
|
156
|
+
gCMKAuth,
|
|
157
|
+
blurHCMKMul,
|
|
158
|
+
r4,
|
|
159
|
+
gRMul,
|
|
160
|
+
authToken,
|
|
161
|
+
prkECDHi
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
*
|
|
166
|
+
* @param {string} vuid
|
|
167
|
+
* @param {Uint8Array[]} prkECDHi
|
|
168
|
+
* @param {string[]} encSigi
|
|
169
|
+
* @param {Point} gCMKAuth
|
|
170
|
+
* @param {AuthRequest} authToken
|
|
171
|
+
* @param {bigint} r4
|
|
172
|
+
* @param {Point} gRMul
|
|
173
|
+
* @param {Point} gVRK
|
|
174
|
+
*/
|
|
175
|
+
async function AuthenticateBasicReply(vuid, prkECDHi, encSigi, gCMKAuth, authToken, r4, gRMul, gVRK) {
|
|
176
|
+
const pre_authResp = encSigi.map(async (enc, i) => AuthenticateResponse_js_1.default.from(await index_js_1.AES.decryptData(enc, prkECDHi[i])));
|
|
177
|
+
const authResp = await Promise.all(pre_authResp);
|
|
178
|
+
const blindS = (0, Math_js_1.mod)(authResp.reduce((sum, next) => sum + next.Si, BigInt(0)));
|
|
179
|
+
const sig = await (0, BlindSig_js_1.unblindSignature)(blindS, r4);
|
|
180
|
+
const blindSigValid = await (0, BlindSig_js_1.verifyBlindSignature)(sig, gRMul, gCMKAuth, authToken.toUint8Array());
|
|
181
|
+
if (!blindSigValid)
|
|
182
|
+
throw Error("Blind Signature Failed");
|
|
183
|
+
const blindSig = (0, Serialization_js_1.bytesToBase64)((0, BlindSig_js_1.serializeBlindSig)(sig, gRMul));
|
|
184
|
+
if (gVRK == null) {
|
|
185
|
+
const vendorData = new VendorData_js_1.default(vuid, gCMKAuth, blindSig, authToken).toString();
|
|
186
|
+
return vendorData;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
const VendorEncryptedData = await index_js_1.ElGamal.encryptData((0, Serialization_js_1.StringToUint8Array)(new VendorData_js_1.default(vuid, gCMKAuth, blindSig, authToken).toString()), gVRK);
|
|
190
|
+
return VendorEncryptedData;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
*
|
|
195
|
+
* @param {string} vuid
|
|
196
|
+
* @param {Uint8Array[]} prkECDHi
|
|
197
|
+
* @param {string[]} encSigi
|
|
198
|
+
* @param {Point} gCMKAuth
|
|
199
|
+
* @param {AuthRequest} authToken
|
|
200
|
+
* @param {bigint} r4
|
|
201
|
+
* @param {Point} gRMul
|
|
202
|
+
* @param {Point} gVRK
|
|
203
|
+
* @param {bigint} sessKey
|
|
204
|
+
* @param {string} consentToSign
|
|
205
|
+
*/
|
|
206
|
+
async function AuthenticateConsentReply(vuid, prkECDHi, encSigi, gCMKAuth, authToken, r4, gRMul, gVRK, sessKey, consentToSign) {
|
|
207
|
+
const pre_authResp = encSigi.map(async (enc, i) => AuthenticateResponse_js_1.default.from(await index_js_1.AES.decryptData(enc, prkECDHi[i])));
|
|
208
|
+
const authResp = await Promise.all(pre_authResp);
|
|
209
|
+
const blindS = (0, Math_js_1.mod)(authResp.reduce((sum, next) => sum + next.Si, BigInt(0)));
|
|
210
|
+
const sig = await (0, BlindSig_js_1.unblindSignature)(blindS, r4);
|
|
211
|
+
const blindSigValid = await (0, BlindSig_js_1.verifyBlindSignature)(sig, gRMul, gCMKAuth, authToken.toUint8Array());
|
|
212
|
+
if (!blindSigValid)
|
|
213
|
+
throw Error("Blind Signature Failed");
|
|
214
|
+
const blindSig = (0, Serialization_js_1.bytesToBase64)((0, BlindSig_js_1.serializeBlindSig)(sig, gRMul));
|
|
215
|
+
const vendorData = new VendorData_js_1.default(vuid, gCMKAuth, blindSig, authToken);
|
|
216
|
+
const VendorEncryptedData = await index_js_1.ElGamal.encryptData((0, Serialization_js_1.StringToUint8Array)(JSON.stringify({
|
|
217
|
+
VendorData: vendorData.toString(),
|
|
218
|
+
Consent: (await index_js_1.EdDSA.sign(consentToSign, sessKey))
|
|
219
|
+
})), gVRK);
|
|
220
|
+
return VendorEncryptedData;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=KeyAuthentication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyAuthentication.js","sourceRoot":"","sources":["../../../../../modules/tide-js/Math/KeyAuthentication.js"],"names":[],"mappings":"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"}
|