[PATCH] RSA+DSA+ECC bundles
Maxim Dounin
mdounin at mdounin.ru
Fri Nov 1 14:25:06 UTC 2013
Hello!
On Fri, Nov 01, 2013 at 12:09:08PM +0000, Rob Stradling wrote:
> On 01/11/13 10:46, Maxim Dounin wrote:
> <snip>
> >>I'm afraid it's a much larger patch than I anticipated it would be
> >>when I started working on it!
> >>
> >>Maxim, does this patch look commit-able?
>
> Maxim, thanks for your initial comments.
>
> >It looks like it needs to be broken down into a patch series to
> >be at least reviewable.
>
> I thought you might say that. Is it acceptable for there to be
> compilation errors if you only apply some of the patches in a patch
> series? (I was assuming that would be unacceptable, hence the one
> large patch).
Each patch is expected to make sense by it's own, and shouldn't
break anything previously working, including compilation (but may
do e.g. otherwise unneeded and/or strange refactoring, or provide
some incomplete functionality).
> >I haven't looked into details yet, but I tend to dislike at least
> >changing the ngx_ssl_certificate() function into a monster which
> >configures everything. Preserving a separate call to configure
> >stapling would be much better.
>
> I had hoped to keep those calls separate, but I couldn't see a clean
> way to keep track of multiple server certs plus associated issuer
> certs inbetween the calls to ngx_ssl_certificate() and
> ngx_ssl_stapling().
> By combining the certificate configuration and stapling
> configuration functions, I made this problem go away.
>
> To preserve ngx_ssl_certificate() and ngx_ssl_stapling() as separate
> functions, I think I'd have to:
> - change ngx_ssl_certificate_index to keep an array (either
> ngx_array_t or STACK_OF) of server certs.
> - have ngx_ssl_certificate() put all of the intermediate CA
> certificates it encounters into a temporary cert store; have
> ngx_ssl_stapling() look in this temporary cert store for issuer
> certificates; then destroy the temporary cert store.
>
> Would that be preferable? Or do you have any better ideas?
Given the number of things we have to store here and there, I tend
to think we should eventually just add an index with some generic
pointer to a struct with our data.
To minimize changes in this particular case, using an array is
probably good enough.
> >Checks for extra ceritifcate chains with unsupported OpenSSL
> >versions looks a bit too extensive. I would think of just
> >dropping them completely.
>
> OK, (assuming you mean drop the checks, rather than drop support for
> those OpenSSL versions!)
Yes, I mean to drop checks.
--
Maxim Dounin
http://nginx.org/en/donation.html
More information about the nginx-devel
mailing list