404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.119.137.162: ~ $
/* Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
   SipHash reference C implementation
   Copyright (c) 2012-2014 Jean-Philippe Aumasson
   <jeanphilippe.aumasson@gmail.com>
   Copyright (c) 2012-2014 Daniel J. Bernstein <djb@cr.yp.to>
   To the extent possible under law, the author(s) have dedicated all copyright
   and related and neighboring rights to this software to the public domain
   worldwide. This software is distributed without any warranty.
   You should have received a copy of the CC0 Public Domain Dedication along
   with this software. If not, see
   <http://creativecommons.org/publicdomain/zero/1.0/>.
 */

#ifndef APR_SIPHASH_H
#define APR_SIPHASH_H

#include "apr.h"
#include "apu.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @file apr_siphash.h
 * @brief APR-UTIL siphash library
 *        "SipHash-c-d is a family of pseudorandom functions (a.k.a. keyed
 *        hash functions) optimized for speed on short messages", designed by
 *        Jean-Philippe Aumasson and Daniel J. Bernstein. It generates a 64bit
 *        hash (or MAC) from the message and a 128bit key.
 *        See http://cr.yp.to/siphash/siphash-20120620.pdf for the details,
 *        c is the number of compression rounds, d the number of finalization
 *        rounds; we also define fast implementations for c = 2 with d = 4 (aka
 *        siphash-2-4), and c = 4 with d = 8 (aka siphash-4-8), as recommended
 *        parameters per the authors.
 */

/** size of the siphash digest */
#define APR_SIPHASH_DSIZE 8

/** size of the siphash key */
#define APR_SIPHASH_KSIZE 16


/**
 * @brief Computes SipHash-c-d, producing a 64bit (APR_SIPHASH_DSIZE) hash
 * from a message and a 128bit (APR_SIPHASH_KSIZE) secret key.
 * @param src The message
 * @param len The length of the message
 * @param key The secret key
 * @param c   The number of compression rounds
 * @param d   The number of finalization rounds
 * @return The hash value as a 64bit unsigned integer
 */
APU_DECLARE(apr_uint64_t) apr_siphash(const void *src, apr_size_t len,
                              const unsigned char key[APR_SIPHASH_KSIZE],
                                      unsigned int c, unsigned int d);

/**
 * @brief Computes SipHash-c-d, producing a 64bit (APR_SIPHASH_DSIZE) hash
 * from a message and a 128bit (APR_SIPHASH_KSIZE) secret key, into a possibly
 * unaligned buffer (using the little endian representation as defined by the
 * authors for interoperabilty) usable as a MAC.
 * @param out The output buffer (or MAC)
 * @param src The message
 * @param len The length of the message
 * @param key The secret key
 * @param c   The number of compression rounds
 * @param d   The number of finalization rounds
 * @return The hash value as a 64bit unsigned integer
 */
APU_DECLARE(void) apr_siphash_auth(unsigned char out[APR_SIPHASH_DSIZE],
                                   const void *src, apr_size_t len,
                             const unsigned char key[APR_SIPHASH_KSIZE],
                                   unsigned int c, unsigned int d);

/**
 * @brief Computes SipHash-2-4, producing a 64bit (APR_SIPHASH_DSIZE) hash
 * from a message and a 128bit (APR_SIPHASH_KSIZE) secret key.
 * @param src The message to hash
 * @param len The length of the message
 * @param key The secret key
 * @return The hash value as a 64bit unsigned integer
 */
APU_DECLARE(apr_uint64_t) apr_siphash24(const void *src, apr_size_t len,
                               const unsigned char key[APR_SIPHASH_KSIZE]);

/**
 * @brief Computes SipHash-2-4, producing a 64bit (APR_SIPHASH_DSIZE) hash
 * from a message and a 128bit (APR_SIPHASH_KSIZE) secret key, into a possibly
 * unaligned buffer (using the little endian representation as defined by the
 * authors for interoperabilty) usable as a MAC.
 * @param out The output buffer (or MAC)
 * @param src The message
 * @param len The length of the message
 * @param key The secret key
 * @return The hash value as a 64bit unsigned integer
 */
APU_DECLARE(void) apr_siphash24_auth(unsigned char out[APR_SIPHASH_DSIZE],
                                     const void *src, apr_size_t len,
                               const unsigned char key[APR_SIPHASH_KSIZE]);

/**
 * @brief Computes SipHash-4-8, producing a 64bit (APR_SIPHASH_DSIZE) hash
 * from a message and a 128bit (APR_SIPHASH_KSIZE) secret key.
 * @param src The message
 * @param len The length of the message
 * @param key The secret key
 * @return The hash value as a 64bit unsigned integer
 */
APU_DECLARE(apr_uint64_t) apr_siphash48(const void *src, apr_size_t len,
                               const unsigned char key[APR_SIPHASH_KSIZE]);

/**
 * @brief Computes SipHash-4-8, producing a 64bit (APR_SIPHASH_DSIZE) hash
 * from a message and a 128bit (APR_SIPHASH_KSIZE) secret key, into a possibly
 * unaligned buffer (using the little endian representation as defined by the
 * authors for interoperabilty) usable as a MAC.
 * @param out The output buffer (or MAC)
 * @param src The message
 * @param len The length of the message
 * @param key The secret key
 * @return The hash value as a 64bit unsigned integer
 */
APU_DECLARE(void) apr_siphash48_auth(unsigned char out[APR_SIPHASH_DSIZE],
                                     const void *src, apr_size_t len,
                               const unsigned char key[APR_SIPHASH_KSIZE]);

#ifdef __cplusplus
}
#endif

#endif  /* APR_SIPHASH_H */

Filemanager

Name Type Size Permission Actions
apr-x86_64.h File 17.89 KB 0644
apr.h File 636 B 0644
apr_allocator.h File 6.07 KB 0644
apr_anylock.h File 4.93 KB 0644
apr_atomic.h File 6.04 KB 0644
apr_base64.h File 3.75 KB 0644
apr_buckets.h File 63.15 KB 0644
apr_crypto.h File 19.68 KB 0644
apr_cstr.h File 11.13 KB 0644
apr_date.h File 3.47 KB 0644
apr_dbd.h File 23.35 KB 0644
apr_dbm.h File 8.4 KB 0644
apr_dso.h File 2.64 KB 0644
apr_encode.h File 30.35 KB 0644
apr_env.h File 2.06 KB 0644
apr_errno.h File 53.77 KB 0644
apr_escape.h File 17.23 KB 0644
apr_file_info.h File 17.17 KB 0644
apr_file_io.h File 42.88 KB 0644
apr_fnmatch.h File 6.08 KB 0644
apr_general.h File 7.34 KB 0644
apr_getopt.h File 5.84 KB 0644
apr_global_mutex.h File 7.19 KB 0644
apr_hash.h File 10.08 KB 0644
apr_hooks.h File 12.36 KB 0644
apr_inherit.h File 2.09 KB 0644
apr_ldap.h File 5.57 KB 0644
apr_ldap_init.h File 5.64 KB 0644
apr_ldap_option.h File 8.4 KB 0644
apr_ldap_rebind.h File 3.09 KB 0644
apr_ldap_url.h File 3.71 KB 0644
apr_lib.h File 8.23 KB 0644
apr_md4.h File 4.42 KB 0644
apr_md5.h File 6.2 KB 0644
apr_memcache.h File 16.82 KB 0644
apr_mmap.h File 5.01 KB 0644
apr_network_io.h File 36.02 KB 0644
apr_optional.h File 2.71 KB 0644
apr_optional_hooks.h File 3.78 KB 0644
apr_perms_set.h File 1.86 KB 0644
apr_poll.h File 20.6 KB 0644
apr_pools.h File 30.94 KB 0644
apr_portable.h File 20.02 KB 0644
apr_proc_mutex.h File 6.85 KB 0644
apr_queue.h File 3.98 KB 0644
apr_random.h File 4.92 KB 0644
apr_redis.h File 15.62 KB 0644
apr_reslist.h File 7.01 KB 0644
apr_ring.h File 18.78 KB 0644
apr_rmm.h File 4.67 KB 0644
apr_sdbm.h File 5.97 KB 0644
apr_sha1.h File 3.79 KB 0644
apr_shm.h File 9.26 KB 0644
apr_signal.h File 2.7 KB 0644
apr_siphash.h File 6.01 KB 0644
apr_skiplist.h File 14.19 KB 0644
apr_strings.h File 14.55 KB 0644
apr_strmatch.h File 2.61 KB 0644
apr_support.h File 1.6 KB 0644
apr_tables.h File 18.9 KB 0644
apr_thread_cond.h File 5.4 KB 0644
apr_thread_mutex.h File 4.39 KB 0644
apr_thread_pool.h File 10.84 KB 0644
apr_thread_proc.h File 36.8 KB 0644
apr_thread_rwlock.h File 4.65 KB 0644
apr_time.h File 7.39 KB 0644
apr_uri.h File 6.43 KB 0644
apr_user.h File 5.19 KB 0644
apr_uuid.h File 2.05 KB 0644
apr_version.h File 5.22 KB 0644
apr_want.h File 2.89 KB 0644
apr_xlate.h File 6.26 KB 0644
apr_xml.h File 12.19 KB 0644
apu.h File 4.22 KB 0644
apu_errno.h File 5.32 KB 0644
apu_version.h File 4.2 KB 0644
apu_want.h File 1.45 KB 0644