1 /* 2 * Base64 stream functions 3 * 4 * Copyright (C) 2008-2021, Joachim Metz <joachim.metz@gmail.com> 5 * 6 * Refer to AUTHORS for acknowledgements. 7 * 8 * This program is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU Lesser General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License 19 * along with this program. If not, see <https://www.gnu.org/licenses/>. 20 */ 21 22 #if !defined( _LIBUNA_BASE64_STREAM_H ) 23 #define _LIBUNA_BASE64_STREAM_H 24 25 #include <common.h> 26 #include <types.h> 27 28 #include "libuna_extern.h" 29 #include "libuna_libcerror.h" 30 #include "libuna_types.h" 31 32 #if defined( __cplusplus ) 33 extern "C" { 34 #endif 35 36 int libuna_base64_character_copy_to_sixtet( 37 uint32_t base64_character, 38 uint8_t *base64_sixtet, 39 uint32_t base64_variant, 40 libcerror_error_t **error ); 41 42 LIBUNA_EXTERN \ 43 int libuna_base64_triplet_copy_from_base64_stream( 44 uint32_t *base64_triplet, 45 const uint8_t *base64_stream, 46 size_t base64_stream_size, 47 size_t *base64_stream_index, 48 uint8_t *padding_size, 49 uint32_t base64_variant, 50 libcerror_error_t **error ); 51 52 LIBUNA_EXTERN \ 53 int libuna_base64_triplet_copy_to_base64_stream( 54 uint32_t base64_triplet, 55 uint8_t *base64_stream, 56 size_t base64_stream_size, 57 size_t *base64_stream_index, 58 uint8_t padding_size, 59 uint32_t base64_variant, 60 libcerror_error_t **error ); 61 62 LIBUNA_EXTERN \ 63 int libuna_base64_triplet_copy_from_byte_stream( 64 uint32_t *base64_triplet, 65 const uint8_t *byte_stream, 66 size_t byte_stream_size, 67 size_t *byte_stream_index, 68 uint8_t *padding_size, 69 libcerror_error_t **error ); 70 71 LIBUNA_EXTERN \ 72 int libuna_base64_triplet_copy_to_byte_stream( 73 uint32_t base64_triplet, 74 uint8_t *byte_stream, 75 size_t byte_stream_size, 76 size_t *byte_stream_index, 77 uint8_t padding_size, 78 libcerror_error_t **error ); 79 80 LIBUNA_EXTERN \ 81 int libuna_base64_stream_size_to_byte_stream( 82 const uint8_t *base64_stream, 83 size_t base64_stream_size, 84 size_t *byte_stream_size, 85 uint32_t base64_variant, 86 uint8_t flags, 87 libcerror_error_t **error ); 88 89 LIBUNA_EXTERN \ 90 int libuna_base64_stream_copy_to_byte_stream( 91 const uint8_t *base64_stream, 92 size_t base64_stream_size, 93 uint8_t *byte_stream, 94 size_t byte_stream_size, 95 uint32_t base64_variant, 96 uint8_t flags, 97 libcerror_error_t **error ); 98 99 LIBUNA_EXTERN \ 100 int libuna_base64_stream_size_from_byte_stream( 101 const uint8_t *byte_stream, 102 size_t byte_stream_size, 103 size_t *base64_stream_size, 104 uint32_t base64_variant, 105 libcerror_error_t **error ); 106 107 LIBUNA_EXTERN \ 108 int libuna_base64_stream_copy_from_byte_stream( 109 uint8_t *base64_stream, 110 size_t base64_stream_size, 111 const uint8_t *byte_stream, 112 size_t byte_stream_size, 113 uint32_t base64_variant, 114 libcerror_error_t **error ); 115 116 LIBUNA_EXTERN \ 117 int libuna_base64_stream_with_index_copy_from_byte_stream( 118 uint8_t *base64_stream, 119 size_t base64_stream_size, 120 size_t *base64_stream_index, 121 const uint8_t *byte_stream, 122 size_t byte_stream_size, 123 uint32_t base64_variant, 124 libcerror_error_t **error ); 125 126 #if defined( __cplusplus ) 127 } 128 #endif 129 130 #endif /* !defined( _LIBUNA_BASE64_STREAM_H ) */ 131 132