code: def generate(cls, curve=ec.SECP256R1(), progress_func=None, bits=None):
          
          if bits is not None:
              curve = cls._ECDSA_CURVES.get_by_key_length(bits)
              if curve is None:
                  raise ValueError("Unsupported key length: {:d}".format(bits))
              curve = curve.curve_class()
  
          private_key = ec.generate_private_key(curve, backend=default_backend())
          return ECDSAKey(vals=(private_key, private_key.public_key()))
docs: Generate a new private ECDSA key.  This factory function can be used to
          generate a new host key or authentication key.
  
          :param progress_func: Not used for this type of key.
          :returns: A new private key (`.ECDSAKey`) object