<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_rsa_key(bits=2048, keyfile=None, format='PEM', passphrase=None):
 """ Generate a new RSA key with the specified key size. :param int bits: bit size of the key modulus :param str keyfile: file the key should be written to :param str format: format for the key file, either PEM or DER :param str passphrase: pass phrase for encrypting the key file. If pass phrase is a callable its return value will be used. :return: RSA private key instance """

    if passphrase and format != 'PEM':
        raise Exception(
            "passphrase is only supported for PEM encoded private keys")
    rsakey = RSA.generate(bits)
    if passphrase and isinstance(passphrase, collections.Callable):
        passphrase = passphrase()
    output = rsakey.exportKey(format=format, passphrase=passphrase)
    if keyfile:
        with open(keyfile, 'w') as outputfile:
            outputfile.write(output)
    log.info("generated private key:\n\n%s", output)
    return rsakey