Explorar el Código

base58 will left trim NULL bytes, handling JSVerify RNG state 0dec6b2a5f04d19873

El RIDO hace 7 años
padre
commit
8fd3e680e4
Se han modificado 1 ficheros con 16 adiciones y 0 borrados
  1. 16 0
      js/test/Model.js

+ 16 - 0
js/test/Model.js

@@ -175,6 +175,14 @@ describe('Model', function () {
             jsc.array(common.jscQueryString()),
             'nestring',
             function (schema, address, query, fragment) {
+                // base58 strips leading NULL bytes
+                while(fragment.charAt(0) === '\u0000') {
+                    fragment = fragment.substr(1);
+                }
+                // string may not be empty (when only NULL bytes and trimmed)
+                if (fragment.length === 0) {
+                    return true;
+                }
                 let fragmentString = $.PrivateBin.CryptTool.base58encode(fragment),
                     clean = jsdom('', {
                         url: schema.join('') + '://' + address.join('') +
@@ -194,6 +202,14 @@ describe('Model', function () {
             'nestring',
             jsc.array(common.jscHashString()),
             function (schema, address, query, fragment, trail) {
+                // base58 strips leading NULL bytes
+                while(fragment.charAt(0) === '\u0000') {
+                    fragment = fragment.substr(1);
+                }
+                // string may not be empty (when only NULL bytes and trimmed)
+                if (fragment.length === 0) {
+                    return true;
+                }
                 let fragmentString = $.PrivateBin.CryptTool.base58encode(fragment),
                     clean = jsdom('', {
                         url: schema.join('') + '://' + address.join('') + '/?' +