<?php if (class_exists('ParagonIE_Sodium_Core32_Poly1305', false)) { return; } abstract class ParagonIE_Sodium_Core32_Poly1305 extends ParagonIE_Sodium_Core32_Util { const BLOCK_SIZE = 16; 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(); } 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); } }