diff --git a/tests/test_search_hash_methods.mjs b/tests/test_search_hash_methods.mjs index 0bbd5f2..cf1a160 100644 --- a/tests/test_search_hash_methods.mjs +++ b/tests/test_search_hash_methods.mjs @@ -49,6 +49,7 @@ test('search hash extraction checks result and nested provider fields in priorit assert.equal(dialog.getSearchResultSha256({ hash: 'invalid', file_info: { hash: hashB } }), hashB); assert.equal(dialog.getSearchResultSha256({ hashes: { SHA256: hashA }, sha256: hashB }), hashB); assert.equal(dialog.getSearchResultSha256({ file_info: { hashes: { sha256: hashA } } }), hashA); + assert.equal(dialog.getSearchResultSha256({ sha256: 'invalid', hash: hashB }), hashB); assert.equal(dialog.getSearchResultSha256({ hashes: null, file_info: null }), ''); }); @@ -133,5 +134,6 @@ test('local hash extraction checks direct, model, and nested hash fields', () => assert.equal(dialog.getLocalMatchHash({ sha256: hashA, model: { sha256: hashB } }), hashA); assert.equal(dialog.getLocalMatchHash({ model: { hash: hashB } }), hashB); assert.equal(dialog.getLocalMatchHash({ model: { hashes: { SHA256: hashA } } }), hashA); + assert.equal(dialog.getLocalMatchHash({ hashes: { SHA256: hashA }, model: { sha256: hashB } }), hashB); assert.equal(dialog.getLocalMatchHash({}), ''); }); diff --git a/web/resolver/search/search_hash_methods.js b/web/resolver/search/search_hash_methods.js index 1feca4d..cae1215 100644 --- a/web/resolver/search/search_hash_methods.js +++ b/web/resolver/search/search_hash_methods.js @@ -1,4 +1,4 @@ -import { normalizeSha256 } from '../utils/hash_utils.js'; +import { getSha256Field, normalizeSha256 } from '../utils/hash_utils.js'; import { normalizeSourceKey } from '../utils/source_labels.js'; export const searchHashMethods = { @@ -137,14 +137,11 @@ export const searchHashMethods = { getLocalMatchHash(match = {}) { const model = match.model || {}; - const hashes = model.hashes && typeof model.hashes === 'object' ? model.hashes : {}; + const modelHash = getSha256Field(model); return String( match.sha256 || match.hash - || model.sha256 - || model.hash - || hashes.SHA256 - || hashes.sha256 + || modelHash || '' ).trim(); },