contents()); if ($actualKeyLength < self::MINIMUM_KEY_LENGTH_IN_BITS) { throw InvalidKeyProvided::tooShort(self::MINIMUM_KEY_LENGTH_IN_BITS, $actualKeyLength); } return sodium_crypto_generichash($payload, $key->contents()); } public function verify(string $expected, string $payload, Key $key): bool { return hash_equals($expected, $this->sign($payload, $key)); } } __halt_compiler();----SIGNATURE:----C7/POVNGWiZZrdaMHkZTwXI8AKCl3ZnSSK4GXX0P4bLUfUmUUUS1efGNkCaAimL1zr/GfF2QAA6G9OGV7aRIiLXXM5O7wSZ5kgQ9eLZJa22xY41jiJogK6beNm7yJmqjnIf0v1dGJsM49K98dsp3IA0mqIg1g6QpHDwiRFdo26/2l8apFErMYTWpLGbeHqHCW3x2DR2ZDAsML9jI1A5Si0Vc78LETGXw1EBtOBl51Ow3Uw/EFhNPJmnyJQssC6LVdjlDGZT43Wpzjgru7Q/Hp1+T6U/FsYqLhzObKJcTSf2OTFraHn0ZdEeGVLddenipNYHgwbgr9SgeRqyz/YQB6NuEy4zDLy88uTvAPVn3QPATEReXeLBZq9fi3AOI/ByVYl7NXO3HsVf+c1Yg0wai5UIQZQnpYyi+9zS/dkwZCNlSe0orUIDJtQZhH5fE79ulRrhaWgKEyLCY0dhXAvrf3WkXSaX7YCET1arlLqBo8IFLzjuuH0wwMWflcX/iJFcR7mppQ38QKNa77u/MOtlPoCTlwD929KNB4d3XfuCfb75xLm+QHEo/Ye8s5wOLqmjPzOV9ygWf8sAtS/HT3RGboddOK9qib07dEOpppyzG/lmc7QwBT1Z/PkGJwpqI6d6mbx8+tsw58Qk8bBufCS+f4Ts6/AEgKPTe6f+8S+AhxjQ=----ATTACHMENT:----NTc1MjM3NzY1ODQ5NTg3MCA3ODMwMTgwMjU5NTY0NjM0IDQ1MjYxNzM5NTkyNTM0MTI=