@super-protocol/swarm-contracts-sdk 0.0.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +66 -0
- package/README.md +52 -0
- package/dist/cjs/analytics/Analytics.d.ts +17 -0
- package/dist/cjs/analytics/Analytics.js +84 -0
- package/dist/cjs/analytics/AnalyticsError.d.ts +7 -0
- package/dist/cjs/analytics/AnalyticsError.js +12 -0
- package/dist/cjs/analytics/eventProviders/BrowserEventProvider.d.ts +19 -0
- package/dist/cjs/analytics/eventProviders/BrowserEventProvider.js +38 -0
- package/dist/cjs/analytics/eventProviders/EventProvider.d.ts +24 -0
- package/dist/cjs/analytics/eventProviders/EventProvider.js +25 -0
- package/dist/cjs/analytics/eventProviders/NodeEventProvider.d.ts +22 -0
- package/dist/cjs/analytics/eventProviders/NodeEventProvider.js +56 -0
- package/dist/cjs/analytics/transports/AxiosTransport.d.ts +4 -0
- package/dist/cjs/analytics/transports/AxiosTransport.js +60 -0
- package/dist/cjs/analytics/transports/FetchTransport.d.ts +4 -0
- package/dist/cjs/analytics/transports/FetchTransport.js +31 -0
- package/dist/cjs/analytics/types.d.ts +26 -0
- package/dist/cjs/analytics/types.js +3 -0
- package/dist/cjs/certificates/binary-splitter.d.ts +27 -0
- package/dist/cjs/certificates/binary-splitter.js +279 -0
- package/dist/cjs/certificates/crl.d.ts +6 -0
- package/dist/cjs/certificates/crl.js +66 -0
- package/dist/cjs/certificates/generator.d.ts +38 -0
- package/dist/cjs/certificates/generator.js +262 -0
- package/dist/cjs/certificates/helper.d.ts +29 -0
- package/dist/cjs/certificates/helper.js +216 -0
- package/dist/cjs/certificates/index.d.ts +5 -0
- package/dist/cjs/certificates/index.js +22 -0
- package/dist/cjs/certificates/ocsp.d.ts +14 -0
- package/dist/cjs/certificates/ocsp.js +320 -0
- package/dist/cjs/certificates/serializer.d.ts +13 -0
- package/dist/cjs/certificates/serializer.js +142 -0
- package/dist/cjs/certificates/setup-crypto.d.ts +3 -0
- package/dist/cjs/certificates/setup-crypto.js +48 -0
- package/dist/cjs/certificates/types.d.ts +122 -0
- package/dist/cjs/certificates/types.js +10 -0
- package/dist/cjs/config.d.ts +3 -0
- package/dist/cjs/config.js +7 -0
- package/dist/cjs/connectors/BaseConnector.d.ts +52 -0
- package/dist/cjs/connectors/BaseConnector.js +61 -0
- package/dist/cjs/connectors/BlockchainConnector.d.ts +78 -0
- package/dist/cjs/connectors/BlockchainConnector.js +325 -0
- package/dist/cjs/connectors/BlockchainEventsListener.d.ts +33 -0
- package/dist/cjs/connectors/BlockchainEventsListener.js +283 -0
- package/dist/cjs/connectors/index.d.ts +2 -0
- package/dist/cjs/connectors/index.js +11 -0
- package/dist/cjs/constants.d.ts +48 -0
- package/dist/cjs/constants.js +683 -0
- package/dist/cjs/contracts/SuperProtocolToken.d.ts +300 -0
- package/dist/cjs/contracts/SuperProtocolToken.js +3 -0
- package/dist/cjs/contracts/SuperProtocolToken__factory.d.ts +393 -0
- package/dist/cjs/contracts/SuperProtocolToken__factory.js +521 -0
- package/dist/cjs/contracts/typechain-types/common.d.ts +50 -0
- package/dist/cjs/contracts/typechain-types/common.js +3 -0
- package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.d.ts +3340 -0
- package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.js +4335 -0
- package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
- package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +10 -0
- package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.d.ts +1 -0
- package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.js +32 -0
- package/dist/cjs/contracts/typechain-types/factories/index.d.ts +1 -0
- package/dist/cjs/contracts/typechain-types/factories/index.js +32 -0
- package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.d.ts +2299 -0
- package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.js +3 -0
- package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
- package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +3 -0
- package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/index.d.ts +2 -0
- package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/index.js +3 -0
- package/dist/cjs/contracts/typechain-types/index.d.ts +5 -0
- package/dist/cjs/contracts/typechain-types/index.js +34 -0
- package/dist/cjs/crypto/Crypto.d.ts +70 -0
- package/dist/cjs/crypto/Crypto.js +137 -0
- package/dist/cjs/crypto/index.d.ts +4 -0
- package/dist/cjs/crypto/index.js +37 -0
- package/dist/cjs/crypto/nodejs/AES.d.ts +25 -0
- package/dist/cjs/crypto/nodejs/AES.js +105 -0
- package/dist/cjs/crypto/nodejs/ARIA.d.ts +23 -0
- package/dist/cjs/crypto/nodejs/ARIA.js +77 -0
- package/dist/cjs/crypto/nodejs/ECIES.d.ts +10 -0
- package/dist/cjs/crypto/nodejs/ECIES.js +107 -0
- package/dist/cjs/crypto/nodejs/NativeCrypto.d.ts +46 -0
- package/dist/cjs/crypto/nodejs/NativeCrypto.js +154 -0
- package/dist/cjs/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
- package/dist/cjs/crypto/nodejs/RSA-Hybrid.js +94 -0
- package/dist/cjs/crypto/types.d.ts +10 -0
- package/dist/cjs/crypto/types.js +3 -0
- package/dist/cjs/crypto/utils.d.ts +15 -0
- package/dist/cjs/crypto/utils.js +94 -0
- package/dist/cjs/crypto/utils.spec.d.ts +1 -0
- package/dist/cjs/crypto/utils.spec.js +221 -0
- package/dist/cjs/errors/base.error.d.ts +3 -0
- package/dist/cjs/errors/base.error.js +19 -0
- package/dist/cjs/errors/index.d.ts +3 -0
- package/dist/cjs/errors/index.js +10 -0
- package/dist/cjs/errors/insufficient-funds.error.d.ts +19 -0
- package/dist/cjs/errors/insufficient-funds.error.js +57 -0
- package/dist/cjs/errors/not-found.error.d.ts +3 -0
- package/dist/cjs/errors/not-found.error.js +8 -0
- package/dist/cjs/errors/utils.d.ts +2 -0
- package/dist/cjs/errors/utils.js +30 -0
- package/dist/cjs/index.d.ts +58 -0
- package/dist/cjs/index.js +119 -0
- package/dist/cjs/logger.d.ts +7 -0
- package/dist/cjs/logger.js +12 -0
- package/dist/cjs/models/EtlModel.d.ts +34 -0
- package/dist/cjs/models/EtlModel.js +125 -0
- package/dist/cjs/models/index.d.ts +1 -0
- package/dist/cjs/models/index.js +9 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/polyfills.d.ts +4 -0
- package/dist/cjs/polyfills.js +8 -0
- package/dist/cjs/proto/AmdSevSnp.d.ts +194 -0
- package/dist/cjs/proto/AmdSevSnp.js +358 -0
- package/dist/cjs/proto/Compression.d.ts +43 -0
- package/dist/cjs/proto/Compression.js +133 -0
- package/dist/cjs/proto/Hash.d.ts +37 -0
- package/dist/cjs/proto/Hash.js +104 -0
- package/dist/cjs/proto/Nvtrust.d.ts +116 -0
- package/dist/cjs/proto/Nvtrust.js +159 -0
- package/dist/cjs/proto/OrderReport.d.ts +730 -0
- package/dist/cjs/proto/OrderReport.js +466 -0
- package/dist/cjs/proto/TRI.d.ts +215 -0
- package/dist/cjs/proto/TRI.js +318 -0
- package/dist/cjs/providers/storage/ChunksDownloadDecorator.d.ts +36 -0
- package/dist/cjs/providers/storage/ChunksDownloadDecorator.js +145 -0
- package/dist/cjs/providers/storage/IStorageProvider.d.ts +15 -0
- package/dist/cjs/providers/storage/IStorageProvider.js +3 -0
- package/dist/cjs/providers/storage/S3StorageProvider.d.ts +26 -0
- package/dist/cjs/providers/storage/S3StorageProvider.js +210 -0
- package/dist/cjs/providers/storage/StorageAdapter.d.ts +62 -0
- package/dist/cjs/providers/storage/StorageAdapter.js +300 -0
- package/dist/cjs/providers/storage/StorageContentWriter.d.ts +46 -0
- package/dist/cjs/providers/storage/StorageContentWriter.js +168 -0
- package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +26 -0
- package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +139 -0
- package/dist/cjs/providers/storage/StorageMetadataReader.d.ts +20 -0
- package/dist/cjs/providers/storage/StorageMetadataReader.js +56 -0
- package/dist/cjs/providers/storage/StorjAdapter.d.ts +20 -0
- package/dist/cjs/providers/storage/StorjAdapter.js +60 -0
- package/dist/cjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
- package/dist/cjs/providers/storage/StorjCredentialsManager.js +114 -0
- package/dist/cjs/providers/storage/StorjStorageProvider.d.ts +29 -0
- package/dist/cjs/providers/storage/StorjStorageProvider.js +146 -0
- package/dist/cjs/providers/storage/fs-storage-provider.d.ts +19 -0
- package/dist/cjs/providers/storage/fs-storage-provider.js +162 -0
- package/dist/cjs/providers/storage/getStorageProvider.d.ts +4 -0
- package/dist/cjs/providers/storage/getStorageProvider.js +23 -0
- package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +4 -0
- package/dist/cjs/providers/storage/parseStorageCredentials.js +21 -0
- package/dist/cjs/providers/storage/types.d.ts +29 -0
- package/dist/cjs/providers/storage/types.js +3 -0
- package/dist/cjs/staticModels/Deposits.d.ts +85 -0
- package/dist/cjs/staticModels/Deposits.js +268 -0
- package/dist/cjs/staticModels/Diamond.d.ts +6 -0
- package/dist/cjs/staticModels/Diamond.js +22 -0
- package/dist/cjs/staticModels/ModelPackager.d.ts +18 -0
- package/dist/cjs/staticModels/ModelPackager.js +49 -0
- package/dist/cjs/staticModels/ProviderRewards.d.ts +5 -0
- package/dist/cjs/staticModels/ProviderRewards.js +81 -0
- package/dist/cjs/staticModels/StaticModel.d.ts +6 -0
- package/dist/cjs/staticModels/StaticModel.js +43 -0
- package/dist/cjs/staticModels/Superpro.d.ts +18 -0
- package/dist/cjs/staticModels/Superpro.js +47 -0
- package/dist/cjs/staticModels/SuperproToken.d.ts +113 -0
- package/dist/cjs/staticModels/SuperproToken.js +333 -0
- package/dist/cjs/store.d.ts +17 -0
- package/dist/cjs/store.js +19 -0
- package/dist/cjs/tee/OrderReportService.d.ts +9 -0
- package/dist/cjs/tee/OrderReportService.js +104 -0
- package/dist/cjs/tee/QuoteParser.d.ts +82 -0
- package/dist/cjs/tee/QuoteParser.js +410 -0
- package/dist/cjs/tee/TeeCertificateService.d.ts +20 -0
- package/dist/cjs/tee/TeeCertificateService.js +143 -0
- package/dist/cjs/tee/TeeSignatureVerifier.d.ts +24 -0
- package/dist/cjs/tee/TeeSignatureVerifier.js +118 -0
- package/dist/cjs/tee/errors.d.ts +11 -0
- package/dist/cjs/tee/errors.js +20 -0
- package/dist/cjs/tee/helpers.d.ts +14 -0
- package/dist/cjs/tee/helpers.js +115 -0
- package/dist/cjs/tee/interface.d.ts +63 -0
- package/dist/cjs/tee/interface.js +3 -0
- package/dist/cjs/tee/statuses.d.ts +14 -0
- package/dist/cjs/tee/statuses.js +20 -0
- package/dist/cjs/tee/types.d.ts +126 -0
- package/dist/cjs/tee/types.js +34 -0
- package/dist/cjs/types/Compressor.d.ts +5 -0
- package/dist/cjs/types/Compressor.js +3 -0
- package/dist/cjs/types/Consensus.d.ts +52 -0
- package/dist/cjs/types/Consensus.js +11 -0
- package/dist/cjs/types/DepositInfo.d.ts +6 -0
- package/dist/cjs/types/DepositInfo.js +3 -0
- package/dist/cjs/types/DistributedSecretStorage.d.ts +68 -0
- package/dist/cjs/types/DistributedSecretStorage.js +3 -0
- package/dist/cjs/types/EtlModel.d.ts +2 -0
- package/dist/cjs/types/EtlModel.js +3 -0
- package/dist/cjs/types/Events.d.ts +34 -0
- package/dist/cjs/types/Events.js +3 -0
- package/dist/cjs/types/HardwareInfo.d.ts +10 -0
- package/dist/cjs/types/HardwareInfo.js +3 -0
- package/dist/cjs/types/Marks.d.ts +9 -0
- package/dist/cjs/types/Marks.js +10 -0
- package/dist/cjs/types/Offer.d.ts +76 -0
- package/dist/cjs/types/Offer.js +32 -0
- package/dist/cjs/types/OfferVersion.d.ts +30 -0
- package/dist/cjs/types/OfferVersion.js +9 -0
- package/dist/cjs/types/OptionInfo.d.ts +8 -0
- package/dist/cjs/types/OptionInfo.js +3 -0
- package/dist/cjs/types/Order.d.ts +144 -0
- package/dist/cjs/types/Order.js +100 -0
- package/dist/cjs/types/OrderUsage.d.ts +28 -0
- package/dist/cjs/types/OrderUsage.js +3 -0
- package/dist/cjs/types/Origins.d.ts +6 -0
- package/dist/cjs/types/Origins.js +3 -0
- package/dist/cjs/types/Provider.d.ts +7 -0
- package/dist/cjs/types/Provider.js +3 -0
- package/dist/cjs/types/ProviderRewards.d.ts +5 -0
- package/dist/cjs/types/ProviderRewards.js +3 -0
- package/dist/cjs/types/ResourceLoader.d.ts +28 -0
- package/dist/cjs/types/ResourceLoader.js +3 -0
- package/dist/cjs/types/SlotInfo.d.ts +7 -0
- package/dist/cjs/types/SlotInfo.js +3 -0
- package/dist/cjs/types/SlotUsage.d.ts +11 -0
- package/dist/cjs/types/SlotUsage.js +9 -0
- package/dist/cjs/types/Superpro.d.ts +9 -0
- package/dist/cjs/types/Superpro.js +14 -0
- package/dist/cjs/types/TeeOfferInfo.d.ts +38 -0
- package/dist/cjs/types/TeeOfferInfo.js +3 -0
- package/dist/cjs/types/TeeOfferOption.d.ts +13 -0
- package/dist/cjs/types/TeeOfferOption.js +3 -0
- package/dist/cjs/types/TeeOfferSlot.d.ts +8 -0
- package/dist/cjs/types/TeeOfferSlot.js +3 -0
- package/dist/cjs/types/ValueOfferSlot.d.ts +18 -0
- package/dist/cjs/types/ValueOfferSlot.js +3 -0
- package/dist/cjs/types/Web3.d.ts +30 -0
- package/dist/cjs/types/Web3.js +3 -0
- package/dist/cjs/types/blockchainConnector/StorageAccess.d.ts +8 -0
- package/dist/cjs/types/blockchainConnector/StorageAccess.js +3 -0
- package/dist/cjs/types/index.d.ts +25 -0
- package/dist/cjs/types/index.js +42 -0
- package/dist/cjs/types/storage/StorageAccess.d.ts +7 -0
- package/dist/cjs/types/storage/StorageAccess.js +3 -0
- package/dist/cjs/types/storage/StorageFileAccess.d.ts +5 -0
- package/dist/cjs/types/storage/StorageFileAccess.js +3 -0
- package/dist/cjs/types/storage/StorageObject.d.ts +8 -0
- package/dist/cjs/types/storage/StorageObject.js +3 -0
- package/dist/cjs/utils/CryptoKeysTransformer.d.ts +42 -0
- package/dist/cjs/utils/CryptoKeysTransformer.js +247 -0
- package/dist/cjs/utils/Monitoring.d.ts +11 -0
- package/dist/cjs/utils/Monitoring.js +51 -0
- package/dist/cjs/utils/NonceTracker.d.ts +20 -0
- package/dist/cjs/utils/NonceTracker.js +82 -0
- package/dist/cjs/utils/PubSub.d.ts +9 -0
- package/dist/cjs/utils/PubSub.js +35 -0
- package/dist/cjs/utils/TxManager.d.ts +28 -0
- package/dist/cjs/utils/TxManager.js +285 -0
- package/dist/cjs/utils/cache/index.d.ts +2 -0
- package/dist/cjs/utils/cache/index.js +21 -0
- package/dist/cjs/utils/cache/memory.d.ts +19 -0
- package/dist/cjs/utils/cache/memory.js +66 -0
- package/dist/cjs/utils/cache/memory.spec.d.ts +1 -0
- package/dist/cjs/utils/cache/memory.spec.js +91 -0
- package/dist/cjs/utils/cache/types.d.ts +17 -0
- package/dist/cjs/utils/cache/types.js +3 -0
- package/dist/cjs/utils/compressors/GzipCompressor.d.ts +8 -0
- package/dist/cjs/utils/compressors/GzipCompressor.js +22 -0
- package/dist/cjs/utils/compressors/UncompressedCompressor.d.ts +8 -0
- package/dist/cjs/utils/compressors/UncompressedCompressor.js +17 -0
- package/dist/cjs/utils/compressors/index.d.ts +2 -0
- package/dist/cjs/utils/compressors/index.js +19 -0
- package/dist/cjs/utils/helper.d.ts +87 -0
- package/dist/cjs/utils/helper.js +576 -0
- package/dist/cjs/utils/helpers/calculateObjectHash.d.ts +8 -0
- package/dist/cjs/utils/helpers/calculateObjectHash.js +25 -0
- package/dist/cjs/utils/helpers/getRawRpc.d.ts +2 -0
- package/dist/cjs/utils/helpers/getRawRpc.js +19 -0
- package/dist/cjs/utils/helpers/getStreamChunks.d.ts +9 -0
- package/dist/cjs/utils/helpers/getStreamChunks.js +35 -0
- package/dist/cjs/utils/helpers/index.d.ts +5 -0
- package/dist/cjs/utils/helpers/index.js +22 -0
- package/dist/cjs/utils/helpers/promise.d.ts +2 -0
- package/dist/cjs/utils/helpers/promise.js +10 -0
- package/dist/cjs/utils/helpers/streamToBuffer.d.ts +4 -0
- package/dist/cjs/utils/helpers/streamToBuffer.js +13 -0
- package/dist/cjs/utils/helpers/tryWithInterval.d.ts +13 -0
- package/dist/cjs/utils/helpers/tryWithInterval.js +39 -0
- package/dist/cjs/utils/rent-calculator/index.d.ts +2 -0
- package/dist/cjs/utils/rent-calculator/index.js +19 -0
- package/dist/cjs/utils/rent-calculator/rent-calculator.d.ts +14 -0
- package/dist/cjs/utils/rent-calculator/rent-calculator.js +114 -0
- package/dist/cjs/utils/rent-calculator/types.d.ts +14 -0
- package/dist/cjs/utils/rent-calculator/types.js +3 -0
- package/dist/cjs/utils/resourceLoaders/BaseResourceLoader.d.ts +10 -0
- package/dist/cjs/utils/resourceLoaders/BaseResourceLoader.js +14 -0
- package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.d.ts +18 -0
- package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.js +60 -0
- package/dist/cjs/utils/resourceLoaders/UrlResourceLoader.d.ts +9 -0
- package/dist/cjs/utils/resourceLoaders/UrlResourceLoader.js +51 -0
- package/dist/cjs/utils/resourceLoaders/getResourceLoader.d.ts +5 -0
- package/dist/cjs/utils/resourceLoaders/getResourceLoader.js +15 -0
- package/dist/cjs/utils/resourceLoaders/index.d.ts +1 -0
- package/dist/cjs/utils/resourceLoaders/index.js +18 -0
- package/dist/cjs/utils/schema-utils/index.d.ts +2 -0
- package/dist/cjs/utils/schema-utils/index.js +9 -0
- package/dist/cjs/utils/schema-utils/serializer.d.ts +3 -0
- package/dist/cjs/utils/schema-utils/serializer.js +31 -0
- package/dist/cjs/utils/schema-utils/validator.d.ts +7 -0
- package/dist/cjs/utils/schema-utils/validator.js +49 -0
- package/dist/cjs/utils/tcb.d.ts +2 -0
- package/dist/cjs/utils/tcb.js +13 -0
- package/dist/cjs/utils/tokens/get-tokens-info.d.ts +8 -0
- package/dist/cjs/utils/tokens/get-tokens-info.js +32 -0
- package/dist/cjs/utils/tokens/index.d.ts +1 -0
- package/dist/cjs/utils/tokens/index.js +18 -0
- package/dist/cjs/utils/types.d.ts +13 -0
- package/dist/cjs/utils/types.js +3 -0
- package/dist/mjs/analytics/Analytics.d.ts +17 -0
- package/dist/mjs/analytics/Analytics.js +78 -0
- package/dist/mjs/analytics/AnalyticsError.d.ts +7 -0
- package/dist/mjs/analytics/AnalyticsError.js +8 -0
- package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +19 -0
- package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +32 -0
- package/dist/mjs/analytics/eventProviders/EventProvider.d.ts +24 -0
- package/dist/mjs/analytics/eventProviders/EventProvider.js +22 -0
- package/dist/mjs/analytics/eventProviders/NodeEventProvider.d.ts +22 -0
- package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +50 -0
- package/dist/mjs/analytics/transports/AxiosTransport.d.ts +4 -0
- package/dist/mjs/analytics/transports/AxiosTransport.js +31 -0
- package/dist/mjs/analytics/transports/FetchTransport.d.ts +4 -0
- package/dist/mjs/analytics/transports/FetchTransport.js +28 -0
- package/dist/mjs/analytics/types.d.ts +26 -0
- package/dist/mjs/analytics/types.js +2 -0
- package/dist/mjs/certificates/binary-splitter.d.ts +27 -0
- package/dist/mjs/certificates/binary-splitter.js +275 -0
- package/dist/mjs/certificates/crl.d.ts +6 -0
- package/dist/mjs/certificates/crl.js +39 -0
- package/dist/mjs/certificates/generator.d.ts +38 -0
- package/dist/mjs/certificates/generator.js +255 -0
- package/dist/mjs/certificates/helper.d.ts +29 -0
- package/dist/mjs/certificates/helper.js +186 -0
- package/dist/mjs/certificates/index.d.ts +5 -0
- package/dist/mjs/certificates/index.js +6 -0
- package/dist/mjs/certificates/ocsp.d.ts +14 -0
- package/dist/mjs/certificates/ocsp.js +290 -0
- package/dist/mjs/certificates/serializer.d.ts +13 -0
- package/dist/mjs/certificates/serializer.js +135 -0
- package/dist/mjs/certificates/setup-crypto.d.ts +3 -0
- package/dist/mjs/certificates/setup-crypto.js +22 -0
- package/dist/mjs/certificates/types.d.ts +122 -0
- package/dist/mjs/certificates/types.js +7 -0
- package/dist/mjs/config.d.ts +3 -0
- package/dist/mjs/config.js +4 -0
- package/dist/mjs/connectors/BaseConnector.d.ts +52 -0
- package/dist/mjs/connectors/BaseConnector.js +54 -0
- package/dist/mjs/connectors/BlockchainConnector.d.ts +78 -0
- package/dist/mjs/connectors/BlockchainConnector.js +320 -0
- package/dist/mjs/connectors/BlockchainEventsListener.d.ts +33 -0
- package/dist/mjs/connectors/BlockchainEventsListener.js +254 -0
- package/dist/mjs/connectors/index.d.ts +2 -0
- package/dist/mjs/connectors/index.js +3 -0
- package/dist/mjs/constants.d.ts +48 -0
- package/dist/mjs/constants.js +680 -0
- package/dist/mjs/contracts/SuperProtocolToken.d.ts +300 -0
- package/dist/mjs/contracts/SuperProtocolToken.js +2 -0
- package/dist/mjs/contracts/SuperProtocolToken__factory.d.ts +393 -0
- package/dist/mjs/contracts/SuperProtocolToken__factory.js +517 -0
- package/dist/mjs/contracts/typechain-types/common.d.ts +50 -0
- package/dist/mjs/contracts/typechain-types/common.js +2 -0
- package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.d.ts +3340 -0
- package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.js +4331 -0
- package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
- package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +6 -0
- package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.d.ts +1 -0
- package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.js +6 -0
- package/dist/mjs/contracts/typechain-types/factories/index.d.ts +1 -0
- package/dist/mjs/contracts/typechain-types/factories/index.js +6 -0
- package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.d.ts +2299 -0
- package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.js +2 -0
- package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
- package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +2 -0
- package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/index.d.ts +2 -0
- package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/index.js +2 -0
- package/dist/mjs/contracts/typechain-types/index.d.ts +5 -0
- package/dist/mjs/contracts/typechain-types/index.js +7 -0
- package/dist/mjs/crypto/Crypto.d.ts +70 -0
- package/dist/mjs/crypto/Crypto.js +132 -0
- package/dist/mjs/crypto/index.d.ts +4 -0
- package/dist/mjs/crypto/index.js +5 -0
- package/dist/mjs/crypto/nodejs/AES.d.ts +25 -0
- package/dist/mjs/crypto/nodejs/AES.js +77 -0
- package/dist/mjs/crypto/nodejs/ARIA.d.ts +23 -0
- package/dist/mjs/crypto/nodejs/ARIA.js +72 -0
- package/dist/mjs/crypto/nodejs/ECIES.d.ts +10 -0
- package/dist/mjs/crypto/nodejs/ECIES.js +82 -0
- package/dist/mjs/crypto/nodejs/NativeCrypto.d.ts +46 -0
- package/dist/mjs/crypto/nodejs/NativeCrypto.js +152 -0
- package/dist/mjs/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
- package/dist/mjs/crypto/nodejs/RSA-Hybrid.js +89 -0
- package/dist/mjs/crypto/types.d.ts +10 -0
- package/dist/mjs/crypto/types.js +2 -0
- package/dist/mjs/crypto/utils.d.ts +15 -0
- package/dist/mjs/crypto/utils.js +81 -0
- package/dist/mjs/crypto/utils.spec.d.ts +1 -0
- package/dist/mjs/crypto/utils.spec.js +219 -0
- package/dist/mjs/errors/base.error.d.ts +3 -0
- package/dist/mjs/errors/base.error.js +15 -0
- package/dist/mjs/errors/index.d.ts +3 -0
- package/dist/mjs/errors/index.js +4 -0
- package/dist/mjs/errors/insufficient-funds.error.d.ts +19 -0
- package/dist/mjs/errors/insufficient-funds.error.js +53 -0
- package/dist/mjs/errors/not-found.error.d.ts +3 -0
- package/dist/mjs/errors/not-found.error.js +4 -0
- package/dist/mjs/errors/utils.d.ts +2 -0
- package/dist/mjs/errors/utils.js +22 -0
- package/dist/mjs/index.d.ts +58 -0
- package/dist/mjs/index.js +53 -0
- package/dist/mjs/logger.d.ts +7 -0
- package/dist/mjs/logger.js +7 -0
- package/dist/mjs/models/EtlModel.d.ts +34 -0
- package/dist/mjs/models/EtlModel.js +96 -0
- package/dist/mjs/models/index.d.ts +1 -0
- package/dist/mjs/models/index.js +2 -0
- package/dist/mjs/package.json +1 -0
- package/dist/mjs/polyfills.d.ts +4 -0
- package/dist/mjs/polyfills.js +8 -0
- package/dist/mjs/proto/AmdSevSnp.d.ts +194 -0
- package/dist/mjs/proto/AmdSevSnp.js +348 -0
- package/dist/mjs/proto/Compression.d.ts +43 -0
- package/dist/mjs/proto/Compression.js +125 -0
- package/dist/mjs/proto/Hash.d.ts +37 -0
- package/dist/mjs/proto/Hash.js +98 -0
- package/dist/mjs/proto/Nvtrust.d.ts +116 -0
- package/dist/mjs/proto/Nvtrust.js +153 -0
- package/dist/mjs/proto/OrderReport.d.ts +730 -0
- package/dist/mjs/proto/OrderReport.js +460 -0
- package/dist/mjs/proto/TRI.d.ts +215 -0
- package/dist/mjs/proto/TRI.js +312 -0
- package/dist/mjs/providers/storage/ChunksDownloadDecorator.d.ts +36 -0
- package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +139 -0
- package/dist/mjs/providers/storage/IStorageProvider.d.ts +15 -0
- package/dist/mjs/providers/storage/IStorageProvider.js +2 -0
- package/dist/mjs/providers/storage/S3StorageProvider.d.ts +26 -0
- package/dist/mjs/providers/storage/S3StorageProvider.js +203 -0
- package/dist/mjs/providers/storage/StorageAdapter.d.ts +62 -0
- package/dist/mjs/providers/storage/StorageAdapter.js +270 -0
- package/dist/mjs/providers/storage/StorageContentWriter.d.ts +46 -0
- package/dist/mjs/providers/storage/StorageContentWriter.js +161 -0
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +26 -0
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +133 -0
- package/dist/mjs/providers/storage/StorageMetadataReader.d.ts +20 -0
- package/dist/mjs/providers/storage/StorageMetadataReader.js +50 -0
- package/dist/mjs/providers/storage/StorjAdapter.d.ts +20 -0
- package/dist/mjs/providers/storage/StorjAdapter.js +54 -0
- package/dist/mjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
- package/dist/mjs/providers/storage/StorjCredentialsManager.js +84 -0
- package/dist/mjs/providers/storage/StorjStorageProvider.d.ts +29 -0
- package/dist/mjs/providers/storage/StorjStorageProvider.js +140 -0
- package/dist/mjs/providers/storage/fs-storage-provider.d.ts +19 -0
- package/dist/mjs/providers/storage/fs-storage-provider.js +132 -0
- package/dist/mjs/providers/storage/getStorageProvider.d.ts +4 -0
- package/dist/mjs/providers/storage/getStorageProvider.js +18 -0
- package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +4 -0
- package/dist/mjs/providers/storage/parseStorageCredentials.js +17 -0
- package/dist/mjs/providers/storage/types.d.ts +29 -0
- package/dist/mjs/providers/storage/types.js +2 -0
- package/dist/mjs/staticModels/Deposits.d.ts +85 -0
- package/dist/mjs/staticModels/Deposits.js +263 -0
- package/dist/mjs/staticModels/Diamond.d.ts +6 -0
- package/dist/mjs/staticModels/Diamond.js +17 -0
- package/dist/mjs/staticModels/ModelPackager.d.ts +18 -0
- package/dist/mjs/staticModels/ModelPackager.js +45 -0
- package/dist/mjs/staticModels/ProviderRewards.d.ts +5 -0
- package/dist/mjs/staticModels/ProviderRewards.js +76 -0
- package/dist/mjs/staticModels/StaticModel.d.ts +6 -0
- package/dist/mjs/staticModels/StaticModel.js +38 -0
- package/dist/mjs/staticModels/Superpro.d.ts +18 -0
- package/dist/mjs/staticModels/Superpro.js +45 -0
- package/dist/mjs/staticModels/SuperproToken.d.ts +113 -0
- package/dist/mjs/staticModels/SuperproToken.js +328 -0
- package/dist/mjs/store.d.ts +17 -0
- package/dist/mjs/store.js +17 -0
- package/dist/mjs/tee/OrderReportService.d.ts +9 -0
- package/dist/mjs/tee/OrderReportService.js +97 -0
- package/dist/mjs/tee/QuoteParser.d.ts +82 -0
- package/dist/mjs/tee/QuoteParser.js +381 -0
- package/dist/mjs/tee/TeeCertificateService.d.ts +20 -0
- package/dist/mjs/tee/TeeCertificateService.js +139 -0
- package/dist/mjs/tee/TeeSignatureVerifier.d.ts +24 -0
- package/dist/mjs/tee/TeeSignatureVerifier.js +111 -0
- package/dist/mjs/tee/errors.d.ts +11 -0
- package/dist/mjs/tee/errors.js +12 -0
- package/dist/mjs/tee/helpers.d.ts +14 -0
- package/dist/mjs/tee/helpers.js +110 -0
- package/dist/mjs/tee/interface.d.ts +63 -0
- package/dist/mjs/tee/interface.js +2 -0
- package/dist/mjs/tee/statuses.d.ts +14 -0
- package/dist/mjs/tee/statuses.js +17 -0
- package/dist/mjs/tee/types.d.ts +126 -0
- package/dist/mjs/tee/types.js +28 -0
- package/dist/mjs/types/Compressor.d.ts +5 -0
- package/dist/mjs/types/Compressor.js +2 -0
- package/dist/mjs/types/Consensus.d.ts +52 -0
- package/dist/mjs/types/Consensus.js +8 -0
- package/dist/mjs/types/DepositInfo.d.ts +6 -0
- package/dist/mjs/types/DepositInfo.js +2 -0
- package/dist/mjs/types/DistributedSecretStorage.d.ts +68 -0
- package/dist/mjs/types/DistributedSecretStorage.js +2 -0
- package/dist/mjs/types/EtlModel.d.ts +2 -0
- package/dist/mjs/types/EtlModel.js +2 -0
- package/dist/mjs/types/Events.d.ts +34 -0
- package/dist/mjs/types/Events.js +2 -0
- package/dist/mjs/types/HardwareInfo.d.ts +10 -0
- package/dist/mjs/types/HardwareInfo.js +2 -0
- package/dist/mjs/types/Marks.d.ts +9 -0
- package/dist/mjs/types/Marks.js +7 -0
- package/dist/mjs/types/Offer.d.ts +76 -0
- package/dist/mjs/types/Offer.js +29 -0
- package/dist/mjs/types/OfferVersion.d.ts +30 -0
- package/dist/mjs/types/OfferVersion.js +6 -0
- package/dist/mjs/types/OptionInfo.d.ts +8 -0
- package/dist/mjs/types/OptionInfo.js +2 -0
- package/dist/mjs/types/Order.d.ts +144 -0
- package/dist/mjs/types/Order.js +91 -0
- package/dist/mjs/types/OrderUsage.d.ts +28 -0
- package/dist/mjs/types/OrderUsage.js +2 -0
- package/dist/mjs/types/Origins.d.ts +6 -0
- package/dist/mjs/types/Origins.js +2 -0
- package/dist/mjs/types/Provider.d.ts +7 -0
- package/dist/mjs/types/Provider.js +2 -0
- package/dist/mjs/types/ProviderRewards.d.ts +5 -0
- package/dist/mjs/types/ProviderRewards.js +2 -0
- package/dist/mjs/types/ResourceLoader.d.ts +28 -0
- package/dist/mjs/types/ResourceLoader.js +2 -0
- package/dist/mjs/types/SlotInfo.d.ts +7 -0
- package/dist/mjs/types/SlotInfo.js +2 -0
- package/dist/mjs/types/SlotUsage.d.ts +11 -0
- package/dist/mjs/types/SlotUsage.js +6 -0
- package/dist/mjs/types/Superpro.d.ts +9 -0
- package/dist/mjs/types/Superpro.js +11 -0
- package/dist/mjs/types/TeeOfferInfo.d.ts +38 -0
- package/dist/mjs/types/TeeOfferInfo.js +2 -0
- package/dist/mjs/types/TeeOfferOption.d.ts +13 -0
- package/dist/mjs/types/TeeOfferOption.js +2 -0
- package/dist/mjs/types/TeeOfferSlot.d.ts +8 -0
- package/dist/mjs/types/TeeOfferSlot.js +2 -0
- package/dist/mjs/types/ValueOfferSlot.d.ts +18 -0
- package/dist/mjs/types/ValueOfferSlot.js +2 -0
- package/dist/mjs/types/Web3.d.ts +30 -0
- package/dist/mjs/types/Web3.js +2 -0
- package/dist/mjs/types/blockchainConnector/StorageAccess.d.ts +8 -0
- package/dist/mjs/types/blockchainConnector/StorageAccess.js +2 -0
- package/dist/mjs/types/index.d.ts +25 -0
- package/dist/mjs/types/index.js +26 -0
- package/dist/mjs/types/storage/StorageAccess.d.ts +7 -0
- package/dist/mjs/types/storage/StorageAccess.js +2 -0
- package/dist/mjs/types/storage/StorageFileAccess.d.ts +5 -0
- package/dist/mjs/types/storage/StorageFileAccess.js +2 -0
- package/dist/mjs/types/storage/StorageObject.d.ts +8 -0
- package/dist/mjs/types/storage/StorageObject.js +2 -0
- package/dist/mjs/utils/CryptoKeysTransformer.d.ts +42 -0
- package/dist/mjs/utils/CryptoKeysTransformer.js +240 -0
- package/dist/mjs/utils/Monitoring.d.ts +11 -0
- package/dist/mjs/utils/Monitoring.js +44 -0
- package/dist/mjs/utils/NonceTracker.d.ts +20 -0
- package/dist/mjs/utils/NonceTracker.js +77 -0
- package/dist/mjs/utils/PubSub.d.ts +9 -0
- package/dist/mjs/utils/PubSub.js +32 -0
- package/dist/mjs/utils/TxManager.d.ts +28 -0
- package/dist/mjs/utils/TxManager.js +278 -0
- package/dist/mjs/utils/cache/index.d.ts +2 -0
- package/dist/mjs/utils/cache/index.js +3 -0
- package/dist/mjs/utils/cache/memory.d.ts +19 -0
- package/dist/mjs/utils/cache/memory.js +61 -0
- package/dist/mjs/utils/cache/memory.spec.d.ts +1 -0
- package/dist/mjs/utils/cache/memory.spec.js +89 -0
- package/dist/mjs/utils/cache/types.d.ts +17 -0
- package/dist/mjs/utils/cache/types.js +2 -0
- package/dist/mjs/utils/compressors/GzipCompressor.d.ts +8 -0
- package/dist/mjs/utils/compressors/GzipCompressor.js +15 -0
- package/dist/mjs/utils/compressors/UncompressedCompressor.d.ts +8 -0
- package/dist/mjs/utils/compressors/UncompressedCompressor.js +13 -0
- package/dist/mjs/utils/compressors/index.d.ts +2 -0
- package/dist/mjs/utils/compressors/index.js +3 -0
- package/dist/mjs/utils/helper.d.ts +87 -0
- package/dist/mjs/utils/helper.js +526 -0
- package/dist/mjs/utils/helpers/calculateObjectHash.d.ts +8 -0
- package/dist/mjs/utils/helpers/calculateObjectHash.js +18 -0
- package/dist/mjs/utils/helpers/getRawRpc.d.ts +2 -0
- package/dist/mjs/utils/helpers/getRawRpc.js +15 -0
- package/dist/mjs/utils/helpers/getStreamChunks.d.ts +9 -0
- package/dist/mjs/utils/helpers/getStreamChunks.js +31 -0
- package/dist/mjs/utils/helpers/index.d.ts +5 -0
- package/dist/mjs/utils/helpers/index.js +6 -0
- package/dist/mjs/utils/helpers/promise.d.ts +2 -0
- package/dist/mjs/utils/helpers/promise.js +5 -0
- package/dist/mjs/utils/helpers/streamToBuffer.d.ts +4 -0
- package/dist/mjs/utils/helpers/streamToBuffer.js +9 -0
- package/dist/mjs/utils/helpers/tryWithInterval.d.ts +13 -0
- package/dist/mjs/utils/helpers/tryWithInterval.js +35 -0
- package/dist/mjs/utils/rent-calculator/index.d.ts +2 -0
- package/dist/mjs/utils/rent-calculator/index.js +3 -0
- package/dist/mjs/utils/rent-calculator/rent-calculator.d.ts +14 -0
- package/dist/mjs/utils/rent-calculator/rent-calculator.js +110 -0
- package/dist/mjs/utils/rent-calculator/types.d.ts +14 -0
- package/dist/mjs/utils/rent-calculator/types.js +2 -0
- package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.d.ts +10 -0
- package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +10 -0
- package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.d.ts +18 -0
- package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +53 -0
- package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.d.ts +9 -0
- package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +44 -0
- package/dist/mjs/utils/resourceLoaders/getResourceLoader.d.ts +5 -0
- package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +11 -0
- package/dist/mjs/utils/resourceLoaders/index.d.ts +1 -0
- package/dist/mjs/utils/resourceLoaders/index.js +2 -0
- package/dist/mjs/utils/schema-utils/index.d.ts +2 -0
- package/dist/mjs/utils/schema-utils/index.js +3 -0
- package/dist/mjs/utils/schema-utils/serializer.d.ts +3 -0
- package/dist/mjs/utils/schema-utils/serializer.js +26 -0
- package/dist/mjs/utils/schema-utils/validator.d.ts +7 -0
- package/dist/mjs/utils/schema-utils/validator.js +45 -0
- package/dist/mjs/utils/tcb.d.ts +2 -0
- package/dist/mjs/utils/tcb.js +9 -0
- package/dist/mjs/utils/tokens/get-tokens-info.d.ts +8 -0
- package/dist/mjs/utils/tokens/get-tokens-info.js +25 -0
- package/dist/mjs/utils/tokens/index.d.ts +1 -0
- package/dist/mjs/utils/tokens/index.js +2 -0
- package/dist/mjs/utils/types.d.ts +13 -0
- package/dist/mjs/utils/types.js +2 -0
- package/package.json +103 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy90eXBlY2hhaW4tdHlwZXMvaGFyZGhhdC1kaWFtb25kLWFiaS9IYXJkaGF0RGlhbW9uZEFCSS5zb2wvQXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { App } from "./App.js";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29udHJhY3RzL3R5cGVjaGFpbi10eXBlcy9oYXJkaGF0LWRpYW1vbmQtYWJpL0hhcmRoYXREaWFtb25kQUJJLnNvbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29udHJhY3RzL3R5cGVjaGFpbi10eXBlcy9oYXJkaGF0LWRpYW1vbmQtYWJpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type * as hardhatDiamondAbi from "./hardhat-diamond-abi/index.js";
|
|
2
|
+
export type { hardhatDiamondAbi };
|
|
3
|
+
export * as factories from "./factories/index.js";
|
|
4
|
+
export type { App } from "./hardhat-diamond-abi/HardhatDiamondABI.sol/App.js";
|
|
5
|
+
export { App__factory } from "./factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/* Autogenerated file. Do not edit manually. */
|
|
3
|
+
/* tslint:disable */
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
export * as factories from "./factories/index.js";
|
|
6
|
+
export { App__factory } from "./factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.js";
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJhY3RzL3R5cGVjaGFpbi10eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsK0NBQStDO0FBQy9DLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFJcEIsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUVBQXVFLENBQUMifQ==
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
import { CryptoAlgorithm, Encryption, Hash, EncryptionKey, type Serialized } from '@super-protocol/dto-js';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import { Readable } from 'stream';
|
|
8
|
+
import { BinaryToTextEncoding, KeyObject } from 'crypto';
|
|
9
|
+
import { HashAlgorithm } from '@super-protocol/dto-js';
|
|
10
|
+
import { CryptoKeyType } from './types.js';
|
|
11
|
+
declare class Crypto {
|
|
12
|
+
/**
|
|
13
|
+
* Used to encrypt data before sending it to blockchain
|
|
14
|
+
* @param content - string data to encrypt
|
|
15
|
+
* @param encryption - encryption info containing the algorithm and key
|
|
16
|
+
* @returns Encryption - object what contains encrypted data, key and spec to decryption
|
|
17
|
+
*/
|
|
18
|
+
static encrypt<T = unknown>(content: Serialized<T>, encryption: Encryption): Encryption<Serialized<T>>;
|
|
19
|
+
/**
|
|
20
|
+
* Encrypts data stream
|
|
21
|
+
* @param inputStream - path to file that will be encrypted
|
|
22
|
+
* @param outputStream - place where the encrypted data will be saved
|
|
23
|
+
* @param encryption - encryption info containing the algorithm and key
|
|
24
|
+
* @returns Promise<Encryption> - encryption info
|
|
25
|
+
*/
|
|
26
|
+
static encryptStream(inputStream: fs.ReadStream, outputStream: fs.WriteStream, encryption: Encryption): Promise<Encryption>;
|
|
27
|
+
/**
|
|
28
|
+
* Used to decrypt data from blockchain
|
|
29
|
+
* @param encryption - object what contains encrypted data, key and spec to decryption
|
|
30
|
+
* @returns decrypted data
|
|
31
|
+
*/
|
|
32
|
+
static decrypt<S = unknown, T = Serialized<S>>(encryption: Encryption<T>): T;
|
|
33
|
+
/**
|
|
34
|
+
* Decrypts data stream
|
|
35
|
+
* @param inputStream - stream with data to decrypt
|
|
36
|
+
* @param outputStream - stream where the decrypted data will be written
|
|
37
|
+
* @param encryption - encryption info
|
|
38
|
+
*/
|
|
39
|
+
static decryptStream(inputStream: fs.ReadStream, outputStream: fs.WriteStream, encryption: Encryption): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Create hash from content
|
|
42
|
+
* @param content - buffer data to create hash from
|
|
43
|
+
* @param hashInfo - information about hash algorithm and encoding
|
|
44
|
+
* @returns Hash structure with hash itself hash algorithm and encoding
|
|
45
|
+
*/
|
|
46
|
+
static createHash(content: Buffer, hashInfo: Omit<Hash, 'hash'>): Promise<Hash>;
|
|
47
|
+
/**
|
|
48
|
+
* Create hash from stream
|
|
49
|
+
* @param inputStream - readable stream
|
|
50
|
+
* @param hashInfo - information about hash algorithm and encoding
|
|
51
|
+
* @returns Hash structure with hash itself hash algorithm and encoding
|
|
52
|
+
*/
|
|
53
|
+
static createHash(inputStream: Readable, hashInfo: Omit<Hash, 'hash'>): Promise<Hash>;
|
|
54
|
+
static getPublicKey(privateKey: EncryptionKey): EncryptionKey;
|
|
55
|
+
static generateKeys<T extends CryptoAlgorithm>(algo: T): Promise<CryptoKeyType<T>>;
|
|
56
|
+
static sign(params: {
|
|
57
|
+
data: Buffer | string;
|
|
58
|
+
privateKey: KeyObject;
|
|
59
|
+
outputFormat?: BinaryToTextEncoding;
|
|
60
|
+
algo?: HashAlgorithm;
|
|
61
|
+
}): string;
|
|
62
|
+
static verify(params: {
|
|
63
|
+
data: Buffer | string;
|
|
64
|
+
publicKey: KeyObject;
|
|
65
|
+
signatureFormat?: BinaryToTextEncoding;
|
|
66
|
+
algo?: HashAlgorithm;
|
|
67
|
+
signature: string;
|
|
68
|
+
}): boolean;
|
|
69
|
+
}
|
|
70
|
+
export default Crypto;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { CryptoAlgorithm, } from '@super-protocol/dto-js';
|
|
2
|
+
import AES from './nodejs/AES.js';
|
|
3
|
+
import ARIA from './nodejs/ARIA.js';
|
|
4
|
+
import ECIES from './nodejs/ECIES.js';
|
|
5
|
+
import RSAHybrid from './nodejs/RSA-Hybrid.js';
|
|
6
|
+
import NativeCrypto from './nodejs/NativeCrypto.js';
|
|
7
|
+
import crypto from 'crypto';
|
|
8
|
+
import { HashAlgorithm } from '@super-protocol/dto-js';
|
|
9
|
+
class Crypto {
|
|
10
|
+
/**
|
|
11
|
+
* Used to encrypt data before sending it to blockchain
|
|
12
|
+
* @param content - string data to encrypt
|
|
13
|
+
* @param encryption - encryption info containing the algorithm and key
|
|
14
|
+
* @returns Encryption - object what contains encrypted data, key and spec to decryption
|
|
15
|
+
*/
|
|
16
|
+
static encrypt(content, encryption) {
|
|
17
|
+
switch (encryption.algo) {
|
|
18
|
+
case CryptoAlgorithm.AES:
|
|
19
|
+
return AES.encrypt(content, encryption);
|
|
20
|
+
case CryptoAlgorithm.ARIA:
|
|
21
|
+
return ARIA.encrypt(content, encryption);
|
|
22
|
+
case CryptoAlgorithm.ECIES:
|
|
23
|
+
return ECIES.encrypt(content, encryption);
|
|
24
|
+
case CryptoAlgorithm.RSAHybrid:
|
|
25
|
+
return RSAHybrid.encrypt(content, encryption);
|
|
26
|
+
default:
|
|
27
|
+
throw Error(`${encryption.algo} algorithm not supported`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Encrypts data stream
|
|
32
|
+
* @param inputStream - path to file that will be encrypted
|
|
33
|
+
* @param outputStream - place where the encrypted data will be saved
|
|
34
|
+
* @param encryption - encryption info containing the algorithm and key
|
|
35
|
+
* @returns Promise<Encryption> - encryption info
|
|
36
|
+
*/
|
|
37
|
+
static async encryptStream(inputStream, outputStream, encryption) {
|
|
38
|
+
switch (encryption.algo) {
|
|
39
|
+
case CryptoAlgorithm.AES:
|
|
40
|
+
return await AES.encryptStream(inputStream, outputStream, encryption);
|
|
41
|
+
case CryptoAlgorithm.ARIA:
|
|
42
|
+
return await ARIA.encryptStream(inputStream, outputStream, encryption);
|
|
43
|
+
case CryptoAlgorithm.RSAHybrid:
|
|
44
|
+
return await RSAHybrid.encryptStream(inputStream, outputStream, encryption);
|
|
45
|
+
default:
|
|
46
|
+
throw Error(`${encryption.algo} algorithm not supported`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Used to decrypt data from blockchain
|
|
51
|
+
* @param encryption - object what contains encrypted data, key and spec to decryption
|
|
52
|
+
* @returns decrypted data
|
|
53
|
+
*/
|
|
54
|
+
static decrypt(encryption) {
|
|
55
|
+
switch (encryption.algo) {
|
|
56
|
+
case CryptoAlgorithm.AES:
|
|
57
|
+
return AES.decrypt(encryption);
|
|
58
|
+
case CryptoAlgorithm.ARIA:
|
|
59
|
+
return ARIA.decrypt(encryption);
|
|
60
|
+
case CryptoAlgorithm.ECIES:
|
|
61
|
+
return ECIES.decrypt(encryption);
|
|
62
|
+
case CryptoAlgorithm.RSAHybrid:
|
|
63
|
+
return RSAHybrid.decrypt(encryption);
|
|
64
|
+
default:
|
|
65
|
+
throw Error(`${encryption.algo} algorithm not supported`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Decrypts data stream
|
|
70
|
+
* @param inputStream - stream with data to decrypt
|
|
71
|
+
* @param outputStream - stream where the decrypted data will be written
|
|
72
|
+
* @param encryption - encryption info
|
|
73
|
+
*/
|
|
74
|
+
static async decryptStream(inputStream, outputStream, encryption) {
|
|
75
|
+
switch (encryption.algo) {
|
|
76
|
+
case CryptoAlgorithm.AES:
|
|
77
|
+
return await AES.decryptStream(inputStream, outputStream, encryption);
|
|
78
|
+
case CryptoAlgorithm.ARIA:
|
|
79
|
+
return await ARIA.decryptStream(inputStream, outputStream, encryption);
|
|
80
|
+
case CryptoAlgorithm.RSAHybrid:
|
|
81
|
+
return await RSAHybrid.decryptStream(inputStream, outputStream, encryption);
|
|
82
|
+
default:
|
|
83
|
+
throw Error(`${encryption.algo} algorithm not supported`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
static async createHash(param1, hashInfo) {
|
|
87
|
+
const { algo, encoding } = hashInfo;
|
|
88
|
+
return Buffer.isBuffer(param1)
|
|
89
|
+
? NativeCrypto.createHashFromBuffer(param1, algo, encoding)
|
|
90
|
+
: await NativeCrypto.createHashFromStream(param1, algo, encoding);
|
|
91
|
+
}
|
|
92
|
+
static getPublicKey(privateKey) {
|
|
93
|
+
switch (privateKey.algo) {
|
|
94
|
+
case CryptoAlgorithm.ECIES:
|
|
95
|
+
return ECIES.getPublicKeyEncryption(privateKey);
|
|
96
|
+
default:
|
|
97
|
+
throw Error(`${privateKey.algo} algorithm not supported`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
static async generateKeys(algo) {
|
|
101
|
+
switch (algo) {
|
|
102
|
+
case CryptoAlgorithm.ECIES:
|
|
103
|
+
return (await ECIES.generateKeys());
|
|
104
|
+
case CryptoAlgorithm.AES:
|
|
105
|
+
return AES.generateKeys();
|
|
106
|
+
default:
|
|
107
|
+
throw Error(`${algo} algorithm not supported`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
static sign(params) {
|
|
111
|
+
const { data, outputFormat = 'base64', algo = HashAlgorithm.SHA256 } = params;
|
|
112
|
+
if (!params.privateKey) {
|
|
113
|
+
throw new Error('sign failed, private key is not assigned');
|
|
114
|
+
}
|
|
115
|
+
const signer = crypto.createSign(algo);
|
|
116
|
+
signer.write(data);
|
|
117
|
+
signer.end();
|
|
118
|
+
return signer.sign(params.privateKey, outputFormat);
|
|
119
|
+
}
|
|
120
|
+
static verify(params) {
|
|
121
|
+
const { data, signature, signatureFormat = 'base64', algo = HashAlgorithm.SHA256 } = params;
|
|
122
|
+
if (!params.publicKey) {
|
|
123
|
+
throw new Error('verify failed, public key is not assigned');
|
|
124
|
+
}
|
|
125
|
+
const verifier = crypto.createVerify(algo);
|
|
126
|
+
verifier.write(data);
|
|
127
|
+
verifier.end();
|
|
128
|
+
return verifier.verify(params.publicKey, signature, signatureFormat);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export default Crypto;
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NyeXB0by9DcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGVBQWUsR0FPaEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUNsQyxPQUFPLElBQUksTUFBTSxrQkFBa0IsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxtQkFBbUIsQ0FBQztBQUN0QyxPQUFPLFNBQVMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLE1BQTJDLE1BQU0sUUFBUSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxNQUFNLE1BQU07SUFDVjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQ1osT0FBc0IsRUFDdEIsVUFBc0I7UUFFdEIsUUFBUSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsS0FBSyxlQUFlLENBQUMsR0FBRztnQkFDdEIsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUUxQyxLQUFLLGVBQWUsQ0FBQyxJQUFJO2dCQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBRTNDLEtBQUssZUFBZSxDQUFDLEtBQUs7Z0JBQ3hCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFNUMsS0FBSyxlQUFlLENBQUMsU0FBUztnQkFDNUIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUVoRDtnQkFDRSxNQUFNLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENB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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import Crypto from './Crypto.js';
|
|
2
|
+
export default Crypto;
|
|
3
|
+
export * from './types.js';
|
|
4
|
+
export * as cryptoUtils from './utils.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxlQUFlLE1BQU0sQ0FBQztBQUN0QixjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEtBQUssV0FBVyxNQUFNLFlBQVksQ0FBQyJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { AESEncryption, Encryption } from '@super-protocol/dto-js';
|
|
3
|
+
import { ReadStream, WriteStream } from 'fs';
|
|
4
|
+
import { SymmetricKey } from '../types.js';
|
|
5
|
+
declare class AES {
|
|
6
|
+
static encrypt(content: string, encryption: Encryption): AESEncryption;
|
|
7
|
+
/**
|
|
8
|
+
* Encrypts data stream
|
|
9
|
+
* @param inputStream - path to file that will be encrypted
|
|
10
|
+
* @param outputStream - place where it will be saved
|
|
11
|
+
* @param encryption - encryption settings that include algorithm and key
|
|
12
|
+
* @returns Promise<AESEncryption> - encryption info
|
|
13
|
+
*/
|
|
14
|
+
static encryptStream(inputStream: ReadStream, outputStream: WriteStream, encryption: Encryption): Promise<AESEncryption>;
|
|
15
|
+
static decrypt(encryption: AESEncryption): string;
|
|
16
|
+
/**
|
|
17
|
+
* Decrypts data stream
|
|
18
|
+
* @param inputStream - stream with data to decrypt
|
|
19
|
+
* @param outputStream - stream where the decrypted data will be written
|
|
20
|
+
* @param encryption - encryption info
|
|
21
|
+
*/
|
|
22
|
+
static decryptStream(inputStream: ReadStream, outputStream: WriteStream, encryption: AESEncryption): Promise<void>;
|
|
23
|
+
static generateKeys(): SymmetricKey;
|
|
24
|
+
}
|
|
25
|
+
export default AES;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Cipher, CryptoAlgorithm, } from '@super-protocol/dto-js';
|
|
2
|
+
import * as crypto from 'crypto';
|
|
3
|
+
import NativeCrypto from './NativeCrypto.js';
|
|
4
|
+
class AES {
|
|
5
|
+
static encrypt(content, encryption) {
|
|
6
|
+
if (!encryption.key)
|
|
7
|
+
throw Error('Encryption key is not provided');
|
|
8
|
+
encryption.cipher = encryption.cipher || Cipher.AES_256_GCM;
|
|
9
|
+
const keyBuffer = Buffer.from(encryption.key, encryption.encoding);
|
|
10
|
+
const encrypted = NativeCrypto.encrypt(keyBuffer, content, encryption.cipher);
|
|
11
|
+
return {
|
|
12
|
+
algo: CryptoAlgorithm.AES,
|
|
13
|
+
encoding: encryption.encoding,
|
|
14
|
+
cipher: encryption.cipher,
|
|
15
|
+
ciphertext: encrypted.ciphertext,
|
|
16
|
+
iv: encrypted.iv,
|
|
17
|
+
mac: encrypted.mac,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Encrypts data stream
|
|
22
|
+
* @param inputStream - path to file that will be encrypted
|
|
23
|
+
* @param outputStream - place where it will be saved
|
|
24
|
+
* @param encryption - encryption settings that include algorithm and key
|
|
25
|
+
* @returns Promise<AESEncryption> - encryption info
|
|
26
|
+
*/
|
|
27
|
+
static async encryptStream(inputStream, outputStream, encryption) {
|
|
28
|
+
if (!encryption.key)
|
|
29
|
+
throw Error('Encryption key is not provided');
|
|
30
|
+
encryption.cipher = encryption.cipher || Cipher.AES_256_GCM;
|
|
31
|
+
const keyBuffer = Buffer.from(encryption.key, encryption.encoding);
|
|
32
|
+
const encrypted = await NativeCrypto.encryptStream(keyBuffer, inputStream, outputStream, encryption.cipher);
|
|
33
|
+
return {
|
|
34
|
+
algo: encryption.algo,
|
|
35
|
+
encoding: encryption.encoding,
|
|
36
|
+
cipher: encryption.cipher,
|
|
37
|
+
ciphertext: encrypted.ciphertext,
|
|
38
|
+
iv: encrypted.iv,
|
|
39
|
+
mac: encrypted.mac,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
static decrypt(encryption) {
|
|
43
|
+
if (!encryption.key)
|
|
44
|
+
throw Error('Decryption key is not provided');
|
|
45
|
+
const key = Buffer.from(encryption.key, encryption.encoding);
|
|
46
|
+
const params = {
|
|
47
|
+
iv: Buffer.from(encryption.iv, encryption.encoding),
|
|
48
|
+
};
|
|
49
|
+
if (encryption.mac) {
|
|
50
|
+
params.mac = Buffer.from(encryption.mac, encryption.encoding);
|
|
51
|
+
}
|
|
52
|
+
return NativeCrypto.decrypt(key, encryption.ciphertext, encryption.cipher, params, encryption.encoding);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Decrypts data stream
|
|
56
|
+
* @param inputStream - stream with data to decrypt
|
|
57
|
+
* @param outputStream - stream where the decrypted data will be written
|
|
58
|
+
* @param encryption - encryption info
|
|
59
|
+
*/
|
|
60
|
+
static async decryptStream(inputStream, outputStream, encryption) {
|
|
61
|
+
if (!encryption.key)
|
|
62
|
+
throw Error('Decryption key is not provided');
|
|
63
|
+
const key = Buffer.from(encryption.key, encryption.encoding);
|
|
64
|
+
const params = {
|
|
65
|
+
iv: Buffer.from(encryption.iv, encryption.encoding),
|
|
66
|
+
};
|
|
67
|
+
if (encryption.mac) {
|
|
68
|
+
params.mac = Buffer.from(encryption.mac, encryption.encoding);
|
|
69
|
+
}
|
|
70
|
+
await NativeCrypto.decryptStream(key, inputStream, outputStream, encryption.cipher, params);
|
|
71
|
+
}
|
|
72
|
+
static generateKeys() {
|
|
73
|
+
return crypto.randomBytes(32);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export default AES;
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUVTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NyeXB0by9ub2RlanMvQUVTLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxNQUFNLEVBQ04sZUFBZSxHQUVoQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sWUFBWSxNQUFNLG1CQUFtQixDQUFDO0FBRzdDLE1BQU0sR0FBRztJQUNBLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZSxFQUFFLFVBQXNCO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRztZQUFFLE1BQU0sS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDbkUsVUFBVSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFFNUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuRSxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlFLE9BQU87WUFDTCxJQUFJLEVBQUUsZUFBZSxDQUFDLEdBQUc7WUFDekIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQzdCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBd0M7WUFDM0QsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVO1lBQ2hDLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRztZQUNqQixHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUk7U0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDL0IsV0FBdUIsRUFDdkIsWUFBeUIsRUFDekIsVUFB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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ARIAEncryption, Encryption } from '@super-protocol/dto-js';
|
|
3
|
+
import { ReadStream, WriteStream } from 'fs';
|
|
4
|
+
declare class ARIA {
|
|
5
|
+
static encrypt(content: string, encryption: Encryption): ARIAEncryption;
|
|
6
|
+
/**
|
|
7
|
+
* Encrypts data stream
|
|
8
|
+
* @param inputStream - path to file that will be encrypted
|
|
9
|
+
* @param outputStream - place where it will be saved
|
|
10
|
+
* @param encryption - encryption settings that include algorithm and key
|
|
11
|
+
* @returns Promise<ARIAEncryption> - encryption info
|
|
12
|
+
*/
|
|
13
|
+
static encryptStream(inputStream: ReadStream, outputStream: WriteStream, encryption: Encryption): Promise<ARIAEncryption>;
|
|
14
|
+
static decrypt(encryption: ARIAEncryption): string;
|
|
15
|
+
/**
|
|
16
|
+
* Decrypts data stream
|
|
17
|
+
* @param inputStream - stream with data to decrypt
|
|
18
|
+
* @param outputStream - stream where the decrypted data will be written
|
|
19
|
+
* @param encryption - encryption info
|
|
20
|
+
*/
|
|
21
|
+
static decryptStream(inputStream: ReadStream, outputStream: WriteStream, encryption: ARIAEncryption): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export default ARIA;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { CryptoAlgorithm, Cipher, } from '@super-protocol/dto-js';
|
|
2
|
+
import NativeCrypto from './NativeCrypto.js';
|
|
3
|
+
class ARIA {
|
|
4
|
+
static encrypt(content, encryption) {
|
|
5
|
+
if (!encryption.key)
|
|
6
|
+
throw Error('Encryption key is not provided');
|
|
7
|
+
encryption.cipher = encryption.cipher || Cipher.ARIA_256_GCM;
|
|
8
|
+
const keyBuffer = Buffer.from(encryption.key, encryption.encoding);
|
|
9
|
+
const encrypted = NativeCrypto.encrypt(keyBuffer, content, encryption.cipher);
|
|
10
|
+
return {
|
|
11
|
+
algo: CryptoAlgorithm.ARIA,
|
|
12
|
+
encoding: encryption.encoding,
|
|
13
|
+
cipher: encryption.cipher,
|
|
14
|
+
ciphertext: encrypted.ciphertext,
|
|
15
|
+
iv: encrypted.iv,
|
|
16
|
+
mac: encrypted.mac,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Encrypts data stream
|
|
21
|
+
* @param inputStream - path to file that will be encrypted
|
|
22
|
+
* @param outputStream - place where it will be saved
|
|
23
|
+
* @param encryption - encryption settings that include algorithm and key
|
|
24
|
+
* @returns Promise<ARIAEncryption> - encryption info
|
|
25
|
+
*/
|
|
26
|
+
static async encryptStream(inputStream, outputStream, encryption) {
|
|
27
|
+
if (!encryption.key)
|
|
28
|
+
throw Error('Encryption key is not provided');
|
|
29
|
+
encryption.cipher = encryption.cipher || Cipher.ARIA_256_GCM;
|
|
30
|
+
const keyBuffer = Buffer.from(encryption.key, encryption.encoding);
|
|
31
|
+
const encrypted = await NativeCrypto.encryptStream(keyBuffer, inputStream, outputStream, encryption.cipher);
|
|
32
|
+
return {
|
|
33
|
+
algo: CryptoAlgorithm.ARIA,
|
|
34
|
+
encoding: encryption.encoding,
|
|
35
|
+
cipher: encryption.cipher,
|
|
36
|
+
iv: encrypted.iv,
|
|
37
|
+
mac: encrypted.mac,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
static decrypt(encryption) {
|
|
41
|
+
if (!encryption.key)
|
|
42
|
+
throw Error('Decryption key is not provided');
|
|
43
|
+
const key = Buffer.from(encryption.key, encryption.encoding);
|
|
44
|
+
const params = {
|
|
45
|
+
iv: Buffer.from(encryption.iv, encryption.encoding),
|
|
46
|
+
};
|
|
47
|
+
if (encryption.mac) {
|
|
48
|
+
params.mac = Buffer.from(encryption.mac, encryption.encoding);
|
|
49
|
+
}
|
|
50
|
+
return NativeCrypto.decrypt(key, encryption.ciphertext, encryption.cipher, params, encryption.encoding);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Decrypts data stream
|
|
54
|
+
* @param inputStream - stream with data to decrypt
|
|
55
|
+
* @param outputStream - stream where the decrypted data will be written
|
|
56
|
+
* @param encryption - encryption info
|
|
57
|
+
*/
|
|
58
|
+
static async decryptStream(inputStream, outputStream, encryption) {
|
|
59
|
+
if (!encryption.key)
|
|
60
|
+
throw Error('Decryption key is not provided');
|
|
61
|
+
const key = Buffer.from(encryption.key, encryption.encoding);
|
|
62
|
+
const params = {
|
|
63
|
+
iv: Buffer.from(encryption.iv, encryption.encoding),
|
|
64
|
+
};
|
|
65
|
+
if (encryption.mac) {
|
|
66
|
+
params.mac = Buffer.from(encryption.mac, encryption.encoding);
|
|
67
|
+
}
|
|
68
|
+
await NativeCrypto.decryptStream(key, inputStream, outputStream, encryption.cipher, params);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export default ARIA;
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVJJQS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jcnlwdG8vbm9kZWpzL0FSSUEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFHZixNQUFNLEdBRVAsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxNQUFNLElBQUk7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQWUsRUFBRSxVQUFzQjtRQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFBRSxNQUFNLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ25FLFVBQVUsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRTdELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkUsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5RSxPQUFPO1lBQ0wsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO1lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM3QixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQXlDO1lBQzVELFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVTtZQUNoQyxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUc7WUFDakIsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFJO1NBQ3BCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQy9CLFdBQXVCLEVBQ3ZCLFlBQXlCLEVBQ3pCLFVBQXNCO1FBRXRCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRztZ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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ECIESEncryption, Encryption, EncryptionKey } from '@super-protocol/dto-js';
|
|
2
|
+
import { AsymmetricKeys } from '../types.js';
|
|
3
|
+
declare class ECIES {
|
|
4
|
+
static encrypt(content: string, encryption: Encryption): ECIESEncryption;
|
|
5
|
+
static decrypt(encryption: ECIESEncryption): string;
|
|
6
|
+
static getPublicFromPrivate(privateKey: Pick<EncryptionKey, 'key' | 'encoding'>): string;
|
|
7
|
+
static getPublicKeyEncryption: (encryption: EncryptionKey) => EncryptionKey;
|
|
8
|
+
static generateKeys(namedCurve?: string): Promise<AsymmetricKeys>;
|
|
9
|
+
}
|
|
10
|
+
export default ECIES;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { CryptoAlgorithm, Encoding, } from '@super-protocol/dto-js';
|
|
2
|
+
import crypto, { generateKeyPair } from 'crypto';
|
|
3
|
+
class ECIES {
|
|
4
|
+
static encrypt(content, encryption) {
|
|
5
|
+
if (!encryption.key)
|
|
6
|
+
throw Error('Encryption key is not provided');
|
|
7
|
+
const ecdh = crypto.createECDH('secp256k1');
|
|
8
|
+
ecdh.generateKeys();
|
|
9
|
+
const epk = ecdh.getPublicKey();
|
|
10
|
+
const pk = ecdh.computeSecret(Buffer.from(encryption.key, encryption.encoding));
|
|
11
|
+
const hash = crypto.createHash('sha512').update(pk).digest();
|
|
12
|
+
const cipherKey = hash.subarray(0, 32), macKey = hash.subarray(32);
|
|
13
|
+
const iv = crypto.randomBytes(16);
|
|
14
|
+
const cipher = crypto.createCipheriv('aes-256-cbc', cipherKey, iv);
|
|
15
|
+
let ct = cipher.update(content);
|
|
16
|
+
ct = Buffer.concat([ct, cipher.final()]);
|
|
17
|
+
const dataToMac = Buffer.concat([iv, epk, ct]);
|
|
18
|
+
const mac = crypto.createHmac('sha256', macKey).update(dataToMac).digest();
|
|
19
|
+
return {
|
|
20
|
+
iv: iv.toString(encryption.encoding),
|
|
21
|
+
ephemPublicKey: epk.toString(encryption.encoding),
|
|
22
|
+
mac: mac.toString(encryption.encoding),
|
|
23
|
+
encoding: encryption.encoding,
|
|
24
|
+
algo: CryptoAlgorithm.ECIES,
|
|
25
|
+
ciphertext: ct.toString(encryption.encoding),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
static decrypt(encryption) {
|
|
29
|
+
if (!encryption.key)
|
|
30
|
+
throw Error('Decryption key is not provided');
|
|
31
|
+
const iv = Buffer.from(encryption.iv, encryption.encoding), epk = Buffer.from(encryption.ephemPublicKey, encryption.encoding), ct = Buffer.from(encryption.ciphertext, encryption.encoding), mac = Buffer.from(encryption.mac, encryption.encoding);
|
|
32
|
+
const ecdh = crypto.createECDH('secp256k1');
|
|
33
|
+
ecdh.setPrivateKey(Buffer.from(encryption.key, encryption.encoding));
|
|
34
|
+
const pk = ecdh.computeSecret(epk);
|
|
35
|
+
const hash = crypto.createHash('sha512').update(pk).digest();
|
|
36
|
+
const cipherKey = hash.subarray(0, 32), macKey = hash.subarray(32);
|
|
37
|
+
const m = crypto
|
|
38
|
+
.createHmac('sha256', macKey)
|
|
39
|
+
.update(Buffer.concat([iv, epk, ct]))
|
|
40
|
+
.digest();
|
|
41
|
+
if (m.compare(mac) !== 0 || mac.compare(m) !== 0) {
|
|
42
|
+
throw new Error('Corrupted Ecies body: unmatched authentication code');
|
|
43
|
+
}
|
|
44
|
+
const decipher = crypto.createDecipheriv('aes-256-cbc', cipherKey, iv);
|
|
45
|
+
const pt = decipher.update(ct);
|
|
46
|
+
const result = Buffer.concat([pt, decipher.final()]);
|
|
47
|
+
return result.toString('binary');
|
|
48
|
+
}
|
|
49
|
+
static getPublicFromPrivate(privateKey) {
|
|
50
|
+
const ecdh = crypto.createECDH('secp256k1');
|
|
51
|
+
ecdh.setPrivateKey(Buffer.from(privateKey.key, privateKey.encoding));
|
|
52
|
+
return ecdh.getPublicKey(privateKey.encoding);
|
|
53
|
+
}
|
|
54
|
+
static getPublicKeyEncryption = (encryption) => {
|
|
55
|
+
if (encryption.algo !== CryptoAlgorithm.ECIES) {
|
|
56
|
+
throw Error('Only ECIES result encryption is supported');
|
|
57
|
+
}
|
|
58
|
+
if (encryption.encoding !== Encoding.base64) {
|
|
59
|
+
throw new Error('Only base64 result encryption is supported');
|
|
60
|
+
}
|
|
61
|
+
if (!encryption.key) {
|
|
62
|
+
throw new Error('Encryption private key is not provided');
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
algo: encryption.algo,
|
|
66
|
+
encoding: encryption.encoding,
|
|
67
|
+
key: this.getPublicFromPrivate(encryption),
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
static generateKeys(namedCurve = 'secp256k1') {
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
generateKeyPair('ec', { namedCurve }, (err, publicKey, privateKey) => {
|
|
73
|
+
if (err) {
|
|
74
|
+
return reject(err);
|
|
75
|
+
}
|
|
76
|
+
resolve({ publicKey, privateKey });
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export default ECIES;
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRUNJRVMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3J5cHRvL25vZGVqcy9FQ0lFUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUVmLFFBQVEsR0FHVCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sTUFBTSxFQUFFLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2pELE1BQU0sS0FBSztJQUNULE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZSxFQUFFLFVBQXNCO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRztZQUFFLE1BQU0sS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFbkUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWhDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRWhGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRTdELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNwQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMs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
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
import { ReadStream, WriteStream } from 'fs';
|
|
6
|
+
import { Cipher, Decipher } from 'crypto';
|
|
7
|
+
import { Readable } from 'stream';
|
|
8
|
+
import { Encoding, EncryptionWithMacIV, Hash, HashAlgorithm } from '@super-protocol/dto-js';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare class NativeCrypto {
|
|
13
|
+
/**
|
|
14
|
+
* Here would be better to check cipher type using
|
|
15
|
+
* ```
|
|
16
|
+
* getCipherInfo(cipher)!.keyLength
|
|
17
|
+
* ```
|
|
18
|
+
* but it doesn't work in browser
|
|
19
|
+
*/
|
|
20
|
+
static getKeyLength(cipher: string): number;
|
|
21
|
+
/**
|
|
22
|
+
* Here would be better to check cipher type using
|
|
23
|
+
* ```
|
|
24
|
+
* getCipherInfo(cipher)!.ivLength
|
|
25
|
+
* ```
|
|
26
|
+
* but it doesn't work in browser
|
|
27
|
+
*/
|
|
28
|
+
static getIVLength(cipher: string): number;
|
|
29
|
+
static createKey(cipher: string): Buffer;
|
|
30
|
+
static createIV(cipher: string): Buffer;
|
|
31
|
+
static createCipher(cipher: string, key: Buffer, iv: Buffer): Cipher;
|
|
32
|
+
static createDecipher(cipher: string, key: Buffer, iv: Buffer, mac?: Buffer): Decipher;
|
|
33
|
+
static encrypt(key: Buffer, content: string, cipherName: string, outputEncoding?: Encoding, inputEncoding?: BufferEncoding): Partial<EncryptionWithMacIV>;
|
|
34
|
+
static encryptStream(key: Buffer, inputStream: ReadStream, outputStream: WriteStream, cipherName: string, encoding?: Encoding): Promise<Partial<EncryptionWithMacIV>>;
|
|
35
|
+
static decrypt(key: Buffer, content: string, cipherName: string, params: {
|
|
36
|
+
iv: Buffer;
|
|
37
|
+
mac?: Buffer;
|
|
38
|
+
}, inputEncoding?: Encoding, outputEncoding?: BufferEncoding): string;
|
|
39
|
+
static decryptStream(key: Buffer, inputStream: ReadStream, outputStream: WriteStream, cipherName: string, params: {
|
|
40
|
+
iv: Buffer;
|
|
41
|
+
mac?: Buffer;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
static createHashFromBuffer(data: Buffer, algorithm: HashAlgorithm, encoding?: Encoding): Hash;
|
|
44
|
+
static createHashFromStream(inputStream: Readable, algorithm: HashAlgorithm, encoding?: Encoding): Promise<Hash>;
|
|
45
|
+
}
|
|
46
|
+
export default NativeCrypto;
|