FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Include/pyhash.h at pythoninfo-add-vpath · FFY00/cpython · GitHub
FFY00
/
cpython
Public
forked from
python/cpython
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
6
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Include
/
pyhash.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
59 lines (53 loc) · 1.62 KB
Breadcrumbs
cpython
/
Include
/
pyhash.h
Copy path
File metadata and controls
59 lines (53 loc) · 1.62 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#ifndef
Py_HASH_H
#define
Py_HASH_H
#ifdef
__cplusplus
extern
"C"
{
#endif
/* Cutoff for small string DJBX33A optimization in range [1, cutoff).
*
* About 50% of the strings in a typical Python application are smaller than
* 6 to 7 chars. However DJBX33A is vulnerable to hash collision attacks.
* NEVER use DJBX33A for long strings!
*
* A Py_HASH_CUTOFF of 0 disables small string optimization. 32 bit platforms
* should use a smaller cutoff because it is easier to create colliding
* strings. A cutoff of 7 on 64bit platforms and 5 on 32bit platforms should
* provide a decent safety margin.
*/
#ifndef
Py_HASH_CUTOFF
# define
Py_HASH_CUTOFF
0
#elif
(
Py_HASH_CUTOFF
>
7
||
Py_HASH_CUTOFF
<
0
)
# error
Py_HASH_CUTOFF must in range 0...7.
#endif
/* Py_HASH_CUTOFF */
/* Hash algorithm selection
*
* The values for Py_HASH_* are hard-coded in the
* configure script.
*
* - FNV and SIPHASH* are available on all platforms and architectures.
* - With EXTERNAL embedders can provide an alternative implementation with::
*
* PyHash_FuncDef PyHash_Func = {...};
*
* XXX: Figure out __declspec() for extern PyHash_FuncDef.
*/
#define
Py_HASH_EXTERNAL
0
#define
Py_HASH_SIPHASH24
1
#define
Py_HASH_FNV
2
#define
Py_HASH_SIPHASH13
3
#ifndef
Py_HASH_ALGORITHM
# ifndef
HAVE_ALIGNED_REQUIRED
# define
Py_HASH_ALGORITHM
Py_HASH_SIPHASH13
# else
# define
Py_HASH_ALGORITHM
Py_HASH_FNV
# endif
/* uint64_t && uint32_t && aligned */
#endif
/* Py_HASH_ALGORITHM */
#ifndef
Py_LIMITED_API
# define
Py_CPYTHON_HASH_H
# include
"cpython/pyhash.h"
# undef
Py_CPYTHON_HASH_H
#endif
#ifdef
__cplusplus
}
#endif
#endif
// !Py_HASH_H
Back
|
FazBrowse Home
|
New Git URL