/** * Sign a message with our private key * * @param string $message Message to sign * @param SignatureSecretKey $privateKey * @param mixed $encoding Which encoding scheme to use? * @return string Signature (detached) */ public static function sign(string $message, SignatureSecretKey $privateKey, $encoding = Halite::ENCODE_BASE64URLSAFE) : string { $signed = \Sodium\crypto_sign_detached($message, $privateKey->getRawKeyMaterial()); $encoder = Halite::chooseEncoder($encoding); if ($encoder) { return $encoder($signed); } return $signed; }