/** * @param string $name * @return bool */ public function checkCurveSupported($name) { try { CurveFactory::getCurveByName($name); return true; } catch (\Exception $e) { return false; } }
/** * @param string $curveName * @return \Mdanter\Ecc\Curves\NamedCurveFp|\Mdanter\Ecc\Primitives\CurveFp|\Mdanter\Ecc\Primitives\CurveFpInterface */ public static function curve($curveName) { switch ($curveName) { case NistCurve::NAME_P256: case NistCurve::NAME_P384: case NistCurve::NAME_P521: return CurveFactory::getCurveByName($curveName); default: throw new \InvalidArgumentException('Unknown or unsupported curve'); } }
/** * @param MathAdapterInterface|null $adapter * @param string $curveName * @param string $hashAlgorithm * @return EcDomain */ public static function getDomain(MathAdapterInterface $adapter, $curveName, $hashAlgorithm) { $adapter = $adapter ?: EccFactory::getAdapter(); return new EcDomain($adapter, CurveFactory::getCurveByName($curveName), CurveFactory::getGeneratorByName($curveName), new Hasher($adapter, $hashAlgorithm)); }