You are here

Poly1305.php in Automatic Updates 8

File

vendor/paragonie/sodium_compat/src/Core32/Poly1305.php
View source
<?php

if (class_exists('ParagonIE_Sodium_Core32_Poly1305', false)) {
  return;
}

/**
 * Class ParagonIE_Sodium_Core32_Poly1305
 */
abstract class ParagonIE_Sodium_Core32_Poly1305 extends ParagonIE_Sodium_Core32_Util {
  const BLOCK_SIZE = 16;

  /**
   * @internal You should not use this directly from another application
   *
   * @param string $m
   * @param string $key
   * @return string
   * @throws SodiumException
   * @throws TypeError
   */
  public static function onetimeauth($m, $key) {
    if (self::strlen($key) < 32) {
      throw new InvalidArgumentException('Key must be 32 bytes long.');
    }
    $state = new ParagonIE_Sodium_Core32_Poly1305_State(self::substr($key, 0, 32));
    return $state
      ->update($m)
      ->finish();
  }

  /**
   * @internal You should not use this directly from another application
   *
   * @param string $mac
   * @param string $m
   * @param string $key
   * @return bool
   * @throws SodiumException
   * @throws TypeError
   */
  public static function onetimeauth_verify($mac, $m, $key) {
    if (self::strlen($key) < 32) {
      throw new InvalidArgumentException('Key must be 32 bytes long.');
    }
    $state = new ParagonIE_Sodium_Core32_Poly1305_State(self::substr($key, 0, 32));
    $calc = $state
      ->update($m)
      ->finish();
    return self::verify_16($calc, $mac);
  }

}

Classes

Namesort descending Description
ParagonIE_Sodium_Core32_Poly1305 Class ParagonIE_Sodium_Core32_Poly1305