xref: /dokuwiki/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php (revision 8e88a29b81301f78509349ab1152bb09c229123e)
1<?php
2declare(strict_types=1);
3namespace ParagonIE\ConstantTime;
4
5use SensitiveParameter;
6
7/**
8 *  Copyright (c) 2016 - 2022 Paragon Initiative Enterprises.
9 *  Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
10 *
11 *  Permission is hereby granted, free of charge, to any person obtaining a copy
12 *  of this software and associated documentation files (the "Software"), to deal
13 *  in the Software without restriction, including without limitation the rights
14 *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 *  copies of the Software, and to permit persons to whom the Software is
16 *  furnished to do so, subject to the following conditions:
17 *
18 *  The above copyright notice and this permission notice shall be included in all
19 *  copies or substantial portions of the Software.
20 *
21 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27 *  SOFTWARE.
28 */
29
30/**
31 * Interface EncoderInterface
32 * @package ParagonIE\ConstantTime
33 */
34interface EncoderInterface
35{
36    /**
37     * Convert a binary string into a hexadecimal string without cache-timing
38     * leaks
39     *
40     * @param string $binString (raw binary)
41     * @return string
42     */
43    public static function encode(
44        #[SensitiveParameter]
45        string $binString
46    ): string;
47
48    /**
49     * Convert a binary string into a hexadecimal string without cache-timing
50     * leaks
51     *
52     * @param string $encodedString
53     * @param bool $strictPadding Error on invalid padding
54     * @return string (raw binary)
55     */
56    public static function decode(
57        #[SensitiveParameter]
58        string $encodedString,
59        bool $strictPadding = false
60    ): string;
61}
62