Summery Summery

Returns a signed message. You probably want crypto_sign_detached() instead, which only returns the signature.

Syntax Syntax

ParagonIE_Sodium_Compat::crypto_sign( string $message, string $secretKey )

Description Description

Algorithm: Ed25519 (EdDSA over Curve25519)

Parameters Parameters


(Required) Message to be signed.


(Required) Secret signing key.

Return Return

(string) Signed message (signature is prefixed).

Source Source

File: wp-includes/sodium_compat/src/Compat.php

    public static function crypto_sign($message, $secretKey)
        /* Type checks: */
        ParagonIE_Sodium_Core_Util::declareScalarType($message, 'string', 1);
        ParagonIE_Sodium_Core_Util::declareScalarType($secretKey, 'string', 2);

        /* Input validation: */
        if (ParagonIE_Sodium_Core_Util::strlen($secretKey) !== self::CRYPTO_SIGN_SECRETKEYBYTES) {
            throw new SodiumException('Argument 2 must be CRYPTO_SIGN_SECRETKEYBYTES long.');

        if (self::useNewSodiumAPI()) {
            return sodium_crypto_sign($message, $secretKey);
        if (self::use_fallback('crypto_sign')) {
            return (string) call_user_func('\\Sodium\\crypto_sign', $message, $secretKey);
        if (PHP_INT_SIZE === 4) {
            return ParagonIE_Sodium_Crypto32::sign($message, $secretKey);
        return ParagonIE_Sodium_Crypto::sign($message, $secretKey);



Leave a Reply