test_sodium_auth5.js 939 B

12345678910111213141516171819202122232425262728
  1. /**
  2. * Created by bmf on 07/25/16.
  3. */
  4. var assert = require('assert');
  5. var sodium = require('../build/Release/sodium');
  6. describe("Auth5", function() {
  7. var key = Buffer.alloc(32);
  8. it("Test random vectors", function(done) {
  9. for (var clen = 0; clen < 1000; ++clen) {
  10. sodium.randombytes_buf(key);
  11. c = Buffer.allocUnsafe(clen);
  12. sodium.randombytes_buf(c);
  13. var a = sodium.crypto_auth(c, key);
  14. assert.equal(sodium.crypto_auth_verify(a, c, key), 0);
  15. if( clen>0) {
  16. c[sodium.randombytes_uniform(clen)] += 1 + (sodium.randombytes_uniform(255));
  17. assert.notEqual(sodium.crypto_auth_verify(a, c, key), 0);
  18. a[sodium.randombytes_uniform(a.length)] += 1 + (sodium.randombytes_uniform(255));
  19. assert.notEqual(sodium.crypto_auth_verify(a, c, key), 0);
  20. }
  21. }
  22. done();
  23. });
  24. });