Log in

No account? Create an account

Tue, Jul. 31st, 2007, 03:34 pm

What I've been working on

For the past while, I've been telling people that I've been working on some "security software" using WvStreams. Unfortunately, I couldn't say exactly what at the time. But that's all over now. Allow me to introduce PathFinder, the next-generation solution for certificate path validation. To my knowledge, Pathfinder is the first open source product which can perform RFC3280-compliant validation and discovery, downloading certificates and CRLs as necessary.

Best of all, getting access to this functionality is a simple matter of sending the certificate and a few parameters over D-Bus, so it should be easy for 3rd party applications to adopt. Sample code for using PathFinder from OpenSSL and Netscape Security Services is provided in the source distribution. The opportunities that this presents are exciting (at least one is already in the pipeline).

Special thanks to Carillon for sponsoring this project and the associated improvements to WvStreams' certificate and CRL APIs.

A note on WvStreams

WvStreams 4.4 is available now.

Over the past few years, some of us have become quite enamoured with WvStreams and how easy it makes it to write high-performance network applications in C++. But with the closure of the Montreal office of NITI[1] in December 2006 and the associated departure of most of its original developers, I was uncertain about its future.

Who would have thought that, slightly more than half a year later, we'd see two releases, a vibrant community form around the library, and several exciting new projects? WvStreams certainly isn't the solution to every problem, but it does seem to be finding its niche. I'm hoping that it will eventually evolve into something like the Twisted of the C++ programming world.

[1] The original corporate patron of WvStreams.

Sat, Aug. 11th, 2007 10:15 pm (UTC)

asio seems to be turning out to be the Twisted of the C++ world, being now integrated into Boost, and well on its way of actually making it into one of the TRs (and thus quite possibly in the next revision of the C++ standard library itself!).

But I've got some plans for integrating the two togethers, so that WvStreams can still be used for those cases where it's the obvious choice, while playing well with what looks like will be the standard...

Fri, Aug. 17th, 2007 04:15 am (UTC)

Yeah, but ASIO doesn't really handle some of the more interesting stuff that WvStreams does, like SSL, HTTP, and (soon) D-Bus. That isn't to say that there isn't room for replacing some of WvStreams internal code with what boost provides, possibly right down to its lowest level of abstraction (IWvStream).

The future should be fun (the trouble is finding the time and energy to make it so!).

Fri, Aug. 17th, 2007 11:31 am (UTC)

It does do SSL, by the way, although there's just the SSL stream, no certificate management stuff.

I was mostly thinking in having the two play well together, like being able to clone an ASIO stream, or use one event loop in the other (using WvStreams in an ASIO program, or ASIO streams in a WvStreams program, much like we did for Qt and GLib).

WvCallback really ought to be replaced with boost::function, though, it's way better! ;-)