@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
|
@@ -191,6 +191,59 @@ function isSurrogatePair(msg, i) {
|
|
|
191
191
|
}
|
|
192
192
|
return (msg.charCodeAt(i + 1) & 0xfc00) === 0xdc00;
|
|
193
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Encode a single UTF-16 code unit (and possibly its surrogate partner)
|
|
196
|
+
* into UTF-8 bytes, appending them to `out`.
|
|
197
|
+
*
|
|
198
|
+
* Returns the index of the last consumed code unit so the caller can
|
|
199
|
+
* advance its loop variable when a surrogate pair is consumed.
|
|
200
|
+
*
|
|
201
|
+
* Inspired by stringToUtf8ByteArray() in closure-library by Google
|
|
202
|
+
* https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt#L117-L143
|
|
203
|
+
* Apache License 2.0
|
|
204
|
+
* https://github.com/google/closure-library/blob/master/LICENSE
|
|
205
|
+
*/
|
|
206
|
+
function appendUtf8CodeUnit(msg, i, out) {
|
|
207
|
+
let c = msg.charCodeAt(i);
|
|
208
|
+
if (c < 128) {
|
|
209
|
+
out.push(c);
|
|
210
|
+
return i;
|
|
211
|
+
}
|
|
212
|
+
if (c < 2048) {
|
|
213
|
+
out.push((c >> 6) | 192, (c & 63) | 128);
|
|
214
|
+
return i;
|
|
215
|
+
}
|
|
216
|
+
if (isSurrogatePair(msg, i)) {
|
|
217
|
+
c = 0x10000 + ((c & 0x03ff) << 10) + (msg.charCodeAt(i + 1) & 0x03ff);
|
|
218
|
+
out.push((c >> 18) | 240, ((c >> 12) & 63) | 128, ((c >> 6) & 63) | 128, (c & 63) | 128);
|
|
219
|
+
return i + 1;
|
|
220
|
+
}
|
|
221
|
+
out.push((c >> 12) | 224, ((c >> 6) & 63) | 128, (c & 63) | 128);
|
|
222
|
+
return i;
|
|
223
|
+
}
|
|
224
|
+
function utf8StringToArray(msg) {
|
|
225
|
+
const res = [];
|
|
226
|
+
for (let i = 0; i < msg.length; i++) {
|
|
227
|
+
i = appendUtf8CodeUnit(msg, i, res);
|
|
228
|
+
}
|
|
229
|
+
return res;
|
|
230
|
+
}
|
|
231
|
+
function hexStringToArray(msg) {
|
|
232
|
+
assertValidHex(msg);
|
|
233
|
+
const normalized = normalizeHex(msg);
|
|
234
|
+
const res = [];
|
|
235
|
+
for (let i = 0; i < normalized.length; i += 2) {
|
|
236
|
+
res.push(Number.parseInt(normalized[i] + normalized[i + 1], 16));
|
|
237
|
+
}
|
|
238
|
+
return res;
|
|
239
|
+
}
|
|
240
|
+
function numberArrayToByteArray(msg) {
|
|
241
|
+
const res = [];
|
|
242
|
+
for (let i = 0; i < msg.length; i++) {
|
|
243
|
+
res[i] = Math.trunc(msg[i]);
|
|
244
|
+
}
|
|
245
|
+
return res;
|
|
246
|
+
}
|
|
194
247
|
/**
|
|
195
248
|
*
|
|
196
249
|
* @param msg
|
|
@@ -204,52 +257,10 @@ export function toArray(msg, enc) {
|
|
|
204
257
|
if (!msg) {
|
|
205
258
|
return [];
|
|
206
259
|
}
|
|
207
|
-
const res = [];
|
|
208
260
|
if (typeof msg === 'string') {
|
|
209
|
-
|
|
210
|
-
// Inspired by stringToUtf8ByteArray() in closure-library by Google
|
|
211
|
-
// https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt#L117-L143
|
|
212
|
-
// Apache License 2.0
|
|
213
|
-
// https://github.com/google/closure-library/blob/master/LICENSE
|
|
214
|
-
let p = 0;
|
|
215
|
-
for (let i = 0; i < msg.length; i++) {
|
|
216
|
-
let c = msg.charCodeAt(i);
|
|
217
|
-
if (c < 128) {
|
|
218
|
-
res[p++] = c;
|
|
219
|
-
}
|
|
220
|
-
else if (c < 2048) {
|
|
221
|
-
res[p++] = (c >> 6) | 192;
|
|
222
|
-
res[p++] = (c & 63) | 128;
|
|
223
|
-
}
|
|
224
|
-
else if (isSurrogatePair(msg, i)) {
|
|
225
|
-
c = 0x10000 + ((c & 0x03ff) << 10) + (msg.charCodeAt(++i) & 0x03ff);
|
|
226
|
-
res[p++] = (c >> 18) | 240;
|
|
227
|
-
res[p++] = ((c >> 12) & 63) | 128;
|
|
228
|
-
res[p++] = ((c >> 6) & 63) | 128;
|
|
229
|
-
res[p++] = (c & 63) | 128;
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
res[p++] = (c >> 12) | 224;
|
|
233
|
-
res[p++] = ((c >> 6) & 63) | 128;
|
|
234
|
-
res[p++] = (c & 63) | 128;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
assertValidHex(msg);
|
|
240
|
-
msg = normalizeHex(msg);
|
|
241
|
-
for (let i = 0; i < msg.length; i += 2) {
|
|
242
|
-
res.push(parseInt(msg[i] + msg[i + 1], 16));
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
msg = msg;
|
|
248
|
-
for (let i = 0; i < msg.length; i++) {
|
|
249
|
-
res[i] = msg[i] | 0;
|
|
250
|
-
}
|
|
261
|
+
return enc === 'hex' ? hexStringToArray(msg) : utf8StringToArray(msg);
|
|
251
262
|
}
|
|
252
|
-
return
|
|
263
|
+
return numberArrayToByteArray(msg);
|
|
253
264
|
}
|
|
254
265
|
/**
|
|
255
266
|
* @deprecated
|
|
@@ -263,8 +274,7 @@ export function htonl(w) {
|
|
|
263
274
|
}
|
|
264
275
|
function toHex32(msg, endian) {
|
|
265
276
|
let res = '';
|
|
266
|
-
for (let
|
|
267
|
-
let w = msg[i];
|
|
277
|
+
for (let w of msg) {
|
|
268
278
|
if (endian === 'little') {
|
|
269
279
|
w = htonl(w);
|
|
270
280
|
}
|
|
@@ -614,7 +624,7 @@ export class SHA1 extends BaseHash {
|
|
|
614
624
|
let d = this.h[3];
|
|
615
625
|
let e = this.h[4];
|
|
616
626
|
for (i = 0; i < W.length; i++) {
|
|
617
|
-
const s =
|
|
627
|
+
const s = Math.trunc(i / 20);
|
|
618
628
|
const t = SUM32_5(rotl32(a, 5), FT_1(s, b, c, d), e, W[i], this.k[s]);
|
|
619
629
|
e = d;
|
|
620
630
|
d = c;
|
|
@@ -1000,7 +1010,7 @@ function abytes(b, ...lengths) {
|
|
|
1000
1010
|
}
|
|
1001
1011
|
function ahash(h) {
|
|
1002
1012
|
if (typeof h !== 'function' || typeof h.create !== 'function') {
|
|
1003
|
-
throw new
|
|
1013
|
+
throw new TypeError('Hash should be wrapped by utils.createHasher');
|
|
1004
1014
|
}
|
|
1005
1015
|
anumber(h.outputLen);
|
|
1006
1016
|
anumber(h.blockLen);
|
|
@@ -1020,8 +1030,8 @@ function aoutput(out, instance) {
|
|
|
1020
1030
|
}
|
|
1021
1031
|
}
|
|
1022
1032
|
function clean(...arrays) {
|
|
1023
|
-
for (
|
|
1024
|
-
|
|
1033
|
+
for (const arr of arrays)
|
|
1034
|
+
arr.fill(0);
|
|
1025
1035
|
}
|
|
1026
1036
|
function createView(arr) {
|
|
1027
1037
|
return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
|
|
@@ -1059,6 +1069,7 @@ const _32n = BigInt(32);
|
|
|
1059
1069
|
function fromBig(n, le = false) {
|
|
1060
1070
|
if (le)
|
|
1061
1071
|
return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };
|
|
1072
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1062
1073
|
return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
|
|
1063
1074
|
}
|
|
1064
1075
|
function split(lst, le = false) {
|
|
@@ -1080,13 +1091,17 @@ const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));
|
|
|
1080
1091
|
const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));
|
|
1081
1092
|
function add(Ah, Al, Bh, Bl) {
|
|
1082
1093
|
const l = (Al >>> 0) + (Bl >>> 0);
|
|
1094
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1083
1095
|
return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };
|
|
1084
1096
|
}
|
|
1085
1097
|
const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);
|
|
1098
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1086
1099
|
const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;
|
|
1087
1100
|
const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);
|
|
1101
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1088
1102
|
const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;
|
|
1089
1103
|
const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
|
|
1104
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1090
1105
|
const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;
|
|
1091
1106
|
// _md helpers
|
|
1092
1107
|
class HashMD extends Hash {
|
|
@@ -1217,13 +1232,21 @@ const K256 = Uint32Array.from([
|
|
|
1217
1232
|
]);
|
|
1218
1233
|
const SHA256_W = new Uint32Array(64);
|
|
1219
1234
|
class FastSHA256 extends HashMD {
|
|
1235
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1220
1236
|
A = SHA256_IV[0] | 0;
|
|
1237
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1221
1238
|
B = SHA256_IV[1] | 0;
|
|
1239
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1222
1240
|
C = SHA256_IV[2] | 0;
|
|
1241
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1223
1242
|
D = SHA256_IV[3] | 0;
|
|
1243
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1224
1244
|
E = SHA256_IV[4] | 0;
|
|
1245
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1225
1246
|
F = SHA256_IV[5] | 0;
|
|
1247
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1226
1248
|
G = SHA256_IV[6] | 0;
|
|
1249
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1227
1250
|
H = SHA256_IV[7] | 0;
|
|
1228
1251
|
constructor(outputLen = 32) {
|
|
1229
1252
|
super(64, outputLen, 8, false);
|
|
@@ -1233,13 +1256,21 @@ class FastSHA256 extends HashMD {
|
|
|
1233
1256
|
return [A, B, C, D, E, F, G, H];
|
|
1234
1257
|
}
|
|
1235
1258
|
set(A, B, C, D, E, F, G, H) {
|
|
1259
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1236
1260
|
this.A = A | 0;
|
|
1261
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1237
1262
|
this.B = B | 0;
|
|
1263
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1238
1264
|
this.C = C | 0;
|
|
1265
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1239
1266
|
this.D = D | 0;
|
|
1267
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1240
1268
|
this.E = E | 0;
|
|
1269
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1241
1270
|
this.F = F | 0;
|
|
1271
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1242
1272
|
this.G = G | 0;
|
|
1273
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1243
1274
|
this.H = H | 0;
|
|
1244
1275
|
}
|
|
1245
1276
|
process(view, offset) {
|
|
@@ -1370,27 +1401,43 @@ const K512 = (() => split([
|
|
|
1370
1401
|
'0x597f299cfc657e2a',
|
|
1371
1402
|
'0x5fcb6fab3ad6faec',
|
|
1372
1403
|
'0x6c44198c4a475817'
|
|
1373
|
-
].map(
|
|
1404
|
+
].map(BigInt)))();
|
|
1374
1405
|
const SHA512_Kh = (() => K512[0])();
|
|
1375
1406
|
const SHA512_Kl = (() => K512[1])();
|
|
1376
1407
|
const SHA512_W_H = new Uint32Array(80);
|
|
1377
1408
|
const SHA512_W_L = new Uint32Array(80);
|
|
1378
1409
|
class FastSHA512 extends HashMD {
|
|
1410
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1379
1411
|
Ah = SHA512_IV[0] | 0;
|
|
1412
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1380
1413
|
Al = SHA512_IV[1] | 0;
|
|
1414
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1381
1415
|
Bh = SHA512_IV[2] | 0;
|
|
1416
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1382
1417
|
Bl = SHA512_IV[3] | 0;
|
|
1418
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1383
1419
|
Ch = SHA512_IV[4] | 0;
|
|
1420
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1384
1421
|
Cl = SHA512_IV[5] | 0;
|
|
1422
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1385
1423
|
Dh = SHA512_IV[6] | 0;
|
|
1424
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1386
1425
|
Dl = SHA512_IV[7] | 0;
|
|
1426
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1387
1427
|
Eh = SHA512_IV[8] | 0;
|
|
1428
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1388
1429
|
El = SHA512_IV[9] | 0;
|
|
1430
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1389
1431
|
Fh = SHA512_IV[10] | 0;
|
|
1432
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1390
1433
|
Fl = SHA512_IV[11] | 0;
|
|
1434
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1391
1435
|
Gh = SHA512_IV[12] | 0;
|
|
1436
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1392
1437
|
Gl = SHA512_IV[13] | 0;
|
|
1438
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1393
1439
|
Hh = SHA512_IV[14] | 0;
|
|
1440
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1394
1441
|
Hl = SHA512_IV[15] | 0;
|
|
1395
1442
|
constructor(outputLen = 64) {
|
|
1396
1443
|
super(128, outputLen, 16, false);
|
|
@@ -1400,40 +1447,62 @@ class FastSHA512 extends HashMD {
|
|
|
1400
1447
|
return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];
|
|
1401
1448
|
}
|
|
1402
1449
|
set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {
|
|
1450
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1403
1451
|
this.Ah = Ah | 0;
|
|
1452
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1404
1453
|
this.Al = Al | 0;
|
|
1454
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1405
1455
|
this.Bh = Bh | 0;
|
|
1456
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1406
1457
|
this.Bl = Bl | 0;
|
|
1458
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1407
1459
|
this.Ch = Ch | 0;
|
|
1460
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1408
1461
|
this.Cl = Cl | 0;
|
|
1462
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1409
1463
|
this.Dh = Dh | 0;
|
|
1464
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1410
1465
|
this.Dl = Dl | 0;
|
|
1466
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1411
1467
|
this.Eh = Eh | 0;
|
|
1468
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1412
1469
|
this.El = El | 0;
|
|
1470
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1413
1471
|
this.Fh = Fh | 0;
|
|
1472
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1414
1473
|
this.Fl = Fl | 0;
|
|
1474
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1415
1475
|
this.Gh = Gh | 0;
|
|
1476
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1416
1477
|
this.Gl = Gl | 0;
|
|
1478
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1417
1479
|
this.Hh = Hh | 0;
|
|
1480
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1418
1481
|
this.Hl = Hl | 0;
|
|
1419
1482
|
}
|
|
1420
1483
|
process(view, offset) {
|
|
1421
|
-
for (let i = 0; i < 16; i++, offset +=
|
|
1484
|
+
for (let i = 0; i < 16; i++, offset += 8) {
|
|
1422
1485
|
SHA512_W_H[i] = view.getUint32(offset);
|
|
1423
|
-
SHA512_W_L[i] = view.getUint32(
|
|
1486
|
+
SHA512_W_L[i] = view.getUint32(offset + 4);
|
|
1424
1487
|
}
|
|
1425
1488
|
for (let i = 16; i < 80; i++) {
|
|
1489
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1426
1490
|
const W15h = SHA512_W_H[i - 15] | 0;
|
|
1491
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1427
1492
|
const W15l = SHA512_W_L[i - 15] | 0;
|
|
1428
1493
|
const s0h = rotrSH(W15h, W15l, 1) ^ rotrSH(W15h, W15l, 8) ^ shrSH(W15h, W15l, 7);
|
|
1429
1494
|
const s0l = rotrSL(W15h, W15l, 1) ^ rotrSL(W15h, W15l, 8) ^ shrSL(W15h, W15l, 7);
|
|
1495
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1430
1496
|
const W2h = SHA512_W_H[i - 2] | 0;
|
|
1497
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1431
1498
|
const W2l = SHA512_W_L[i - 2] | 0;
|
|
1432
1499
|
const s1h = rotrSH(W2h, W2l, 19) ^ rotrBH(W2h, W2l, 61) ^ shrSH(W2h, W2l, 6);
|
|
1433
1500
|
const s1l = rotrSL(W2h, W2l, 19) ^ rotrBL(W2h, W2l, 61) ^ shrSL(W2h, W2l, 6);
|
|
1434
1501
|
const SUMl = add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);
|
|
1435
1502
|
const SUMh = add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);
|
|
1503
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1436
1504
|
SHA512_W_H[i] = SUMh | 0;
|
|
1505
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1437
1506
|
SHA512_W_L[i] = SUMl | 0;
|
|
1438
1507
|
}
|
|
1439
1508
|
let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
|
|
@@ -1444,26 +1513,40 @@ class FastSHA512 extends HashMD {
|
|
|
1444
1513
|
const CHIl = (El & Fl) ^ (~El & Gl);
|
|
1445
1514
|
const T1ll = add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);
|
|
1446
1515
|
const T1h = add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);
|
|
1516
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1447
1517
|
const T1l = T1ll | 0;
|
|
1448
1518
|
const sigma0h = rotrSH(Ah, Al, 28) ^ rotrBH(Ah, Al, 34) ^ rotrBH(Ah, Al, 39);
|
|
1449
1519
|
const sigma0l = rotrSL(Ah, Al, 28) ^ rotrBL(Ah, Al, 34) ^ rotrBL(Ah, Al, 39);
|
|
1450
1520
|
const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);
|
|
1451
1521
|
const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);
|
|
1522
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1452
1523
|
Hh = Gh | 0;
|
|
1524
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1453
1525
|
Hl = Gl | 0;
|
|
1526
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1454
1527
|
Gh = Fh | 0;
|
|
1528
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1455
1529
|
Gl = Fl | 0;
|
|
1530
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1456
1531
|
Fh = Eh | 0;
|
|
1532
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1457
1533
|
Fl = El | 0;
|
|
1458
1534
|
({ h: Eh, l: El } = add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));
|
|
1535
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1459
1536
|
Dh = Ch | 0;
|
|
1537
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1460
1538
|
Dl = Cl | 0;
|
|
1539
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1461
1540
|
Ch = Bh | 0;
|
|
1541
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1462
1542
|
Cl = Bl | 0;
|
|
1543
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1463
1544
|
Bh = Ah | 0;
|
|
1545
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1464
1546
|
Bl = Al | 0;
|
|
1465
1547
|
const T2l = add3L(sigma0l, MAJl, T1l);
|
|
1466
1548
|
Ah = add3H(T2l, sigma0h, MAJh, T1h);
|
|
1549
|
+
// eslint-disable-next-line no-bitwise -- ToInt32 (ECMA-262); not truncation. Required for SHA arithmetic.
|
|
1467
1550
|
Al = T2l | 0;
|
|
1468
1551
|
}
|
|
1469
1552
|
;
|
|
@@ -1499,7 +1582,7 @@ class HMAC extends Hash {
|
|
|
1499
1582
|
const key = toBytes(_key);
|
|
1500
1583
|
this.iHash = hash.create();
|
|
1501
1584
|
if (typeof this.iHash.update !== 'function') {
|
|
1502
|
-
throw new
|
|
1585
|
+
throw new TypeError('Expected instance of class which extends utils.Hash');
|
|
1503
1586
|
}
|
|
1504
1587
|
this.blockLen = this.iHash.blockLen;
|
|
1505
1588
|
this.outputLen = this.iHash.outputLen;
|
|
@@ -1574,7 +1657,8 @@ function pbkdf2Core(hash, password, salt, opts) {
|
|
|
1574
1657
|
for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {
|
|
1575
1658
|
const Ti = DK.subarray(pos, pos + PRF.outputLen);
|
|
1576
1659
|
view.setInt32(0, ti, false);
|
|
1577
|
-
|
|
1660
|
+
prfW = PRFSalt._cloneInto(prfW);
|
|
1661
|
+
prfW.update(arr).digestInto(u);
|
|
1578
1662
|
Ti.set(u.subarray(0, Ti.length));
|
|
1579
1663
|
for (let ui = 1; ui < c; ui++) {
|
|
1580
1664
|
PRF._cloneInto(prfW).update(u).digestInto(u);
|
|
@@ -1616,7 +1700,7 @@ export function pbkdf2(password, salt, iterations, keylen, digest = 'sha512') {
|
|
|
1616
1700
|
// back to the original implementation.
|
|
1617
1701
|
try {
|
|
1618
1702
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
1619
|
-
const nodeCrypto = require('crypto');
|
|
1703
|
+
const nodeCrypto = require('node:crypto');
|
|
1620
1704
|
if (typeof nodeCrypto.pbkdf2Sync === 'function') {
|
|
1621
1705
|
const p = Buffer.from(password);
|
|
1622
1706
|
const s = Buffer.from(salt);
|