@bsv/sdk 1.3.12 → 1.3.14
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/dist/cjs/package.json +15 -3
- package/dist/cjs/src/auth/Peer.js +83 -57
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/SessionManager.js +14 -9
- package/dist/cjs/src/auth/SessionManager.js.map +1 -1
- package/dist/cjs/src/auth/certificates/Certificate.js +16 -10
- package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -23
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +2 -2
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +62 -46
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js +1 -0
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -43
- package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/cjs/src/auth/utils/createNonce.js +2 -1
- package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/validateCertificates.js +5 -2
- package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js +2 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/cjs/src/compat/BSM.js +7 -17
- package/dist/cjs/src/compat/BSM.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +172 -133
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +63 -73
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +102 -106
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/compat/Utxo.js +2 -2
- package/dist/cjs/src/compat/Utxo.js.map +1 -1
- package/dist/cjs/src/compat/index.js +7 -17
- package/dist/cjs/src/compat/index.js.map +1 -1
- package/dist/cjs/src/messages/EncryptedMessage.js +3 -1
- package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/cjs/src/messages/SignedMessage.js +1 -0
- package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
- package/dist/cjs/src/messages/index.js +7 -17
- package/dist/cjs/src/messages/index.js.map +1 -1
- package/dist/cjs/src/overlay-tools/LookupResolver.js +54 -35
- package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +40 -28
- package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/cjs/src/primitives/AESGCM.js +6 -5
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
- package/dist/cjs/src/primitives/BasePoint.js +1 -1
- package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js +50 -62
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/Curve.js +46 -22
- package/dist/cjs/src/primitives/Curve.js.map +1 -1
- package/dist/cjs/src/primitives/DRBG.js +2 -8
- package/dist/cjs/src/primitives/DRBG.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js +51 -35
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +191 -216
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/JacobianPoint.js +19 -5
- package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/cjs/src/primitives/K256.js.map +1 -1
- package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
- package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/cjs/src/primitives/Point.js +117 -88
- package/dist/cjs/src/primitives/Point.js.map +1 -1
- package/dist/cjs/src/primitives/Polynomial.js +4 -2
- package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +32 -33
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +6 -5
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js +1 -1
- package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
- package/dist/cjs/src/primitives/Schnorr.js +21 -15
- package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +8 -7
- package/dist/cjs/src/primitives/Signature.js.map +1 -1
- package/dist/cjs/src/primitives/SymmetricKey.js +13 -13
- package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/cjs/src/primitives/TransactionSignature.js +31 -29
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/index.js +7 -17
- package/dist/cjs/src/primitives/index.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +79 -68
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/script/OP.js +3 -3
- package/dist/cjs/src/script/OP.js.map +1 -1
- package/dist/cjs/src/script/Script.js +12 -10
- package/dist/cjs/src/script/Script.js.map +1 -1
- package/dist/cjs/src/script/Spend.js +47 -49
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/templates/P2PKH.js +24 -12
- package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +28 -23
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/script/templates/RPuzzle.js +10 -6
- package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +2 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +177 -154
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefParty.js +24 -24
- package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +26 -18
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/Broadcaster.js +3 -2
- package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +64 -37
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +111 -137
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/ARC.js +25 -16
- package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -1
- package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -1
- package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js +5 -3
- package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/FetchHttpClient.js +5 -2
- package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js +5 -3
- package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/cjs/src/transaction/http/index.js.map +1 -1
- package/dist/cjs/src/transaction/index.js.map +1 -1
- package/dist/cjs/src/wallet/CachedKeyDeriver.js +91 -66
- package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/KeyDeriver.js +61 -52
- package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/cjs/src/wallet/ProtoWallet.js +79 -29
- package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js +7 -2
- package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
- package/dist/cjs/src/wallet/WalletError.js +2 -2
- package/dist/cjs/src/wallet/WalletError.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +4 -3
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +2 -2
- package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +102 -43
- package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/XDM.js +8 -3
- package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js +28 -28
- package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/mod.js +15 -15
- package/dist/esm/src/auth/Peer.js +75 -54
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/SessionManager.js +14 -9
- package/dist/esm/src/auth/SessionManager.js.map +1 -1
- package/dist/esm/src/auth/certificates/Certificate.js +15 -11
- package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -23
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -2
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +64 -47
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js +1 -0
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +69 -43
- package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
- package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/validateCertificates.js +6 -3
- package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/esm/src/compat/BSM.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +165 -116
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +56 -56
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +95 -89
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/compat/Utxo.js +1 -1
- package/dist/esm/src/compat/Utxo.js.map +1 -1
- package/dist/esm/src/messages/EncryptedMessage.js +3 -1
- package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
- package/dist/esm/src/messages/SignedMessage.js +1 -0
- package/dist/esm/src/messages/SignedMessage.js.map +1 -1
- package/dist/esm/src/overlay-tools/LookupResolver.js +53 -35
- package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +40 -28
- package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js +1 -0
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BasePoint.js +1 -1
- package/dist/esm/src/primitives/BasePoint.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js +50 -62
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/Curve.js +45 -22
- package/dist/esm/src/primitives/Curve.js.map +1 -1
- package/dist/esm/src/primitives/DRBG.js +2 -8
- package/dist/esm/src/primitives/DRBG.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js +50 -35
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +188 -213
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/JacobianPoint.js +18 -5
- package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
- package/dist/esm/src/primitives/K256.js.map +1 -1
- package/dist/esm/src/primitives/Mersenne.js.map +1 -1
- package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
- package/dist/esm/src/primitives/Point.js +107 -88
- package/dist/esm/src/primitives/Point.js.map +1 -1
- package/dist/esm/src/primitives/Polynomial.js +4 -2
- package/dist/esm/src/primitives/Polynomial.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +25 -16
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +7 -6
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/ReductionContext.js +1 -1
- package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
- package/dist/esm/src/primitives/Schnorr.js +21 -15
- package/dist/esm/src/primitives/Schnorr.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +8 -7
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/SymmetricKey.js +13 -13
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js +22 -12
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +76 -66
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/script/OP.js +3 -3
- package/dist/esm/src/script/OP.js.map +1 -1
- package/dist/esm/src/script/Script.js +12 -10
- package/dist/esm/src/script/Script.js.map +1 -1
- package/dist/esm/src/script/Spend.js +39 -32
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/templates/P2PKH.js +26 -11
- package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +29 -22
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/script/templates/RPuzzle.js +11 -6
- package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
- package/dist/esm/src/totp/totp.js +2 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +176 -154
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefParty.js +24 -24
- package/dist/esm/src/transaction/BeefParty.js.map +1 -1
- package/dist/esm/src/transaction/BeefTx.js +26 -18
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +61 -36
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +105 -138
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/ARC.js +25 -16
- package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
- package/dist/esm/src/transaction/http/DefaultHttpClient.js +3 -2
- package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/FetchHttpClient.js +4 -2
- package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/NodejsHttpClient.js +5 -3
- package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
- package/dist/esm/src/transaction/http/index.js.map +1 -1
- package/dist/esm/src/transaction/index.js.map +1 -1
- package/dist/esm/src/wallet/CachedKeyDeriver.js +91 -66
- package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/KeyDeriver.js +60 -52
- package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
- package/dist/esm/src/wallet/ProtoWallet.js +75 -29
- package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js +7 -2
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/WalletError.js +2 -2
- package/dist/esm/src/wallet/WalletError.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +4 -4
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +2 -2
- package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +95 -43
- package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
- package/dist/esm/src/wallet/substrates/XDM.js +8 -3
- package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js +28 -28
- package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/mod.d.ts +15 -15
- package/dist/types/src/auth/Peer.d.ts +10 -10
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/SessionManager.d.ts +4 -4
- package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/Certificate.d.ts +6 -6
- package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +5 -5
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +23 -22
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
- package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
- package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
- package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
- package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
- package/dist/types/src/compat/BSM.d.ts +1 -1
- package/dist/types/src/compat/BSM.d.ts.map +1 -1
- package/dist/types/src/compat/ECIES.d.ts +36 -36
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts +51 -51
- package/dist/types/src/compat/HD.d.ts.map +1 -1
- package/dist/types/src/compat/Mnemonic.d.ts +79 -79
- package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
- package/dist/types/src/compat/Utxo.d.ts.map +1 -1
- package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
- package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
- package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +17 -17
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +14 -14
- package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
- package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
- package/dist/types/src/primitives/BasePoint.d.ts +8 -8
- package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Curve.d.ts +14 -7
- package/dist/types/src/primitives/Curve.d.ts.map +1 -1
- package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts +1 -1
- package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts +11 -11
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
- package/dist/types/src/primitives/Point.d.ts +14 -10
- package/dist/types/src/primitives/Point.d.ts.map +1 -1
- package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
- package/dist/types/src/primitives/PrivateKey.d.ts +2 -2
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
- package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
- package/dist/types/src/primitives/Random.d.ts.map +1 -1
- package/dist/types/src/primitives/Schnorr.d.ts +14 -14
- package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
- package/dist/types/src/primitives/Signature.d.ts +1 -1
- package/dist/types/src/primitives/Signature.d.ts.map +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts +13 -13
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
- package/dist/types/src/primitives/TransactionSignature.d.ts +4 -4
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +3 -6
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/script/Script.d.ts +3 -3
- package/dist/types/src/script/Script.d.ts.map +1 -1
- package/dist/types/src/script/ScriptTemplate.d.ts +2 -2
- package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +1 -2
- 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/totp/totp.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +96 -96
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefParty.d.ts +22 -22
- package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefTx.d.ts +5 -5
- package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
- package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
- package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts +4 -12
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
- package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
- package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +1 -1
- package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts +5 -5
- package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
- package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +3 -3
- package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
- package/dist/types/src/transaction/http/index.d.ts.map +1 -1
- package/dist/types/src/transaction/index.d.ts.map +1 -1
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts +58 -58
- package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/KeyDeriver.d.ts +78 -78
- package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
- package/dist/types/src/wallet/ProtoWallet.d.ts +10 -10
- package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +151 -152
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +5 -5
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +6 -6
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +6 -6
- 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 +1 -1
- package/docs/auth.md +92 -82
- package/docs/compat.md +24 -24
- package/docs/messages.md +7 -5
- package/docs/overlay-tools.md +21 -21
- package/docs/primitives.md +336 -315
- package/docs/script.md +35 -35
- package/docs/swagger/dist/swagger-initializer.js +7 -7
- package/docs/swagger/dist/swagger-ui-bundle.js +1 -1
- package/docs/swagger/dist/swagger-ui-es-bundle-core.js +2 -2
- package/docs/swagger/dist/swagger-ui-es-bundle.js +1 -1
- package/docs/swagger/dist/swagger-ui-standalone-preset.js +1 -1
- package/docs/swagger/dist/swagger-ui.js +2 -2
- package/docs/totp.md +5 -5
- package/docs/transaction.md +103 -105
- package/docs/wallet-substrates.md +17 -17
- package/docs/wallet.md +202 -204
- package/mod.ts +15 -15
- package/package.json +15 -3
- package/src/auth/Peer.ts +271 -121
- package/src/auth/SessionManager.ts +17 -10
- package/src/auth/__tests/Peer.test.ts +361 -179
- package/src/auth/__tests/SessionManager.test.ts +67 -19
- package/src/auth/__tests/build.test.ts +11 -0
- package/src/auth/certificates/Certificate.ts +27 -14
- package/src/auth/certificates/MasterCertificate.ts +106 -62
- package/src/auth/certificates/VerifiableCertificate.ts +30 -8
- package/src/auth/certificates/__tests/Certificate.test.ts +32 -17
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +171 -68
- package/src/auth/certificates/__tests/MasterCertificate.test.ts +63 -47
- package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +42 -31
- package/src/auth/certificates/index.ts +1 -1
- package/src/auth/clients/AuthFetch.ts +1 -0
- package/src/auth/clients/index.ts +1 -1
- package/src/auth/transports/SimplifiedFetchTransport.ts +145 -72
- package/src/auth/transports/index.ts +1 -1
- package/src/auth/utils/__tests/cryptononce.test.ts +52 -23
- package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +56 -30
- package/src/auth/utils/__tests/validateCertificates.test.ts +53 -31
- package/src/auth/utils/createNonce.ts +11 -3
- package/src/auth/utils/getVerifiableCertificates.ts +12 -7
- package/src/auth/utils/validateCertificates.ts +57 -39
- package/src/auth/utils/verifyNonce.ts +6 -2
- package/src/compat/BSM.ts +10 -2
- package/src/compat/ECIES.ts +265 -141
- package/src/compat/HD.ts +81 -63
- package/src/compat/Mnemonic.ts +104 -91
- package/src/compat/Utxo.ts +8 -5
- package/src/compat/__tests/BSM.test.ts +42 -16
- package/src/compat/__tests/ECIES.test.ts +117 -52
- package/src/compat/__tests/HD.test.ts +55 -42
- package/src/compat/__tests/Mnemonic.test.ts +11 -12
- package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
- package/src/messages/EncryptedMessage.ts +6 -2
- package/src/messages/SignedMessage.ts +14 -8
- package/src/messages/__tests/EncryptedMessage.test.ts +23 -24
- package/src/messages/__tests/SignedMessage.test.ts +17 -11
- package/src/overlay-tools/LookupResolver.ts +108 -56
- package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -23
- package/src/overlay-tools/SHIPBroadcaster.ts +135 -59
- package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
- package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
- package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
- package/src/primitives/AESGCM.ts +2 -0
- package/src/primitives/BasePoint.ts +4 -4
- package/src/primitives/BigNumber.ts +99 -90
- package/src/primitives/Curve.ts +117 -46
- package/src/primitives/DRBG.ts +9 -11
- package/src/primitives/ECDSA.ts +109 -63
- package/src/primitives/Hash.ts +492 -321
- package/src/primitives/JacobianPoint.ts +67 -19
- package/src/primitives/Point.ts +254 -152
- package/src/primitives/Polynomial.ts +8 -3
- package/src/primitives/PrivateKey.ts +41 -17
- package/src/primitives/PublicKey.ts +13 -3
- package/src/primitives/Random.ts +14 -8
- package/src/primitives/ReductionContext.ts +1 -1
- package/src/primitives/Schnorr.ts +40 -18
- package/src/primitives/Signature.ts +26 -16
- package/src/primitives/SymmetricKey.ts +14 -14
- package/src/primitives/TransactionSignature.ts +41 -17
- package/src/primitives/__tests/AESGCM.test.ts +457 -151
- package/src/primitives/__tests/BRC42.private.vectors.ts +30 -15
- package/src/primitives/__tests/BRC42.public.vectors.ts +30 -15
- package/src/primitives/__tests/BigNumber.arithmatic.test.ts +344 -125
- package/src/primitives/__tests/BigNumber.binary.test.ts +148 -67
- package/src/primitives/__tests/BigNumber.constructor.test.ts +65 -25
- package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -11
- package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
- package/src/primitives/__tests/BigNumber.serializers.test.ts +41 -15
- package/src/primitives/__tests/BigNumber.utils.test.ts +132 -42
- package/src/primitives/__tests/Curve.unit.test.ts +75 -53
- package/src/primitives/__tests/DRBG.test.ts +1 -1
- package/src/primitives/__tests/DRBG.vectors.ts +45 -75
- package/src/primitives/__tests/ECDH.test.ts +15 -8
- package/src/primitives/__tests/ECDSA.test.ts +12 -6
- package/src/primitives/__tests/HMAC.test.ts +24 -18
- package/src/primitives/__tests/Hash.test.ts +57 -46
- package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
- package/src/primitives/__tests/PrivateKey.split.test.ts +33 -11
- package/src/primitives/__tests/PrivateKey.test.ts +11 -10
- package/src/primitives/__tests/PublicKey.test.ts +64 -53
- package/src/primitives/__tests/Random.test.ts +1 -1
- package/src/primitives/__tests/Reader.test.ts +240 -219
- package/src/primitives/__tests/ReductionContext.test.ts +98 -61
- package/src/primitives/__tests/Schnorr.test.ts +249 -237
- package/src/primitives/__tests/SymmetricKey.test.ts +18 -15
- package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
- package/src/primitives/__tests/Writer.test.ts +23 -13
- package/src/primitives/__tests/bug-31.test.ts +6 -10
- package/src/primitives/__tests/utils.test.ts +70 -19
- package/src/primitives/utils.ts +103 -79
- package/src/script/Script.ts +18 -12
- package/src/script/ScriptTemplate.ts +3 -5
- package/src/script/Spend.ts +306 -108
- package/src/script/__tests/Script.test.ts +73 -55
- package/src/script/__tests/Spend.test.ts +208 -83
- package/src/script/__tests/SpendComplex.test.ts +19 -13
- package/src/script/__tests/script.invalid.vectors.ts +428 -1796
- package/src/script/__tests/script.valid.vectors.ts +728 -2764
- package/src/script/templates/P2PKH.ts +34 -12
- package/src/script/templates/PushDrop.ts +65 -31
- package/src/script/templates/RPuzzle.ts +29 -8
- package/src/script/templates/__tests/PushDrop.test.ts +146 -41
- package/src/totp/__tests/totp.test.ts +45 -44
- package/src/totp/totp.ts +3 -2
- package/src/transaction/Beef.ts +269 -174
- package/src/transaction/BeefParty.ts +41 -31
- package/src/transaction/BeefTx.ts +36 -26
- package/src/transaction/Broadcaster.ts +10 -6
- package/src/transaction/ChainTracker.ts +2 -2
- package/src/transaction/FeeModel.ts +0 -1
- package/src/transaction/MerklePath.ts +124 -59
- package/src/transaction/Transaction.ts +188 -187
- package/src/transaction/TransactionOutput.ts +0 -1
- package/src/transaction/__tests/Beef.test.ts +390 -287
- package/src/transaction/__tests/MerklePath.test.ts +59 -26
- package/src/transaction/__tests/Transaction.benchmarks.test.ts +231 -201
- package/src/transaction/__tests/Transaction.test.ts +758 -482
- package/src/transaction/__tests/bigtx.vectors.ts +2 -1
- package/src/transaction/__tests/bump.invalid.vectors.ts +24 -6
- package/src/transaction/__tests/bump.valid.vectors.ts +6 -2
- package/src/transaction/__tests/tx.invalid.vectors.ts +881 -185
- package/src/transaction/__tests/tx.valid.vectors.ts +1210 -257
- package/src/transaction/broadcasters/ARC.ts +69 -38
- package/src/transaction/broadcasters/DefaultBroadcaster.ts +9 -3
- package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +20 -7
- package/src/transaction/broadcasters/__tests/ARC.test.ts +127 -59
- package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +27 -18
- package/src/transaction/chaintrackers/DefaultChainTracker.ts +1 -1
- package/src/transaction/chaintrackers/WhatsOnChain.ts +27 -11
- package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +59 -23
- package/src/transaction/fee-models/SatoshisPerKilobyte.ts +9 -5
- package/src/transaction/http/DefaultHttpClient.ts +5 -4
- package/src/transaction/http/FetchHttpClient.ts +18 -9
- package/src/transaction/http/HttpClient.ts +27 -22
- package/src/transaction/http/NodejsHttpClient.ts +23 -9
- package/src/transaction/http/index.ts +5 -1
- package/src/transaction/index.ts +5 -1
- package/src/wallet/CachedKeyDeriver.ts +151 -82
- package/src/wallet/KeyDeriver.ts +186 -105
- package/src/wallet/ProtoWallet.ts +121 -52
- package/src/wallet/Wallet.interfaces.ts +167 -156
- package/src/wallet/WalletClient.ts +314 -59
- package/src/wallet/WalletError.ts +2 -2
- package/src/wallet/__tests/CachedKeyDeriver.test.ts +86 -27
- package/src/wallet/__tests/KeyDeriver.test.ts +136 -33
- package/src/wallet/__tests/ProtoWallet.test.ts +190 -102
- package/src/wallet/substrates/HTTPWalletJSON.ts +250 -67
- package/src/wallet/substrates/HTTPWalletWire.ts +7 -3
- package/src/wallet/substrates/WalletWireCalls.ts +2 -2
- package/src/wallet/substrates/WalletWireProcessor.ts +1412 -1277
- package/src/wallet/substrates/WalletWireTransceiver.ts +713 -138
- package/src/wallet/substrates/XDM.ts +425 -36
- package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +488 -225
- package/src/wallet/substrates/__tests/XDM.test.ts +232 -234
- package/src/wallet/substrates/window.CWI.ts +520 -61
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sha512hmac = exports.sha256hmac = exports.hash160 = exports.hash256 = exports.sha512 = exports.sha256 = exports.sha1 = exports.ripemd160 = exports.SHA512HMAC = exports.SHA1HMAC = exports.SHA256HMAC = exports.SHA512 = exports.SHA1 = exports.SHA256 = exports.RIPEMD160 = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
exports.pbkdf2 = exports.sha512hmac = exports.sha256hmac = exports.hash160 = exports.hash256 = exports.sha512 = exports.sha256 = exports.sha1 = exports.ripemd160 = exports.SHA512HMAC = exports.SHA1HMAC = exports.SHA256HMAC = exports.SHA512 = exports.SHA1 = exports.SHA256 = exports.RIPEMD160 = exports.toArray = void 0;
|
|
4
|
+
// @ts-nocheck
|
|
5
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
6
6
|
const assert = (expression, message = 'Hash assertion failed') => {
|
|
7
7
|
if (!expression) {
|
|
8
8
|
throw new Error(message);
|
|
@@ -114,7 +114,6 @@ class BaseHash {
|
|
|
114
114
|
assert(this.pending === null);
|
|
115
115
|
return this._digest();
|
|
116
116
|
}
|
|
117
|
-
;
|
|
118
117
|
/**
|
|
119
118
|
* Finalizes the hash computation and returns the hash value/result as a hex string.
|
|
120
119
|
*
|
|
@@ -130,7 +129,6 @@ class BaseHash {
|
|
|
130
129
|
assert(this.pending === null);
|
|
131
130
|
return this._digestHex();
|
|
132
131
|
}
|
|
133
|
-
;
|
|
134
132
|
/**
|
|
135
133
|
* [Private Method] Used internally to prepare the padding for the final stage of the hash computation.
|
|
136
134
|
*
|
|
@@ -140,6 +138,7 @@ class BaseHash {
|
|
|
140
138
|
* @returns Returns an array denoting the padding.
|
|
141
139
|
*/
|
|
142
140
|
_pad() {
|
|
141
|
+
//
|
|
143
142
|
let len = this.pendingTotal;
|
|
144
143
|
const bytes = this._delta8;
|
|
145
144
|
const k = bytes - ((len + this.padLength) % bytes);
|
|
@@ -182,13 +181,13 @@ class BaseHash {
|
|
|
182
181
|
}
|
|
183
182
|
}
|
|
184
183
|
function isSurrogatePair(msg, i) {
|
|
185
|
-
if ((msg.charCodeAt(i) &
|
|
184
|
+
if ((msg.charCodeAt(i) & 0xfc00) !== 0xd800) {
|
|
186
185
|
return false;
|
|
187
186
|
}
|
|
188
187
|
if (i < 0 || i + 1 >= msg.length) {
|
|
189
188
|
return false;
|
|
190
189
|
}
|
|
191
|
-
return (msg.charCodeAt(i + 1) &
|
|
190
|
+
return (msg.charCodeAt(i + 1) & 0xfc00) === 0xdc00;
|
|
192
191
|
}
|
|
193
192
|
/**
|
|
194
193
|
*
|
|
@@ -207,7 +206,7 @@ function toArray(msg, enc) {
|
|
|
207
206
|
if (typeof msg === 'string') {
|
|
208
207
|
if (enc !== 'hex') {
|
|
209
208
|
// Inspired by stringToUtf8ByteArray() in closure-library by Google
|
|
210
|
-
// https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt
|
|
209
|
+
// https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt#L117-L143
|
|
211
210
|
// Apache License 2.0
|
|
212
211
|
// https://github.com/google/closure-library/blob/master/LICENSE
|
|
213
212
|
let p = 0;
|
|
@@ -221,7 +220,7 @@ function toArray(msg, enc) {
|
|
|
221
220
|
res[p++] = (c & 63) | 128;
|
|
222
221
|
}
|
|
223
222
|
else if (isSurrogatePair(msg, i)) {
|
|
224
|
-
c = 0x10000 + ((c &
|
|
223
|
+
c = 0x10000 + ((c & 0x03ff) << 10) + (msg.charCodeAt(++i) & 0x03ff);
|
|
225
224
|
res[p++] = (c >> 18) | 240;
|
|
226
225
|
res[p++] = ((c >> 12) & 63) | 128;
|
|
227
226
|
res[p++] = ((c >> 6) & 63) | 128;
|
|
@@ -235,7 +234,7 @@ function toArray(msg, enc) {
|
|
|
235
234
|
}
|
|
236
235
|
}
|
|
237
236
|
else {
|
|
238
|
-
msg = msg.replace(/[^a-z0-9]+/
|
|
237
|
+
msg = msg.replace(/[^a-z0-9]+/gi, '');
|
|
239
238
|
if (msg.length % 2 !== 0) {
|
|
240
239
|
msg = '0' + msg;
|
|
241
240
|
}
|
|
@@ -252,6 +251,7 @@ function toArray(msg, enc) {
|
|
|
252
251
|
}
|
|
253
252
|
return res;
|
|
254
253
|
}
|
|
254
|
+
exports.toArray = toArray;
|
|
255
255
|
function htonl(w) {
|
|
256
256
|
const res = (w >>> 24) |
|
|
257
257
|
((w >>> 8) & 0xff00) |
|
|
@@ -361,7 +361,7 @@ function FT_1(s, x, y, z) {
|
|
|
361
361
|
}
|
|
362
362
|
}
|
|
363
363
|
function ch32(x, y, z) {
|
|
364
|
-
return (x & y) ^ (
|
|
364
|
+
return (x & y) ^ (~x & z);
|
|
365
365
|
}
|
|
366
366
|
function maj32(x, y, z) {
|
|
367
367
|
return (x & y) ^ (x & z) ^ (y & z);
|
|
@@ -382,48 +382,44 @@ function G1_256(x) {
|
|
|
382
382
|
return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);
|
|
383
383
|
}
|
|
384
384
|
const r = [
|
|
385
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
|
|
385
|
+
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15,
|
|
386
|
+
3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11,
|
|
387
|
+
5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7,
|
|
388
|
+
12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
|
|
390
389
|
];
|
|
391
390
|
const rh = [
|
|
392
|
-
5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
|
|
391
|
+
5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5,
|
|
392
|
+
10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0,
|
|
393
|
+
4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1,
|
|
394
|
+
5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
|
|
397
395
|
];
|
|
398
396
|
const s = [
|
|
399
|
-
11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
|
|
400
|
-
7,
|
|
401
|
-
11,
|
|
402
|
-
11,
|
|
403
|
-
9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
|
|
397
|
+
11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7,
|
|
398
|
+
15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5,
|
|
399
|
+
12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5,
|
|
400
|
+
11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
|
|
404
401
|
];
|
|
405
402
|
const sh = [
|
|
406
|
-
8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
|
|
407
|
-
9,
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
|
|
403
|
+
8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8,
|
|
404
|
+
9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14,
|
|
405
|
+
13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5,
|
|
406
|
+
12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
|
|
411
407
|
];
|
|
412
408
|
function f(j, x, y, z) {
|
|
413
409
|
if (j <= 15) {
|
|
414
410
|
return x ^ y ^ z;
|
|
415
411
|
}
|
|
416
412
|
else if (j <= 31) {
|
|
417
|
-
return (x & y) | (
|
|
413
|
+
return (x & y) | (~x & z);
|
|
418
414
|
}
|
|
419
415
|
else if (j <= 47) {
|
|
420
|
-
return (x |
|
|
416
|
+
return (x | ~y) ^ z;
|
|
421
417
|
}
|
|
422
418
|
else if (j <= 63) {
|
|
423
|
-
return (x & z) | (y &
|
|
419
|
+
return (x & z) | (y & ~z);
|
|
424
420
|
}
|
|
425
421
|
else {
|
|
426
|
-
return x ^ (y |
|
|
422
|
+
return x ^ (y | ~z);
|
|
427
423
|
}
|
|
428
424
|
}
|
|
429
425
|
function K(j) {
|
|
@@ -468,16 +464,16 @@ function sum64(buf, pos, ah, al) {
|
|
|
468
464
|
buf[pos] = hi >>> 0;
|
|
469
465
|
buf[pos + 1] = lo;
|
|
470
466
|
}
|
|
471
|
-
function
|
|
467
|
+
function sum64HI(ah, al, bh, bl) {
|
|
472
468
|
const lo = (al + bl) >>> 0;
|
|
473
469
|
const hi = (lo < al ? 1 : 0) + ah + bh;
|
|
474
470
|
return hi >>> 0;
|
|
475
471
|
}
|
|
476
|
-
function
|
|
472
|
+
function sum64LO(ah, al, bh, bl) {
|
|
477
473
|
const lo = al + bl;
|
|
478
474
|
return lo >>> 0;
|
|
479
475
|
}
|
|
480
|
-
function
|
|
476
|
+
function sum64and4HI(ah, al, bh, bl, ch, cl, dh, dl) {
|
|
481
477
|
let carry = 0;
|
|
482
478
|
let lo = al;
|
|
483
479
|
lo = (lo + bl) >>> 0;
|
|
@@ -489,11 +485,11 @@ function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
|
|
|
489
485
|
const hi = ah + bh + ch + dh + carry;
|
|
490
486
|
return hi >>> 0;
|
|
491
487
|
}
|
|
492
|
-
function
|
|
488
|
+
function sum64and4LO(ah, al, bh, bl, ch, cl, dh, dl) {
|
|
493
489
|
const lo = al + bl + cl + dl;
|
|
494
490
|
return lo >>> 0;
|
|
495
491
|
}
|
|
496
|
-
function
|
|
492
|
+
function sum64and5HI(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
|
|
497
493
|
let carry = 0;
|
|
498
494
|
let lo = al;
|
|
499
495
|
lo = (lo + bl) >>> 0;
|
|
@@ -507,22 +503,22 @@ function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
|
|
|
507
503
|
const hi = ah + bh + ch + dh + eh + carry;
|
|
508
504
|
return hi >>> 0;
|
|
509
505
|
}
|
|
510
|
-
function
|
|
506
|
+
function sum64and5LO(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
|
|
511
507
|
const lo = al + bl + cl + dl + el;
|
|
512
508
|
return lo >>> 0;
|
|
513
509
|
}
|
|
514
|
-
function
|
|
510
|
+
function rotr64HI(ah, al, num) {
|
|
515
511
|
const r = (al << (32 - num)) | (ah >>> num);
|
|
516
512
|
return r >>> 0;
|
|
517
513
|
}
|
|
518
|
-
function
|
|
514
|
+
function rotr64LO(ah, al, num) {
|
|
519
515
|
const r = (ah << (32 - num)) | (al >>> num);
|
|
520
516
|
return r >>> 0;
|
|
521
517
|
}
|
|
522
|
-
function
|
|
518
|
+
function shr64HI(ah, al, num) {
|
|
523
519
|
return ah >>> num;
|
|
524
520
|
}
|
|
525
|
-
function
|
|
521
|
+
function shr64LO(ah, al, num) {
|
|
526
522
|
const r = (ah << (32 - num)) | (al >>> num);
|
|
527
523
|
return r >>> 0;
|
|
528
524
|
}
|
|
@@ -614,31 +610,30 @@ class SHA256 extends BaseHash {
|
|
|
614
610
|
constructor() {
|
|
615
611
|
super(512, 256, 192, 64);
|
|
616
612
|
this.h = [
|
|
617
|
-
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
|
|
618
|
-
|
|
613
|
+
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c,
|
|
614
|
+
0x1f83d9ab, 0x5be0cd19
|
|
619
615
|
];
|
|
620
616
|
this.k = [
|
|
621
|
-
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
|
|
632
|
-
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
633
|
-
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
|
|
634
|
-
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
|
|
635
|
-
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
|
617
|
+
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
|
|
618
|
+
0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
|
|
619
|
+
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
|
|
620
|
+
0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
|
621
|
+
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
|
|
622
|
+
0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
|
|
623
|
+
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
|
|
624
|
+
0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
625
|
+
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
|
|
626
|
+
0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
|
636
627
|
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
|
|
637
628
|
];
|
|
638
629
|
this.W = new Array(64);
|
|
639
630
|
}
|
|
640
631
|
_update(msg, start) {
|
|
641
632
|
const W = this.W;
|
|
633
|
+
// Default start to 0
|
|
634
|
+
if (start === undefined) {
|
|
635
|
+
start = 0;
|
|
636
|
+
}
|
|
642
637
|
let i;
|
|
643
638
|
for (i = 0; i < 16; i++) {
|
|
644
639
|
W[i] = msg[start + i];
|
|
@@ -676,7 +671,6 @@ class SHA256 extends BaseHash {
|
|
|
676
671
|
this.h[6] = sum32(this.h[6], g);
|
|
677
672
|
this.h[7] = sum32(this.h[7], h);
|
|
678
673
|
}
|
|
679
|
-
;
|
|
680
674
|
_digest() {
|
|
681
675
|
return split32(this.h, 'big');
|
|
682
676
|
}
|
|
@@ -707,18 +701,16 @@ exports.SHA256 = SHA256;
|
|
|
707
701
|
class SHA1 extends BaseHash {
|
|
708
702
|
constructor() {
|
|
709
703
|
super(512, 160, 80, 64);
|
|
710
|
-
this.k = [
|
|
711
|
-
|
|
712
|
-
0x8F1BBCDC, 0xCA62C1D6
|
|
713
|
-
];
|
|
714
|
-
this.h = [
|
|
715
|
-
0x67452301, 0xefcdab89, 0x98badcfe,
|
|
716
|
-
0x10325476, 0xc3d2e1f0
|
|
717
|
-
];
|
|
704
|
+
this.k = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
|
|
705
|
+
this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
|
|
718
706
|
this.W = new Array(80);
|
|
719
707
|
}
|
|
720
708
|
_update(msg, start) {
|
|
721
709
|
const W = this.W;
|
|
710
|
+
// Default start to 0
|
|
711
|
+
if (start === undefined) {
|
|
712
|
+
start = 0;
|
|
713
|
+
}
|
|
722
714
|
let i;
|
|
723
715
|
for (i = 0; i < 16; i++) {
|
|
724
716
|
W[i] = msg[start + i];
|
|
@@ -777,55 +769,37 @@ class SHA512 extends BaseHash {
|
|
|
777
769
|
constructor() {
|
|
778
770
|
super(1024, 512, 192, 128);
|
|
779
771
|
this.h = [
|
|
780
|
-
0x6a09e667, 0xf3bcc908,
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
0xa54ff53a, 0x5f1d36f1,
|
|
784
|
-
0x510e527f, 0xade682d1,
|
|
785
|
-
0x9b05688c, 0x2b3e6c1f,
|
|
786
|
-
0x1f83d9ab, 0xfb41bd6b,
|
|
787
|
-
0x5be0cd19, 0x137e2179
|
|
772
|
+
0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b,
|
|
773
|
+
0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f,
|
|
774
|
+
0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179
|
|
788
775
|
];
|
|
789
776
|
this.k = [
|
|
790
|
-
0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
|
|
817
|
-
0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
|
|
818
|
-
0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
|
|
819
|
-
0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
|
|
820
|
-
0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
|
|
821
|
-
0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
|
|
822
|
-
0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
|
|
823
|
-
0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
|
|
824
|
-
0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
|
|
825
|
-
0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
|
|
826
|
-
0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
|
|
827
|
-
0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
|
|
828
|
-
0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
|
|
777
|
+
0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f,
|
|
778
|
+
0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
|
|
779
|
+
0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242,
|
|
780
|
+
0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
|
|
781
|
+
0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235,
|
|
782
|
+
0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
|
|
783
|
+
0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275,
|
|
784
|
+
0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
|
|
785
|
+
0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f,
|
|
786
|
+
0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
|
|
787
|
+
0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc,
|
|
788
|
+
0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
|
|
789
|
+
0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6,
|
|
790
|
+
0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
|
|
791
|
+
0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218,
|
|
792
|
+
0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
|
|
793
|
+
0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99,
|
|
794
|
+
0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
|
|
795
|
+
0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc,
|
|
796
|
+
0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
|
|
797
|
+
0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915,
|
|
798
|
+
0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
|
|
799
|
+
0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba,
|
|
800
|
+
0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
|
|
801
|
+
0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc,
|
|
802
|
+
0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
|
|
829
803
|
0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
|
|
830
804
|
];
|
|
831
805
|
this.W = new Array(160);
|
|
@@ -838,82 +812,82 @@ class SHA512 extends BaseHash {
|
|
|
838
812
|
W[i] = msg[start + i];
|
|
839
813
|
}
|
|
840
814
|
for (; i < W.length; i += 2) {
|
|
841
|
-
const
|
|
842
|
-
const
|
|
843
|
-
const
|
|
844
|
-
const
|
|
845
|
-
const
|
|
846
|
-
const
|
|
847
|
-
const
|
|
848
|
-
const
|
|
849
|
-
W[i] =
|
|
850
|
-
W[i + 1] =
|
|
815
|
+
const c0Hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2
|
|
816
|
+
const c0Lo = g1_512_lo(W[i - 4], W[i - 3]);
|
|
817
|
+
const c1Hi = W[i - 14]; // i - 7
|
|
818
|
+
const c1Lo = W[i - 13];
|
|
819
|
+
const c2Hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15
|
|
820
|
+
const c2Lo = g0_512_lo(W[i - 30], W[i - 29]);
|
|
821
|
+
const c3Hi = W[i - 32]; // i - 16
|
|
822
|
+
const c3Lo = W[i - 31];
|
|
823
|
+
W[i] = sum64and4HI(c0Hi, c0Lo, c1Hi, c1Lo, c2Hi, c2Lo, c3Hi, c3Lo);
|
|
824
|
+
W[i + 1] = sum64and4LO(c0Hi, c0Lo, c1Hi, c1Lo, c2Hi, c2Lo, c3Hi, c3Lo);
|
|
851
825
|
}
|
|
852
826
|
}
|
|
853
827
|
_update(msg, start) {
|
|
854
828
|
this._prepareBlock(msg, start);
|
|
855
829
|
const W = this.W;
|
|
856
|
-
let
|
|
857
|
-
let
|
|
858
|
-
let
|
|
859
|
-
let
|
|
860
|
-
let
|
|
861
|
-
let
|
|
862
|
-
let
|
|
863
|
-
let
|
|
864
|
-
let
|
|
865
|
-
let
|
|
866
|
-
let
|
|
867
|
-
let
|
|
868
|
-
let
|
|
869
|
-
let
|
|
870
|
-
let
|
|
871
|
-
let
|
|
830
|
+
let aHigh = this.h[0];
|
|
831
|
+
let aLow = this.h[1];
|
|
832
|
+
let bHigh = this.h[2];
|
|
833
|
+
let bLow = this.h[3];
|
|
834
|
+
let cHigh = this.h[4];
|
|
835
|
+
let cLow = this.h[5];
|
|
836
|
+
let dHigh = this.h[6];
|
|
837
|
+
let dLow = this.h[7];
|
|
838
|
+
let eHigh = this.h[8];
|
|
839
|
+
let eLow = this.h[9];
|
|
840
|
+
let fHigh = this.h[10];
|
|
841
|
+
let fLow = this.h[11];
|
|
842
|
+
let gHigh = this.h[12];
|
|
843
|
+
let gLow = this.h[13];
|
|
844
|
+
let hHigh = this.h[14];
|
|
845
|
+
let hLow = this.h[15];
|
|
872
846
|
assert(this.k.length === W.length);
|
|
873
847
|
for (let i = 0; i < W.length; i += 2) {
|
|
874
|
-
let
|
|
875
|
-
let
|
|
876
|
-
let
|
|
877
|
-
let
|
|
878
|
-
const
|
|
879
|
-
const
|
|
880
|
-
const
|
|
881
|
-
const
|
|
882
|
-
const
|
|
883
|
-
const
|
|
884
|
-
const
|
|
885
|
-
const
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
const
|
|
891
|
-
const
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
848
|
+
let temp0High = hHigh;
|
|
849
|
+
let temp0Low = hLow;
|
|
850
|
+
let temp1High = s1_512_hi(eHigh, eLow);
|
|
851
|
+
let temp1Low = s1_512_lo(eHigh, eLow);
|
|
852
|
+
const temp2High = ch64_hi(eHigh, eLow, fHigh, fLow, gHigh, gLow);
|
|
853
|
+
const temp2Low = ch64_lo(eHigh, eLow, fHigh, fLow, gHigh, gLow);
|
|
854
|
+
const temp3High = this.k[i];
|
|
855
|
+
const temp3Low = this.k[i + 1];
|
|
856
|
+
const temp4High = W[i];
|
|
857
|
+
const temp4Low = W[i + 1];
|
|
858
|
+
const t1High = sum64and5HI(temp0High, temp0Low, temp1High, temp1Low, temp2High, temp2Low, temp3High, temp3Low, temp4High, temp4Low);
|
|
859
|
+
const t1Low = sum64and5LO(temp0High, temp0Low, temp1High, temp1Low, temp2High, temp2Low, temp3High, temp3Low, temp4High, temp4Low);
|
|
860
|
+
temp0High = s0_512_hi(aHigh, aLow);
|
|
861
|
+
temp0Low = s0_512_lo(aHigh, aLow);
|
|
862
|
+
temp1High = maj64_hi(aHigh, aLow, bHigh, bLow, cHigh, cLow);
|
|
863
|
+
temp1Low = maj64_lo(aHigh, aLow, bHigh, bLow, cHigh, cLow);
|
|
864
|
+
const t2High = sum64HI(temp0High, temp0Low, temp1High, temp1Low);
|
|
865
|
+
const t2Low = sum64LO(temp0High, temp0Low, temp1High, temp1Low);
|
|
866
|
+
hHigh = gHigh;
|
|
867
|
+
hLow = gLow;
|
|
868
|
+
gHigh = fHigh;
|
|
869
|
+
gLow = fLow;
|
|
870
|
+
fHigh = eHigh;
|
|
871
|
+
fLow = eLow;
|
|
872
|
+
eHigh = sum64HI(dHigh, dLow, t1High, t1Low);
|
|
873
|
+
eLow = sum64LO(dLow, dLow, t1High, t1Low);
|
|
874
|
+
dHigh = cHigh;
|
|
875
|
+
dLow = cLow;
|
|
876
|
+
cHigh = bHigh;
|
|
877
|
+
cLow = bLow;
|
|
878
|
+
bHigh = aHigh;
|
|
879
|
+
bLow = aLow;
|
|
880
|
+
aHigh = sum64HI(t1High, t1Low, t2High, t2Low);
|
|
881
|
+
aLow = sum64LO(t1High, t1Low, t2High, t2Low);
|
|
908
882
|
}
|
|
909
|
-
sum64(this.h, 0,
|
|
910
|
-
sum64(this.h, 2,
|
|
911
|
-
sum64(this.h, 4,
|
|
912
|
-
sum64(this.h, 6,
|
|
913
|
-
sum64(this.h, 8,
|
|
914
|
-
sum64(this.h, 10,
|
|
915
|
-
sum64(this.h, 12,
|
|
916
|
-
sum64(this.h, 14,
|
|
883
|
+
sum64(this.h, 0, aHigh, aLow);
|
|
884
|
+
sum64(this.h, 2, bHigh, bLow);
|
|
885
|
+
sum64(this.h, 4, cHigh, cLow);
|
|
886
|
+
sum64(this.h, 6, dHigh, dLow);
|
|
887
|
+
sum64(this.h, 8, eHigh, eLow);
|
|
888
|
+
sum64(this.h, 10, fHigh, fLow);
|
|
889
|
+
sum64(this.h, 12, gHigh, gLow);
|
|
890
|
+
sum64(this.h, 14, hHigh, hLow);
|
|
917
891
|
}
|
|
918
892
|
_digest() {
|
|
919
893
|
return split32(this.h, 'big');
|
|
@@ -924,14 +898,14 @@ class SHA512 extends BaseHash {
|
|
|
924
898
|
}
|
|
925
899
|
exports.SHA512 = SHA512;
|
|
926
900
|
function ch64_hi(xh, xl, yh, yl, zh, zl) {
|
|
927
|
-
let r = (xh & yh) ^ (
|
|
901
|
+
let r = (xh & yh) ^ (~xh & zh);
|
|
928
902
|
if (r < 0) {
|
|
929
903
|
r += 0x100000000;
|
|
930
904
|
}
|
|
931
905
|
return r;
|
|
932
906
|
}
|
|
933
907
|
function ch64_lo(xh, xl, yh, yl, zh, zl) {
|
|
934
|
-
let r = (xl & yl) ^ (
|
|
908
|
+
let r = (xl & yl) ^ (~xl & zl);
|
|
935
909
|
if (r < 0) {
|
|
936
910
|
r += 0x100000000;
|
|
937
911
|
}
|
|
@@ -952,9 +926,9 @@ function maj64_lo(xh, xl, yh, yl, zh, zl) {
|
|
|
952
926
|
return r;
|
|
953
927
|
}
|
|
954
928
|
function s0_512_hi(xh, xl) {
|
|
955
|
-
const c0_hi =
|
|
956
|
-
const c1_hi =
|
|
957
|
-
const c2_hi =
|
|
929
|
+
const c0_hi = rotr64HI(xh, xl, 28);
|
|
930
|
+
const c1_hi = rotr64HI(xl, xh, 2); // 34
|
|
931
|
+
const c2_hi = rotr64HI(xl, xh, 7); // 39
|
|
958
932
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
959
933
|
if (r < 0) {
|
|
960
934
|
r += 0x100000000;
|
|
@@ -962,9 +936,9 @@ function s0_512_hi(xh, xl) {
|
|
|
962
936
|
return r;
|
|
963
937
|
}
|
|
964
938
|
function s0_512_lo(xh, xl) {
|
|
965
|
-
const c0_lo =
|
|
966
|
-
const c1_lo =
|
|
967
|
-
const c2_lo =
|
|
939
|
+
const c0_lo = rotr64LO(xh, xl, 28);
|
|
940
|
+
const c1_lo = rotr64LO(xl, xh, 2); // 34
|
|
941
|
+
const c2_lo = rotr64LO(xl, xh, 7); // 39
|
|
968
942
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
969
943
|
if (r < 0) {
|
|
970
944
|
r += 0x100000000;
|
|
@@ -972,9 +946,9 @@ function s0_512_lo(xh, xl) {
|
|
|
972
946
|
return r;
|
|
973
947
|
}
|
|
974
948
|
function s1_512_hi(xh, xl) {
|
|
975
|
-
const c0_hi =
|
|
976
|
-
const c1_hi =
|
|
977
|
-
const c2_hi =
|
|
949
|
+
const c0_hi = rotr64HI(xh, xl, 14);
|
|
950
|
+
const c1_hi = rotr64HI(xh, xl, 18);
|
|
951
|
+
const c2_hi = rotr64HI(xl, xh, 9); // 41
|
|
978
952
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
979
953
|
if (r < 0) {
|
|
980
954
|
r += 0x100000000;
|
|
@@ -982,9 +956,9 @@ function s1_512_hi(xh, xl) {
|
|
|
982
956
|
return r;
|
|
983
957
|
}
|
|
984
958
|
function s1_512_lo(xh, xl) {
|
|
985
|
-
const c0_lo =
|
|
986
|
-
const c1_lo =
|
|
987
|
-
const c2_lo =
|
|
959
|
+
const c0_lo = rotr64LO(xh, xl, 14);
|
|
960
|
+
const c1_lo = rotr64LO(xh, xl, 18);
|
|
961
|
+
const c2_lo = rotr64LO(xl, xh, 9); // 41
|
|
988
962
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
989
963
|
if (r < 0) {
|
|
990
964
|
r += 0x100000000;
|
|
@@ -992,9 +966,9 @@ function s1_512_lo(xh, xl) {
|
|
|
992
966
|
return r;
|
|
993
967
|
}
|
|
994
968
|
function g0_512_hi(xh, xl) {
|
|
995
|
-
const c0_hi =
|
|
996
|
-
const c1_hi =
|
|
997
|
-
const c2_hi =
|
|
969
|
+
const c0_hi = rotr64HI(xh, xl, 1);
|
|
970
|
+
const c1_hi = rotr64HI(xh, xl, 8);
|
|
971
|
+
const c2_hi = shr64HI(xh, xl, 7);
|
|
998
972
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
999
973
|
if (r < 0) {
|
|
1000
974
|
r += 0x100000000;
|
|
@@ -1002,9 +976,9 @@ function g0_512_hi(xh, xl) {
|
|
|
1002
976
|
return r;
|
|
1003
977
|
}
|
|
1004
978
|
function g0_512_lo(xh, xl) {
|
|
1005
|
-
const c0_lo =
|
|
1006
|
-
const c1_lo =
|
|
1007
|
-
const c2_lo =
|
|
979
|
+
const c0_lo = rotr64LO(xh, xl, 1);
|
|
980
|
+
const c1_lo = rotr64LO(xh, xl, 8);
|
|
981
|
+
const c2_lo = shr64LO(xh, xl, 7);
|
|
1008
982
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
1009
983
|
if (r < 0) {
|
|
1010
984
|
r += 0x100000000;
|
|
@@ -1012,9 +986,9 @@ function g0_512_lo(xh, xl) {
|
|
|
1012
986
|
return r;
|
|
1013
987
|
}
|
|
1014
988
|
function g1_512_hi(xh, xl) {
|
|
1015
|
-
const c0_hi =
|
|
1016
|
-
const c1_hi =
|
|
1017
|
-
const c2_hi =
|
|
989
|
+
const c0_hi = rotr64HI(xh, xl, 19);
|
|
990
|
+
const c1_hi = rotr64HI(xl, xh, 29); // 61
|
|
991
|
+
const c2_hi = shr64HI(xh, xl, 6);
|
|
1018
992
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
1019
993
|
if (r < 0) {
|
|
1020
994
|
r += 0x100000000;
|
|
@@ -1022,9 +996,9 @@ function g1_512_hi(xh, xl) {
|
|
|
1022
996
|
return r;
|
|
1023
997
|
}
|
|
1024
998
|
function g1_512_lo(xh, xl) {
|
|
1025
|
-
const c0_lo =
|
|
1026
|
-
const c1_lo =
|
|
1027
|
-
const c2_lo =
|
|
999
|
+
const c0_lo = rotr64LO(xh, xl, 19);
|
|
1000
|
+
const c1_lo = rotr64LO(xl, xh, 29); // 61
|
|
1001
|
+
const c2_lo = shr64LO(xh, xl, 6);
|
|
1028
1002
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
1029
1003
|
if (r < 0) {
|
|
1030
1004
|
r += 0x100000000;
|
|
@@ -1402,10 +1376,10 @@ function pbkdf2(password, salt, iterations, keylen, digest = 'sha512') {
|
|
|
1402
1376
|
const hLen = 64;
|
|
1403
1377
|
const l = Math.ceil(keylen / hLen);
|
|
1404
1378
|
for (let i = 1; i <= l; i++) {
|
|
1405
|
-
block1[salt.length] = (i >> 24) &
|
|
1406
|
-
block1[salt.length + 1] = (i >> 16) &
|
|
1407
|
-
block1[salt.length + 2] = (i >> 8) &
|
|
1408
|
-
block1[salt.length + 3] = i &
|
|
1379
|
+
block1[salt.length] = (i >> 24) & 0xff; // MSB
|
|
1380
|
+
block1[salt.length + 1] = (i >> 16) & 0xff;
|
|
1381
|
+
block1[salt.length + 2] = (i >> 8) & 0xff;
|
|
1382
|
+
block1[salt.length + 3] = i & 0xff; // LSB
|
|
1409
1383
|
const T = (0, exports.sha512hmac)(password, block1);
|
|
1410
1384
|
let U = T;
|
|
1411
1385
|
for (let j = 1; j < iterations; j++) {
|
|
@@ -1420,4 +1394,5 @@ function pbkdf2(password, salt, iterations, keylen, digest = 'sha512') {
|
|
|
1420
1394
|
}
|
|
1421
1395
|
return DK.slice(0, keylen);
|
|
1422
1396
|
}
|
|
1397
|
+
exports.pbkdf2 = pbkdf2;
|
|
1423
1398
|
//# sourceMappingURL=Hash.js.map
|