Apache Portable Runtime Utility Library
apr_siphash.h
Go to the documentation of this file.
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements. See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 /*
17  SipHash reference C implementation
18  Copyright (c) 2012-2014 Jean-Philippe Aumasson
19  <jeanphilippe.aumasson@gmail.com>
20  Copyright (c) 2012-2014 Daniel J. Bernstein <djb@cr.yp.to>
21  To the extent possible under law, the author(s) have dedicated all copyright
22  and related and neighboring rights to this software to the public domain
23  worldwide. This software is distributed without any warranty.
24  You should have received a copy of the CC0 Public Domain Dedication along
25  with this software. If not, see
26  <http://creativecommons.org/publicdomain/zero/1.0/>.
27  */
28 
29 #ifndef APR_SIPHASH_H
30 #define APR_SIPHASH_H
31 
32 #include "apr.h"
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
53 #define APR_SIPHASH_DSIZE 8
54 
56 #define APR_SIPHASH_KSIZE 16
57 
58 
69 APR_DECLARE(apr_uint64_t) apr_siphash(const void *src, apr_size_t len,
70  const unsigned char key[APR_SIPHASH_KSIZE],
71  unsigned int c, unsigned int d);
72 
86 APR_DECLARE(void) apr_siphash_auth(unsigned char out[APR_SIPHASH_DSIZE],
87  const void *src, apr_size_t len,
88  const unsigned char key[APR_SIPHASH_KSIZE],
89  unsigned int c, unsigned int d);
90 
99 APR_DECLARE(apr_uint64_t) apr_siphash24(const void *src, apr_size_t len,
100  const unsigned char key[APR_SIPHASH_KSIZE]);
101 
113 APR_DECLARE(void) apr_siphash24_auth(unsigned char out[APR_SIPHASH_DSIZE],
114  const void *src, apr_size_t len,
115  const unsigned char key[APR_SIPHASH_KSIZE]);
116 
125 APR_DECLARE(apr_uint64_t) apr_siphash48(const void *src, apr_size_t len,
126  const unsigned char key[APR_SIPHASH_KSIZE]);
127 
139 APR_DECLARE(void) apr_siphash48_auth(unsigned char out[APR_SIPHASH_DSIZE],
140  const void *src, apr_size_t len,
141  const unsigned char key[APR_SIPHASH_KSIZE]);
142 
143 #ifdef __cplusplus
144 }
145 #endif
146 
147 #endif /* APR_SIPHASH_H */
APR_DECLARE(apr_uint64_t) apr_siphash(const void *src
Computes SipHash-c-d, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIP...
#define APR_SIPHASH_DSIZE
Definition: apr_siphash.h:53
#define APR_SIPHASH_KSIZE
Definition: apr_siphash.h:56