<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _configure_context(ctx, opts, skip=()):
 """ Configures context of public key operations @param ctx - context to configure @param opts - dictionary of options (from kwargs of calling function) @param skip - list of options which shouldn't be passed to context """


        for oper in opts:
            if oper in skip:
                continue
            if isinstance(oper,chartype):
                op = oper.encode("ascii")
            else:
                op = oper
            if isinstance(opts[oper],chartype):
                value = opts[oper].encode("ascii")
            elif isinstance(opts[oper],bintype):
                value = opts[oper]
            else:
                if pyver == 2:
                    value = str(opts[oper])
                else:
                    value = str(opts[oper]).encode('ascii')
            ret = libcrypto.EVP_PKEY_CTX_ctrl_str(ctx, op, value)
            if ret == -2:
                raise PKeyError("Parameter %s is not supported by key" % oper)
            if ret < 1:
                raise PKeyError("Error setting parameter %s" % oper)