Re: [COMMITTERS] pgsql: Add support for matching wildcard server certificates to the new

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: [COMMITTERS] pgsql: Add support for matching wildcard server certificates to the new
Дата
Msg-id 492AC055.8090605@hagander.net
обсуждение исходный текст
Ответ на Re: [COMMITTERS] pgsql: Add support for matching wildcard server certificates to the new  (Peter Eisentraut <peter_e@gmx.net>)
Ответы Re: Re: [COMMITTERS] pgsql: Add support for matching wildcard server certificates to the new  (Peter Eisentraut <peter_e@gmx.net>)
Список pgsql-hackers
Peter Eisentraut wrote:
> Magnus Hagander wrote:
>> Tom Lane wrote:
>>> Magnus Hagander <magnus@hagander.net> writes:
>>>> ... The other option is to have
>>>> autoconf substitute our own local version of fnmatch when this happens.
>>>> How would one go about to do that in autoconf asks the autoconf n00b?
>>> I'd try adding a little test program that tries to compile
>>>
>>>     #include <fnmatch.h>
>>>     ...
>>>     n = fnmatch("foo","bar", FNM_CASEFOLD);
>>>
>>> and see if that succeeds.
>>>
>>> For extra credit, incorporate that into a new PGAC_FUNC_FNMATCH macro,
>>> but I think you'd need to get Peter's help on the details --- I'm just
>>> a duffer on autoconf myself.
>>
>> Yeah, likely that someone who knows this will make it happen a lot
>> faster.
>>
>> Peter, got time to help me out with this? Thanks!
> 
> Well, FNM_CASEFOLD is not POSIX, and Autoconf thinks it's a GNU
> extension, which has obviously crept into other systems.  So you'd need
> to use AC_FUNC_FNMATCH_GNU, but that also requires you to use the GNU
> replacement implementation.  (A bit stupid, but then again, if you are
> trying to use GNU features, whose replacement implementation are you
> going to use.)

Meh, I looked at that, and considered having to implement it the GNU way
was bad. Since we can't just import the GNU sourcecode.



> If you google for FNM_CASEFOLD, you will get about a million hits of
> other open-source projects having run into this same issue.
> 
> Then again, having looked into the libpq source now, is using fnmatch()
> even appropriate here?  The matching rules for https are in RFC 2818:
> 
>    Matching is performed using the matching rules specified by
>    [RFC2459].  If more than one identity of a given type is present in
>    the certificate (e.g., more than one dNSName name, a match in any one
>    of the set is considered acceptable.) Names may contain the wildcard
>    character * which is considered to match any single domain name
>    component or component fragment. E.g., *.a.com matches foo.a.com but
>    not bar.foo.a.com. f*.com matches foo.com but not bar.com.
> 
> Using fnmatch(), however, will also treat ? and [] special and it will
> not follow the "any single domain name component" rule.

Grr. I didn't find that RFC when I was googling around for the rules.
Must've been a bad-google-day for me. And that does *not* match what I
found on a couple of SSL-certificate-selling-websites that told you how
it worked :-(

I guess it's back to the drawingboard. Can probably still base it on the
fnmatch stuff, but it'll need to be ripped apart. Basically, it should
match only with *, and * should not match "." - do you agree that's a
reasonable interpretation?

//Magnus


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: Re: [PATCHES] Solve a problem of LC_TIME of windows.
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: [PATCHES] Solve a problem of LC_TIME of windows.