}
}
- const sign = (h, sk, pk, api) => {
- const h8 = new Uint8Array(h.match(/.{2}/g).map(b => parseInt(b, 16)))
- const sk8 = new Uint8Array((sk + pk).match(/.{2}/g).map(b => parseInt(b, 16)))
- const prv8 = new Uint8Array(sk.match(/.{2}/g).map(b => parseInt(b, 16)))
- const pub8 = new Uint8Array(pk.match(/.{2}/g).map(b => parseInt(b, 16)))
+ const sign = (msg, prv, pub, api) => {
+ const h8 = new Uint8Array(msg.match(/.{2}/g).map(b => parseInt(b, 16)))
+ const sk8 = new Uint8Array((prv + pub).match(/.{2}/g).map(b => parseInt(b, 16)))
+ const prv8 = new Uint8Array(prv.match(/.{2}/g).map(b => parseInt(b, 16)))
+ const pub8 = new Uint8Array(pub.match(/.{2}/g).map(b => parseInt(b, 16)))
switch (api) {
case 'nano25519': {
- const s8 = nano25519.sign(h8, prv8, pub8)
- return [...s8].map(b => b.toString(16).padStart(2, '0')).join('')
+ const sig8 = nano25519.sign(h8, prv8, pub8)
+ return [...sig8].map(b => b.toString(16).padStart(2, '0')).join('')
}
case 'NanocurrencyWeb': {
- const { privateKey } = NanocurrencyWeb.wallet.legacyAccounts(sk)[0]
- return NanocurrencyWeb.tools.sign(privateKey, h)
+ const { privateKey } = NanocurrencyWeb.wallet.legacyAccounts(prv)[0]
+ return NanocurrencyWeb.tools.sign(privateKey, msg)
}
case 'Sodium': {
return sodium.crypto_sign_detached(new Uint8Array(h8), new Uint8Array(sk8), 'hex')
}
case 'TweetNaCl.js': {
- const s8 = nacl.sign.detached(new Uint8Array(h8), new Uint8Array(sk8))
- return [...s8].map(b => b.toString(16).padStart(2, '0')).join('')
+ const sig8 = nacl.sign.detached(new Uint8Array(h8), new Uint8Array(sk8))
+ return [...sig8].map(b => b.toString(16).padStart(2, '0')).join('')
}
default: {
return null
}
}
- const verify = (s, h, pk, api) => {
- const h8 = new Uint8Array(h.match(/.{2}/g).map(b => parseInt(b, 16)))
- const s8 = new Uint8Array(s.match(/.{2}/g).map(b => parseInt(b, 16)))
- const pk8 = new Uint8Array(pk.match(/.{2}/g).map(b => parseInt(b, 16)))
+ const verify = (sig, msg, pub, api) => {
+ const msg8 = new Uint8Array(msg.match(/.{2}/g).map(b => parseInt(b, 16)))
+ const sig8 = new Uint8Array(sig.match(/.{2}/g).map(b => parseInt(b, 16)))
+ const pub8 = new Uint8Array(pub.match(/.{2}/g).map(b => parseInt(b, 16)))
switch (api) {
case 'nano25519': {
- return nano25519.verify(s8, h8, pk8)
+ return nano25519.verify(sig8, msg8, pub8)
}
case 'NanocurrencyWeb': {
- return NanocurrencyWeb.tools.verify(pk, s, h)
+ return NanocurrencyWeb.tools.verify(pub, sig, msg)
}
case 'Sodium': {
- return sodium.crypto_sign_verify_detached(s8, h8, pk8)
+ return sodium.crypto_sign_verify_detached(sig8, msg8, pub8)
}
case 'TweetNaCl.js': {
- return nacl.sign.detached.verify(h8, s8, pk8)
+ return nacl.sign.detached.verify(msg8, sig8, pub8)
}
default: {
return null