/src/php-src/ext/standard/base64.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | +----------------------------------------------------------------------+ |
3 | | | Copyright (c) The PHP Group | |
4 | | +----------------------------------------------------------------------+ |
5 | | | This source file is subject to version 3.01 of the PHP license, | |
6 | | | that is bundled with this package in the file LICENSE, and is | |
7 | | | available through the world-wide-web at the following url: | |
8 | | | https://www.php.net/license/3_01.txt | |
9 | | | If you did not receive a copy of the PHP license and are unable to | |
10 | | | obtain it through the world-wide-web, please send a note to | |
11 | | | license@php.net so we can mail you a copy immediately. | |
12 | | +----------------------------------------------------------------------+ |
13 | | | Author: Jim Winstead <jimw@php.net> | |
14 | | | Xinchen Hui <laruence@php.net> | |
15 | | +----------------------------------------------------------------------+ |
16 | | */ |
17 | | |
18 | | #ifndef BASE64_H |
19 | | #define BASE64_H |
20 | | |
21 | | /* |
22 | | * NEON and AVX512 implementation are based on https://github.com/WojciechMula/base64simd |
23 | | * which is copyrighted to: |
24 | | * Copyright (c) 2015-2018, Wojciech Mula |
25 | | * All rights reserved. |
26 | | * |
27 | | * SSSE3 and AVX2 implementation are based on https://github.com/aklomp/base64 |
28 | | * which is copyrighted to: |
29 | | * |
30 | | * Copyright (c) 2005-2007, Nick Galbreath |
31 | | * Copyright (c) 2013-2017, Alfred Klomp |
32 | | * Copyright (c) 2015-2017, Wojciech Mula |
33 | | * Copyright (c) 2016-2017, Matthieu Darbois |
34 | | * All rights reserved. |
35 | | * |
36 | | * Redistribution and use in source and binary forms, with or without |
37 | | * modification, are permitted provided that the following conditions are |
38 | | * met: |
39 | | * |
40 | | * - Redistributions of source code must retain the above copyright notice, |
41 | | * this list of conditions and the following disclaimer. |
42 | | * |
43 | | * - Redistributions in binary form must reproduce the above copyright |
44 | | * notice, this list of conditions and the following disclaimer in the |
45 | | * documentation and/or other materials provided with the distribution. |
46 | | * |
47 | | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS |
48 | | * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
49 | | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A |
50 | | * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
51 | | * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
52 | | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED |
53 | | * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
54 | | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
55 | | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
56 | | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
57 | | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
58 | | */ |
59 | | |
60 | | #if (defined(ZEND_INTRIN_AVX2_FUNC_PTR) || defined(ZEND_INTRIN_SSSE3_FUNC_PTR) || defined(ZEND_INTRIN_AVX512_FUNC_PTR) || defined(ZEND_INTRIN_AVX512_VBMI_FUNC_PTR)) && !defined(ZEND_INTRIN_AVX2_NATIVE) |
61 | | PHP_MINIT_FUNCTION(base64_intrin); |
62 | | #endif |
63 | | |
64 | | /* php_base64_encode_ex flags */ |
65 | 12 | #define PHP_BASE64_NO_PADDING 1 |
66 | | |
67 | | PHPAPI extern zend_string *php_base64_encode_ex(const unsigned char *, size_t, zend_long flags); |
68 | | PHPAPI extern zend_string *php_base64_decode_ex(const unsigned char *, size_t, bool); |
69 | | |
70 | 12 | static inline zend_string *php_base64_encode(const unsigned char *str, size_t len) { |
71 | 12 | return php_base64_encode_ex(str, len, 0); |
72 | 12 | } base64.c:php_base64_encode Line | Count | Source | 70 | 12 | static inline zend_string *php_base64_encode(const unsigned char *str, size_t len) { | 71 | 12 | return php_base64_encode_ex(str, len, 0); | 72 | 12 | } |
Unexecuted instantiation: basic_functions.c:php_base64_encode Unexecuted instantiation: ftp_fopen_wrapper.c:php_base64_encode Unexecuted instantiation: head.c:php_base64_encode Unexecuted instantiation: html.c:php_base64_encode Unexecuted instantiation: http_fopen_wrapper.c:php_base64_encode Unexecuted instantiation: password.c:php_base64_encode Unexecuted instantiation: php_fopen_wrapper.c:php_base64_encode Unexecuted instantiation: fopen_wrappers.c:php_base64_encode Unexecuted instantiation: main.c:php_base64_encode Unexecuted instantiation: php_variables.c:php_base64_encode Unexecuted instantiation: memory.c:php_base64_encode Unexecuted instantiation: internal_functions_cli.c:php_base64_encode |
73 | 0 | static inline zend_string *php_base64_encode_str(const zend_string *str) { |
74 | 0 | return php_base64_encode((const unsigned char*)(ZSTR_VAL(str)), ZSTR_LEN(str)); |
75 | 0 | } Unexecuted instantiation: base64.c:php_base64_encode_str Unexecuted instantiation: basic_functions.c:php_base64_encode_str Unexecuted instantiation: ftp_fopen_wrapper.c:php_base64_encode_str Unexecuted instantiation: head.c:php_base64_encode_str Unexecuted instantiation: html.c:php_base64_encode_str Unexecuted instantiation: http_fopen_wrapper.c:php_base64_encode_str Unexecuted instantiation: password.c:php_base64_encode_str Unexecuted instantiation: php_fopen_wrapper.c:php_base64_encode_str Unexecuted instantiation: fopen_wrappers.c:php_base64_encode_str Unexecuted instantiation: main.c:php_base64_encode_str Unexecuted instantiation: php_variables.c:php_base64_encode_str Unexecuted instantiation: memory.c:php_base64_encode_str Unexecuted instantiation: internal_functions_cli.c:php_base64_encode_str |
76 | | |
77 | 0 | static inline zend_string *php_base64_decode(const unsigned char *str, size_t len) { |
78 | 0 | return php_base64_decode_ex(str, len, 0); |
79 | 0 | } Unexecuted instantiation: base64.c:php_base64_decode Unexecuted instantiation: basic_functions.c:php_base64_decode Unexecuted instantiation: ftp_fopen_wrapper.c:php_base64_decode Unexecuted instantiation: head.c:php_base64_decode Unexecuted instantiation: html.c:php_base64_decode Unexecuted instantiation: http_fopen_wrapper.c:php_base64_decode Unexecuted instantiation: password.c:php_base64_decode Unexecuted instantiation: php_fopen_wrapper.c:php_base64_decode Unexecuted instantiation: fopen_wrappers.c:php_base64_decode Unexecuted instantiation: main.c:php_base64_decode Unexecuted instantiation: php_variables.c:php_base64_decode Unexecuted instantiation: memory.c:php_base64_decode Unexecuted instantiation: internal_functions_cli.c:php_base64_decode |
80 | 0 | static inline zend_string *php_base64_decode_str(const zend_string *str) { |
81 | 0 | return php_base64_decode_ex((const unsigned char*)(ZSTR_VAL(str)), ZSTR_LEN(str), 0); |
82 | 0 | } Unexecuted instantiation: base64.c:php_base64_decode_str Unexecuted instantiation: basic_functions.c:php_base64_decode_str Unexecuted instantiation: ftp_fopen_wrapper.c:php_base64_decode_str Unexecuted instantiation: head.c:php_base64_decode_str Unexecuted instantiation: html.c:php_base64_decode_str Unexecuted instantiation: http_fopen_wrapper.c:php_base64_decode_str Unexecuted instantiation: password.c:php_base64_decode_str Unexecuted instantiation: php_fopen_wrapper.c:php_base64_decode_str Unexecuted instantiation: fopen_wrappers.c:php_base64_decode_str Unexecuted instantiation: main.c:php_base64_decode_str Unexecuted instantiation: php_variables.c:php_base64_decode_str Unexecuted instantiation: memory.c:php_base64_decode_str Unexecuted instantiation: internal_functions_cli.c:php_base64_decode_str |
83 | | |
84 | | #endif /* BASE64_H */ |