
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
A mostly-standalone implementation of the RedJubjub signature scheme and keys.
A minimal [RedJubjub][redjubjub] implementation for keys and signature.
This method is used for geneating keys and payment address randomly.
> var m = require('redjubjub-js')
> m.generate_keys()
{ sk:
'c8a6bd72038d62794c551cb4c38b5d586c7df975fb7df819f9adbd571cc5228f',
ask:
'58998c6373aa1c2ee724ab16d7a34df2d39bc9c07d68b060b1fffe119167ab00',
nsk:
'b3789542ef606d435e654962abc320fa4aad0a424c45b918187ca33052772403',
ovk:
'398d3d1889d2f2020ea4c3e76b2ab8711a301a57af1cd09768599d8368cfcaa6',
ak:
'd77a6d56ded895d81f7bed8919081124a7e2e28728f4459ba64cf568f54524b7',
nk:
'723951fd2d5a29a90d46137d0a5d502fb03524d5ceceefdc97797bbbb8df52eb',
ivk:
'd1cc0bf81ead15c55c5cfe4b0b8ec4a735889c11b7d4d281734b42498fa9ce05',
d: 'c64c97cdcf1e88ab4e5040',
pk_d:
'baa02b718197e56f70625452cc9f05c4325b5ba59577d5b8ccf4afc8907a77b2',
payment_address:
'ztron1cexf0nw0r6y2knjsgza2q2m3sxt72mmsvf299nylqhzryk6m5k2h04dcen62ljys0fmmyq2x49f' }
Generate keys and payment address by sk
, and d
is generated randomly.
> m.generate_keys_by_sk('b94113ad57a8808e67edc05e8d3a5bc5aaccf837b83bfa7602a30a14e50c2f95')
{ sk:
'b94113ad57a8808e67edc05e8d3a5bc5aaccf837b83bfa7602a30a14e50c2f95',
ask:
'38c7850745daba75720261b2543cd2d1f316c1f5d4e712c21d4c893d67c38408',
nsk:
'399ff8d7d660ca4b8cdf3f2e0ce839f35f6fde80a3d094637699b478405e7507',
ovk:
'3a82fe7e4487dd839429874befa09a9f78741ba0de83d08950f776708c9e74e4',
ak:
'db0cc9cc4deffd21c4025ae78b55444fa040f244ff7097b35cad4ec96631bb9b',
nk:
'532323a356f2ffecf7abd01ad6860f0eea4bf9e7516dd355d0963874e45b7233',
ivk:
'48e83b9b5210a8f1a44ad0b5c87203a0a358c34f2511d01e4db743710cebda07',
d: 'e8f0394a1f6e823901b40a',
pk_d:
'017d3fb3a63e03079586dcf24a260bd5c02e18265947ffdf4935bd34a8076a53',
payment_address:
'ztron1arcrjjsld6prjqd5pgqh60an5clqxpu4smw0yj3xp02uqtscyev50l7lfy6m6d9gqa49xrmly5e' }
Generate keys and payment address by sk
, and d
.
> m.generate_keys_by_sk_d('b94113ad57a8808e67edc05e8d3a5bc5aaccf837b83bfa7602a30a14e50c2f95','e8f0394a1f6e823901b40a')
{ sk:
'b94113ad57a8808e67edc05e8d3a5bc5aaccf837b83bfa7602a30a14e50c2f95',
ask:
'38c7850745daba75720261b2543cd2d1f316c1f5d4e712c21d4c893d67c38408',
nsk:
'399ff8d7d660ca4b8cdf3f2e0ce839f35f6fde80a3d094637699b478405e7507',
ovk:
'3a82fe7e4487dd839429874befa09a9f78741ba0de83d08950f776708c9e74e4',
ak:
'db0cc9cc4deffd21c4025ae78b55444fa040f244ff7097b35cad4ec96631bb9b',
nk:
'532323a356f2ffecf7abd01ad6860f0eea4bf9e7516dd355d0963874e45b7233',
ivk:
'48e83b9b5210a8f1a44ad0b5c87203a0a358c34f2511d01e4db743710cebda07',
d: 'e8f0394a1f6e823901b40a',
pk_d:
'017d3fb3a63e03079586dcf24a260bd5c02e18265947ffdf4935bd34a8076a53',
payment_address:
'ztron1arcrjjsld6prjqd5pgqh60an5clqxpu4smw0yj3xp02uqtscyev50l7lfy6m6d9gqa49xrmly5e' }
We also provide methods to sign and verify signature for spend authority signature and binding signature.
Generate public key rk
by ask
and alpha
.
function generate_rk_by_ask(ask, alpha)
> m.generate_rk_by_ask('e3ebcba1531f6d9158d9c162660c5d7c04dadf77d85d7436a9c98b291ff69a09','2608999c3a97d005a879ecdaa16fd29ae434fb67b177c5e875b0c829e6a1db04')
'10c702d6dff1509502ee5acc0b01d4b4531b2ff53b0dd54488aea6031b5e6d16'
Generate spend authority signature.
function generate_spend_auth_sig(ask, alpha, message_hash)
> m.generate_spend_auth_sig('e3ebcba1531f6d9158d9c162660c5d7c04dadf77d85d7436a9c98b291ff69a09','2608999c3a97d005a879ecdaa16fd29ae434fb67b177c5e875b0c829e6a1db04','3b78fee6e956f915ffe082284c5f18640edca9c57a5f227e5f7d7eb65ad61502')
'40386915d075844a6ea1bd80fd0b6c74bb4556ac0273cb2dd47b7b81eacfb83f3a69ac95cf63b98ad7e3120754cb1033656ce0b0eae9a1f0ace829c14005610a'
Verify spend authority signature.
function verify_spend_auth_sig(rk, message_hash, signature)
> m.verify_spend_auth_sig('10c702d6dff1509502ee5acc0b01d4b4531b2ff53b0dd54488aea6031b5e6d16', '3b78fee6e956f915ffe082284c5f18640edca9c57a5f227e5f7d7eb65ad61502','40386915d075844a6ea1bd80fd0b6c74bb4556ac0273cb2dd47b7b81eacfb83f3a69ac95cf63b98ad7e3120754cb1033656ce0b0eae9a1f0ace829c14005610a')
true
Generate public key pk
from private key sk
.
function generate_pk_by_sk(sk)
> m.generate_pk_by_sk('e3ebcba1531f6d9158d9c162660c5d7c04dadf77d85d7436a9c98b291ff69a09')
'61a7134af4a6194592735dcda46c3119bdf547bc1e58bd60852cc88ba75f44a3'
Generate binding signature
function generate_binding_sig(sk, message_hash)
> m.generate_binding_sig('e3ebcba1531f6d9158d9c162660c5d7c04dadf77d85d7436a9c98b291ff69a09','3b78fee6e956f915ffe082284c5f18640edca9c57a5f227e5f7d7eb65ad61502')
'fea301d1f8c0ca3032cdfad36e64aaa27631419fdc84453d994beaa287408adf78e0478b8293eda3b3ba76f5c7efa302116fc577d18f354a5ff42ed25a655001'
function verify_binding_sig(pk, message_hash, signature)
> m.verify_binding_sig('61a7134af4a6194592735dcda46c3119bdf547bc1e58bd60852cc88ba75f44a3','3b78fee6e956f915ffe082284c5f18640edca9c57a5f227e5f7d7eb65ad61502','fea301d1f8c0ca3032cdfad36e64aaa27631419fdc84453d994beaa287408adf78e0478b8293eda3b3ba76f5c7efa302116fc577d18f354a5ff42ed25a655001')
true
FAQs
A mostly-standalone implementation of the RedJubjub signature scheme and keys.
The npm package tanhu receives a total of 0 weekly downloads. As such, tanhu popularity was classified as not popular.
We found that tanhu demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.