<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _ecdsa_sign_recoverable(msg32, seckey):
 """ Takes a message of 32 bytes and a private key Returns a recoverable signature of length 64 """

    assert isinstance(msg32, bytes)
    assert isinstance(seckey, bytes)
    assert len(msg32) == len(seckey) == 32
    if not _verify_seckey(seckey):
        raise InvalidPrivateKeyError()

    # Make a recoverable signature of 65 bytes
    sig64 = ffi.new("secp256k1_ecdsa_recoverable_signature *")

    lib.secp256k1_ecdsa_sign_recoverable(
        ctx,
        sig64,
        msg32,
        seckey,
        ffi.addressof(lib, "secp256k1_nonce_function_default"),
        ndata,
    )
    return sig64