github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/include/apr_base64.h (about)

     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-encoded string, get the length of the
    55   * encoded string.
    56   * @param len the length of an unencoded string.
    57   * @return the length of the string after it is encoded, including the
    58   * trailing \0
    59   */ 
    60  APU_DECLARE(int) apr_base64_encode_len(int len);
    61  
    62  /**
    63   * Encode a text string using base64encoding.
    64   * @param coded_dst The destination string for the encoded string.
    65   * @param plain_src The original string in plain text
    66   * @param len_plain_src The length of the plain text string
    67   * @return the length of the encoded string
    68   */ 
    69  APU_DECLARE(int) apr_base64_encode(char * coded_dst, const char *plain_src, 
    70                                   int len_plain_src);
    71  
    72  /**
    73   * Encode an EBCDIC string using base64encoding.
    74   * @param coded_dst The destination string for the encoded string.
    75   * @param plain_src The original string in plain text
    76   * @param len_plain_src The length of the plain text string
    77   * @return the length of the encoded string
    78   */ 
    79  APU_DECLARE(int) apr_base64_encode_binary(char * coded_dst, 
    80                                          const unsigned char *plain_src,
    81                                          int len_plain_src);
    82  
    83  /**
    84   * Determine the maximum buffer length required to decode the plain text
    85   * string given the encoded string.
    86   * @param coded_src The encoded string
    87   * @return the maximum required buffer length for the plain text string
    88   */ 
    89  APU_DECLARE(int) apr_base64_decode_len(const char * coded_src);
    90  
    91  /**
    92   * Decode a string to plain text
    93   * @param plain_dst The destination string for the plain text
    94   * @param coded_src The encoded string 
    95   * @return the length of the plain text string
    96   */ 
    97  APU_DECLARE(int) apr_base64_decode(char * plain_dst, const char *coded_src);
    98  
    99  /**
   100   * Decode an EBCDIC string to plain text
   101   * @param plain_dst The destination string for the plain text
   102   * @param coded_src The encoded string 
   103   * @return the length of the plain text string
   104   */ 
   105  APU_DECLARE(int) apr_base64_decode_binary(unsigned char * plain_dst, 
   106                                          const char *coded_src);
   107  
   108  /** @} */
   109  #ifdef __cplusplus
   110  }
   111  #endif
   112  
   113  #endif	/* !APR_BASE64_H */