@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,3 +1,5 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
1
3
|
const assert = (expression, message = 'Hash assertion failed') => {
|
|
2
4
|
if (!expression) {
|
|
3
5
|
throw new Error(message);
|
|
@@ -118,7 +120,6 @@ class BaseHash {
|
|
|
118
120
|
assert(this.pending === null);
|
|
119
121
|
return this._digest();
|
|
120
122
|
}
|
|
121
|
-
;
|
|
122
123
|
/**
|
|
123
124
|
* Finalizes the hash computation and returns the hash value/result as a hex string.
|
|
124
125
|
*
|
|
@@ -134,7 +135,6 @@ class BaseHash {
|
|
|
134
135
|
assert(this.pending === null);
|
|
135
136
|
return this._digestHex();
|
|
136
137
|
}
|
|
137
|
-
;
|
|
138
138
|
/**
|
|
139
139
|
* [Private Method] Used internally to prepare the padding for the final stage of the hash computation.
|
|
140
140
|
*
|
|
@@ -144,6 +144,7 @@ class BaseHash {
|
|
|
144
144
|
* @returns Returns an array denoting the padding.
|
|
145
145
|
*/
|
|
146
146
|
_pad() {
|
|
147
|
+
//
|
|
147
148
|
let len = this.pendingTotal;
|
|
148
149
|
const bytes = this._delta8;
|
|
149
150
|
const k = bytes - ((len + this.padLength) % bytes);
|
|
@@ -186,13 +187,13 @@ class BaseHash {
|
|
|
186
187
|
}
|
|
187
188
|
}
|
|
188
189
|
function isSurrogatePair(msg, i) {
|
|
189
|
-
if ((msg.charCodeAt(i) &
|
|
190
|
+
if ((msg.charCodeAt(i) & 0xfc00) !== 0xd800) {
|
|
190
191
|
return false;
|
|
191
192
|
}
|
|
192
193
|
if (i < 0 || i + 1 >= msg.length) {
|
|
193
194
|
return false;
|
|
194
195
|
}
|
|
195
|
-
return (msg.charCodeAt(i + 1) &
|
|
196
|
+
return (msg.charCodeAt(i + 1) & 0xfc00) === 0xdc00;
|
|
196
197
|
}
|
|
197
198
|
/**
|
|
198
199
|
*
|
|
@@ -211,7 +212,7 @@ export function toArray(msg, enc) {
|
|
|
211
212
|
if (typeof msg === 'string') {
|
|
212
213
|
if (enc !== 'hex') {
|
|
213
214
|
// Inspired by stringToUtf8ByteArray() in closure-library by Google
|
|
214
|
-
// https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt
|
|
215
|
+
// https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt#L117-L143
|
|
215
216
|
// Apache License 2.0
|
|
216
217
|
// https://github.com/google/closure-library/blob/master/LICENSE
|
|
217
218
|
let p = 0;
|
|
@@ -225,7 +226,7 @@ export function toArray(msg, enc) {
|
|
|
225
226
|
res[p++] = (c & 63) | 128;
|
|
226
227
|
}
|
|
227
228
|
else if (isSurrogatePair(msg, i)) {
|
|
228
|
-
c = 0x10000 + ((c &
|
|
229
|
+
c = 0x10000 + ((c & 0x03ff) << 10) + (msg.charCodeAt(++i) & 0x03ff);
|
|
229
230
|
res[p++] = (c >> 18) | 240;
|
|
230
231
|
res[p++] = ((c >> 12) & 63) | 128;
|
|
231
232
|
res[p++] = ((c >> 6) & 63) | 128;
|
|
@@ -239,7 +240,7 @@ export function toArray(msg, enc) {
|
|
|
239
240
|
}
|
|
240
241
|
}
|
|
241
242
|
else {
|
|
242
|
-
msg = msg.replace(/[^a-z0-9]+/
|
|
243
|
+
msg = msg.replace(/[^a-z0-9]+/gi, '');
|
|
243
244
|
if (msg.length % 2 !== 0) {
|
|
244
245
|
msg = '0' + msg;
|
|
245
246
|
}
|
|
@@ -365,7 +366,7 @@ function FT_1(s, x, y, z) {
|
|
|
365
366
|
}
|
|
366
367
|
}
|
|
367
368
|
function ch32(x, y, z) {
|
|
368
|
-
return (x & y) ^ (
|
|
369
|
+
return (x & y) ^ (~x & z);
|
|
369
370
|
}
|
|
370
371
|
function maj32(x, y, z) {
|
|
371
372
|
return (x & y) ^ (x & z) ^ (y & z);
|
|
@@ -386,48 +387,44 @@ function G1_256(x) {
|
|
|
386
387
|
return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);
|
|
387
388
|
}
|
|
388
389
|
const r = [
|
|
389
|
-
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
|
|
390
|
+
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15,
|
|
391
|
+
3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11,
|
|
392
|
+
5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7,
|
|
393
|
+
12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
|
|
394
394
|
];
|
|
395
395
|
const rh = [
|
|
396
|
-
5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
|
|
396
|
+
5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5,
|
|
397
|
+
10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0,
|
|
398
|
+
4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1,
|
|
399
|
+
5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
|
|
401
400
|
];
|
|
402
401
|
const s = [
|
|
403
|
-
11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
|
|
404
|
-
7,
|
|
405
|
-
11,
|
|
406
|
-
11,
|
|
407
|
-
9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
|
|
402
|
+
11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7,
|
|
403
|
+
15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5,
|
|
404
|
+
12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5,
|
|
405
|
+
11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
|
|
408
406
|
];
|
|
409
407
|
const sh = [
|
|
410
|
-
8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
|
|
411
|
-
9,
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
|
|
408
|
+
8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8,
|
|
409
|
+
9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14,
|
|
410
|
+
13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5,
|
|
411
|
+
12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
|
|
415
412
|
];
|
|
416
413
|
function f(j, x, y, z) {
|
|
417
414
|
if (j <= 15) {
|
|
418
415
|
return x ^ y ^ z;
|
|
419
416
|
}
|
|
420
417
|
else if (j <= 31) {
|
|
421
|
-
return (x & y) | (
|
|
418
|
+
return (x & y) | (~x & z);
|
|
422
419
|
}
|
|
423
420
|
else if (j <= 47) {
|
|
424
|
-
return (x |
|
|
421
|
+
return (x | ~y) ^ z;
|
|
425
422
|
}
|
|
426
423
|
else if (j <= 63) {
|
|
427
|
-
return (x & z) | (y &
|
|
424
|
+
return (x & z) | (y & ~z);
|
|
428
425
|
}
|
|
429
426
|
else {
|
|
430
|
-
return x ^ (y |
|
|
427
|
+
return x ^ (y | ~z);
|
|
431
428
|
}
|
|
432
429
|
}
|
|
433
430
|
function K(j) {
|
|
@@ -472,16 +469,16 @@ function sum64(buf, pos, ah, al) {
|
|
|
472
469
|
buf[pos] = hi >>> 0;
|
|
473
470
|
buf[pos + 1] = lo;
|
|
474
471
|
}
|
|
475
|
-
function
|
|
472
|
+
function sum64HI(ah, al, bh, bl) {
|
|
476
473
|
const lo = (al + bl) >>> 0;
|
|
477
474
|
const hi = (lo < al ? 1 : 0) + ah + bh;
|
|
478
475
|
return hi >>> 0;
|
|
479
476
|
}
|
|
480
|
-
function
|
|
477
|
+
function sum64LO(ah, al, bh, bl) {
|
|
481
478
|
const lo = al + bl;
|
|
482
479
|
return lo >>> 0;
|
|
483
480
|
}
|
|
484
|
-
function
|
|
481
|
+
function sum64and4HI(ah, al, bh, bl, ch, cl, dh, dl) {
|
|
485
482
|
let carry = 0;
|
|
486
483
|
let lo = al;
|
|
487
484
|
lo = (lo + bl) >>> 0;
|
|
@@ -493,11 +490,11 @@ function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
|
|
|
493
490
|
const hi = ah + bh + ch + dh + carry;
|
|
494
491
|
return hi >>> 0;
|
|
495
492
|
}
|
|
496
|
-
function
|
|
493
|
+
function sum64and4LO(ah, al, bh, bl, ch, cl, dh, dl) {
|
|
497
494
|
const lo = al + bl + cl + dl;
|
|
498
495
|
return lo >>> 0;
|
|
499
496
|
}
|
|
500
|
-
function
|
|
497
|
+
function sum64and5HI(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
|
|
501
498
|
let carry = 0;
|
|
502
499
|
let lo = al;
|
|
503
500
|
lo = (lo + bl) >>> 0;
|
|
@@ -511,22 +508,22 @@ function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
|
|
|
511
508
|
const hi = ah + bh + ch + dh + eh + carry;
|
|
512
509
|
return hi >>> 0;
|
|
513
510
|
}
|
|
514
|
-
function
|
|
511
|
+
function sum64and5LO(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
|
|
515
512
|
const lo = al + bl + cl + dl + el;
|
|
516
513
|
return lo >>> 0;
|
|
517
514
|
}
|
|
518
|
-
function
|
|
515
|
+
function rotr64HI(ah, al, num) {
|
|
519
516
|
const r = (al << (32 - num)) | (ah >>> num);
|
|
520
517
|
return r >>> 0;
|
|
521
518
|
}
|
|
522
|
-
function
|
|
519
|
+
function rotr64LO(ah, al, num) {
|
|
523
520
|
const r = (ah << (32 - num)) | (al >>> num);
|
|
524
521
|
return r >>> 0;
|
|
525
522
|
}
|
|
526
|
-
function
|
|
523
|
+
function shr64HI(ah, al, num) {
|
|
527
524
|
return ah >>> num;
|
|
528
525
|
}
|
|
529
|
-
function
|
|
526
|
+
function shr64LO(ah, al, num) {
|
|
530
527
|
const r = (ah << (32 - num)) | (al >>> num);
|
|
531
528
|
return r >>> 0;
|
|
532
529
|
}
|
|
@@ -621,31 +618,30 @@ export class SHA256 extends BaseHash {
|
|
|
621
618
|
constructor() {
|
|
622
619
|
super(512, 256, 192, 64);
|
|
623
620
|
this.h = [
|
|
624
|
-
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
|
|
625
|
-
|
|
621
|
+
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c,
|
|
622
|
+
0x1f83d9ab, 0x5be0cd19
|
|
626
623
|
];
|
|
627
624
|
this.k = [
|
|
628
|
-
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
|
|
639
|
-
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
640
|
-
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
|
|
641
|
-
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
|
|
642
|
-
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
|
625
|
+
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
|
|
626
|
+
0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
|
|
627
|
+
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
|
|
628
|
+
0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
|
629
|
+
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
|
|
630
|
+
0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
|
|
631
|
+
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
|
|
632
|
+
0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
633
|
+
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
|
|
634
|
+
0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
|
643
635
|
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
|
|
644
636
|
];
|
|
645
637
|
this.W = new Array(64);
|
|
646
638
|
}
|
|
647
639
|
_update(msg, start) {
|
|
648
640
|
const W = this.W;
|
|
641
|
+
// Default start to 0
|
|
642
|
+
if (start === undefined) {
|
|
643
|
+
start = 0;
|
|
644
|
+
}
|
|
649
645
|
let i;
|
|
650
646
|
for (i = 0; i < 16; i++) {
|
|
651
647
|
W[i] = msg[start + i];
|
|
@@ -683,7 +679,6 @@ export class SHA256 extends BaseHash {
|
|
|
683
679
|
this.h[6] = sum32(this.h[6], g);
|
|
684
680
|
this.h[7] = sum32(this.h[7], h);
|
|
685
681
|
}
|
|
686
|
-
;
|
|
687
682
|
_digest() {
|
|
688
683
|
return split32(this.h, 'big');
|
|
689
684
|
}
|
|
@@ -716,18 +711,16 @@ export class SHA1 extends BaseHash {
|
|
|
716
711
|
k;
|
|
717
712
|
constructor() {
|
|
718
713
|
super(512, 160, 80, 64);
|
|
719
|
-
this.k = [
|
|
720
|
-
|
|
721
|
-
0x8F1BBCDC, 0xCA62C1D6
|
|
722
|
-
];
|
|
723
|
-
this.h = [
|
|
724
|
-
0x67452301, 0xefcdab89, 0x98badcfe,
|
|
725
|
-
0x10325476, 0xc3d2e1f0
|
|
726
|
-
];
|
|
714
|
+
this.k = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
|
|
715
|
+
this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
|
|
727
716
|
this.W = new Array(80);
|
|
728
717
|
}
|
|
729
718
|
_update(msg, start) {
|
|
730
719
|
const W = this.W;
|
|
720
|
+
// Default start to 0
|
|
721
|
+
if (start === undefined) {
|
|
722
|
+
start = 0;
|
|
723
|
+
}
|
|
731
724
|
let i;
|
|
732
725
|
for (i = 0; i < 16; i++) {
|
|
733
726
|
W[i] = msg[start + i];
|
|
@@ -788,55 +781,37 @@ export class SHA512 extends BaseHash {
|
|
|
788
781
|
constructor() {
|
|
789
782
|
super(1024, 512, 192, 128);
|
|
790
783
|
this.h = [
|
|
791
|
-
0x6a09e667, 0xf3bcc908,
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
0xa54ff53a, 0x5f1d36f1,
|
|
795
|
-
0x510e527f, 0xade682d1,
|
|
796
|
-
0x9b05688c, 0x2b3e6c1f,
|
|
797
|
-
0x1f83d9ab, 0xfb41bd6b,
|
|
798
|
-
0x5be0cd19, 0x137e2179
|
|
784
|
+
0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b,
|
|
785
|
+
0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f,
|
|
786
|
+
0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179
|
|
799
787
|
];
|
|
800
788
|
this.k = [
|
|
801
|
-
0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
|
|
828
|
-
0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,
|
|
829
|
-
0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,
|
|
830
|
-
0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
|
|
831
|
-
0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,
|
|
832
|
-
0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,
|
|
833
|
-
0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
|
|
834
|
-
0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,
|
|
835
|
-
0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,
|
|
836
|
-
0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
|
|
837
|
-
0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,
|
|
838
|
-
0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,
|
|
839
|
-
0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
|
|
789
|
+
0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f,
|
|
790
|
+
0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,
|
|
791
|
+
0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242,
|
|
792
|
+
0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,
|
|
793
|
+
0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235,
|
|
794
|
+
0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,
|
|
795
|
+
0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275,
|
|
796
|
+
0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,
|
|
797
|
+
0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f,
|
|
798
|
+
0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,
|
|
799
|
+
0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc,
|
|
800
|
+
0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,
|
|
801
|
+
0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6,
|
|
802
|
+
0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,
|
|
803
|
+
0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218,
|
|
804
|
+
0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,
|
|
805
|
+
0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99,
|
|
806
|
+
0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,
|
|
807
|
+
0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc,
|
|
808
|
+
0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,
|
|
809
|
+
0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915,
|
|
810
|
+
0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,
|
|
811
|
+
0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba,
|
|
812
|
+
0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,
|
|
813
|
+
0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc,
|
|
814
|
+
0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,
|
|
840
815
|
0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817
|
|
841
816
|
];
|
|
842
817
|
this.W = new Array(160);
|
|
@@ -849,82 +824,82 @@ export class SHA512 extends BaseHash {
|
|
|
849
824
|
W[i] = msg[start + i];
|
|
850
825
|
}
|
|
851
826
|
for (; i < W.length; i += 2) {
|
|
852
|
-
const
|
|
853
|
-
const
|
|
854
|
-
const
|
|
855
|
-
const
|
|
856
|
-
const
|
|
857
|
-
const
|
|
858
|
-
const
|
|
859
|
-
const
|
|
860
|
-
W[i] =
|
|
861
|
-
W[i + 1] =
|
|
827
|
+
const c0Hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2
|
|
828
|
+
const c0Lo = g1_512_lo(W[i - 4], W[i - 3]);
|
|
829
|
+
const c1Hi = W[i - 14]; // i - 7
|
|
830
|
+
const c1Lo = W[i - 13];
|
|
831
|
+
const c2Hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15
|
|
832
|
+
const c2Lo = g0_512_lo(W[i - 30], W[i - 29]);
|
|
833
|
+
const c3Hi = W[i - 32]; // i - 16
|
|
834
|
+
const c3Lo = W[i - 31];
|
|
835
|
+
W[i] = sum64and4HI(c0Hi, c0Lo, c1Hi, c1Lo, c2Hi, c2Lo, c3Hi, c3Lo);
|
|
836
|
+
W[i + 1] = sum64and4LO(c0Hi, c0Lo, c1Hi, c1Lo, c2Hi, c2Lo, c3Hi, c3Lo);
|
|
862
837
|
}
|
|
863
838
|
}
|
|
864
839
|
_update(msg, start) {
|
|
865
840
|
this._prepareBlock(msg, start);
|
|
866
841
|
const W = this.W;
|
|
867
|
-
let
|
|
868
|
-
let
|
|
869
|
-
let
|
|
870
|
-
let
|
|
871
|
-
let
|
|
872
|
-
let
|
|
873
|
-
let
|
|
874
|
-
let
|
|
875
|
-
let
|
|
876
|
-
let
|
|
877
|
-
let
|
|
878
|
-
let
|
|
879
|
-
let
|
|
880
|
-
let
|
|
881
|
-
let
|
|
882
|
-
let
|
|
842
|
+
let aHigh = this.h[0];
|
|
843
|
+
let aLow = this.h[1];
|
|
844
|
+
let bHigh = this.h[2];
|
|
845
|
+
let bLow = this.h[3];
|
|
846
|
+
let cHigh = this.h[4];
|
|
847
|
+
let cLow = this.h[5];
|
|
848
|
+
let dHigh = this.h[6];
|
|
849
|
+
let dLow = this.h[7];
|
|
850
|
+
let eHigh = this.h[8];
|
|
851
|
+
let eLow = this.h[9];
|
|
852
|
+
let fHigh = this.h[10];
|
|
853
|
+
let fLow = this.h[11];
|
|
854
|
+
let gHigh = this.h[12];
|
|
855
|
+
let gLow = this.h[13];
|
|
856
|
+
let hHigh = this.h[14];
|
|
857
|
+
let hLow = this.h[15];
|
|
883
858
|
assert(this.k.length === W.length);
|
|
884
859
|
for (let i = 0; i < W.length; i += 2) {
|
|
885
|
-
let
|
|
886
|
-
let
|
|
887
|
-
let
|
|
888
|
-
let
|
|
889
|
-
const
|
|
890
|
-
const
|
|
891
|
-
const
|
|
892
|
-
const
|
|
893
|
-
const
|
|
894
|
-
const
|
|
895
|
-
const
|
|
896
|
-
const
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
const
|
|
902
|
-
const
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
860
|
+
let temp0High = hHigh;
|
|
861
|
+
let temp0Low = hLow;
|
|
862
|
+
let temp1High = s1_512_hi(eHigh, eLow);
|
|
863
|
+
let temp1Low = s1_512_lo(eHigh, eLow);
|
|
864
|
+
const temp2High = ch64_hi(eHigh, eLow, fHigh, fLow, gHigh, gLow);
|
|
865
|
+
const temp2Low = ch64_lo(eHigh, eLow, fHigh, fLow, gHigh, gLow);
|
|
866
|
+
const temp3High = this.k[i];
|
|
867
|
+
const temp3Low = this.k[i + 1];
|
|
868
|
+
const temp4High = W[i];
|
|
869
|
+
const temp4Low = W[i + 1];
|
|
870
|
+
const t1High = sum64and5HI(temp0High, temp0Low, temp1High, temp1Low, temp2High, temp2Low, temp3High, temp3Low, temp4High, temp4Low);
|
|
871
|
+
const t1Low = sum64and5LO(temp0High, temp0Low, temp1High, temp1Low, temp2High, temp2Low, temp3High, temp3Low, temp4High, temp4Low);
|
|
872
|
+
temp0High = s0_512_hi(aHigh, aLow);
|
|
873
|
+
temp0Low = s0_512_lo(aHigh, aLow);
|
|
874
|
+
temp1High = maj64_hi(aHigh, aLow, bHigh, bLow, cHigh, cLow);
|
|
875
|
+
temp1Low = maj64_lo(aHigh, aLow, bHigh, bLow, cHigh, cLow);
|
|
876
|
+
const t2High = sum64HI(temp0High, temp0Low, temp1High, temp1Low);
|
|
877
|
+
const t2Low = sum64LO(temp0High, temp0Low, temp1High, temp1Low);
|
|
878
|
+
hHigh = gHigh;
|
|
879
|
+
hLow = gLow;
|
|
880
|
+
gHigh = fHigh;
|
|
881
|
+
gLow = fLow;
|
|
882
|
+
fHigh = eHigh;
|
|
883
|
+
fLow = eLow;
|
|
884
|
+
eHigh = sum64HI(dHigh, dLow, t1High, t1Low);
|
|
885
|
+
eLow = sum64LO(dLow, dLow, t1High, t1Low);
|
|
886
|
+
dHigh = cHigh;
|
|
887
|
+
dLow = cLow;
|
|
888
|
+
cHigh = bHigh;
|
|
889
|
+
cLow = bLow;
|
|
890
|
+
bHigh = aHigh;
|
|
891
|
+
bLow = aLow;
|
|
892
|
+
aHigh = sum64HI(t1High, t1Low, t2High, t2Low);
|
|
893
|
+
aLow = sum64LO(t1High, t1Low, t2High, t2Low);
|
|
919
894
|
}
|
|
920
|
-
sum64(this.h, 0,
|
|
921
|
-
sum64(this.h, 2,
|
|
922
|
-
sum64(this.h, 4,
|
|
923
|
-
sum64(this.h, 6,
|
|
924
|
-
sum64(this.h, 8,
|
|
925
|
-
sum64(this.h, 10,
|
|
926
|
-
sum64(this.h, 12,
|
|
927
|
-
sum64(this.h, 14,
|
|
895
|
+
sum64(this.h, 0, aHigh, aLow);
|
|
896
|
+
sum64(this.h, 2, bHigh, bLow);
|
|
897
|
+
sum64(this.h, 4, cHigh, cLow);
|
|
898
|
+
sum64(this.h, 6, dHigh, dLow);
|
|
899
|
+
sum64(this.h, 8, eHigh, eLow);
|
|
900
|
+
sum64(this.h, 10, fHigh, fLow);
|
|
901
|
+
sum64(this.h, 12, gHigh, gLow);
|
|
902
|
+
sum64(this.h, 14, hHigh, hLow);
|
|
928
903
|
}
|
|
929
904
|
_digest() {
|
|
930
905
|
return split32(this.h, 'big');
|
|
@@ -934,14 +909,14 @@ export class SHA512 extends BaseHash {
|
|
|
934
909
|
}
|
|
935
910
|
}
|
|
936
911
|
function ch64_hi(xh, xl, yh, yl, zh, zl) {
|
|
937
|
-
let r = (xh & yh) ^ (
|
|
912
|
+
let r = (xh & yh) ^ (~xh & zh);
|
|
938
913
|
if (r < 0) {
|
|
939
914
|
r += 0x100000000;
|
|
940
915
|
}
|
|
941
916
|
return r;
|
|
942
917
|
}
|
|
943
918
|
function ch64_lo(xh, xl, yh, yl, zh, zl) {
|
|
944
|
-
let r = (xl & yl) ^ (
|
|
919
|
+
let r = (xl & yl) ^ (~xl & zl);
|
|
945
920
|
if (r < 0) {
|
|
946
921
|
r += 0x100000000;
|
|
947
922
|
}
|
|
@@ -962,9 +937,9 @@ function maj64_lo(xh, xl, yh, yl, zh, zl) {
|
|
|
962
937
|
return r;
|
|
963
938
|
}
|
|
964
939
|
function s0_512_hi(xh, xl) {
|
|
965
|
-
const c0_hi =
|
|
966
|
-
const c1_hi =
|
|
967
|
-
const c2_hi =
|
|
940
|
+
const c0_hi = rotr64HI(xh, xl, 28);
|
|
941
|
+
const c1_hi = rotr64HI(xl, xh, 2); // 34
|
|
942
|
+
const c2_hi = rotr64HI(xl, xh, 7); // 39
|
|
968
943
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
969
944
|
if (r < 0) {
|
|
970
945
|
r += 0x100000000;
|
|
@@ -972,9 +947,9 @@ function s0_512_hi(xh, xl) {
|
|
|
972
947
|
return r;
|
|
973
948
|
}
|
|
974
949
|
function s0_512_lo(xh, xl) {
|
|
975
|
-
const c0_lo =
|
|
976
|
-
const c1_lo =
|
|
977
|
-
const c2_lo =
|
|
950
|
+
const c0_lo = rotr64LO(xh, xl, 28);
|
|
951
|
+
const c1_lo = rotr64LO(xl, xh, 2); // 34
|
|
952
|
+
const c2_lo = rotr64LO(xl, xh, 7); // 39
|
|
978
953
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
979
954
|
if (r < 0) {
|
|
980
955
|
r += 0x100000000;
|
|
@@ -982,9 +957,9 @@ function s0_512_lo(xh, xl) {
|
|
|
982
957
|
return r;
|
|
983
958
|
}
|
|
984
959
|
function s1_512_hi(xh, xl) {
|
|
985
|
-
const c0_hi =
|
|
986
|
-
const c1_hi =
|
|
987
|
-
const c2_hi =
|
|
960
|
+
const c0_hi = rotr64HI(xh, xl, 14);
|
|
961
|
+
const c1_hi = rotr64HI(xh, xl, 18);
|
|
962
|
+
const c2_hi = rotr64HI(xl, xh, 9); // 41
|
|
988
963
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
989
964
|
if (r < 0) {
|
|
990
965
|
r += 0x100000000;
|
|
@@ -992,9 +967,9 @@ function s1_512_hi(xh, xl) {
|
|
|
992
967
|
return r;
|
|
993
968
|
}
|
|
994
969
|
function s1_512_lo(xh, xl) {
|
|
995
|
-
const c0_lo =
|
|
996
|
-
const c1_lo =
|
|
997
|
-
const c2_lo =
|
|
970
|
+
const c0_lo = rotr64LO(xh, xl, 14);
|
|
971
|
+
const c1_lo = rotr64LO(xh, xl, 18);
|
|
972
|
+
const c2_lo = rotr64LO(xl, xh, 9); // 41
|
|
998
973
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
999
974
|
if (r < 0) {
|
|
1000
975
|
r += 0x100000000;
|
|
@@ -1002,9 +977,9 @@ function s1_512_lo(xh, xl) {
|
|
|
1002
977
|
return r;
|
|
1003
978
|
}
|
|
1004
979
|
function g0_512_hi(xh, xl) {
|
|
1005
|
-
const c0_hi =
|
|
1006
|
-
const c1_hi =
|
|
1007
|
-
const c2_hi =
|
|
980
|
+
const c0_hi = rotr64HI(xh, xl, 1);
|
|
981
|
+
const c1_hi = rotr64HI(xh, xl, 8);
|
|
982
|
+
const c2_hi = shr64HI(xh, xl, 7);
|
|
1008
983
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
1009
984
|
if (r < 0) {
|
|
1010
985
|
r += 0x100000000;
|
|
@@ -1012,9 +987,9 @@ function g0_512_hi(xh, xl) {
|
|
|
1012
987
|
return r;
|
|
1013
988
|
}
|
|
1014
989
|
function g0_512_lo(xh, xl) {
|
|
1015
|
-
const c0_lo =
|
|
1016
|
-
const c1_lo =
|
|
1017
|
-
const c2_lo =
|
|
990
|
+
const c0_lo = rotr64LO(xh, xl, 1);
|
|
991
|
+
const c1_lo = rotr64LO(xh, xl, 8);
|
|
992
|
+
const c2_lo = shr64LO(xh, xl, 7);
|
|
1018
993
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
1019
994
|
if (r < 0) {
|
|
1020
995
|
r += 0x100000000;
|
|
@@ -1022,9 +997,9 @@ function g0_512_lo(xh, xl) {
|
|
|
1022
997
|
return r;
|
|
1023
998
|
}
|
|
1024
999
|
function g1_512_hi(xh, xl) {
|
|
1025
|
-
const c0_hi =
|
|
1026
|
-
const c1_hi =
|
|
1027
|
-
const c2_hi =
|
|
1000
|
+
const c0_hi = rotr64HI(xh, xl, 19);
|
|
1001
|
+
const c1_hi = rotr64HI(xl, xh, 29); // 61
|
|
1002
|
+
const c2_hi = shr64HI(xh, xl, 6);
|
|
1028
1003
|
let r = c0_hi ^ c1_hi ^ c2_hi;
|
|
1029
1004
|
if (r < 0) {
|
|
1030
1005
|
r += 0x100000000;
|
|
@@ -1032,9 +1007,9 @@ function g1_512_hi(xh, xl) {
|
|
|
1032
1007
|
return r;
|
|
1033
1008
|
}
|
|
1034
1009
|
function g1_512_lo(xh, xl) {
|
|
1035
|
-
const c0_lo =
|
|
1036
|
-
const c1_lo =
|
|
1037
|
-
const c2_lo =
|
|
1010
|
+
const c0_lo = rotr64LO(xh, xl, 19);
|
|
1011
|
+
const c1_lo = rotr64LO(xl, xh, 29); // 61
|
|
1012
|
+
const c2_lo = shr64LO(xh, xl, 6);
|
|
1038
1013
|
let r = c0_lo ^ c1_lo ^ c2_lo;
|
|
1039
1014
|
if (r < 0) {
|
|
1040
1015
|
r += 0x100000000;
|
|
@@ -1407,10 +1382,10 @@ export function pbkdf2(password, salt, iterations, keylen, digest = 'sha512') {
|
|
|
1407
1382
|
const hLen = 64;
|
|
1408
1383
|
const l = Math.ceil(keylen / hLen);
|
|
1409
1384
|
for (let i = 1; i <= l; i++) {
|
|
1410
|
-
block1[salt.length] = (i >> 24) &
|
|
1411
|
-
block1[salt.length + 1] = (i >> 16) &
|
|
1412
|
-
block1[salt.length + 2] = (i >> 8) &
|
|
1413
|
-
block1[salt.length + 3] = i &
|
|
1385
|
+
block1[salt.length] = (i >> 24) & 0xff; // MSB
|
|
1386
|
+
block1[salt.length + 1] = (i >> 16) & 0xff;
|
|
1387
|
+
block1[salt.length + 2] = (i >> 8) & 0xff;
|
|
1388
|
+
block1[salt.length + 3] = i & 0xff; // LSB
|
|
1414
1389
|
const T = sha512hmac(password, block1);
|
|
1415
1390
|
let U = T;
|
|
1416
1391
|
for (let j = 1; j < iterations; j++) {
|