test_crypto_string_comparisons.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /**
  2. * Created by bmf on 10/31/13.
  3. */
  4. "use strict";
  5. var assert = require('assert');
  6. var sodium = require('../build/Release/sodium');
  7. describe('String Comparison', function() {
  8. it('crypto_verify_16 throw with strings smaller than 16 bytes', function(done) {
  9. var string1 = Buffer.from("1234", "ascii");
  10. var string2 = Buffer.from("1234", "ascii");
  11. assert.throws(function() {
  12. var r = sodium.crypto_verify_16(string1, string2);
  13. });
  14. done();
  15. });
  16. it('crypto_verify_16 should return 0 when strings are equal', function(done) {
  17. var string1 = Buffer.from("0123456789ABCDEF", "ascii");
  18. var string2 = Buffer.from("0123456789ABCDEF", "ascii");
  19. var r = sodium.crypto_verify_16(string1, string2);
  20. assert.equal(r, 0);
  21. done();
  22. });
  23. it('crypto_verify_16 should return -1 when strings are different', function(done) {
  24. var string1 = Buffer.from("0123456789ABCDEF", "ascii");
  25. var string2 = Buffer.from("0023456789ABCDEF", "ascii");
  26. var r = sodium.crypto_verify_16(string1, string2);
  27. assert.equal(r, -1);
  28. done();
  29. });
  30. it('crypto_verify_32 throw with strings smaller than 32 bytes', function(done) {
  31. var string1 = Buffer.from("1234", "ascii");
  32. var string2 = Buffer.from("1234", "ascii");
  33. assert.throws(function() {
  34. var r = sodium.crypto_verify_32(string1, string2);
  35. });
  36. done();
  37. });
  38. it('crypto_verify_32 should return 0 when strings are equal', function(done) {
  39. var string1 = Buffer.from("0123456789ABCDEF0123456789ABCDEF", "ascii");
  40. var string2 = Buffer.from("0123456789ABCDEF0123456789ABCDEF", "ascii");
  41. var r = sodium.crypto_verify_32(string1, string2);
  42. assert.equal(r, 0);
  43. done();
  44. });
  45. it('crypto_verify_32 return -1 when strings are different', function(done) {
  46. var string1 = Buffer.from("0123456789ABCDEF0123456789ABCDEF", "ascii");
  47. var string2 = Buffer.from("0023456789ABCDEF0123456789ABCDEF", "ascii");
  48. var r = sodium.crypto_verify_32(string1, string2);
  49. assert.equal(r, -1);
  50. done();
  51. });
  52. });
  53. describe("crypto_verify_32 verify parameters", function () {
  54. var string1 = Buffer.from("0123456789ABCDEF0123456789ABCDEF", "ascii");
  55. var string2 = Buffer.from("0123456789ABCDEF0123456789ABCDEF", "ascii");
  56. it('bad param 1 string', function(done) {
  57. string1 = "123";
  58. assert.throws(function() {
  59. var r = sodium.crypto_verify_32(string1, string2);
  60. });
  61. done();
  62. });
  63. it('bad param 1 number', function(done) {
  64. string1 = 123;
  65. assert.throws(function() {
  66. var r = sodium.crypto_verify_32(string1, string2);
  67. });
  68. done();
  69. });
  70. it('bad param 2 string', function(done) {
  71. string2 = "123";
  72. assert.throws(function() {
  73. var r = sodium.crypto_verify_32(string1, string2);
  74. });
  75. done();
  76. });
  77. it('bad param 2 number', function(done) {
  78. string2 = 123;
  79. assert.throws(function() {
  80. var r = sodium.crypto_verify_32(string1, string2);
  81. });
  82. done();
  83. });
  84. });
  85. describe("crypto_verify_16 verify parameters", function () {
  86. var string1 = Buffer.from("0123456789ABCDEF0123456789ABCDEF", "ascii");
  87. var string2 = Buffer.from("0123456789ABCDEF0123456789ABCDEF", "ascii");
  88. it('bad param 1 string', function(done) {
  89. string1 = "123";
  90. assert.throws(function() {
  91. var r = sodium.crypto_verify_16(string1, string2);
  92. });
  93. done();
  94. });
  95. it('bad param 1 number', function(done) {
  96. string1 = 123;
  97. assert.throws(function() {
  98. var r = sodium.crypto_verify_16(string1, string2);
  99. });
  100. done();
  101. });
  102. it('bad param 2 string', function(done) {
  103. string2 = "123";
  104. assert.throws(function() {
  105. var r = sodium.crypto_verify_16(string1, string2);
  106. });
  107. done();
  108. });
  109. it('bad param 2 number', function(done) {
  110. string2 = 123;
  111. assert.throws(function() {
  112. var r = sodium.crypto_verify_16(string1, string2);
  113. });
  114. done();
  115. });
  116. });