<head>
<meta charset="utf-8">
<link rel="icon" href="data:,">
+ <script src="https://unpkg.com/libsodium@0.8.2/dist/modules/libsodium.js"></script>
+ <script src="https://unpkg.com/libsodium-wrappers@0.8.2/dist/modules/libsodium-wrappers.js"></script>
<script src="https://unpkg.com/nanocurrency-web@1.4.3/dist/index.min.js"></script>
<script src="https://unpkg.com/tweetnacl@1.0.3/nacl-fast.js"></script>
<script type="module">
+ await libsodium.ready
+ await sodium.ready
let NanoNaCl, TEST_VECTORS
try {
NanoNaCl = await import('./dist/browser.js')
case 'NanocurrencyWeb': {
return NanocurrencyWeb.wallet.legacyAccounts(sk)[0].publicKey
}
+ case 'Sodium': {
+ const sk8 = sk.match(/.{2}/g).map(b => parseInt(b, 16))
+ return sodium.crypto_sign_seed_keypair(new Uint8Array(sk8), 'hex').publicKey
+ }
case 'TweetNaCl.js': {
const sk8 = sk.match(/.{2}/g).map(b => parseInt(b, 16))
const pk8 = nacl.sign.keyPair.fromSeed(new Uint8Array(sk8)).publicKey
const { privateKey } = NanocurrencyWeb.wallet.legacyAccounts(sk)[0]
return NanocurrencyWeb.tools.sign(privateKey, h)
}
+ case 'Sodium': {
+ sk = sk + pk
+ const h8 = h.match(/.{2}/g).map(b => parseInt(b, 16))
+ const sk8 = sk.match(/.{2}/g).map(b => parseInt(b, 16))
+ return sodium.crypto_sign_detached(new Uint8Array(h8), new Uint8Array(sk8), 'hex')
+ }
case 'TweetNaCl.js': {
sk = sk + pk
const h8 = h.match(/.{2}/g).map(b => parseInt(b, 16))
case 'NanocurrencyWeb': {
return NanocurrencyWeb.tools.verify(pk, s, h)
}
+ case 'Sodium': {
+ const h8 = h.match(/.{2}/g).map(b => parseInt(b, 16))
+ const s8 = s.match(/.{2}/g).map(b => parseInt(b, 16))
+ const pk8 = pk.match(/.{2}/g).map(b => parseInt(b, 16))
+ return sodium.crypto_sign_verify_detached(new Uint8Array(s8), new Uint8Array(h8), new Uint8Array(pk8))
+ }
case 'TweetNaCl.js': {
const h8 = h.match(/.{2}/g).map(b => parseInt(b, 16))
const s8 = s.match(/.{2}/g).map(b => parseInt(b, 16))
<select id="api">
<option>NanoNaCl</option>
<option>NanocurrencyWeb</option>
+ <option>Sodium</option>
<option>TweetNaCl.js</option>
</select>
</span>