private static function encryptRSAESOAEP(RSAKey $key, string $m, Hash $hash): string
    {
        $mLen = \mb_strlen($m, '8bit');
        $lHash = $hash->hash('');
        $ps = \str_repeat(\chr(0), $key->getModulusLength() - $mLen - 2 * $hash->getLength() - 2);
        $db = $lHash.$ps.\chr(1).$m;
        $seed = \random_bytes($hash->getLength());
        $dbMask = self::getMGF1($seed, $key->getModulusLength() - $hash->getLength() - 1, $hash/*MGF*/);
        $maskedDB = \strval($db ^ $dbMask);
        $seedMask = self::getMGF1($maskedDB, $hash->getLength(), $hash/*MGF*/);
        $maskedSeed = $seed ^ $seedMask;
        $em = \chr(0).$maskedSeed.$maskedDB;

        $m = self::convertOctetStringToInteger($em);
        $c = self::getRSAEP($key, $m);
        $c = self::convertIntegerToOctetString($c, $key->getModulusLength());

        return $c;
    }
private static function encryptRSAESOAEP(RSAKey $key, string $m, Hash $hash): string
    {
        $mLen = \mb_strlen($m, '8bit');
        $lHash = $hash->hash('');
        $ps = \str_repeat(\chr(0), $key->getModulusLength() - $mLen - 2 * $hash->getLength() - 2);
        $db = $lHash.$ps.\chr(1).$m;
        $seed = \random_bytes($hash->getLength());
        $dbMask = self::getMGF1($seed, $key->getModulusLength() - $hash->getLength() - 1, $hash/*MGF*/);
        $maskedDB = \strval($db ^ $dbMask);
        $seedMask = self::getMGF1($maskedDB, $hash->getLength(), $hash/*MGF*/);
        $maskedSeed = $seed ^ $seedMask;
        $em = \chr(0).$maskedSeed.$maskedDB;

        $m = self::convertOctetStringToInteger($em);
        $c = self::getRSAEP($key, $m);
        $c = self::convertIntegerToOctetString($c, $key->getModulusLength());

        return $c;
    }
private static function encryptRSAESOAEP ( RSAKey $ key , string $ m , Hash $ hash ) : string { $ mLen = \ mb_strlen ( $ m , '8bit' ) ; $ lHash = $ hash -> hash ( '' ) ; $ ps = \ str_repeat ( \ chr ( 0 ) , $ key -> getModulusLength ( ) - $ mLen - 2 * $ hash -> getLength ( ) - 2 ) ; $ db = $ lHash . $ ps . \ chr ( 1 ) . $ m ; $ seed = \ random_bytes ( $ hash -> getLength ( ) ) ; $ dbMask = self :: getMGF1 ( $ seed , $ key -> getModulusLength ( ) - $ hash -> getLength ( ) - 1 , $ hash /*MGF*/ ) ; $ maskedDB = \ strval ( $ db ^ $ dbMask ) ; $ seedMask = self :: getMGF1 ( $ maskedDB , $ hash -> getLength ( ) , $ hash /*MGF*/ ) ; $ maskedSeed = $ seed ^ $ seedMask ; $ em = \ chr ( 0 ) . $ maskedSeed . $ maskedDB ; $ m = self :: convertOctetStringToInteger ( $ em ) ; $ c = self :: getRSAEP ( $ key , $ m ) ; $ c = self :: convertIntegerToOctetString ( $ c , $ key -> getModulusLength ( ) ) ; return $ c ; }
RSAES-OAEP-ENCRYPT.
RSAES - OAEP - ENCRYPT .