@pezkuwi/util-crypto 14.0.2 → 14.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +4 -4
- package/address/addressToEvm.d.ts +5 -0
- package/address/addressToEvm.js +8 -0
- package/address/check.d.ts +8 -0
- package/address/check.js +26 -0
- package/address/checksum.d.ts +1 -0
- package/address/checksum.js +16 -0
- package/address/decode.d.ts +2 -0
- package/address/decode.js +29 -0
- package/address/defaults.d.ts +6 -0
- package/address/defaults.js +8 -0
- package/address/derive.d.ts +8 -0
- package/address/derive.js +24 -0
- package/address/encode.d.ts +2 -0
- package/address/encode.js +23 -0
- package/address/encodeDerived.d.ts +9 -0
- package/address/encodeDerived.js +12 -0
- package/address/encodeMulti.d.ts +9 -0
- package/address/encodeMulti.js +11 -0
- package/address/eq.d.ts +15 -0
- package/{src/address/eq.ts → address/eq.js} +2 -7
- package/address/evmToAddress.d.ts +7 -0
- package/address/evmToAddress.js +14 -0
- package/{src/address/index.ts → address/index.d.ts} +0 -5
- package/address/index.js +16 -0
- package/address/is.d.ts +2 -0
- package/address/is.js +9 -0
- package/address/keyDerived.d.ts +2 -0
- package/address/keyDerived.js +8 -0
- package/address/keyMulti.d.ts +2 -0
- package/address/keyMulti.js +8 -0
- package/address/setSS58Format.d.ts +6 -0
- package/address/setSS58Format.js +11 -0
- package/address/sort.d.ts +2 -0
- package/address/sort.js +7 -0
- package/address/sshash.d.ts +1 -0
- package/address/sshash.js +6 -0
- package/address/types.d.ts +1 -0
- package/address/types.js +1 -0
- package/address/util.d.ts +1 -0
- package/address/util.js +4 -0
- package/address/validate.d.ts +2 -0
- package/address/validate.js +4 -0
- package/base32/bs32.d.ts +26 -0
- package/{src/base32/bs32.ts → base32/bs32.js} +8 -21
- package/base32/helpers.d.ts +25 -0
- package/base32/helpers.js +61 -0
- package/{src/base32/index.ts → base32/index.d.ts} +0 -4
- package/base32/index.js +4 -0
- package/base58/bs58.d.ts +26 -0
- package/{src/base58/bs58.ts → base58/bs58.js} +4 -13
- package/{src/base58/index.ts → base58/index.d.ts} +0 -4
- package/base58/index.js +4 -0
- package/base64/bs64.d.ts +26 -0
- package/{src/base64/bs64.ts → base64/bs64.js} +4 -13
- package/{src/base64/index.ts → base64/index.d.ts} +0 -4
- package/base64/index.js +6 -0
- package/base64/pad.d.ts +5 -0
- package/base64/pad.js +7 -0
- package/base64/trim.d.ts +5 -0
- package/base64/trim.js +10 -0
- package/blake2/asU8a.d.ts +20 -0
- package/{src/blake2/asU8a.ts → blake2/asU8a.js} +8 -16
- package/{src/blake2/index.ts → blake2/index.d.ts} +0 -4
- package/blake2/index.js +4 -0
- package/bn.d.ts +30 -0
- package/{src/bn.ts → bn.js} +0 -7
- package/bridge.d.ts +82 -0
- package/bridge.js +168 -0
- package/bundle-polkadot-util-crypto.js +11813 -0
- package/{src/bundle.ts → bundle.d.ts} +0 -7
- package/bundle.js +26 -0
- package/bundleInit.d.ts +1 -0
- package/bundleInit.js +5 -0
- package/cjs/address/addressToEvm.d.ts +5 -0
- package/cjs/address/addressToEvm.js +11 -0
- package/cjs/address/check.d.ts +8 -0
- package/cjs/address/check.js +29 -0
- package/cjs/address/checksum.d.ts +1 -0
- package/cjs/address/checksum.js +19 -0
- package/cjs/address/decode.d.ts +2 -0
- package/cjs/address/decode.js +32 -0
- package/cjs/address/defaults.d.ts +6 -0
- package/cjs/address/defaults.js +11 -0
- package/cjs/address/derive.d.ts +8 -0
- package/cjs/address/derive.js +27 -0
- package/cjs/address/encode.d.ts +2 -0
- package/cjs/address/encode.js +26 -0
- package/cjs/address/encodeDerived.d.ts +9 -0
- package/cjs/address/encodeDerived.js +15 -0
- package/cjs/address/encodeMulti.d.ts +9 -0
- package/cjs/address/encodeMulti.js +14 -0
- package/cjs/address/eq.d.ts +15 -0
- package/cjs/address/eq.js +22 -0
- package/cjs/address/evmToAddress.d.ts +7 -0
- package/cjs/address/evmToAddress.js +17 -0
- package/cjs/address/index.d.ts +16 -0
- package/cjs/address/index.js +35 -0
- package/cjs/address/is.d.ts +2 -0
- package/cjs/address/is.js +12 -0
- package/cjs/address/keyDerived.d.ts +2 -0
- package/cjs/address/keyDerived.js +11 -0
- package/cjs/address/keyMulti.d.ts +2 -0
- package/cjs/address/keyMulti.js +11 -0
- package/cjs/address/setSS58Format.d.ts +6 -0
- package/cjs/address/setSS58Format.js +14 -0
- package/cjs/address/sort.d.ts +2 -0
- package/cjs/address/sort.js +10 -0
- package/cjs/address/sshash.d.ts +1 -0
- package/cjs/address/sshash.js +9 -0
- package/cjs/address/types.d.ts +1 -0
- package/cjs/address/types.js +2 -0
- package/cjs/address/util.d.ts +1 -0
- package/cjs/address/util.js +7 -0
- package/cjs/address/validate.d.ts +2 -0
- package/cjs/address/validate.js +7 -0
- package/cjs/base32/bs32.d.ts +26 -0
- package/cjs/base32/bs32.js +43 -0
- package/cjs/base32/helpers.d.ts +25 -0
- package/cjs/base32/helpers.js +67 -0
- package/cjs/base32/index.d.ts +4 -0
- package/cjs/base32/index.js +11 -0
- package/cjs/base58/bs58.d.ts +26 -0
- package/cjs/base58/bs58.js +37 -0
- package/cjs/base58/index.d.ts +4 -0
- package/cjs/base58/index.js +11 -0
- package/cjs/base64/bs64.d.ts +26 -0
- package/cjs/base64/bs64.js +37 -0
- package/cjs/base64/index.d.ts +6 -0
- package/cjs/base64/index.js +15 -0
- package/cjs/base64/pad.d.ts +5 -0
- package/cjs/base64/pad.js +10 -0
- package/cjs/base64/trim.d.ts +5 -0
- package/cjs/base64/trim.js +13 -0
- package/cjs/blake2/asU8a.d.ts +20 -0
- package/cjs/blake2/asU8a.js +36 -0
- package/cjs/blake2/index.d.ts +4 -0
- package/cjs/blake2/index.js +9 -0
- package/cjs/bn.d.ts +30 -0
- package/cjs/bn.js +11 -0
- package/cjs/bridge.d.ts +82 -0
- package/cjs/bridge.js +172 -0
- package/cjs/bundle.d.ts +26 -0
- package/cjs/bundle.js +31 -0
- package/cjs/bundleInit.d.ts +1 -0
- package/cjs/bundleInit.js +7 -0
- package/cjs/crypto.d.ts +3 -0
- package/cjs/crypto.js +16 -0
- package/cjs/ed25519/deriveHard.d.ts +1 -0
- package/cjs/ed25519/deriveHard.js +12 -0
- package/{src/ed25519/index.ts → cjs/ed25519/index.d.ts} +0 -3
- package/cjs/ed25519/index.js +20 -0
- package/cjs/ed25519/pair/fromRandom.d.ts +16 -0
- package/cjs/ed25519/pair/fromRandom.js +22 -0
- package/cjs/ed25519/pair/fromSecret.d.ts +16 -0
- package/{src/ed25519/pair/fromSecret.ts → cjs/ed25519/pair/fromSecret.js} +11 -14
- package/cjs/ed25519/pair/fromSeed.d.ts +16 -0
- package/cjs/ed25519/pair/fromSeed.js +34 -0
- package/cjs/ed25519/pair/fromString.d.ts +16 -0
- package/cjs/ed25519/pair/fromString.js +23 -0
- package/cjs/ed25519/sign.d.ts +16 -0
- package/cjs/ed25519/sign.js +33 -0
- package/cjs/ed25519/verify.d.ts +15 -0
- package/cjs/ed25519/verify.js +39 -0
- package/cjs/ethereum/encode.d.ts +2 -0
- package/cjs/ethereum/encode.js +28 -0
- package/{src/ethereum/index.ts → cjs/ethereum/index.d.ts} +0 -3
- package/cjs/ethereum/index.js +9 -0
- package/cjs/ethereum/isAddress.d.ts +1 -0
- package/cjs/ethereum/isAddress.js +14 -0
- package/cjs/ethereum/isChecksum.d.ts +1 -0
- package/cjs/ethereum/isChecksum.js +20 -0
- package/cjs/hd/ethereum/index.d.ts +2 -0
- package/cjs/hd/ethereum/index.js +47 -0
- package/{src/hd/index.ts → cjs/hd/index.d.ts} +0 -3
- package/cjs/hd/index.js +9 -0
- package/cjs/hd/ledger/derivePrivate.d.ts +1 -0
- package/cjs/hd/ledger/derivePrivate.js +15 -0
- package/cjs/hd/ledger/index.d.ts +2 -0
- package/cjs/hd/ledger/index.js +33 -0
- package/cjs/hd/ledger/master.d.ts +1 -0
- package/cjs/hd/ledger/master.js +19 -0
- package/cjs/hd/validatePath.d.ts +2 -0
- package/cjs/hd/validatePath.js +20 -0
- package/cjs/helpers.d.ts +12 -0
- package/cjs/helpers.js +24 -0
- package/cjs/hmac/index.d.ts +1 -0
- package/cjs/hmac/index.js +7 -0
- package/cjs/hmac/shaAsU8a.d.ts +15 -0
- package/cjs/hmac/shaAsU8a.js +40 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +5 -0
- package/cjs/init.d.ts +10 -0
- package/cjs/init.js +43 -0
- package/cjs/json/constants.d.ts +6 -0
- package/cjs/json/constants.js +8 -0
- package/cjs/json/decrypt.d.ts +2 -0
- package/cjs/json/decrypt.js +16 -0
- package/cjs/json/decryptData.d.ts +2 -0
- package/cjs/json/decryptData.js +32 -0
- package/cjs/json/encrypt.d.ts +2 -0
- package/cjs/json/encrypt.js +18 -0
- package/cjs/json/encryptFormat.d.ts +2 -0
- package/cjs/json/encryptFormat.js +17 -0
- package/{src/json/index.ts → cjs/json/index.d.ts} +0 -3
- package/cjs/json/index.js +11 -0
- package/cjs/json/types.d.ts +16 -0
- package/cjs/json/types.js +2 -0
- package/cjs/keccak/asU8a.d.ts +30 -0
- package/cjs/keccak/asU8a.js +36 -0
- package/{src/keccak/index.ts → cjs/keccak/index.d.ts} +0 -4
- package/cjs/keccak/index.js +11 -0
- package/cjs/key/DeriveJunction.d.ts +12 -0
- package/cjs/key/DeriveJunction.js +62 -0
- package/cjs/key/extractPath.d.ts +9 -0
- package/cjs/key/extractPath.js +26 -0
- package/cjs/key/extractSuri.d.ts +11 -0
- package/cjs/key/extractSuri.js +25 -0
- package/cjs/key/fromPath.d.ts +3 -0
- package/cjs/key/fromPath.js +21 -0
- package/cjs/key/hdkdDerive.d.ts +3 -0
- package/cjs/key/hdkdDerive.js +11 -0
- package/cjs/key/hdkdEcdsa.d.ts +1 -0
- package/cjs/key/hdkdEcdsa.js +7 -0
- package/cjs/key/hdkdEd25519.d.ts +1 -0
- package/cjs/key/hdkdEd25519.js +6 -0
- package/cjs/key/hdkdSr25519.d.ts +3 -0
- package/cjs/key/hdkdSr25519.js +10 -0
- package/{src/key/index.ts → cjs/key/index.d.ts} +0 -3
- package/cjs/key/index.js +18 -0
- package/cjs/mnemonic/bip39.d.ts +5 -0
- package/cjs/mnemonic/bip39.js +90 -0
- package/cjs/mnemonic/generate.d.ts +13 -0
- package/cjs/mnemonic/generate.js +23 -0
- package/{src/mnemonic/index.ts → cjs/mnemonic/index.d.ts} +0 -3
- package/cjs/mnemonic/index.js +16 -0
- package/cjs/mnemonic/toEntropy.d.ts +1 -0
- package/cjs/mnemonic/toEntropy.js +11 -0
- package/cjs/mnemonic/toLegacySeed.d.ts +18 -0
- package/cjs/mnemonic/toLegacySeed.js +37 -0
- package/cjs/mnemonic/toMiniSecret.d.ts +1 -0
- package/cjs/mnemonic/toMiniSecret.js +20 -0
- package/cjs/mnemonic/validate.d.ts +14 -0
- package/cjs/mnemonic/validate.js +24 -0
- package/cjs/mnemonic/wordlists/en.d.ts +2 -0
- package/cjs/mnemonic/wordlists/en.js +3 -0
- package/cjs/mnemonic/wordlists/es.d.ts +2 -0
- package/cjs/mnemonic/wordlists/es.js +3 -0
- package/cjs/mnemonic/wordlists/fr.d.ts +2 -0
- package/cjs/mnemonic/wordlists/fr.js +3 -0
- package/{src/mnemonic/wordlists/index.ts → cjs/mnemonic/wordlists/index.d.ts} +0 -3
- package/cjs/mnemonic/wordlists/index.js +20 -0
- package/cjs/mnemonic/wordlists/it.d.ts +2 -0
- package/cjs/mnemonic/wordlists/it.js +3 -0
- package/cjs/mnemonic/wordlists/jp.d.ts +2 -0
- package/cjs/mnemonic/wordlists/jp.js +3 -0
- package/cjs/mnemonic/wordlists/ko.d.ts +2 -0
- package/cjs/mnemonic/wordlists/ko.js +3 -0
- package/cjs/mnemonic/wordlists/zh-s.d.ts +2 -0
- package/cjs/mnemonic/wordlists/zh-s.js +3 -0
- package/cjs/mnemonic/wordlists/zh-t.d.ts +2 -0
- package/cjs/mnemonic/wordlists/zh-t.js +3 -0
- package/cjs/nacl/decrypt.d.ts +15 -0
- package/cjs/nacl/decrypt.js +21 -0
- package/cjs/nacl/encrypt.d.ts +20 -0
- package/cjs/nacl/encrypt.js +25 -0
- package/{src/nacl/index.ts → cjs/nacl/index.d.ts} +0 -3
- package/cjs/nacl/index.js +10 -0
- package/cjs/nacl/tweetnacl.d.ts +2 -0
- package/cjs/nacl/tweetnacl.js +238 -0
- package/cjs/networks.d.ts +1 -0
- package/cjs/networks.js +7 -0
- package/cjs/package.json +3 -0
- package/cjs/packageDetect.d.ts +1 -0
- package/cjs/packageDetect.js +8 -0
- package/cjs/packageInfo.d.ts +6 -0
- package/cjs/packageInfo.js +4 -0
- package/cjs/pbkdf2/encode.d.ts +7 -0
- package/cjs/pbkdf2/encode.js +19 -0
- package/cjs/pbkdf2/index.d.ts +1 -0
- package/cjs/pbkdf2/index.js +5 -0
- package/cjs/random/asNumber.d.ts +15 -0
- package/cjs/random/asNumber.js +23 -0
- package/cjs/random/asU8a.d.ts +20 -0
- package/cjs/random/asU8a.js +28 -0
- package/{src/random/index.ts → cjs/random/index.d.ts} +0 -4
- package/cjs/random/index.js +11 -0
- package/cjs/scrypt/defaults.d.ts +3 -0
- package/cjs/scrypt/defaults.js +16 -0
- package/cjs/scrypt/encode.d.ts +8 -0
- package/cjs/scrypt/encode.js +18 -0
- package/cjs/scrypt/fromU8a.d.ts +7 -0
- package/cjs/scrypt/fromU8a.js +27 -0
- package/{src/scrypt/index.ts → cjs/scrypt/index.d.ts} +0 -3
- package/cjs/scrypt/index.js +9 -0
- package/cjs/scrypt/toU8a.d.ts +2 -0
- package/cjs/scrypt/toU8a.js +8 -0
- package/cjs/scrypt/types.d.ts +6 -0
- package/cjs/scrypt/types.js +2 -0
- package/cjs/secp256k1/compress.d.ts +1 -0
- package/cjs/secp256k1/compress.js +17 -0
- package/cjs/secp256k1/deriveHard.d.ts +1 -0
- package/cjs/secp256k1/deriveHard.js +13 -0
- package/cjs/secp256k1/expand.d.ts +1 -0
- package/cjs/secp256k1/expand.js +20 -0
- package/cjs/secp256k1/hasher.d.ts +2 -0
- package/cjs/secp256k1/hasher.js +10 -0
- package/{src/secp256k1/index.ts → cjs/secp256k1/index.d.ts} +0 -3
- package/cjs/secp256k1/index.js +17 -0
- package/cjs/secp256k1/pair/fromSeed.d.ts +6 -0
- package/cjs/secp256k1/pair/fromSeed.js +34 -0
- package/cjs/secp256k1/recover.d.ts +6 -0
- package/cjs/secp256k1/recover.js +29 -0
- package/cjs/secp256k1/sign.d.ts +7 -0
- package/cjs/secp256k1/sign.js +23 -0
- package/cjs/secp256k1/tweakAdd.d.ts +1 -0
- package/cjs/secp256k1/tweakAdd.js +48 -0
- package/cjs/secp256k1/types.d.ts +1 -0
- package/cjs/secp256k1/types.js +2 -0
- package/cjs/secp256k1/verify.d.ts +6 -0
- package/cjs/secp256k1/verify.js +23 -0
- package/cjs/sha/asU8a.d.ts +15 -0
- package/cjs/sha/asU8a.js +22 -0
- package/{src/sha/index.ts → cjs/sha/index.d.ts} +0 -4
- package/cjs/sha/index.js +10 -0
- package/cjs/signature/index.d.ts +4 -0
- package/cjs/signature/index.js +8 -0
- package/cjs/signature/verify.d.ts +2 -0
- package/cjs/signature/verify.js +81 -0
- package/cjs/sr25519/agreement.d.ts +5 -0
- package/cjs/sr25519/agreement.js +20 -0
- package/cjs/sr25519/derive.d.ts +2 -0
- package/cjs/sr25519/derive.js +16 -0
- package/cjs/sr25519/deriveHard.d.ts +1 -0
- package/cjs/sr25519/deriveHard.js +7 -0
- package/cjs/sr25519/derivePublic.d.ts +1 -0
- package/cjs/sr25519/derivePublic.js +16 -0
- package/cjs/sr25519/deriveSoft.d.ts +1 -0
- package/cjs/sr25519/deriveSoft.js +7 -0
- package/{src/sr25519/index.ts → cjs/sr25519/index.d.ts} +0 -3
- package/cjs/sr25519/index.js +21 -0
- package/cjs/sr25519/pair/fromSeed.d.ts +6 -0
- package/cjs/sr25519/pair/fromSeed.js +22 -0
- package/cjs/sr25519/pair/fromU8a.d.ts +2 -0
- package/cjs/sr25519/pair/fromU8a.js +17 -0
- package/cjs/sr25519/pair/toU8a.d.ts +2 -0
- package/cjs/sr25519/pair/toU8a.js +7 -0
- package/cjs/sr25519/sign.d.ts +6 -0
- package/cjs/sr25519/sign.js +19 -0
- package/cjs/sr25519/verify.d.ts +5 -0
- package/cjs/sr25519/verify.js +21 -0
- package/cjs/sr25519/vrfSign.d.ts +6 -0
- package/cjs/sr25519/vrfSign.js +19 -0
- package/cjs/sr25519/vrfVerify.d.ts +5 -0
- package/cjs/sr25519/vrfVerify.js +22 -0
- package/cjs/types.d.ts +26 -0
- package/cjs/types.js +5 -0
- package/cjs/wbg.d.ts +36 -0
- package/cjs/wbg.js +65 -0
- package/cjs/xxhash/asU8a.d.ts +20 -0
- package/cjs/xxhash/asU8a.js +39 -0
- package/{src/xxhash/index.ts → cjs/xxhash/index.d.ts} +0 -4
- package/cjs/xxhash/index.js +9 -0
- package/cjs/xxhash/xxhash64.d.ts +1 -0
- package/cjs/xxhash/xxhash64.js +103 -0
- package/crypto.d.ts +3 -0
- package/crypto.js +12 -0
- package/ed25519/deriveHard.d.ts +1 -0
- package/ed25519/deriveHard.js +9 -0
- package/ed25519/index.d.ts +10 -0
- package/ed25519/index.js +10 -0
- package/ed25519/pair/fromRandom.d.ts +16 -0
- package/{src/ed25519/pair/fromRandom.ts → ed25519/pair/fromRandom.js} +2 -8
- package/ed25519/pair/fromSecret.d.ts +16 -0
- package/ed25519/pair/fromSecret.js +23 -0
- package/ed25519/pair/fromSeed.d.ts +16 -0
- package/{src/ed25519/pair/fromSeed.ts → ed25519/pair/fromSeed.js} +11 -21
- package/ed25519/pair/fromString.d.ts +16 -0
- package/{src/ed25519/pair/fromString.ts → ed25519/pair/fromString.js} +2 -13
- package/ed25519/sign.d.ts +16 -0
- package/ed25519/sign.js +30 -0
- package/ed25519/verify.d.ts +15 -0
- package/ed25519/verify.js +36 -0
- package/ethereum/encode.d.ts +2 -0
- package/ethereum/encode.js +25 -0
- package/ethereum/index.d.ts +3 -0
- package/ethereum/index.js +3 -0
- package/ethereum/isAddress.d.ts +1 -0
- package/ethereum/isAddress.js +11 -0
- package/ethereum/isChecksum.d.ts +1 -0
- package/ethereum/isChecksum.js +17 -0
- package/hd/ethereum/index.d.ts +2 -0
- package/hd/ethereum/index.js +44 -0
- package/hd/index.d.ts +3 -0
- package/hd/index.js +3 -0
- package/hd/ledger/derivePrivate.d.ts +1 -0
- package/hd/ledger/derivePrivate.js +12 -0
- package/hd/ledger/index.d.ts +2 -0
- package/hd/ledger/index.js +30 -0
- package/hd/ledger/master.d.ts +1 -0
- package/hd/ledger/master.js +16 -0
- package/hd/validatePath.d.ts +2 -0
- package/hd/validatePath.js +16 -0
- package/helpers.d.ts +12 -0
- package/helpers.js +19 -0
- package/hmac/index.d.ts +1 -0
- package/hmac/index.js +1 -0
- package/hmac/shaAsU8a.d.ts +15 -0
- package/{src/hmac/shaAsU8a.ts → hmac/shaAsU8a.js} +11 -23
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/init.d.ts +10 -0
- package/init.js +40 -0
- package/json/constants.d.ts +6 -0
- package/json/constants.js +5 -0
- package/json/decrypt.d.ts +2 -0
- package/json/decrypt.js +13 -0
- package/json/decryptData.d.ts +2 -0
- package/json/decryptData.js +29 -0
- package/json/encrypt.d.ts +2 -0
- package/json/encrypt.js +15 -0
- package/json/encryptFormat.d.ts +2 -0
- package/json/encryptFormat.js +14 -0
- package/json/index.d.ts +4 -0
- package/json/index.js +4 -0
- package/json/types.d.ts +16 -0
- package/json/types.js +1 -0
- package/keccak/asU8a.d.ts +30 -0
- package/{src/keccak/asU8a.ts → keccak/asU8a.js} +1 -13
- package/keccak/index.d.ts +4 -0
- package/keccak/index.js +4 -0
- package/key/DeriveJunction.d.ts +12 -0
- package/key/DeriveJunction.js +58 -0
- package/key/extractPath.d.ts +9 -0
- package/key/extractPath.js +23 -0
- package/key/extractSuri.d.ts +11 -0
- package/key/extractSuri.js +22 -0
- package/key/fromPath.d.ts +3 -0
- package/key/fromPath.js +18 -0
- package/key/hdkdDerive.d.ts +3 -0
- package/key/hdkdDerive.js +8 -0
- package/key/hdkdEcdsa.d.ts +1 -0
- package/{src/key/hdkdEcdsa.ts → key/hdkdEcdsa.js} +0 -4
- package/key/hdkdEd25519.d.ts +1 -0
- package/{src/key/hdkdEd25519.ts → key/hdkdEd25519.js} +0 -4
- package/key/hdkdSr25519.d.ts +3 -0
- package/key/hdkdSr25519.js +7 -0
- package/key/index.d.ts +9 -0
- package/key/index.js +9 -0
- package/mnemonic/bip39.d.ts +5 -0
- package/mnemonic/bip39.js +82 -0
- package/mnemonic/generate.d.ts +13 -0
- package/{src/mnemonic/generate.ts → mnemonic/generate.js} +4 -9
- package/mnemonic/index.d.ts +8 -0
- package/mnemonic/index.js +8 -0
- package/mnemonic/toEntropy.d.ts +1 -0
- package/mnemonic/toEntropy.js +8 -0
- package/mnemonic/toLegacySeed.d.ts +18 -0
- package/{src/mnemonic/toLegacySeed.ts → mnemonic/toLegacySeed.js} +12 -17
- package/mnemonic/toMiniSecret.d.ts +1 -0
- package/mnemonic/toMiniSecret.js +17 -0
- package/mnemonic/validate.d.ts +14 -0
- package/{src/mnemonic/validate.ts → mnemonic/validate.js} +4 -9
- package/mnemonic/wordlists/en.d.ts +2 -0
- package/{src/mnemonic/wordlists/en.ts → mnemonic/wordlists/en.js} +0 -6
- package/mnemonic/wordlists/es.d.ts +2 -0
- package/{src/mnemonic/wordlists/es.ts → mnemonic/wordlists/es.js} +0 -6
- package/mnemonic/wordlists/fr.d.ts +2 -0
- package/{src/mnemonic/wordlists/fr.ts → mnemonic/wordlists/fr.js} +0 -6
- package/mnemonic/wordlists/index.d.ts +8 -0
- package/mnemonic/wordlists/index.js +8 -0
- package/mnemonic/wordlists/it.d.ts +2 -0
- package/{src/mnemonic/wordlists/it.ts → mnemonic/wordlists/it.js} +0 -6
- package/mnemonic/wordlists/jp.d.ts +2 -0
- package/{src/mnemonic/wordlists/jp.ts → mnemonic/wordlists/jp.js} +0 -6
- package/mnemonic/wordlists/ko.d.ts +2 -0
- package/{src/mnemonic/wordlists/ko.ts → mnemonic/wordlists/ko.js} +0 -6
- package/mnemonic/wordlists/zh-s.d.ts +2 -0
- package/{src/mnemonic/wordlists/zh-s.ts → mnemonic/wordlists/zh-s.js} +0 -6
- package/mnemonic/wordlists/zh-t.d.ts +2 -0
- package/{src/mnemonic/wordlists/zh-t.ts → mnemonic/wordlists/zh-t.js} +0 -6
- package/nacl/decrypt.d.ts +15 -0
- package/{src/nacl/decrypt.ts → nacl/decrypt.js} +2 -6
- package/nacl/encrypt.d.ts +20 -0
- package/{src/nacl/encrypt.ts → nacl/encrypt.js} +5 -14
- package/nacl/index.d.ts +5 -0
- package/nacl/index.js +5 -0
- package/nacl/tweetnacl.d.ts +2 -0
- package/nacl/tweetnacl.js +234 -0
- package/networks.d.ts +1 -0
- package/networks.js +1 -0
- package/package.json +2022 -10
- package/packageDetect.d.ts +1 -0
- package/{src/packageDetect.ts → packageDetect.js} +0 -8
- package/packageInfo.d.ts +6 -0
- package/packageInfo.js +1 -0
- package/pbkdf2/encode.d.ts +7 -0
- package/pbkdf2/encode.js +16 -0
- package/pbkdf2/index.d.ts +1 -0
- package/pbkdf2/index.js +1 -0
- package/random/asNumber.d.ts +15 -0
- package/{src/random/asNumber.ts → random/asNumber.js} +2 -10
- package/random/asU8a.d.ts +20 -0
- package/{src/random/asU8a.ts → random/asU8a.js} +2 -8
- package/random/index.d.ts +5 -0
- package/random/index.js +5 -0
- package/scrypt/defaults.d.ts +3 -0
- package/scrypt/defaults.js +13 -0
- package/scrypt/encode.d.ts +8 -0
- package/scrypt/encode.js +15 -0
- package/scrypt/fromU8a.d.ts +7 -0
- package/scrypt/fromU8a.js +24 -0
- package/scrypt/index.d.ts +3 -0
- package/scrypt/index.js +3 -0
- package/scrypt/toU8a.d.ts +2 -0
- package/scrypt/toU8a.js +5 -0
- package/scrypt/types.d.ts +6 -0
- package/scrypt/types.js +1 -0
- package/secp256k1/compress.d.ts +1 -0
- package/secp256k1/compress.js +14 -0
- package/secp256k1/deriveHard.d.ts +1 -0
- package/secp256k1/deriveHard.js +10 -0
- package/secp256k1/expand.d.ts +1 -0
- package/secp256k1/expand.js +17 -0
- package/secp256k1/hasher.d.ts +2 -0
- package/secp256k1/hasher.js +7 -0
- package/secp256k1/index.d.ts +7 -0
- package/secp256k1/index.js +7 -0
- package/secp256k1/pair/fromSeed.d.ts +6 -0
- package/secp256k1/pair/fromSeed.js +31 -0
- package/secp256k1/recover.d.ts +6 -0
- package/secp256k1/recover.js +26 -0
- package/secp256k1/sign.d.ts +7 -0
- package/secp256k1/sign.js +20 -0
- package/secp256k1/tweakAdd.d.ts +1 -0
- package/secp256k1/tweakAdd.js +45 -0
- package/secp256k1/types.d.ts +1 -0
- package/secp256k1/types.js +1 -0
- package/secp256k1/verify.d.ts +6 -0
- package/secp256k1/verify.js +20 -0
- package/sha/asU8a.d.ts +15 -0
- package/{src/sha/asU8a.ts → sha/asU8a.js} +1 -12
- package/sha/index.d.ts +4 -0
- package/sha/index.js +4 -0
- package/signature/index.d.ts +4 -0
- package/signature/index.js +4 -0
- package/signature/verify.d.ts +2 -0
- package/signature/verify.js +78 -0
- package/sr25519/agreement.d.ts +5 -0
- package/sr25519/agreement.js +17 -0
- package/sr25519/derive.d.ts +2 -0
- package/sr25519/derive.js +12 -0
- package/sr25519/deriveHard.d.ts +1 -0
- package/{src/sr25519/deriveHard.ts → sr25519/deriveHard.js} +0 -6
- package/sr25519/derivePublic.d.ts +1 -0
- package/sr25519/derivePublic.js +12 -0
- package/sr25519/deriveSoft.d.ts +1 -0
- package/{src/sr25519/deriveSoft.ts → sr25519/deriveSoft.js} +0 -6
- package/sr25519/index.d.ts +9 -0
- package/sr25519/index.js +9 -0
- package/sr25519/pair/fromSeed.d.ts +6 -0
- package/sr25519/pair/fromSeed.js +18 -0
- package/sr25519/pair/fromU8a.d.ts +2 -0
- package/sr25519/pair/fromU8a.js +14 -0
- package/sr25519/pair/toU8a.d.ts +2 -0
- package/sr25519/pair/toU8a.js +4 -0
- package/sr25519/sign.d.ts +6 -0
- package/sr25519/sign.js +15 -0
- package/sr25519/verify.d.ts +5 -0
- package/sr25519/verify.js +17 -0
- package/sr25519/vrfSign.d.ts +6 -0
- package/sr25519/vrfSign.js +15 -0
- package/sr25519/vrfVerify.d.ts +5 -0
- package/sr25519/vrfVerify.js +18 -0
- package/types.d.ts +26 -0
- package/types.js +2 -0
- package/wbg.d.ts +36 -0
- package/wbg.js +61 -0
- package/xxhash/asU8a.d.ts +20 -0
- package/{src/xxhash/asU8a.ts → xxhash/asU8a.js} +11 -21
- package/xxhash/index.d.ts +4 -0
- package/xxhash/index.js +4 -0
- package/xxhash/xxhash64.d.ts +1 -0
- package/xxhash/xxhash64.js +100 -0
- package/src/address/addressToEvm.spec.ts +0 -16
- package/src/address/addressToEvm.ts +0 -12
- package/src/address/check.spec.ts +0 -44
- package/src/address/check.ts +0 -34
- package/src/address/checksum.spec.ts +0 -45
- package/src/address/checksum.ts +0 -25
- package/src/address/decode.spec.ts +0 -138
- package/src/address/decode.ts +0 -41
- package/src/address/defaults.ts +0 -12
- package/src/address/derive.spec.ts +0 -26
- package/src/address/derive.ts +0 -36
- package/src/address/encode.spec.ts +0 -177
- package/src/address/encode.ts +0 -43
- package/src/address/encodeDerived.spec.ts +0 -14
- package/src/address/encodeDerived.ts +0 -19
- package/src/address/encodeMulti.spec.ts +0 -18
- package/src/address/encodeMulti.ts +0 -18
- package/src/address/eq.spec.ts +0 -45
- package/src/address/evmToAddress.spec.ts +0 -20
- package/src/address/evmToAddress.ts +0 -24
- package/src/address/is.spec.ts +0 -113
- package/src/address/is.ts +0 -14
- package/src/address/keyDerived.spec.ts +0 -24
- package/src/address/keyDerived.ts +0 -22
- package/src/address/keyMulti.spec.ts +0 -20
- package/src/address/keyMulti.ts +0 -23
- package/src/address/setSS58Format.spec.ts +0 -21
- package/src/address/setSS58Format.ts +0 -20
- package/src/address/sort.spec.ts +0 -22
- package/src/address/sort.ts +0 -17
- package/src/address/sshash.ts +0 -12
- package/src/address/types.ts +0 -6
- package/src/address/util.ts +0 -8
- package/src/address/validate.spec.ts +0 -113
- package/src/address/validate.ts +0 -10
- package/src/base32/decode.spec.ts +0 -34
- package/src/base32/encode.spec.ts +0 -30
- package/src/base32/helpers.ts +0 -93
- package/src/base32/is.spec.ts +0 -32
- package/src/base32/validate.spec.ts +0 -44
- package/src/base58/decode.spec.ts +0 -31
- package/src/base58/encode.spec.ts +0 -26
- package/src/base58/validate.spec.ts +0 -20
- package/src/base64/decode.spec.ts +0 -42
- package/src/base64/encode.spec.ts +0 -14
- package/src/base64/pad.spec.ts +0 -14
- package/src/base64/pad.ts +0 -10
- package/src/base64/trim.spec.ts +0 -14
- package/src/base64/trim.ts +0 -14
- package/src/base64/validate.spec.ts +0 -32
- package/src/blake2/asHex.spec.ts +0 -57
- package/src/blake2/asU8a.spec.ts +0 -74
- package/src/bundleInit.ts +0 -11
- package/src/crypto.spec.ts +0 -18
- package/src/crypto.ts +0 -18
- package/src/ed25519/deriveHard.ts +0 -18
- package/src/ed25519/pair/fromRandom.spec.ts +0 -28
- package/src/ed25519/pair/fromSecret.spec.ts +0 -33
- package/src/ed25519/pair/fromSeed.spec.ts +0 -42
- package/src/ed25519/pair/fromString.spec.ts +0 -17
- package/src/ed25519/sign.spec.ts +0 -40
- package/src/ed25519/sign.ts +0 -38
- package/src/ed25519/verify.spec.ts +0 -84
- package/src/ed25519/verify.ts +0 -41
- package/src/ethereum/encode.spec.ts +0 -59
- package/src/ethereum/encode.ts +0 -39
- package/src/ethereum/isAddress.spec.ts +0 -34
- package/src/ethereum/isAddress.ts +0 -16
- package/src/ethereum/isChecksum.ts +0 -27
- package/src/ethereum/isCheksum.spec.ts +0 -30
- package/src/hd/ethereum/index.spec.ts +0 -54
- package/src/hd/ethereum/index.ts +0 -69
- package/src/hd/ledger/derivePrivate.ts +0 -34
- package/src/hd/ledger/index.spec.ts +0 -64
- package/src/hd/ledger/index.ts +0 -42
- package/src/hd/ledger/master.spec.ts +0 -19
- package/src/hd/ledger/master.ts +0 -26
- package/src/hd/validatePath.spec.ts +0 -30
- package/src/hd/validatePath.ts +0 -24
- package/src/helpers.ts +0 -38
- package/src/hmac/index.ts +0 -4
- package/src/hmac/shaAsU8a.spec.ts +0 -45
- package/src/index.ts +0 -6
- package/src/json/constants.ts +0 -11
- package/src/json/decrypt.ts +0 -25
- package/src/json/decryptData.ts +0 -45
- package/src/json/encrypt.ts +0 -25
- package/src/json/encryptFormat.ts +0 -20
- package/src/json/types.ts +0 -22
- package/src/keccak/asHex.spec.ts +0 -30
- package/src/keccak/asU8a.spec.ts +0 -56
- package/src/key/DeriveJunction.ts +0 -79
- package/src/key/extractPath.spec.ts +0 -51
- package/src/key/extractPath.ts +0 -37
- package/src/key/extractSuri.spec.ts +0 -147
- package/src/key/extractSuri.ts +0 -40
- package/src/key/fromPath.ts +0 -28
- package/src/key/hdkdDerive.ts +0 -17
- package/src/key/hdkdSr25519.ts +0 -14
- package/src/mnemonic/bip39.spec.ts +0 -80
- package/src/mnemonic/bip39.ts +0 -127
- package/src/mnemonic/generate.spec.ts +0 -58
- package/src/mnemonic/toEntropy.spec.ts +0 -36
- package/src/mnemonic/toEntropy.ts +0 -13
- package/src/mnemonic/toLegacySeed.spec.ts +0 -52
- package/src/mnemonic/toMiniSecret.spec.ts +0 -67
- package/src/mnemonic/toMiniSecret.ts +0 -23
- package/src/mnemonic/toMiniSecretCmp.spec.ts +0 -64
- package/src/mnemonic/validate.spec.ts +0 -39
- package/src/mod.ts +0 -4
- package/src/nacl/decrypt.spec.ts +0 -26
- package/src/nacl/encrypt.spec.ts +0 -20
- package/src/nacl/tweetnacl-secretbox-data.spec.ts +0 -4629
- package/src/nacl/tweetnacl-secretbox.spec.ts +0 -161
- package/src/nacl/tweetnacl.ts +0 -1159
- package/src/networks.ts +0 -5
- package/src/packageInfo.ts +0 -6
- package/src/pbkdf2/encode.spec.ts +0 -54
- package/src/pbkdf2/encode.ts +0 -29
- package/src/pbkdf2/index.ts +0 -4
- package/src/random/asHex.spec.ts +0 -38
- package/src/random/asNumber.spec.ts +0 -16
- package/src/random/asU8a.spec.ts +0 -36
- package/src/scrypt/defaults.ts +0 -19
- package/src/scrypt/encode.spec.ts +0 -43
- package/src/scrypt/encode.ts +0 -30
- package/src/scrypt/fromU8a.ts +0 -44
- package/src/scrypt/toU8a.ts +0 -17
- package/src/scrypt/types.ts +0 -9
- package/src/secp256k1/compress.spec.ts +0 -47
- package/src/secp256k1/compress.ts +0 -21
- package/src/secp256k1/deriveHard.ts +0 -17
- package/src/secp256k1/expand.spec.ts +0 -47
- package/src/secp256k1/expand.ts +0 -30
- package/src/secp256k1/hasher.spec.ts +0 -24
- package/src/secp256k1/hasher.ts +0 -13
- package/src/secp256k1/pair/fromSeed.spec.ts +0 -75
- package/src/secp256k1/pair/fromSeed.ts +0 -42
- package/src/secp256k1/recover.spec.ts +0 -35
- package/src/secp256k1/recover.ts +0 -36
- package/src/secp256k1/sign.spec.ts +0 -39
- package/src/secp256k1/sign.ts +0 -37
- package/src/secp256k1/signVerify.spec.ts +0 -94
- package/src/secp256k1/tweakAdd.spec.ts +0 -35
- package/src/secp256k1/tweakAdd.ts +0 -65
- package/src/secp256k1/types.ts +0 -4
- package/src/secp256k1/verify.spec.ts +0 -81
- package/src/secp256k1/verify.ts +0 -32
- package/src/sha/asU8a256.spec.ts +0 -55
- package/src/sha/asU8a512.spec.ts +0 -33
- package/src/signature/index.ts +0 -8
- package/src/signature/verify.spec.ts +0 -230
- package/src/signature/verify.ts +0 -114
- package/src/sr25519/agreement.spec.ts +0 -31
- package/src/sr25519/agreement.ts +0 -23
- package/src/sr25519/derive.ts +0 -21
- package/src/sr25519/derivePublic.ts +0 -18
- package/src/sr25519/pair/fromSeed.spec.ts +0 -35
- package/src/sr25519/pair/fromSeed.ts +0 -28
- package/src/sr25519/pair/fromU8a.ts +0 -23
- package/src/sr25519/pair/testing.spec.ts +0 -161
- package/src/sr25519/pair/toU8a.ts +0 -10
- package/src/sr25519/sign.spec.ts +0 -28
- package/src/sr25519/sign.ts +0 -22
- package/src/sr25519/verify.spec.ts +0 -42
- package/src/sr25519/verify.ts +0 -23
- package/src/sr25519/vrfSign.ts +0 -24
- package/src/sr25519/vrfSignVerify.spec.ts +0 -73
- package/src/sr25519/vrfVerify.ts +0 -25
- package/src/test/index.ts +0 -8
- package/src/test/performance.ts +0 -17
- package/src/types.ts +0 -33
- package/src/xxhash/asHex.spec.ts +0 -36
- package/src/xxhash/asU8a.spec.ts +0 -48
- package/src/xxhash/xxhash64.ts +0 -155
- package/tsconfig.build.json +0 -18
- package/tsconfig.spec.json +0 -20
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sr25519Verify = sr25519Verify;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
|
|
6
|
+
const util_1 = require("@pezkuwi/util");
|
|
7
|
+
/**
|
|
8
|
+
* @name sr25519Verify
|
|
9
|
+
* @description Verifies the signature of `message`, using the supplied pair
|
|
10
|
+
*/
|
|
11
|
+
function sr25519Verify(message, signature, publicKey) {
|
|
12
|
+
const publicKeyU8a = (0, util_1.u8aToU8a)(publicKey);
|
|
13
|
+
const signatureU8a = (0, util_1.u8aToU8a)(signature);
|
|
14
|
+
if (publicKeyU8a.length !== 32) {
|
|
15
|
+
throw new Error(`Invalid publicKey, received ${publicKeyU8a.length} bytes, expected 32`);
|
|
16
|
+
}
|
|
17
|
+
else if (signatureU8a.length !== 64) {
|
|
18
|
+
throw new Error(`Invalid signature, received ${signatureU8a.length} bytes, expected 64`);
|
|
19
|
+
}
|
|
20
|
+
return sr25519.verify((0, util_1.u8aToU8a)(message), signatureU8a, publicKeyU8a);
|
|
21
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Keypair } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name sr25519VrfSign
|
|
4
|
+
* @description Sign with sr25519 vrf signing (deterministic)
|
|
5
|
+
*/
|
|
6
|
+
export declare function sr25519VrfSign(message: string | Uint8Array, { secretKey }: Partial<Keypair>, context?: string | Uint8Array, extra?: string | Uint8Array): Uint8Array;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sr25519VrfSign = sr25519VrfSign;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const utils_1 = require("@noble/hashes/utils");
|
|
6
|
+
const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
|
|
7
|
+
const util_1 = require("@pezkuwi/util");
|
|
8
|
+
const EMPTY_U8A = new Uint8Array();
|
|
9
|
+
/**
|
|
10
|
+
* @name sr25519VrfSign
|
|
11
|
+
* @description Sign with sr25519 vrf signing (deterministic)
|
|
12
|
+
*/
|
|
13
|
+
function sr25519VrfSign(message, { secretKey }, context = EMPTY_U8A, extra = EMPTY_U8A) {
|
|
14
|
+
if (secretKey?.length !== 64) {
|
|
15
|
+
throw new Error('Invalid secretKey, expected 64-bytes');
|
|
16
|
+
}
|
|
17
|
+
return sr25519.vrf.sign((0, util_1.u8aToU8a)(message), secretKey, (0, util_1.u8aToU8a)(context), (0, util_1.u8aToU8a)(extra), utils_1.randomBytes);
|
|
18
|
+
// return vrfSign(secretKey, u8aToU8a(context), u8aToU8a(message), u8aToU8a(extra));
|
|
19
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name sr25519VrfVerify
|
|
3
|
+
* @description Verify with sr25519 vrf verification
|
|
4
|
+
*/
|
|
5
|
+
export declare function sr25519VrfVerify(message: string | Uint8Array, signOutput: string | Uint8Array, publicKey: string | Uint8Array, context?: string | Uint8Array, extra?: string | Uint8Array): boolean;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sr25519VrfVerify = sr25519VrfVerify;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const sr25519 = tslib_1.__importStar(require("@scure/sr25519"));
|
|
6
|
+
const util_1 = require("@pezkuwi/util");
|
|
7
|
+
const EMPTY_U8A = new Uint8Array();
|
|
8
|
+
/**
|
|
9
|
+
* @name sr25519VrfVerify
|
|
10
|
+
* @description Verify with sr25519 vrf verification
|
|
11
|
+
*/
|
|
12
|
+
function sr25519VrfVerify(message, signOutput, publicKey, context = EMPTY_U8A, extra = EMPTY_U8A) {
|
|
13
|
+
const publicKeyU8a = (0, util_1.u8aToU8a)(publicKey);
|
|
14
|
+
const proofU8a = (0, util_1.u8aToU8a)(signOutput);
|
|
15
|
+
if (publicKeyU8a.length !== 32) {
|
|
16
|
+
throw new Error('Invalid publicKey, expected 32-bytes');
|
|
17
|
+
}
|
|
18
|
+
else if (proofU8a.length !== 96) {
|
|
19
|
+
throw new Error('Invalid vrfSign output, expected 96 bytes');
|
|
20
|
+
}
|
|
21
|
+
return sr25519.vrf.verify((0, util_1.u8aToU8a)(message), proofU8a, publicKeyU8a, (0, util_1.u8aToU8a)(context), (0, util_1.u8aToU8a)(extra));
|
|
22
|
+
}
|
package/cjs/types.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export * from './address/types.js';
|
|
2
|
+
export * from './json/types.js';
|
|
3
|
+
export interface Keypair {
|
|
4
|
+
/** The publicKey for this pair */
|
|
5
|
+
publicKey: Uint8Array;
|
|
6
|
+
/** The secretKey for this pair */
|
|
7
|
+
secretKey: Uint8Array;
|
|
8
|
+
}
|
|
9
|
+
export interface Seedpair {
|
|
10
|
+
/** The publicKey for this pair */
|
|
11
|
+
publicKey: Uint8Array;
|
|
12
|
+
/** The seed used to construct the pair */
|
|
13
|
+
seed: Uint8Array;
|
|
14
|
+
}
|
|
15
|
+
/** The supported types of pairs */
|
|
16
|
+
export type KeypairType = 'ed25519' | 'sr25519' | 'ecdsa' | 'ethereum';
|
|
17
|
+
export interface VerifyResult {
|
|
18
|
+
/** The detected crypto interface, or 'none' if not detected */
|
|
19
|
+
crypto: 'none' | KeypairType;
|
|
20
|
+
/** The validity for this result, false if invalid */
|
|
21
|
+
isValid: boolean;
|
|
22
|
+
/** Flag to indicate if the passed data was wrapped in <Bytes>...</Bytes> */
|
|
23
|
+
isWrapped: boolean;
|
|
24
|
+
/** The extracted publicKey */
|
|
25
|
+
publicKey: Uint8Array;
|
|
26
|
+
}
|
package/cjs/types.js
ADDED
package/cjs/wbg.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { BridgeBase, WasmBaseInstance } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name Wbg
|
|
4
|
+
* @description
|
|
5
|
+
* This defines the internal interfaces that wasm-bindgen used to communicate
|
|
6
|
+
* with the host layer. None of these functions are available to the user, rather
|
|
7
|
+
* they are called internally from the WASM code itself.
|
|
8
|
+
*
|
|
9
|
+
* The interfaces here are exposed in the imports on the created WASM interfaces.
|
|
10
|
+
*
|
|
11
|
+
* Internally the implementation does a thin layer into the supplied bridge.
|
|
12
|
+
*/
|
|
13
|
+
export declare class Wbg<C extends WasmBaseInstance> {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(bridge: BridgeBase<C>);
|
|
16
|
+
/** @internal */
|
|
17
|
+
abort: () => never;
|
|
18
|
+
/** @internal */
|
|
19
|
+
__wbindgen_is_undefined: (idx: number) => boolean;
|
|
20
|
+
/** @internal */
|
|
21
|
+
__wbindgen_throw: (ptr: number, len: number) => boolean;
|
|
22
|
+
/** @internal */
|
|
23
|
+
__wbg_self_1b7a39e3a92c949c: () => number;
|
|
24
|
+
/** @internal */
|
|
25
|
+
__wbg_require_604837428532a733: (ptr: number, len: number) => never;
|
|
26
|
+
/** @internal */
|
|
27
|
+
__wbg_crypto_968f1772287e2df0: (_idx: number) => number;
|
|
28
|
+
/** @internal */
|
|
29
|
+
__wbg_getRandomValues_a3d34b4fee3c2869: (_idx: number) => number;
|
|
30
|
+
/** @internal */
|
|
31
|
+
__wbg_getRandomValues_f5e14ab7ac8e995d: (_arg0: number, ptr: number, len: number) => void;
|
|
32
|
+
/** @internal */
|
|
33
|
+
__wbg_randomFillSync_d5bd2d655fdf256a: (_idx: number, _ptr: number, _len: number) => never;
|
|
34
|
+
/** @internal */
|
|
35
|
+
__wbindgen_object_drop_ref: (idx: number) => void;
|
|
36
|
+
}
|
package/cjs/wbg.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Wbg = void 0;
|
|
4
|
+
const x_randomvalues_1 = require("@pezkuwi/x-randomvalues");
|
|
5
|
+
const DEFAULT_CRYPTO = { getRandomValues: x_randomvalues_1.getRandomValues };
|
|
6
|
+
const DEFAULT_SELF = { crypto: DEFAULT_CRYPTO };
|
|
7
|
+
/**
|
|
8
|
+
* @name Wbg
|
|
9
|
+
* @description
|
|
10
|
+
* This defines the internal interfaces that wasm-bindgen used to communicate
|
|
11
|
+
* with the host layer. None of these functions are available to the user, rather
|
|
12
|
+
* they are called internally from the WASM code itself.
|
|
13
|
+
*
|
|
14
|
+
* The interfaces here are exposed in the imports on the created WASM interfaces.
|
|
15
|
+
*
|
|
16
|
+
* Internally the implementation does a thin layer into the supplied bridge.
|
|
17
|
+
*/
|
|
18
|
+
class Wbg {
|
|
19
|
+
#bridge;
|
|
20
|
+
constructor(bridge) {
|
|
21
|
+
this.#bridge = bridge;
|
|
22
|
+
}
|
|
23
|
+
/** @internal */
|
|
24
|
+
abort = () => {
|
|
25
|
+
throw new Error('abort');
|
|
26
|
+
};
|
|
27
|
+
/** @internal */
|
|
28
|
+
__wbindgen_is_undefined = (idx) => {
|
|
29
|
+
return this.#bridge.getObject(idx) === undefined;
|
|
30
|
+
};
|
|
31
|
+
/** @internal */
|
|
32
|
+
__wbindgen_throw = (ptr, len) => {
|
|
33
|
+
throw new Error(this.#bridge.getString(ptr, len));
|
|
34
|
+
};
|
|
35
|
+
/** @internal */
|
|
36
|
+
__wbg_self_1b7a39e3a92c949c = () => {
|
|
37
|
+
return this.#bridge.addObject(DEFAULT_SELF);
|
|
38
|
+
};
|
|
39
|
+
/** @internal */
|
|
40
|
+
__wbg_require_604837428532a733 = (ptr, len) => {
|
|
41
|
+
throw new Error(`Unable to require ${this.#bridge.getString(ptr, len)}`);
|
|
42
|
+
};
|
|
43
|
+
/** @internal */
|
|
44
|
+
__wbg_crypto_968f1772287e2df0 = (_idx) => {
|
|
45
|
+
return this.#bridge.addObject(DEFAULT_CRYPTO);
|
|
46
|
+
};
|
|
47
|
+
/** @internal */
|
|
48
|
+
__wbg_getRandomValues_a3d34b4fee3c2869 = (_idx) => {
|
|
49
|
+
return this.#bridge.addObject(DEFAULT_CRYPTO.getRandomValues);
|
|
50
|
+
};
|
|
51
|
+
/** @internal */
|
|
52
|
+
__wbg_getRandomValues_f5e14ab7ac8e995d = (_arg0, ptr, len) => {
|
|
53
|
+
DEFAULT_CRYPTO.getRandomValues(this.#bridge.getU8a(ptr, len));
|
|
54
|
+
};
|
|
55
|
+
/** @internal */
|
|
56
|
+
__wbg_randomFillSync_d5bd2d655fdf256a = (_idx, _ptr, _len) => {
|
|
57
|
+
throw new Error('randomFillsync is not available');
|
|
58
|
+
// getObject(idx).randomFillSync(getU8a(ptr, len));
|
|
59
|
+
};
|
|
60
|
+
/** @internal */
|
|
61
|
+
__wbindgen_object_drop_ref = (idx) => {
|
|
62
|
+
this.#bridge.takeObject(idx);
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
exports.Wbg = Wbg;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name xxhashAsU8a
|
|
3
|
+
* @summary Creates a xxhash64 u8a from the input.
|
|
4
|
+
* @description
|
|
5
|
+
* From either a `string`, `Uint8Array` or a `Buffer` input, create the xxhash64 and return the result as a `Uint8Array` with the specified `bitLength`.
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { xxhashAsU8a } from '@polkadot/util-crypto';
|
|
11
|
+
*
|
|
12
|
+
* xxhashAsU8a('abc'); // => 0x44bc2cf5ad770999
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function xxhashAsU8a(data: string | Uint8Array, bitLength?: 64 | 128 | 192 | 256 | 320 | 384 | 448 | 512, onlyJs?: boolean): Uint8Array;
|
|
16
|
+
/**
|
|
17
|
+
* @name xxhashAsHex
|
|
18
|
+
* @description Creates a xxhash64 hex from the input.
|
|
19
|
+
*/
|
|
20
|
+
export declare const xxhashAsHex: (data: string | Uint8Array, bitLength?: 256 | 512 | 64 | 128 | 384 | 320 | 192 | 448 | undefined, onlyJs?: boolean | undefined) => import("@polkadot/util/types").HexString;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.xxhashAsHex = void 0;
|
|
4
|
+
exports.xxhashAsU8a = xxhashAsU8a;
|
|
5
|
+
const util_1 = require("@pezkuwi/util");
|
|
6
|
+
const wasm_crypto_1 = require("@pezkuwi/wasm-crypto");
|
|
7
|
+
const helpers_js_1 = require("../helpers.js");
|
|
8
|
+
const xxhash64_js_1 = require("./xxhash64.js");
|
|
9
|
+
/**
|
|
10
|
+
* @name xxhashAsU8a
|
|
11
|
+
* @summary Creates a xxhash64 u8a from the input.
|
|
12
|
+
* @description
|
|
13
|
+
* From either a `string`, `Uint8Array` or a `Buffer` input, create the xxhash64 and return the result as a `Uint8Array` with the specified `bitLength`.
|
|
14
|
+
* @example
|
|
15
|
+
* <BR>
|
|
16
|
+
*
|
|
17
|
+
* ```javascript
|
|
18
|
+
* import { xxhashAsU8a } from '@pezkuwi/util-crypto';
|
|
19
|
+
*
|
|
20
|
+
* xxhashAsU8a('abc'); // => 0x44bc2cf5ad770999
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
function xxhashAsU8a(data, bitLength = 64, onlyJs) {
|
|
24
|
+
const rounds = Math.ceil(bitLength / 64);
|
|
25
|
+
const u8a = (0, util_1.u8aToU8a)(data);
|
|
26
|
+
if (!util_1.hasBigInt || (!onlyJs && (0, wasm_crypto_1.isReady)())) {
|
|
27
|
+
return (0, wasm_crypto_1.twox)(u8a, rounds);
|
|
28
|
+
}
|
|
29
|
+
const result = new Uint8Array(rounds * 8);
|
|
30
|
+
for (let seed = 0; seed < rounds; seed++) {
|
|
31
|
+
result.set((0, xxhash64_js_1.xxhash64)(u8a, seed).reverse(), seed * 8);
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @name xxhashAsHex
|
|
37
|
+
* @description Creates a xxhash64 hex from the input.
|
|
38
|
+
*/
|
|
39
|
+
exports.xxhashAsHex = (0, helpers_js_1.createAsHex)(xxhashAsU8a);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.xxhashAsU8a = exports.xxhashAsHex = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @summary Create xxhash64 values with specified bitlengths
|
|
6
|
+
*/
|
|
7
|
+
var asU8a_js_1 = require("./asU8a.js");
|
|
8
|
+
Object.defineProperty(exports, "xxhashAsHex", { enumerable: true, get: function () { return asU8a_js_1.xxhashAsHex; } });
|
|
9
|
+
Object.defineProperty(exports, "xxhashAsU8a", { enumerable: true, get: function () { return asU8a_js_1.xxhashAsU8a; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function xxhash64(input: Uint8Array, initSeed: bigint | number): Uint8Array;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.xxhash64 = xxhash64;
|
|
4
|
+
const util_1 = require("@pezkuwi/util");
|
|
5
|
+
const x_bigint_1 = require("@pezkuwi/x-bigint");
|
|
6
|
+
const P64_1 = (0, x_bigint_1.BigInt)('11400714785074694791');
|
|
7
|
+
const P64_2 = (0, x_bigint_1.BigInt)('14029467366897019727');
|
|
8
|
+
const P64_3 = (0, x_bigint_1.BigInt)('1609587929392839161');
|
|
9
|
+
const P64_4 = (0, x_bigint_1.BigInt)('9650029242287828579');
|
|
10
|
+
const P64_5 = (0, x_bigint_1.BigInt)('2870177450012600261');
|
|
11
|
+
const U64 = (0, x_bigint_1.BigInt)('0xffffffffffffffff');
|
|
12
|
+
const _7n = (0, x_bigint_1.BigInt)(7);
|
|
13
|
+
const _11n = (0, x_bigint_1.BigInt)(11);
|
|
14
|
+
const _12n = (0, x_bigint_1.BigInt)(12);
|
|
15
|
+
const _16n = (0, x_bigint_1.BigInt)(16);
|
|
16
|
+
const _18n = (0, x_bigint_1.BigInt)(18);
|
|
17
|
+
const _23n = (0, x_bigint_1.BigInt)(23);
|
|
18
|
+
const _27n = (0, x_bigint_1.BigInt)(27);
|
|
19
|
+
const _29n = (0, x_bigint_1.BigInt)(29);
|
|
20
|
+
const _31n = (0, x_bigint_1.BigInt)(31);
|
|
21
|
+
const _32n = (0, x_bigint_1.BigInt)(32);
|
|
22
|
+
const _33n = (0, x_bigint_1.BigInt)(33);
|
|
23
|
+
const _64n = (0, x_bigint_1.BigInt)(64);
|
|
24
|
+
const _256n = (0, x_bigint_1.BigInt)(256);
|
|
25
|
+
function rotl(a, b) {
|
|
26
|
+
const c = a & U64;
|
|
27
|
+
return ((c << b) | (c >> (_64n - b))) & U64;
|
|
28
|
+
}
|
|
29
|
+
function fromU8a(u8a, p, count) {
|
|
30
|
+
const bigints = new Array(count);
|
|
31
|
+
let offset = 0;
|
|
32
|
+
for (let i = 0; i < count; i++, offset += 2) {
|
|
33
|
+
bigints[i] = (0, x_bigint_1.BigInt)(u8a[p + offset] | (u8a[p + 1 + offset] << 8));
|
|
34
|
+
}
|
|
35
|
+
let result = util_1._0n;
|
|
36
|
+
for (let i = count - 1; i >= 0; i--) {
|
|
37
|
+
result = (result << _16n) + bigints[i];
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
function init(seed, input) {
|
|
42
|
+
const state = {
|
|
43
|
+
seed,
|
|
44
|
+
u8a: new Uint8Array(32),
|
|
45
|
+
u8asize: 0,
|
|
46
|
+
v1: seed + P64_1 + P64_2,
|
|
47
|
+
v2: seed + P64_2,
|
|
48
|
+
v3: seed,
|
|
49
|
+
v4: seed - P64_1
|
|
50
|
+
};
|
|
51
|
+
if (input.length < 32) {
|
|
52
|
+
state.u8a.set(input);
|
|
53
|
+
state.u8asize = input.length;
|
|
54
|
+
return state;
|
|
55
|
+
}
|
|
56
|
+
const limit = input.length - 32;
|
|
57
|
+
let p = 0;
|
|
58
|
+
if (limit >= 0) {
|
|
59
|
+
const adjustV = (v) => P64_1 * rotl(v + P64_2 * fromU8a(input, p, 4), _31n);
|
|
60
|
+
do {
|
|
61
|
+
state.v1 = adjustV(state.v1);
|
|
62
|
+
p += 8;
|
|
63
|
+
state.v2 = adjustV(state.v2);
|
|
64
|
+
p += 8;
|
|
65
|
+
state.v3 = adjustV(state.v3);
|
|
66
|
+
p += 8;
|
|
67
|
+
state.v4 = adjustV(state.v4);
|
|
68
|
+
p += 8;
|
|
69
|
+
} while (p <= limit);
|
|
70
|
+
}
|
|
71
|
+
if (p < input.length) {
|
|
72
|
+
state.u8a.set(input.subarray(p, input.length));
|
|
73
|
+
state.u8asize = input.length - p;
|
|
74
|
+
}
|
|
75
|
+
return state;
|
|
76
|
+
}
|
|
77
|
+
function xxhash64(input, initSeed) {
|
|
78
|
+
const { seed, u8a, u8asize, v1, v2, v3, v4 } = init((0, x_bigint_1.BigInt)(initSeed), input);
|
|
79
|
+
let p = 0;
|
|
80
|
+
let h64 = U64 & ((0, x_bigint_1.BigInt)(input.length) + (input.length >= 32
|
|
81
|
+
? (((((((((rotl(v1, util_1._1n) + rotl(v2, _7n) + rotl(v3, _12n) + rotl(v4, _18n)) ^ (P64_1 * rotl(v1 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v2 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v3 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v4 * P64_2, _31n))) * P64_1 + P64_4)
|
|
82
|
+
: (seed + P64_5)));
|
|
83
|
+
while (p <= (u8asize - 8)) {
|
|
84
|
+
h64 = U64 & (P64_4 + P64_1 * rotl(h64 ^ (P64_1 * rotl(P64_2 * fromU8a(u8a, p, 4), _31n)), _27n));
|
|
85
|
+
p += 8;
|
|
86
|
+
}
|
|
87
|
+
if ((p + 4) <= u8asize) {
|
|
88
|
+
h64 = U64 & (P64_3 + P64_2 * rotl(h64 ^ (P64_1 * fromU8a(u8a, p, 2)), _23n));
|
|
89
|
+
p += 4;
|
|
90
|
+
}
|
|
91
|
+
while (p < u8asize) {
|
|
92
|
+
h64 = U64 & (P64_1 * rotl(h64 ^ (P64_5 * (0, x_bigint_1.BigInt)(u8a[p++])), _11n));
|
|
93
|
+
}
|
|
94
|
+
h64 = U64 & (P64_2 * (h64 ^ (h64 >> _33n)));
|
|
95
|
+
h64 = U64 & (P64_3 * (h64 ^ (h64 >> _29n)));
|
|
96
|
+
h64 = U64 & (h64 ^ (h64 >> _32n));
|
|
97
|
+
const result = new Uint8Array(8);
|
|
98
|
+
for (let i = 7; i >= 0; i--) {
|
|
99
|
+
result[i] = Number(h64 % _256n);
|
|
100
|
+
h64 = h64 / _256n;
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
package/crypto.d.ts
ADDED
package/crypto.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { isReady, waitReady } from '@pezkuwi/wasm-crypto';
|
|
2
|
+
export const cryptoIsReady = isReady;
|
|
3
|
+
export function cryptoWaitReady() {
|
|
4
|
+
return waitReady()
|
|
5
|
+
.then(() => {
|
|
6
|
+
if (!isReady()) {
|
|
7
|
+
throw new Error('Unable to initialize @pezkuwi/util-crypto');
|
|
8
|
+
}
|
|
9
|
+
return true;
|
|
10
|
+
})
|
|
11
|
+
.catch(() => false);
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function ed25519DeriveHard(seed: Uint8Array, chainCode: Uint8Array): Uint8Array;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { compactAddLength, isU8a, stringToU8a, u8aConcat } from '@pezkuwi/util';
|
|
2
|
+
import { blake2AsU8a } from '../blake2/asU8a.js';
|
|
3
|
+
const HDKD = compactAddLength(stringToU8a('Ed25519HDKD'));
|
|
4
|
+
export function ed25519DeriveHard(seed, chainCode) {
|
|
5
|
+
if (!isU8a(chainCode) || chainCode.length !== 32) {
|
|
6
|
+
throw new Error('Invalid chainCode passed to derive');
|
|
7
|
+
}
|
|
8
|
+
return blake2AsU8a(u8aConcat(HDKD, seed, chainCode));
|
|
9
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @summary Implements ed25519 operations
|
|
3
|
+
*/
|
|
4
|
+
export { ed25519DeriveHard } from './deriveHard.js';
|
|
5
|
+
export { ed25519PairFromRandom } from './pair/fromRandom.js';
|
|
6
|
+
export { ed25519PairFromSecret } from './pair/fromSecret.js';
|
|
7
|
+
export { ed25519PairFromSeed } from './pair/fromSeed.js';
|
|
8
|
+
export { ed25519PairFromString } from './pair/fromString.js';
|
|
9
|
+
export { ed25519Sign } from './sign.js';
|
|
10
|
+
export { ed25519Verify } from './verify.js';
|
package/ed25519/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @summary Implements ed25519 operations
|
|
3
|
+
*/
|
|
4
|
+
export { ed25519DeriveHard } from './deriveHard.js';
|
|
5
|
+
export { ed25519PairFromRandom } from './pair/fromRandom.js';
|
|
6
|
+
export { ed25519PairFromSecret } from './pair/fromSecret.js';
|
|
7
|
+
export { ed25519PairFromSeed } from './pair/fromSeed.js';
|
|
8
|
+
export { ed25519PairFromString } from './pair/fromString.js';
|
|
9
|
+
export { ed25519Sign } from './sign.js';
|
|
10
|
+
export { ed25519Verify } from './verify.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Keypair } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name ed25519PairFromRandom
|
|
4
|
+
* @summary Creates a new public/secret keypair.
|
|
5
|
+
* @description
|
|
6
|
+
* Returns a new generate object containing a `publicKey` & `secretKey`.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { ed25519PairFromRandom } from '@polkadot/util-crypto';
|
|
12
|
+
*
|
|
13
|
+
* ed25519PairFromRandom(); // => { secretKey: [...], publicKey: [...] }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function ed25519PairFromRandom(): Keypair;
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
// Copyright 2017-2025 @polkadot/util-crypto authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import type { Keypair } from '../../types.js';
|
|
5
|
-
|
|
6
1
|
import { randomAsU8a } from '../../random/index.js';
|
|
7
2
|
import { ed25519PairFromSeed } from './fromSeed.js';
|
|
8
|
-
|
|
9
3
|
/**
|
|
10
4
|
* @name ed25519PairFromRandom
|
|
11
5
|
* @summary Creates a new public/secret keypair.
|
|
@@ -20,6 +14,6 @@ import { ed25519PairFromSeed } from './fromSeed.js';
|
|
|
20
14
|
* ed25519PairFromRandom(); // => { secretKey: [...], publicKey: [...] }
|
|
21
15
|
* ```
|
|
22
16
|
*/
|
|
23
|
-
export function ed25519PairFromRandom
|
|
24
|
-
|
|
17
|
+
export function ed25519PairFromRandom() {
|
|
18
|
+
return ed25519PairFromSeed(randomAsU8a());
|
|
25
19
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Keypair } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name ed25519PairFromSecret
|
|
4
|
+
* @summary Creates a new public/secret keypair from a secret.
|
|
5
|
+
* @description
|
|
6
|
+
* Returns a object containing a `publicKey` & `secretKey` generated from the supplied secret.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { ed25519PairFromSecret } from '@polkadot/util-crypto';
|
|
12
|
+
*
|
|
13
|
+
* ed25519PairFromSecret(...); // => { secretKey: [...], publicKey: [...] }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function ed25519PairFromSecret(secretKey: Uint8Array): Keypair;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name ed25519PairFromSecret
|
|
3
|
+
* @summary Creates a new public/secret keypair from a secret.
|
|
4
|
+
* @description
|
|
5
|
+
* Returns a object containing a `publicKey` & `secretKey` generated from the supplied secret.
|
|
6
|
+
* @example
|
|
7
|
+
* <BR>
|
|
8
|
+
*
|
|
9
|
+
* ```javascript
|
|
10
|
+
* import { ed25519PairFromSecret } from '@pezkuwi/util-crypto';
|
|
11
|
+
*
|
|
12
|
+
* ed25519PairFromSecret(...); // => { secretKey: [...], publicKey: [...] }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export function ed25519PairFromSecret(secretKey) {
|
|
16
|
+
if (secretKey.length !== 64) {
|
|
17
|
+
throw new Error('Invalid secretKey provided');
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
publicKey: secretKey.slice(32),
|
|
21
|
+
secretKey
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Keypair } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name ed25519PairFromSeed
|
|
4
|
+
* @summary Creates a new public/secret keypair from a seed.
|
|
5
|
+
* @description
|
|
6
|
+
* Returns a object containing a `publicKey` & `secretKey` generated from the supplied seed.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { ed25519PairFromSeed } from '@polkadot/util-crypto';
|
|
12
|
+
*
|
|
13
|
+
* ed25519PairFromSeed(...); // => { secretKey: [...], publicKey: [...] }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function ed25519PairFromSeed(seed: Uint8Array, onlyJs?: boolean): Keypair;
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
// Copyright 2017-2025 @polkadot/util-crypto authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import type { Keypair } from '../../types.js';
|
|
5
|
-
|
|
6
1
|
import { ed25519 } from '@noble/curves/ed25519';
|
|
7
|
-
|
|
8
2
|
import { hasBigInt, u8aConcatStrict } from '@pezkuwi/util';
|
|
9
3
|
import { ed25519KeypairFromSeed, isReady } from '@pezkuwi/wasm-crypto';
|
|
10
|
-
|
|
11
4
|
/**
|
|
12
5
|
* @name ed25519PairFromSeed
|
|
13
6
|
* @summary Creates a new public/secret keypair from a seed.
|
|
@@ -22,20 +15,17 @@ import { ed25519KeypairFromSeed, isReady } from '@pezkuwi/wasm-crypto';
|
|
|
22
15
|
* ed25519PairFromSeed(...); // => { secretKey: [...], publicKey: [...] }
|
|
23
16
|
* ```
|
|
24
17
|
*/
|
|
25
|
-
export function ed25519PairFromSeed
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
export function ed25519PairFromSeed(seed, onlyJs) {
|
|
19
|
+
if (!hasBigInt || (!onlyJs && isReady())) {
|
|
20
|
+
const full = ed25519KeypairFromSeed(seed);
|
|
21
|
+
return {
|
|
22
|
+
publicKey: full.slice(32),
|
|
23
|
+
secretKey: full.slice(0, 64)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const publicKey = ed25519.getPublicKey(seed);
|
|
29
27
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
publicKey,
|
|
29
|
+
secretKey: u8aConcatStrict([seed, publicKey])
|
|
32
30
|
};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const publicKey = ed25519.getPublicKey(seed);
|
|
36
|
-
|
|
37
|
-
return {
|
|
38
|
-
publicKey,
|
|
39
|
-
secretKey: u8aConcatStrict([seed, publicKey])
|
|
40
|
-
};
|
|
41
31
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Keypair } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* @name ed25519PairFromString
|
|
4
|
+
* @summary Creates a new public/secret keypair from a string.
|
|
5
|
+
* @description
|
|
6
|
+
* Returns a object containing a `publicKey` & `secretKey` generated from the supplied string. The string is hashed and the value used as the input seed.
|
|
7
|
+
* @example
|
|
8
|
+
* <BR>
|
|
9
|
+
*
|
|
10
|
+
* ```javascript
|
|
11
|
+
* import { ed25519PairFromString } from '@polkadot/util-crypto';
|
|
12
|
+
*
|
|
13
|
+
* ed25519PairFromString('test'); // => { secretKey: [...], publicKey: [...] }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function ed25519PairFromString(value: string): Keypair;
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
// Copyright 2017-2025 @polkadot/util-crypto authors & contributors
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
|
|
4
|
-
import type { Keypair } from '../../types.js';
|
|
5
|
-
|
|
6
1
|
import { stringToU8a } from '@pezkuwi/util';
|
|
7
|
-
|
|
8
2
|
import { blake2AsU8a } from '../../blake2/asU8a.js';
|
|
9
3
|
import { ed25519PairFromSeed } from './fromSeed.js';
|
|
10
|
-
|
|
11
4
|
/**
|
|
12
5
|
* @name ed25519PairFromString
|
|
13
6
|
* @summary Creates a new public/secret keypair from a string.
|
|
@@ -22,10 +15,6 @@ import { ed25519PairFromSeed } from './fromSeed.js';
|
|
|
22
15
|
* ed25519PairFromString('test'); // => { secretKey: [...], publicKey: [...] }
|
|
23
16
|
* ```
|
|
24
17
|
*/
|
|
25
|
-
export function ed25519PairFromString
|
|
26
|
-
|
|
27
|
-
blake2AsU8a(
|
|
28
|
-
stringToU8a(value)
|
|
29
|
-
)
|
|
30
|
-
);
|
|
18
|
+
export function ed25519PairFromString(value) {
|
|
19
|
+
return ed25519PairFromSeed(blake2AsU8a(stringToU8a(value)));
|
|
31
20
|
}
|