1*e7be843bSPierre Pronchery /* 2*e7be843bSPierre Pronchery * Copyright 2025 The OpenSSL Project Authors. All Rights Reserved. 3*e7be843bSPierre Pronchery * 4*e7be843bSPierre Pronchery * Licensed under the Apache License 2.0 (the "License"). You may not use 5*e7be843bSPierre Pronchery * this file except in compliance with the License. You can obtain a copy 6*e7be843bSPierre Pronchery * in the file LICENSE in the source distribution or at 7*e7be843bSPierre Pronchery * https://www.openssl.org/source/license.html 8*e7be843bSPierre Pronchery * 9*e7be843bSPierre Pronchery */ 10*e7be843bSPierre Pronchery 11*e7be843bSPierre Pronchery #include "internal/hashfunc.h" 12*e7be843bSPierre Pronchery ossl_fnv1a_hash(uint8_t * key,size_t len)13*e7be843bSPierre Proncheryossl_unused uint64_t ossl_fnv1a_hash(uint8_t *key, size_t len) 14*e7be843bSPierre Pronchery { 15*e7be843bSPierre Pronchery uint64_t hash = 0xcbf29ce484222325ULL; 16*e7be843bSPierre Pronchery size_t i; 17*e7be843bSPierre Pronchery 18*e7be843bSPierre Pronchery for (i = 0; i < len; i++) { 19*e7be843bSPierre Pronchery hash ^= key[i]; 20*e7be843bSPierre Pronchery hash *= 0x00000100000001B3ULL; 21*e7be843bSPierre Pronchery } 22*e7be843bSPierre Pronchery return hash; 23*e7be843bSPierre Pronchery } 24