private function normalizeTlsCryptoMethod(array $tls) : array
{
$cryptoMethod = $tls['crypto_method'];
if (is_string($cryptoMethod)) {
$cryptoMethodArray = explode(' ', strtolower($cryptoMethod));
} elseif (is_array($cryptoMethod)) {
$cryptoMethodArray = array_map("strtolower", $cryptoMethod);
} else {
throw new \DomainException(sprintf('Invalid crypto method type: %s. String or array required', gettype($cryptoMethod)));
}
$bitmask = 0;
foreach ($cryptoMethodArray as $method) {
if (isset(self::$cryptoMethodMap[$method])) {
$bitmask |= self::$cryptoMethodMap[$method];
}
}
if (empty($bitmask)) {
throw new \DomainException('Invalid crypto method value: no valid methods found');
}
$tls['crypto_method'] = $bitmask;
return $tls;
}