def generate_key_pair(secret=None):
    """Generates a cryptographic key pair.
    Args:
        secret (:class:`string`): A secret that serves as a seed
    Returns:
        :class:`~bigchaindb.common.crypto.CryptoKeypair`: A
        :obj:`collections.namedtuple` with named fields
        :attr:`~bigchaindb.common.crypto.CryptoKeypair.private_key` and
        :attr:`~bigchaindb.common.crypto.CryptoKeypair.public_key`.
    """
    if secret:
        keypair_raw = ed25519_generate_key_pair_from_secret(secret)
        return CryptoKeypair(
            *(k.decode() for k in keypair_raw))
    else:
        return generate_keypair()
Generates a cryptographic key pair.
    Args:
        secret (:class:`string`): A secret that serves as a seed
    Returns:
        :class:`~bigchaindb.common.crypto.CryptoKeypair`: A
        :obj:`collections.namedtuple` with named fields
        :attr:`~bigchaindb.common.crypto.CryptoKeypair.private_key` and
        :attr:`~bigchaindb.common.crypto.CryptoKeypair.public_key`.