<div dir="ltr"><div dir="ltr">On Mon, Sep 14, 2020 at 9:52 PM Matt Caswell <<a href="mailto:matt@openssl.org">matt@openssl.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> And that is the point - this is not how the existing CTX functions work<br>
> (ignoring the OPENSSL_CTX stuff).<br>
<br>
Do you have some concrete examples of existing functions that don't work<br>
this way?<br></blockquote><div><br></div><div>SSL_new()</div><div>BIO_new_ssl()<br></div><div>BIO_new_ssl_connect()<br></div><div>BIO_new_bio_pair()<br></div><div>etc</div><div><br></div><div>And all the existing method using functions which are also factories.</div><div><br></div><div>But I get the point - if there is only one argument is it logically coming first or last - obviously it can be seen both ways.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">IMO, we absolutely MUST have the ability to delete parameters (for<br>
example ENGINEs). If we can do that, then I don't see why we can't add<br>
parameters.<br></blockquote><div><br></div><div>No - that doesn't follow. It is perfectly reasonable to have an ENGINE typedef that remains and is passed as NULL as usual - and in fact most of the top-level ENGINE stuff handles NULL as meaning no engine usage so that would remain consistent. There is no absolute requirement to delete a parameter for this or other purposes. If you want to reorder parameters I would argue it should be a new function name and not an _ex version.</div><div><br></div><div>Tim.</div></div></div>