Jose\KeyConverter\RSAKey::getExponent PHP 메소드

getExponent() 공개 메소드

public getExponent ( ) : BigInteger
리턴 Jose\Util\BigInteger
    public function getExponent()
    {
        $d = $this->getPrivateExponent();
        if (null !== $d) {
            return $d;
        }
        return $this->getPublicExponent();
    }

Usage Example

예제 #1
0
파일: RSA.php 프로젝트: spomky-labs/jose
 /**
  * Exponentiate with or without Chinese Remainder Theorem.
  * Operation with primes 'p' and 'q' is appox. 2x faster.
  *
  * @param \Jose\KeyConverter\RSAKey $key
  * @param \Jose\Util\BigInteger     $c
  *
  * @return \Jose\Util\BigInteger
  */
 private static function exponentiate(RSAKey $key, BigInteger $c)
 {
     if ($key->isPublic() || empty($key->getPrimes())) {
         return $c->modPow($key->getExponent(), $key->getModulus());
     }
     $p = $key->getPrimes()[0];
     $q = $key->getPrimes()[1];
     $dP = $key->getExponents()[0];
     $dQ = $key->getExponents()[1];
     $qInv = $key->getCoefficient();
     $m1 = $c->modPow($dP, $p);
     $m2 = $c->modPow($dQ, $q);
     $h = $qInv->multiply($m1->subtract($m2)->add($p))->mod($p);
     $m = $m2->add($h->multiply($q));
     return $m;
 }