@bsv/sdk 2.1.0 → 2.1.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/README.md +7 -7
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/auth/Peer.js +8 -13
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +4 -7
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +32 -32
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +4 -4
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +29 -34
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +9 -4
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +12 -12
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/identity/ContactsManager.js +172 -232
- package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
- package/dist/cjs/src/identity/IdentityClient.js +122 -55
- package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
- package/dist/cjs/src/kvstore/GlobalKVStore.js +30 -31
- package/dist/cjs/src/kvstore/GlobalKVStore.js.map +1 -1
- package/dist/cjs/src/kvstore/LocalKVStore.js +9 -9
- package/dist/cjs/src/kvstore/LocalKVStore.js.map +1 -1
- package/dist/cjs/src/kvstore/kvStoreInterpreter.js +2 -2
- package/dist/cjs/src/kvstore/kvStoreInterpreter.js.map +1 -1
- package/dist/cjs/src/messages/SignedMessage.js +1 -1
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
- package/dist/cjs/src/overlay-tools/Historian.js +1 -1
- package/dist/cjs/src/overlay-tools/Historian.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +139 -46
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +75 -146
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/cjs/src/primitives/AESGCM.js +2 -2
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +164 -148
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/Curve.js +17 -15
- package/dist/cjs/src/primitives/Curve.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +12 -7
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +140 -56
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +8 -8
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/cjs/src/primitives/K256.js +3 -3
- package/dist/cjs/src/primitives/K256.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +36 -40
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +4 -4
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js +4 -4
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +10 -14
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/ReaderUint8Array.js +6 -6
- package/dist/cjs/src/primitives/ReaderUint8Array.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +2 -2
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
- package/dist/cjs/src/primitives/Secp256r1.js +2 -1
- package/dist/cjs/src/primitives/Secp256r1.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +8 -8
- package/dist/cjs/src/primitives/Signature.js.map +1 -1
- package/dist/cjs/src/primitives/TransactionSignature.js +20 -21
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +39 -46
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/registry/RegistryClient.js +31 -23
- package/dist/cjs/src/registry/RegistryClient.js.map +1 -1
- package/dist/cjs/src/remittance/RemittanceManager.js +19 -18
- package/dist/cjs/src/remittance/RemittanceManager.js.map +1 -1
- package/dist/cjs/src/remittance/modules/BasicBRC29.js.map +1 -1
- package/dist/cjs/src/script/Script.js +93 -170
- package/dist/cjs/src/script/Script.js.map +1 -1
- package/dist/cjs/src/script/ScriptEvaluationError.js +2 -2
- package/dist/cjs/src/script/ScriptEvaluationError.js.map +1 -1
- package/dist/cjs/src/script/Spend.js +14 -12
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +22 -18
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +2 -4
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/cjs/src/storage/StorageDownloader.js +42 -9
- package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +1 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +239 -192
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefConstants.js +19 -0
- package/dist/cjs/src/transaction/BeefConstants.js.map +1 -0
- package/dist/cjs/src/transaction/BeefTx.js +12 -12
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +4 -4
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +49 -52
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/cjs/src/transaction/http/BinaryFetchClient.js +9 -9
- package/dist/cjs/src/transaction/http/BinaryFetchClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js +9 -9
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
- package/dist/cjs/src/wallet/WalletError.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +5 -4
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js +9 -9
- package/dist/cjs/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +92 -92
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +387 -711
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/XDM.js +4 -4
- package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js +2 -2
- package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/cjs/src/wallet/validationHelpers.js +9 -9
- package/dist/cjs/src/wallet/validationHelpers.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/Peer.js +25 -13
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +4 -7
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +32 -32
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +4 -4
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +29 -34
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +9 -4
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +12 -12
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/identity/ContactsManager.js +172 -232
- package/dist/esm/src/identity/ContactsManager.js.map +1 -1
- package/dist/esm/src/identity/IdentityClient.js +122 -55
- package/dist/esm/src/identity/IdentityClient.js.map +1 -1
- package/dist/esm/src/kvstore/GlobalKVStore.js +30 -31
- package/dist/esm/src/kvstore/GlobalKVStore.js.map +1 -1
- package/dist/esm/src/kvstore/LocalKVStore.js +9 -9
- package/dist/esm/src/kvstore/LocalKVStore.js.map +1 -1
- package/dist/esm/src/kvstore/kvStoreInterpreter.js +2 -2
- package/dist/esm/src/kvstore/kvStoreInterpreter.js.map +1 -1
- package/dist/esm/src/messages/SignedMessage.js +1 -1
- package/dist/esm/src/messages/SignedMessage.js.map +1 -1
- package/dist/esm/src/overlay-tools/Historian.js +1 -1
- package/dist/esm/src/overlay-tools/Historian.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +139 -46
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +74 -146
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js +2 -2
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +167 -154
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/Curve.js +17 -15
- package/dist/esm/src/primitives/Curve.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +12 -7
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +140 -56
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/JacobianPoint.js +8 -8
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/esm/src/primitives/K256.js +3 -3
- package/dist/esm/src/primitives/K256.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +36 -40
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +4 -4
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js +4 -4
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +10 -14
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/ReaderUint8Array.js +6 -6
- package/dist/esm/src/primitives/ReaderUint8Array.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +1 -1
- package/dist/esm/src/primitives/Schnorr.js.map +1 -1
- package/dist/esm/src/primitives/Secp256r1.js +2 -1
- package/dist/esm/src/primitives/Secp256r1.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +8 -8
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js +20 -21
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +39 -48
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/registry/RegistryClient.js +31 -23
- package/dist/esm/src/registry/RegistryClient.js.map +1 -1
- package/dist/esm/src/remittance/RemittanceManager.js +19 -18
- package/dist/esm/src/remittance/RemittanceManager.js.map +1 -1
- package/dist/esm/src/remittance/modules/BasicBRC29.js.map +1 -1
- package/dist/esm/src/script/Script.js +93 -170
- package/dist/esm/src/script/Script.js.map +1 -1
- package/dist/esm/src/script/ScriptEvaluationError.js +2 -2
- package/dist/esm/src/script/ScriptEvaluationError.js.map +1 -1
- package/dist/esm/src/script/Spend.js +14 -12
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +4 -3
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/script/templates/RPuzzle.js +2 -4
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/esm/src/storage/StorageDownloader.js +1 -1
- package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
- package/dist/esm/src/totp/totp.js +1 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +229 -186
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefConstants.js +16 -0
- package/dist/esm/src/transaction/BeefConstants.js.map +1 -0
- package/dist/esm/src/transaction/BeefTx.js +3 -3
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +4 -4
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +49 -52
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/esm/src/transaction/http/BinaryFetchClient.js +9 -9
- package/dist/esm/src/transaction/http/BinaryFetchClient.js.map +1 -1
- package/dist/esm/src/transaction/http/DefaultHttpClient.js +9 -9
- package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/WalletError.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +5 -4
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/ReactNativeWebView.js +9 -9
- package/dist/esm/src/wallet/substrates/ReactNativeWebView.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +92 -92
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +387 -711
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/src/wallet/substrates/XDM.js +4 -4
- package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js +2 -2
- package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/esm/src/wallet/validationHelpers.js +9 -9
- package/dist/esm/src/wallet/validationHelpers.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/Peer.d.ts +13 -0
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts.map +1 -1
- package/dist/types/src/identity/ContactsManager.d.ts +18 -0
- package/dist/types/src/identity/ContactsManager.d.ts.map +1 -1
- package/dist/types/src/identity/IdentityClient.d.ts +47 -8
- package/dist/types/src/identity/IdentityClient.d.ts.map +1 -1
- package/dist/types/src/kvstore/GlobalKVStore.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts +59 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +18 -3
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts +13 -3
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Curve.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts +3 -3
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts +3 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/Random.d.ts +2 -2
- package/dist/types/src/primitives/Random.d.ts.map +1 -1
- package/dist/types/src/primitives/ReaderUint8Array.d.ts.map +1 -1
- package/dist/types/src/primitives/Schnorr.d.ts +2 -1
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
- package/dist/types/src/primitives/Secp256r1.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +2 -4
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/registry/RegistryClient.d.ts.map +1 -1
- package/dist/types/src/remittance/RemittanceManager.d.ts.map +1 -1
- package/dist/types/src/remittance/modules/BasicBRC29.d.ts.map +1 -1
- package/dist/types/src/script/Script.d.ts +15 -8
- package/dist/types/src/script/Script.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +3 -1
- package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
- package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +46 -8
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefConstants.d.ts +15 -0
- package/dist/types/src/transaction/BeefConstants.d.ts.map +1 -0
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +2 -2
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +7 -7
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +7 -7
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +36 -7
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +8 -8
- package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +3 -3
- package/package.json +1 -1
- package/src/auth/Peer.ts +26 -13
- package/src/auth/SessionManager.ts +4 -7
- package/src/auth/certificates/MasterCertificate.ts +1 -1
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +1 -1
- package/src/auth/clients/AuthFetch.ts +41 -41
- package/src/auth/transports/SimplifiedFetchTransport.ts +4 -4
- package/src/compat/ECIES.ts +29 -34
- package/src/compat/HD.ts +10 -5
- package/src/compat/Mnemonic.ts +11 -11
- package/src/compat/__tests/HD.test.ts +19 -0
- package/src/identity/ContactsManager.ts +194 -257
- package/src/identity/IdentityClient.ts +155 -66
- package/src/identity/__tests/IdentityClient.test.ts +25 -1
- package/src/kvstore/GlobalKVStore.ts +31 -32
- package/src/kvstore/LocalKVStore.ts +8 -8
- package/src/kvstore/kvStoreInterpreter.ts +2 -2
- package/src/messages/SignedMessage.ts +1 -1
- package/src/overlay-tools/Historian.ts +1 -1
- package/src/overlay-tools/LookupResolver.ts +182 -45
- package/src/overlay-tools/SHIPBroadcaster.ts +92 -168
- package/src/primitives/AESGCM.ts +2 -2
- package/src/primitives/BigNumber.ts +122 -113
- package/src/primitives/Curve.ts +16 -15
- package/src/primitives/ECDSA.ts +10 -8
- package/src/primitives/Hash.ts +152 -53
- package/src/primitives/JacobianPoint.ts +13 -11
- package/src/primitives/K256.ts +3 -3
- package/src/primitives/Point.ts +35 -38
- package/src/primitives/PrivateKey.ts +3 -3
- package/src/primitives/PublicKey.ts +3 -3
- package/src/primitives/Random.ts +11 -14
- package/src/primitives/ReaderUint8Array.ts +7 -7
- package/src/primitives/Schnorr.ts +2 -1
- package/src/primitives/Secp256r1.ts +2 -1
- package/src/primitives/Signature.ts +8 -8
- package/src/primitives/TransactionSignature.ts +16 -16
- package/src/primitives/utils.ts +37 -47
- package/src/registry/RegistryClient.ts +25 -25
- package/src/remittance/RemittanceManager.ts +17 -18
- package/src/remittance/modules/BasicBRC29.ts +2 -5
- package/src/script/Script.ts +114 -170
- package/src/script/ScriptEvaluationError.ts +2 -2
- package/src/script/Spend.ts +14 -15
- package/src/script/templates/PushDrop.ts +5 -3
- package/src/script/templates/RPuzzle.ts +2 -4
- package/src/storage/StorageDownloader.ts +1 -1
- package/src/totp/totp.ts +1 -1
- package/src/transaction/Beef.ts +241 -203
- package/src/transaction/BeefConstants.ts +16 -0
- package/src/transaction/BeefTx.ts +3 -3
- package/src/transaction/MerklePath.ts +4 -4
- package/src/transaction/Transaction.ts +48 -51
- package/src/transaction/fee-models/SatoshisPerKilobyte.ts +1 -1
- package/src/transaction/http/BinaryFetchClient.ts +8 -8
- package/src/transaction/http/DefaultHttpClient.ts +8 -8
- package/src/wallet/CachedKeyDeriver.ts +8 -6
- package/src/wallet/KeyDeriver.ts +1 -1
- package/src/wallet/Wallet.interfaces.ts +2 -4
- package/src/wallet/WalletClient.ts +8 -8
- package/src/wallet/WalletError.ts +1 -1
- package/src/wallet/__tests/WalletClient.substrate.test.ts +10 -6
- package/src/wallet/substrates/HTTPWalletJSON.ts +22 -21
- package/src/wallet/substrates/ReactNativeWebView.ts +9 -9
- package/src/wallet/substrates/WalletWireProcessor.ts +83 -83
- package/src/wallet/substrates/WalletWireTransceiver.ts +528 -938
- package/src/wallet/substrates/XDM.ts +4 -4
- package/src/wallet/substrates/__tests/HTTPWalletJSON.test.ts +38 -25
- package/src/wallet/substrates/__tests/ReactNativeWebView.test.ts +174 -0
- package/src/wallet/substrates/__tests/window.CWI.test.ts +256 -0
- package/src/wallet/substrates/window.CWI.ts +10 -10
- package/src/wallet/validationHelpers.ts +9 -9
|
@@ -190,6 +190,59 @@ function isSurrogatePair(msg, i) {
|
|
|
190
190
|
}
|
|
191
191
|
return (msg.charCodeAt(i + 1) & 0xfc00) === 0xdc00;
|
|
192
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Encode a single UTF-16 code unit (and possibly its surrogate partner)
|
|
195
|
+
* into UTF-8 bytes, appending them to `out`.
|
|
196
|
+
*
|
|
197
|
+
* Returns the index of the last consumed code unit so the caller can
|
|
198
|
+
* advance its loop variable when a surrogate pair is consumed.
|
|
199
|
+
*
|
|
200
|
+
* Inspired by stringToUtf8ByteArray() in closure-library by Google
|
|
201
|
+
* https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt#L117-L143
|
|
202
|
+
* Apache License 2.0
|
|
203
|
+
* https://github.com/google/closure-library/blob/master/LICENSE
|
|
204
|
+
*/
|
|
205
|
+
function appendUtf8CodeUnit(msg, i, out) {
|
|
206
|
+
let c = msg.charCodeAt(i);
|
|
207
|
+
if (c < 128) {
|
|
208
|
+
out.push(c);
|
|
209
|
+
return i;
|
|
210
|
+
}
|
|
211
|
+
if (c < 2048) {
|
|
212
|
+
out.push((c >> 6) | 192, (c & 63) | 128);
|
|
213
|
+
return i;
|
|
214
|
+
}
|
|
215
|
+
if (isSurrogatePair(msg, i)) {
|
|
216
|
+
c = 0x10000 + ((c & 0x03ff) << 10) + (msg.charCodeAt(i + 1) & 0x03ff);
|
|
217
|
+
out.push((c >> 18) | 240, ((c >> 12) & 63) | 128, ((c >> 6) & 63) | 128, (c & 63) | 128);
|
|
218
|
+
return i + 1;
|
|
219
|
+
}
|
|
220
|
+
out.push((c >> 12) | 224, ((c >> 6) & 63) | 128, (c & 63) | 128);
|
|
221
|
+
return i;
|
|
222
|
+
}
|
|
223
|
+
function utf8StringToArray(msg) {
|
|
224
|
+
const res = [];
|
|
225
|
+
for (let i = 0; i < msg.length; i++) {
|
|
226
|
+
i = appendUtf8CodeUnit(msg, i, res);
|
|
227
|
+
}
|
|
228
|
+
return res;
|
|
229
|
+
}
|
|
230
|
+
function hexStringToArray(msg) {
|
|
231
|
+
(0, hex_js_1.assertValidHex)(msg);
|
|
232
|
+
const normalized = (0, hex_js_1.normalizeHex)(msg);
|
|
233
|
+
const res = [];
|
|
234
|
+
for (let i = 0; i < normalized.length; i += 2) {
|
|
235
|
+
res.push(Number.parseInt(normalized[i] + normalized[i + 1], 16));
|
|
236
|
+
}
|
|
237
|
+
return res;
|
|
238
|
+
}
|
|
239
|
+
function numberArrayToByteArray(msg) {
|
|
240
|
+
const res = [];
|
|
241
|
+
for (let i = 0; i < msg.length; i++) {
|
|
242
|
+
res[i] = Math.trunc(msg[i]);
|
|
243
|
+
}
|
|
244
|
+
return res;
|
|
245
|
+
}
|
|
193
246
|
/**
|
|
194
247
|
*
|
|
195
248
|
* @param msg
|
|
@@ -203,52 +256,10 @@ function toArray(msg, enc) {
|
|
|
203
256
|
if (!msg) {
|
|
204
257
|
return [];
|
|
205
258
|
}
|
|
206
|
-
const res = [];
|
|
207
259
|
if (typeof msg === 'string') {
|
|
208
|
-
|
|
209
|
-
// Inspired by stringToUtf8ByteArray() in closure-library by Google
|
|
210
|
-
// https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt#L117-L143
|
|
211
|
-
// Apache License 2.0
|
|
212
|
-
// https://github.com/google/closure-library/blob/master/LICENSE
|
|
213
|
-
let p = 0;
|
|
214
|
-
for (let i = 0; i < msg.length; i++) {
|
|
215
|
-
let c = msg.charCodeAt(i);
|
|
216
|
-
if (c < 128) {
|
|
217
|
-
res[p++] = c;
|
|
218
|
-
}
|
|
219
|
-
else if (c < 2048) {
|
|
220
|
-
res[p++] = (c >> 6) | 192;
|
|
221
|
-
res[p++] = (c & 63) | 128;
|
|
222
|
-
}
|
|
223
|
-
else if (isSurrogatePair(msg, i)) {
|
|
224
|
-
c = 0x10000 + ((c & 0x03ff) << 10) + (msg.charCodeAt(++i) & 0x03ff);
|
|
225
|
-
res[p++] = (c >> 18) | 240;
|
|
226
|
-
res[p++] = ((c >> 12) & 63) | 128;
|
|
227
|
-
res[p++] = ((c >> 6) & 63) | 128;
|
|
228
|
-
res[p++] = (c & 63) | 128;
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
res[p++] = (c >> 12) | 224;
|
|
232
|
-
res[p++] = ((c >> 6) & 63) | 128;
|
|
233
|
-
res[p++] = (c & 63) | 128;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
(0, hex_js_1.assertValidHex)(msg);
|
|
239
|
-
msg = (0, hex_js_1.normalizeHex)(msg);
|
|
240
|
-
for (let i = 0; i < msg.length; i += 2) {
|
|
241
|
-
res.push(parseInt(msg[i] + msg[i + 1], 16));
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
msg = msg;
|
|
247
|
-
for (let i = 0; i < msg.length; i++) {
|
|
248
|
-
res[i] = msg[i] | 0;
|
|
249
|
-
}
|
|
260
|
+
return enc === 'hex' ? hexStringToArray(msg) : utf8StringToArray(msg);
|
|
250
261
|
}
|
|
251
|
-
return
|
|
262
|
+
return numberArrayToByteArray(msg);
|
|
252
263
|
}
|
|
253
264
|
/**
|
|
254
265
|
* @deprecated
|
|
@@ -262,8 +273,7 @@ function htonl(w) {
|
|
|
262
273
|
}
|
|
263
274
|
function toHex32(msg, endian) {
|
|
264
275
|
let res = '';
|
|
265
|
-
for (let
|
|
266
|
-
let w = msg[i];
|
|
276
|
+
for (let w of msg) {
|
|
267
277
|
if (endian === 'little') {
|
|
268
278
|
w = htonl(w);
|
|
269
279
|
}
|
|
@@ -610,7 +620,7 @@ class SHA1 extends BaseHash {
|
|
|
610
620
|
let d = this.h[3];
|
|
611
621
|
let e = this.h[4];
|
|
612
622
|
for (i = 0; i < W.length; i++) {
|
|
613
|
-
const s =
|
|
623
|
+
const s = Math.trunc(i / 20);
|
|
614
624
|
const t = SUM32_5(rotl32(a, 5), FT_1(s, b, c, d), e, W[i], this.k[s]);
|
|
615
625
|
e = d;
|
|
616
626
|
d = c;
|
|
@@ -1004,7 +1014,7 @@ function abytes(b, ...lengths) {
|
|
|
1004
1014
|
}
|
|
1005
1015
|
function ahash(h) {
|
|
1006
1016
|
if (typeof h !== 'function' || typeof h.create !== 'function') {
|
|
1007
|
-
throw new
|
|
1017
|
+
throw new TypeError('Hash should be wrapped by utils.createHasher');
|
|
1008
1018
|
}
|
|
1009
1019
|
anumber(h.outputLen);
|
|
1010
1020
|
anumber(h.blockLen);
|
|
@@ -1024,8 +1034,8 @@ function aoutput(out, instance) {
|
|
|
1024
1034
|
}
|
|
1025
1035
|
}
|
|
1026
1036
|
function clean(...arrays) {
|
|
1027
|
-
for (
|
|
1028
|
-
|
|
1037
|
+
for (const arr of arrays)
|
|
1038
|
+
arr.fill(0);
|
|
1029
1039
|
}
|
|
1030
1040
|
function createView(arr) {
|
|
1031
1041
|
return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
|
|
@@ -1063,6 +1073,7 @@ const _32n = BigInt(32);
|
|
|
1063
1073
|
function fromBig(n, le = false) {
|
|
1064
1074
|
if (le)
|
|
1065
1075
|
return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };
|
|
1076
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1066
1077
|
return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
|
|
1067
1078
|
}
|
|
1068
1079
|
function split(lst, le = false) {
|
|
@@ -1084,13 +1095,17 @@ const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));
|
|
|
1084
1095
|
const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));
|
|
1085
1096
|
function add(Ah, Al, Bh, Bl) {
|
|
1086
1097
|
const l = (Al >>> 0) + (Bl >>> 0);
|
|
1098
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1087
1099
|
return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };
|
|
1088
1100
|
}
|
|
1089
1101
|
const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);
|
|
1102
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1090
1103
|
const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;
|
|
1091
1104
|
const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);
|
|
1105
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1092
1106
|
const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;
|
|
1093
1107
|
const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
|
|
1108
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1094
1109
|
const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;
|
|
1095
1110
|
// _md helpers
|
|
1096
1111
|
class HashMD extends Hash {
|
|
@@ -1217,13 +1232,21 @@ const SHA256_W = new Uint32Array(64);
|
|
|
1217
1232
|
class FastSHA256 extends HashMD {
|
|
1218
1233
|
constructor(outputLen = 32) {
|
|
1219
1234
|
super(64, outputLen, 8, false);
|
|
1235
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1220
1236
|
this.A = SHA256_IV[0] | 0;
|
|
1237
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1221
1238
|
this.B = SHA256_IV[1] | 0;
|
|
1239
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1222
1240
|
this.C = SHA256_IV[2] | 0;
|
|
1241
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1223
1242
|
this.D = SHA256_IV[3] | 0;
|
|
1243
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1224
1244
|
this.E = SHA256_IV[4] | 0;
|
|
1245
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1225
1246
|
this.F = SHA256_IV[5] | 0;
|
|
1247
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1226
1248
|
this.G = SHA256_IV[6] | 0;
|
|
1249
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1227
1250
|
this.H = SHA256_IV[7] | 0;
|
|
1228
1251
|
}
|
|
1229
1252
|
get() {
|
|
@@ -1231,13 +1254,21 @@ class FastSHA256 extends HashMD {
|
|
|
1231
1254
|
return [A, B, C, D, E, F, G, H];
|
|
1232
1255
|
}
|
|
1233
1256
|
set(A, B, C, D, E, F, G, H) {
|
|
1257
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1234
1258
|
this.A = A | 0;
|
|
1259
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1235
1260
|
this.B = B | 0;
|
|
1261
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1236
1262
|
this.C = C | 0;
|
|
1263
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1237
1264
|
this.D = D | 0;
|
|
1265
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1238
1266
|
this.E = E | 0;
|
|
1267
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1239
1268
|
this.F = F | 0;
|
|
1269
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1240
1270
|
this.G = G | 0;
|
|
1271
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1241
1272
|
this.H = H | 0;
|
|
1242
1273
|
}
|
|
1243
1274
|
process(view, offset) {
|
|
@@ -1368,7 +1399,7 @@ const K512 = (() => split([
|
|
|
1368
1399
|
'0x597f299cfc657e2a',
|
|
1369
1400
|
'0x5fcb6fab3ad6faec',
|
|
1370
1401
|
'0x6c44198c4a475817'
|
|
1371
|
-
].map(
|
|
1402
|
+
].map(BigInt)))();
|
|
1372
1403
|
const SHA512_Kh = (() => K512[0])();
|
|
1373
1404
|
const SHA512_Kl = (() => K512[1])();
|
|
1374
1405
|
const SHA512_W_H = new Uint32Array(80);
|
|
@@ -1376,21 +1407,37 @@ const SHA512_W_L = new Uint32Array(80);
|
|
|
1376
1407
|
class FastSHA512 extends HashMD {
|
|
1377
1408
|
constructor(outputLen = 64) {
|
|
1378
1409
|
super(128, outputLen, 16, false);
|
|
1410
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1379
1411
|
this.Ah = SHA512_IV[0] | 0;
|
|
1412
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1380
1413
|
this.Al = SHA512_IV[1] | 0;
|
|
1414
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1381
1415
|
this.Bh = SHA512_IV[2] | 0;
|
|
1416
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1382
1417
|
this.Bl = SHA512_IV[3] | 0;
|
|
1418
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1383
1419
|
this.Ch = SHA512_IV[4] | 0;
|
|
1420
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1384
1421
|
this.Cl = SHA512_IV[5] | 0;
|
|
1422
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1385
1423
|
this.Dh = SHA512_IV[6] | 0;
|
|
1424
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1386
1425
|
this.Dl = SHA512_IV[7] | 0;
|
|
1426
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1387
1427
|
this.Eh = SHA512_IV[8] | 0;
|
|
1428
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1388
1429
|
this.El = SHA512_IV[9] | 0;
|
|
1430
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1389
1431
|
this.Fh = SHA512_IV[10] | 0;
|
|
1432
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1390
1433
|
this.Fl = SHA512_IV[11] | 0;
|
|
1434
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1391
1435
|
this.Gh = SHA512_IV[12] | 0;
|
|
1436
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1392
1437
|
this.Gl = SHA512_IV[13] | 0;
|
|
1438
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1393
1439
|
this.Hh = SHA512_IV[14] | 0;
|
|
1440
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1394
1441
|
this.Hl = SHA512_IV[15] | 0;
|
|
1395
1442
|
}
|
|
1396
1443
|
get() {
|
|
@@ -1398,40 +1445,62 @@ class FastSHA512 extends HashMD {
|
|
|
1398
1445
|
return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];
|
|
1399
1446
|
}
|
|
1400
1447
|
set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {
|
|
1448
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1401
1449
|
this.Ah = Ah | 0;
|
|
1450
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1402
1451
|
this.Al = Al | 0;
|
|
1452
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1403
1453
|
this.Bh = Bh | 0;
|
|
1454
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1404
1455
|
this.Bl = Bl | 0;
|
|
1456
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1405
1457
|
this.Ch = Ch | 0;
|
|
1458
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1406
1459
|
this.Cl = Cl | 0;
|
|
1460
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1407
1461
|
this.Dh = Dh | 0;
|
|
1462
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1408
1463
|
this.Dl = Dl | 0;
|
|
1464
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1409
1465
|
this.Eh = Eh | 0;
|
|
1466
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1410
1467
|
this.El = El | 0;
|
|
1468
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1411
1469
|
this.Fh = Fh | 0;
|
|
1470
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1412
1471
|
this.Fl = Fl | 0;
|
|
1472
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1413
1473
|
this.Gh = Gh | 0;
|
|
1474
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1414
1475
|
this.Gl = Gl | 0;
|
|
1476
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1415
1477
|
this.Hh = Hh | 0;
|
|
1478
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1416
1479
|
this.Hl = Hl | 0;
|
|
1417
1480
|
}
|
|
1418
1481
|
process(view, offset) {
|
|
1419
|
-
for (let i = 0; i < 16; i++, offset +=
|
|
1482
|
+
for (let i = 0; i < 16; i++, offset += 8) {
|
|
1420
1483
|
SHA512_W_H[i] = view.getUint32(offset);
|
|
1421
|
-
SHA512_W_L[i] = view.getUint32(
|
|
1484
|
+
SHA512_W_L[i] = view.getUint32(offset + 4);
|
|
1422
1485
|
}
|
|
1423
1486
|
for (let i = 16; i < 80; i++) {
|
|
1487
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1424
1488
|
const W15h = SHA512_W_H[i - 15] | 0;
|
|
1489
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1425
1490
|
const W15l = SHA512_W_L[i - 15] | 0;
|
|
1426
1491
|
const s0h = rotrSH(W15h, W15l, 1) ^ rotrSH(W15h, W15l, 8) ^ shrSH(W15h, W15l, 7);
|
|
1427
1492
|
const s0l = rotrSL(W15h, W15l, 1) ^ rotrSL(W15h, W15l, 8) ^ shrSL(W15h, W15l, 7);
|
|
1493
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1428
1494
|
const W2h = SHA512_W_H[i - 2] | 0;
|
|
1495
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1429
1496
|
const W2l = SHA512_W_L[i - 2] | 0;
|
|
1430
1497
|
const s1h = rotrSH(W2h, W2l, 19) ^ rotrBH(W2h, W2l, 61) ^ shrSH(W2h, W2l, 6);
|
|
1431
1498
|
const s1l = rotrSL(W2h, W2l, 19) ^ rotrBL(W2h, W2l, 61) ^ shrSL(W2h, W2l, 6);
|
|
1432
1499
|
const SUMl = add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);
|
|
1433
1500
|
const SUMh = add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);
|
|
1501
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1434
1502
|
SHA512_W_H[i] = SUMh | 0;
|
|
1503
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1435
1504
|
SHA512_W_L[i] = SUMl | 0;
|
|
1436
1505
|
}
|
|
1437
1506
|
let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
|
|
@@ -1442,26 +1511,40 @@ class FastSHA512 extends HashMD {
|
|
|
1442
1511
|
const CHIl = (El & Fl) ^ (~El & Gl);
|
|
1443
1512
|
const T1ll = add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);
|
|
1444
1513
|
const T1h = add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);
|
|
1514
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1445
1515
|
const T1l = T1ll | 0;
|
|
1446
1516
|
const sigma0h = rotrSH(Ah, Al, 28) ^ rotrBH(Ah, Al, 34) ^ rotrBH(Ah, Al, 39);
|
|
1447
1517
|
const sigma0l = rotrSL(Ah, Al, 28) ^ rotrBL(Ah, Al, 34) ^ rotrBL(Ah, Al, 39);
|
|
1448
1518
|
const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);
|
|
1449
1519
|
const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);
|
|
1520
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1450
1521
|
Hh = Gh | 0;
|
|
1522
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1451
1523
|
Hl = Gl | 0;
|
|
1524
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1452
1525
|
Gh = Fh | 0;
|
|
1526
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1453
1527
|
Gl = Fl | 0;
|
|
1528
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1454
1529
|
Fh = Eh | 0;
|
|
1530
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1455
1531
|
Fl = El | 0;
|
|
1456
1532
|
({ h: Eh, l: El } = add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));
|
|
1533
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1457
1534
|
Dh = Ch | 0;
|
|
1535
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1458
1536
|
Dl = Cl | 0;
|
|
1537
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1459
1538
|
Ch = Bh | 0;
|
|
1539
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1460
1540
|
Cl = Bl | 0;
|
|
1541
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1461
1542
|
Bh = Ah | 0;
|
|
1543
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1462
1544
|
Bl = Al | 0;
|
|
1463
1545
|
const T2l = add3L(sigma0l, MAJl, T1l);
|
|
1464
1546
|
Ah = add3H(T2l, sigma0h, MAJh, T1h);
|
|
1547
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1465
1548
|
Al = T2l | 0;
|
|
1466
1549
|
}
|
|
1467
1550
|
;
|
|
@@ -1493,7 +1576,7 @@ class HMAC extends Hash {
|
|
|
1493
1576
|
const key = toBytes(_key);
|
|
1494
1577
|
this.iHash = hash.create();
|
|
1495
1578
|
if (typeof this.iHash.update !== 'function') {
|
|
1496
|
-
throw new
|
|
1579
|
+
throw new TypeError('Expected instance of class which extends utils.Hash');
|
|
1497
1580
|
}
|
|
1498
1581
|
this.blockLen = this.iHash.blockLen;
|
|
1499
1582
|
this.outputLen = this.iHash.outputLen;
|
|
@@ -1568,7 +1651,8 @@ function pbkdf2Core(hash, password, salt, opts) {
|
|
|
1568
1651
|
for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {
|
|
1569
1652
|
const Ti = DK.subarray(pos, pos + PRF.outputLen);
|
|
1570
1653
|
view.setInt32(0, ti, false);
|
|
1571
|
-
|
|
1654
|
+
prfW = PRFSalt._cloneInto(prfW);
|
|
1655
|
+
prfW.update(arr).digestInto(u);
|
|
1572
1656
|
Ti.set(u.subarray(0, Ti.length));
|
|
1573
1657
|
for (let ui = 1; ui < c; ui++) {
|
|
1574
1658
|
PRF._cloneInto(prfW).update(u).digestInto(u);
|
|
@@ -1610,7 +1694,7 @@ function pbkdf2(password, salt, iterations, keylen, digest = 'sha512') {
|
|
|
1610
1694
|
// back to the original implementation.
|
|
1611
1695
|
try {
|
|
1612
1696
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
1613
|
-
const nodeCrypto = require('crypto');
|
|
1697
|
+
const nodeCrypto = require('node:crypto');
|
|
1614
1698
|
if (typeof nodeCrypto.pbkdf2Sync === 'function') {
|
|
1615
1699
|
const p = Buffer.from(password);
|
|
1616
1700
|
const s = Buffer.from(salt);
|