Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.3.x will end 7 October 2024 (12 months).
  • Bug fixes for security issues in 4.3.x will end 21 April 2025 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too.
   1  <?php
   2  namespace ParagonIE\ConstantTime;
   3  
   4  /**
   5   *  Copyright (c) 2016 - 2017 Paragon Initiative Enterprises.
   6   *  Copyright (c) 2014 Steve "Sc00bz" Thomas (steve at tobtu dot com)
   7   *
   8   *  Permission is hereby granted, free of charge, to any person obtaining a copy
   9   *  of this software and associated documentation files (the "Software"), to deal
  10   *  in the Software without restriction, including without limitation the rights
  11   *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  12   *  copies of the Software, and to permit persons to whom the Software is
  13   *  furnished to do so, subject to the following conditions:
  14   *
  15   *  The above copyright notice and this permission notice shall be included in all
  16   *  copies or substantial portions of the Software.
  17   *
  18   *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  19   *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  20   *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  21   *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  22   *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  23   *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  24   *  SOFTWARE.
  25   */
  26  
  27  /**
  28   * Interface EncoderInterface
  29   * @package ParagonIE\ConstantTime
  30   */
  31  interface EncoderInterface
  32  {
  33      /**
  34       * Convert a binary string into a hexadecimal string without cache-timing
  35       * leaks
  36       *
  37       * @param string $bin_string (raw binary)
  38       * @return string
  39       */
  40      public static function encode($bin_string);
  41  
  42      /**
  43       * Convert a binary string into a hexadecimal string without cache-timing
  44       * leaks
  45       *
  46       * @param string $encoded_string
  47       * @return string (raw binary)
  48       */
  49      public static function decode($encoded_string);
  50  }