public function getProtectedHeaderParameter(string $key)
    {
        if ($this->hasProtectedHeaderParameter($key)) {
            return $this->getProtectedHeader()[$key];
        }

        throw new \InvalidArgumentException(\sprintf('The protected header "%s" does not exist', $key));
    }