Re: [rtmpdump] [PATCH] Publisher authentication
2010/6/20 Sergiy <piratfm@gmail.com>
2010/6/19 Howard Chu <hyc@highlandsun.com>
Your patch only works with OpenSSL, we'll need to rewrite a fair bit of it to make it portable across GnuTLS and PolarSSL too.
Ok, now it also works with PolarSSL & GnuTLS:
There's no problems with PolarSSL.
But, unfortunaly GnuTLS don't have MD5 function in native API, so I have to use gnutls-openssl api, that have MD5(). Also there's two base64 encoders in GnuTLS , but they are non-standard, that's why in this case i wrote simple base64 encoder inside rtmp.c. Maybe I have to move it somewhere (to rtmp_sys.c for example), and there we can also implement MD5, so there's no need in any crypto-lib for publisher auth?
And I don't want to commit patches that introduce memory leaks.
Fixed, when new app and tcUrl allocated, and library fails to connect, or publishing finished, then allocated data would be free.
Please fix the leak and put some #ifdef's
done
What about this patch?
Sergiy wrote:
2010/6/20 Sergiy <piratfm@gmail.com <mailto:piratfm@gmail.com>>
2010/6/19 Howard Chu <hyc@highlandsun.com <mailto:hyc@highlandsun.com>>
Your patch only works with OpenSSL, we'll need to rewrite a fair bit of it to make it portable across GnuTLS and PolarSSL too.
Ok, now it also works with PolarSSL & GnuTLS:
There's no problems with PolarSSL.
But, unfortunaly GnuTLS don't have MD5 function in native API, so I have to use gnutls-openssl api, that have MD5(). Also there's two base64 encoders in GnuTLS , but they are non-standard, that's why in this case i wrote simple base64 encoder inside rtmp.c. Maybe I have to move it somewhere (to rtmp_sys.c for example), and there we can also implement MD5, so there's no need in any crypto-lib for publisher auth?
And I don't want to commit patches that introduce memory leaks.
Fixed, when new app and tcUrl allocated, and library fails to connect, or publishing finished, then allocated data would be free.
Please fix the leak and put some #ifdef's
done
What about this patch?
I haven't had time to integrate it, and have no way to test it. I'll work on it later. The base64 situation is annoying... Also I think you could have used EVP_encode in OpenSSL instead of creating a BIO for this. gcrypt supports MD5, you should have been able to use that for the GnuTLS build.
participants (2)
-
Howard Chu -
Sergiy