home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / apache_2.2.8-win32-x86-no_ssl.msi / Data1.cab / _BCC4179B6CC3626CA8BFF4DE5FC8AD8C < prev    next >
Text File  |  2007-11-01  |  4KB  |  113 lines

  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.  * The apr_vsnprintf/apr_snprintf functions are based on, and used with the
  16.  * permission of, the  SIO stdio-replacement strx_* functions by Panos
  17.  * Tsirigotis <panos@alumni.cs.colorado.edu> for xinetd.
  18.  */
  19.  
  20. /**
  21.  * @file apr_base64.h
  22.  * @brief APR-UTIL Base64 Encoding
  23.  */
  24. #ifndef APR_BASE64_H
  25. #define APR_BASE64_H
  26.  
  27. #include "apu.h"
  28. #include "apr_general.h"
  29.  
  30. #ifdef __cplusplus
  31. extern "C" {
  32. #endif
  33.  
  34. /**
  35.  * @defgroup APR_Util_Base64 Base64 Encoding
  36.  * @ingroup APR_Util
  37.  * @{
  38.  */
  39.  
  40. /* Simple BASE64 encode/decode functions.
  41.  * 
  42.  * As we might encode binary strings, hence we require the length of
  43.  * the incoming plain source. And return the length of what we decoded.
  44.  *
  45.  * The decoding function takes any non valid char (i.e. whitespace, \0
  46.  * or anything non A-Z,0-9 etc as terminal.
  47.  * 
  48.  * plain strings/binary sequences are not assumed '\0' terminated. Encoded
  49.  * strings are neither. But probably should.
  50.  *
  51.  */
  52.  
  53. /**
  54.  * Given the length of an un-encrypted string, get the length of the 
  55.  * encrypted string.
  56.  * @param len the length of an unencrypted string.
  57.  * @return the length of the string after it is encrypted
  58.  */ 
  59. APU_DECLARE(int) apr_base64_encode_len(int len);
  60.  
  61. /**
  62.  * Encode a text string using base64encoding.
  63.  * @param coded_dst The destination string for the encoded string.
  64.  * @param plain_src The original string in plain text
  65.  * @param len_plain_src The length of the plain text string
  66.  * @return the length of the encoded string
  67.  */ 
  68. APU_DECLARE(int) apr_base64_encode(char * coded_dst, const char *plain_src, 
  69.                                  int len_plain_src);
  70.  
  71. /**
  72.  * Encode an EBCDIC string using base64encoding.
  73.  * @param coded_dst The destination string for the encoded string.
  74.  * @param plain_src The original string in plain text
  75.  * @param len_plain_src The length of the plain text string
  76.  * @return the length of the encoded string
  77.  */ 
  78. APU_DECLARE(int) apr_base64_encode_binary(char * coded_dst, 
  79.                                         const unsigned char *plain_src,
  80.                                         int len_plain_src);
  81.  
  82. /**
  83.  * Determine the maximum buffer length required to decode the plain text
  84.  * string given the encoded string.
  85.  * @param coded_src The encoded string
  86.  * @return the maximum required buffer length for the plain text string
  87.  */ 
  88. APU_DECLARE(int) apr_base64_decode_len(const char * coded_src);
  89.  
  90. /**
  91.  * Decode a string to plain text
  92.  * @param plain_dst The destination string for the plain text
  93.  * @param coded_src The encoded string 
  94.  * @return the length of the plain text string
  95.  */ 
  96. APU_DECLARE(int) apr_base64_decode(char * plain_dst, const char *coded_src);
  97.  
  98. /**
  99.  * Decode an EBCDIC string to plain text
  100.  * @param plain_dst The destination string for the plain text
  101.  * @param coded_src The encoded string 
  102.  * @return the length of the plain text string
  103.  */ 
  104. APU_DECLARE(int) apr_base64_decode_binary(unsigned char * plain_dst, 
  105.                                         const char *coded_src);
  106.  
  107. /** @} */
  108. #ifdef __cplusplus
  109. }
  110. #endif
  111.  
  112. #endif    /* !APR_BASE64_H */
  113.