Jose\Util\RSA::encodeEMSAPSS PHP Method

encodeEMSAPSS() private static method

EMSA-PSS-ENCODE.
private static encodeEMSAPSS ( string $m, integer $emBits, Hash $hash ) : string | boolean
$m string
$emBits integer
$hash Hash
return string | boolean
    private static function encodeEMSAPSS($m, $emBits, Hash $hash)
    {
        $emLen = $emBits + 1 >> 3;
        $sLen = $hash->getLength();
        $mHash = $hash->hash($m);
        Assertion::greaterThan($emLen, $hash->getLength() + $sLen + 2);
        $salt = random_bytes($sLen);
        $m2 = "" . $mHash . $salt;
        $h = $hash->hash($m2);
        $ps = str_repeat(chr(0), $emLen - $sLen - $hash->getLength() - 2);
        $db = $ps . chr(1) . $salt;
        $dbMask = self::getMGF1($h, $emLen - $hash->getLength() - 1, $hash);
        $maskedDB = $db ^ $dbMask;
        $maskedDB[0] = ~chr(0xff << ($emBits & 7)) & $maskedDB[0];
        $em = $maskedDB . $h . chr(0xbc);
        return $em;
    }