|
Ruby
2.0.0p481(2014-05-08revision45883)
|


Go to the source code of this file.
Data Structures | |
| struct | sip_interface_st |
Defines | |
| #define | SIP_HASH_STREAMING 1 |
| #define | LITTLE_ENDIAN __LITTLE_ENDIAN |
| #define | BIG_ENDIAN __BIG_ENDIAN |
| #define | lo u32[0] |
| #define | hi u32[1] |
| #define | U8TO32_LE(p) |
| #define | U32TO8_LE(p, v) |
| #define | U8TO64_LE(p) u8to64_le(p) |
| #define | U64TO8_LE(p, v) u64to8_le(p, v) |
| #define | ROTL64_TO(v, s) |
| #define | ADD64_TO(v, s) add64_to(&(v), (s)) |
| #define | XOR64_TO(v, s) xor64_to(&(v), (s)) |
| #define | XOR64_INT(v, x) ((v).lo ^= (x)) |
| #define | sip_init_state sip_init_state_bin.u64 |
| #define | SIP_COMPRESS(v0, v1, v2, v3) |
| #define | SIP_2_ROUND(m, v0, v1, v2, v3) |
| #define | OR_BYTE(n) |
Functions | |
| static uint64_t | u8to64_le (const uint8_t *p) |
| static void | u64to8_le (uint8_t *p, uint64_t v) |
| static uint64_t * | rotl64_to (uint64_t *v, unsigned int s) |
| static uint64_t * | rotl64_swap (uint64_t *v) |
| static uint64_t * | add64_to (uint64_t *v, const uint64_t s) |
| static uint64_t * | xor64_to (uint64_t *v, const uint64_t s) |
| static void | int_sip_init (sip_state *state, const uint8_t *key) |
| static void | int_sip_update (sip_state *state, const uint8_t *data, size_t len) |
| static void | int_sip_final (sip_state *state, uint64_t *digest) |
| static void | int_sip_dump (sip_state *state) |
| static void | int_sip_init (sip_state *state, const uint8_t key[16]) |
| static void | int_sip_round (sip_state *state, int n) |
| static void | int_sip_update_block (sip_state *state, uint64_t m) |
| static void | int_sip_pre_update (sip_state *state, const uint8_t **pdata, size_t *plen) |
| static void | int_sip_post_update (sip_state *state, const uint8_t *data, size_t len) |
| static void | int_sip_pad_final_block (sip_state *state) |
| sip_hash * | sip_hash_new (const uint8_t key[16], int c, int d) |
| sip_hash * | sip_hash_init (sip_hash *h, const uint8_t key[16], int c, int d) |
| int | sip_hash_update (sip_hash *h, const uint8_t *msg, size_t len) |
| int | sip_hash_final (sip_hash *h, uint8_t **digest, size_t *len) |
| int | sip_hash_final_integer (sip_hash *h, uint64_t *digest) |
| int | sip_hash_digest (sip_hash *h, const uint8_t *data, size_t data_len, uint8_t **digest, size_t *digest_len) |
| int | sip_hash_digest_integer (sip_hash *h, const uint8_t *data, size_t data_len, uint64_t *digest) |
| void | sip_hash_free (sip_hash *h) |
| void | sip_hash_dump (sip_hash *h) |
| uint64_t | sip_hash24 (const uint8_t key[16], const uint8_t *data, size_t len) |
Variables | |
| union { | |
| char bin [32] | |
| uint64_t u64 [4] | |
| } | sip_init_state_bin |
| static const sip_interface | sip_methods |
| #define BIG_ENDIAN __BIG_ENDIAN |
Definition at line 22 of file siphash.c.
Referenced by assign_heap_slot(), and is_pointer_to_heap().
| #define LITTLE_ENDIAN __LITTLE_ENDIAN |
Definition at line 21 of file siphash.c.
Referenced by assign_heap_slot(), big2dbl(), and is_pointer_to_heap().
| #define OR_BYTE | ( | n | ) |
do { \ if (n >= 4) \ last.hi |= ((uint32_t) end[n]) << ((n) >= 4 ? (n) * 8 - 32 : 0); \ else \ last.lo |= ((uint32_t) end[n]) << ((n) >= 4 ? 0 : (n) * 8); \ } while (0)
Referenced by sip_hash24().
| #define ROTL64_TO | ( | v, | |
| s | |||
| ) |
((s) > 32 ? rotl64_swap(rotl64_to(&(v), (s) - 32)) : \ (s) == 32 ? rotl64_swap(&(v)) : rotl64_to(&(v), (s)))
| #define SIP_2_ROUND | ( | m, | |
| v0, | |||
| v1, | |||
| v2, | |||
| v3 | |||
| ) |
do { \ XOR64_TO((v3), (m)); \ SIP_COMPRESS(v0, v1, v2, v3); \ SIP_COMPRESS(v0, v1, v2, v3); \ XOR64_TO((v0), (m)); \ } while (0)
Definition at line 388 of file siphash.c.
Referenced by sip_hash24().
| #define SIP_COMPRESS | ( | v0, | |
| v1, | |||
| v2, | |||
| v3 | |||
| ) |
do { \ ADD64_TO((v0), (v1)); \ ADD64_TO((v2), (v3)); \ ROTL64_TO((v1), 13); \ ROTL64_TO((v3), 16); \ XOR64_TO((v1), (v0)); \ XOR64_TO((v3), (v2)); \ ROTL64_TO((v0), 32); \ ADD64_TO((v2), (v1)); \ ADD64_TO((v0), (v3)); \ ROTL64_TO((v1), 17); \ ROTL64_TO((v3), 21); \ XOR64_TO((v1), (v2)); \ XOR64_TO((v3), (v0)); \ ROTL64_TO((v2), 32); \ } while(0)
Definition at line 157 of file siphash.c.
Referenced by int_sip_round(), and sip_hash24().
| #define SIP_HASH_STREAMING 1 |
| #define sip_init_state sip_init_state_bin.u64 |
Definition at line 137 of file siphash.c.
Referenced by int_sip_init(), and sip_hash24().
| #define U32TO8_LE | ( | p, | |
| v | |||
| ) |
Definition at line 82 of file siphash.c.
Referenced by sip_hash_final().
| #define U8TO32_LE | ( | p | ) |
Definition at line 72 of file siphash.c.
Referenced by int_sip_final(), int_sip_init(), int_sip_pre_update(), int_sip_update(), and sip_hash24().
Definition at line 130 of file siphash.c.
Referenced by int_sip_final(), and sip_hash24().
Definition at line 121 of file siphash.c.
Referenced by int_sip_final(), int_sip_init(), int_sip_update_block(), and sip_hash24().
| static void int_sip_dump | ( | sip_state * | state | ) | [static] |
| static void int_sip_final | ( | sip_state * | state, |
| uint64_t * | digest | ||
| ) | [static] |
Definition at line 292 of file siphash.c.
References sip_state::buf, sip_state::d, int_sip_pad_final_block(), int_sip_round(), int_sip_update_block(), U8TO64_LE, sip_state::v, XOR64_INT, and XOR64_TO.
| static void int_sip_init | ( | sip_state * | state, |
| const uint8_t * | key | ||
| ) | [static] |
| static void int_sip_init | ( | sip_state * | state, |
| const uint8_t | key[16] | ||
| ) | [static] |
Definition at line 191 of file siphash.c.
References sip_init_state, U8TO64_LE, sip_state::v, and XOR64_TO.
| static void int_sip_pad_final_block | ( | sip_state * | state | ) | [inline, static] |
Definition at line 281 of file siphash.c.
References sip_state::buf, sip_state::buflen, and sip_state::msglen_byte.
Referenced by int_sip_final().
| static void int_sip_post_update | ( | sip_state * | state, |
| const uint8_t * | data, | ||
| size_t | len | ||
| ) | [inline, static] |
Definition at line 240 of file siphash.c.
References sip_state::buf, and sip_state::buflen.
Referenced by int_sip_update().
| static void int_sip_pre_update | ( | sip_state * | state, |
| const uint8_t ** | pdata, | ||
| size_t * | plen | ||
| ) | [inline, static] |
Definition at line 223 of file siphash.c.
References sip_state::buf, sip_state::buflen, int_sip_update_block(), and U8TO64_LE.
Referenced by int_sip_update().
| static void int_sip_round | ( | sip_state * | state, |
| int | n | ||
| ) | [inline, static] |
Definition at line 205 of file siphash.c.
References SIP_COMPRESS, and sip_state::v.
Referenced by int_sip_final(), and int_sip_update_block().
| static void int_sip_update | ( | sip_state * | state, |
| const uint8_t * | data, | ||
| size_t | len | ||
| ) | [static] |
Definition at line 250 of file siphash.c.
References int_sip_post_update(), int_sip_pre_update(), int_sip_update_block(), sip_state::msglen_byte, and U8TO64_LE.
| static void int_sip_update_block | ( | sip_state * | state, |
| uint64_t | m | ||
| ) | [inline, static] |
Definition at line 215 of file siphash.c.
References sip_state::c, int_sip_round(), sip_state::v, and XOR64_TO.
Referenced by int_sip_final(), int_sip_pre_update(), and int_sip_update().
| static uint64_t* rotl64_swap | ( | uint64_t * | v | ) | [inline, static] |
Definition at line 397 of file siphash.c.
References last, OR_BYTE, SIP_2_ROUND, SIP_COMPRESS, sip_init_state, U8TO64_LE, XOR64_INT, and XOR64_TO.
| int sip_hash_digest | ( | sip_hash * | h, |
| const uint8_t * | data, | ||
| size_t | data_len, | ||
| uint8_t ** | digest, | ||
| size_t * | digest_len | ||
| ) |
Definition at line 362 of file siphash.c.
References sip_hash_final(), and sip_hash_update().
| int sip_hash_digest_integer | ( | sip_hash * | h, |
| const uint8_t * | data, | ||
| size_t | data_len, | ||
| uint64_t * | digest | ||
| ) |
Definition at line 369 of file siphash.c.
References sip_hash_final_integer(), and sip_hash_update().
| void sip_hash_dump | ( | sip_hash * | h | ) |
Definition at line 382 of file siphash.c.
References int_sip_dump(), and sip_hash::state.
| int sip_hash_final | ( | sip_hash * | h, |
| uint8_t ** | digest, | ||
| size_t * | len | ||
| ) |
Definition at line 340 of file siphash.c.
References sip_interface_st::final, malloc, sip_hash::methods, sip_hash::state, and U64TO8_LE.
Referenced by sip_hash_digest().
| int sip_hash_final_integer | ( | sip_hash * | h, |
| uint64_t * | digest | ||
| ) |
Definition at line 355 of file siphash.c.
References sip_interface_st::final, sip_hash::methods, and sip_hash::state.
Referenced by sip_hash_digest_integer().
| void sip_hash_free | ( | sip_hash * | h | ) |
| sip_hash* sip_hash_init | ( | sip_hash * | h, |
| const uint8_t | key[16], | ||
| int | c, | ||
| int | d | ||
| ) |
Definition at line 321 of file siphash.c.
References sip_state::buflen, sip_state::c, sip_state::d, sip_interface_st::init, sip_hash::methods, sip_state::msglen_byte, sip_methods, and sip_hash::state.
Referenced by sip_hash_new().
| sip_hash* sip_hash_new | ( | const uint8_t | key[16], |
| int | c, | ||
| int | d | ||
| ) |
Definition at line 312 of file siphash.c.
References malloc, NULL, and sip_hash_init().
| int sip_hash_update | ( | sip_hash * | h, |
| const uint8_t * | msg, | ||
| size_t | len | ||
| ) |
Definition at line 333 of file siphash.c.
References sip_hash::methods, sip_hash::state, and sip_interface_st::update.
Referenced by sip_hash_digest(), and sip_hash_digest_integer().
union { ... } sip_init_state_bin [static] |
const sip_interface sip_methods [static] |
Definition at line 150 of file siphash.c.
Referenced by sip_hash_init().
1.7.6.1