This blog post[
^] describes what the class is doing. It's essentially an implementation of PBKDF1, which might be a better search term to find a C++ implementation.
However,
the documentation[
^] says it's using
an extension of PBKDF1. Without knowing exactly what that extension is, you'll probably struggle to match the output.
If you could switch the .NET code to use
Rfc2898DeriveByes[
^] instead, that would make your life simpler. It's a straight implementation of PBKDF2, with no extensions involved.
Alternatively,
this StackOverflow answer[
^] claims to be a working translation of the Mono code for
PasswordDeriveBytes
, albeit limited to the SHA1 algorithm.