/* libsrs - Sender Rewriting Scheme library
*
*  Author: James Couzens <jcouzens@obscurity.org>
*
*  FILE: base.h
*  DESC: base encoding header file
*
*  License:
*
*  The libspf Software License, Version 1.0
*
*  Copyright (c) 2004 James Couzens.  All rights reserved.
*
*  Redistribution and use in source and binary forms, with or without
*  modification, are permitted provided that the following conditions
*  are met:
*
*  1. Redistributions of source code must retain the above copyright
*     notice, this list of conditions and the following disclaimer.
*
*  2. Redistributions in binary form must reproduce the above copyright
*     notice, this list of conditions and the following disclaimer in
*     the documentation and/or other materials provided with the
*     distribution.
*
*  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
*  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
*  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
*  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
*  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
*  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
*  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
*  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
*  SUCH DAMAGE.
*
*/

#ifndef _BASE_H
#define _BASE_H  1

#include <stdio.h>      /* printf */
#include <stdlib.h>     /* malloc / free */
#include <string.h>     /* memcpy, sprintf etc.. */
#include <strings.h>    /* casecmp etc.. */

__BEGIN_DECLS

#define BASE_32_INVALID 32

#define BASE_32 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  \
                "234567"
                 
#define BASE_64 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  \
                "abcdefghijklmnopqrstuvwxyz"  \
                "0123456789+/"

u_char    *BASE_10_64_s(const u_char *s);
u_char    BASE_10_64_c(u_char c);
u_char    BASE_64_10_c(u_char c);
u_char    BASE_10_32_c(u_int8_t c);
u_int8_t  BASE_32_10_c(u_char c);
u_char    BASE_32_itoc(u_int8_t c);
u_int8_t  BASE_32_ctoi(u_char c);

__END_DECLS

#endif

/* end base.h */


syntax highlighted by Code2HTML, v. 0.9.1