PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/sodium-native/test
Просмотр файла: crypto_box.js
var tape = require('tape')
var sodium = require('../')
tape('crypto_box_seed_keypair', function (t) {
var pk = Buffer.alloc(sodium.crypto_box_PUBLICKEYBYTES)
var sk = Buffer.alloc(sodium.crypto_box_SECRETKEYBYTES)
var seed = Buffer.alloc(sodium.crypto_box_SEEDBYTES, 'lo')
t.throws(function () {
sodium.crypto_box_seed_keypair()
}, 'should validate input')
t.throws(function () {
sodium.crypto_box_seed_keypair(Buffer.alloc(0), Buffer.alloc(0), Buffer.alloc(0))
}, 'should validate input length')
sodium.crypto_box_seed_keypair(pk, sk, seed)
var eSk = '8661a95d21b134adc02881022ad86d37f32a230d537b525b997bce27aa745afc'
var ePk = '425c5ba523e70411c77300bb48dd846562e6c1fcf0142d81d2567d650ce76c3b'
t.same(pk.toString('hex'), ePk, 'seeded public key')
t.same(sk.toString('hex'), eSk, 'seeded secret key')
t.end()
})
tape('crypto_box_keypair', function (t) {
var pk = Buffer.alloc(sodium.crypto_box_PUBLICKEYBYTES)
var sk = Buffer.alloc(sodium.crypto_box_SECRETKEYBYTES)
sodium.crypto_box_keypair(pk, sk)
t.notEqual(pk, Buffer.alloc(pk.length), 'made public key')
t.notEqual(sk, Buffer.alloc(sk.length), 'made secret key')
t.throws(function () {
sodium.crypto_box_keypair()
}, 'should validate input')
t.throws(function () {
sodium.crypto_box_keypair(Buffer.alloc(0), Buffer.alloc(0))
}, 'should validate input length')
t.end()
})
tape('crypto_box_detached', function (t) {
var pk = Buffer.alloc(sodium.crypto_box_PUBLICKEYBYTES)
var sk = Buffer.alloc(sodium.crypto_box_SECRETKEYBYTES)
var nonce = Buffer.alloc(sodium.crypto_box_NONCEBYTES)
sodium.crypto_box_keypair(pk, sk)
var message = Buffer.from('Hello, World!')
var mac = Buffer.alloc(sodium.crypto_box_MACBYTES)
var cipher = Buffer.alloc(message.length)
sodium.crypto_box_detached(cipher, mac, message, nonce, pk, sk)
t.notEqual(cipher, Buffer.alloc(cipher.length), 'not blank')
var plain = Buffer.alloc(cipher.length)
t.notOk(sodium.crypto_box_open_detached(plain, cipher, Buffer.alloc(mac.length), nonce, pk, sk), 'does not decrypt')
t.ok(sodium.crypto_box_open_detached(plain, cipher, mac, nonce, pk, sk), 'decrypts')
t.same(plain, message, 'same message')
t.end()
})
tape('crypto_box_easy', function (t) {
var pk = Buffer.alloc(sodium.crypto_box_PUBLICKEYBYTES)
var sk = Buffer.alloc(sodium.crypto_box_SECRETKEYBYTES)
var nonce = Buffer.alloc(sodium.crypto_box_NONCEBYTES)
sodium.crypto_box_keypair(pk, sk)
var message = Buffer.from('Hello, World!')
var cipher = Buffer.alloc(message.length + sodium.crypto_box_MACBYTES)
sodium.crypto_box_easy(cipher, message, nonce, pk, sk)
t.notEqual(cipher, Buffer.alloc(cipher.length), 'not blank')
var plain = Buffer.alloc(cipher.length - sodium.crypto_box_MACBYTES)
t.notOk(sodium.crypto_box_open_easy(plain, Buffer.alloc(cipher.length), nonce, pk, sk), 'does not decrypt')
t.ok(sodium.crypto_box_open_easy(plain, cipher, nonce, pk, sk), 'decrypts')
t.same(plain, message, 'same message')
t.end()
})
tape('crypto_box_seal', function (t) {
var pk = Buffer.alloc(sodium.crypto_box_PUBLICKEYBYTES)
var sk = Buffer.alloc(sodium.crypto_box_SECRETKEYBYTES)
sodium.crypto_box_keypair(pk, sk)
var pk2 = Buffer.alloc(sodium.crypto_box_PUBLICKEYBYTES)
var sk2 = Buffer.alloc(sodium.crypto_box_SECRETKEYBYTES)
sodium.crypto_box_keypair(pk2, sk2)
var message = Buffer.from('Hello, sealed World!')
var cipher = Buffer.alloc(message.length + sodium.crypto_box_SEALBYTES)
sodium.crypto_box_seal(cipher, message, pk)
t.notEqual(cipher, message, 'did not encrypt!')
t.notEqual(cipher, Buffer.alloc(cipher.length), 'not blank')
var plain = Buffer.alloc(cipher.length - sodium.crypto_box_SEALBYTES)
t.notOk(sodium.crypto_box_seal_open(plain, cipher, pk2, sk2), 'does not decrypt')
t.ok(sodium.crypto_box_seal_open(plain, cipher, pk, sk), 'decrypts')
t.same(plain, message, 'same message')
t.end()
})
Выполнить команду
Для локальной разработки. Не используйте в интернете!