ZeroMQ C-API, PULLREQUEST and now JAVA!?
Still working on the ZeroMQ-Front. And I am still convinced, now that I finished most of the guide. Actually I did plan to use JeroMQ but this pure Java ZeroMQ-Port seems to not have implemented security,yet.
Therefore I switched to the jni-Binding of libzmq which have everything implemented but the security (CURVE) that I wanted to use. :D The source-code says:
if (self.mechanism.equals("PLAIN")) {
self.username = request.popString();
self.password = request.popString();
} else if (self.mechanism.equals("CURVE")) {
// TODO: Handle CURVE authentication
} else if (self.mechanism.equals("GSSAPI")) {
self.principal = request.popString();
}
Nothing that shocks me too much. I'm not afraid to make my hands dirty. Therefore my plan was to first try security using C and then look if it is too complicated to get this mapped via jni.
Well, I found a wonderful article that describes everything about CURVE-based security with ZeroMQ,but for API v2 which is of course not compatible to API v3. ;) Took me some time to port those examples to compile with the current version of CZMQ, which is a 'High-level C binding for ZMQ'. Actually I found those files from the article as examples in the CZMQ-Git-repository and made a pullrequest for this. Let's see, what they have to say ;)
EDIT: Funny thing, while writing they accepted the pullrequest. Soooo proud ;)
Now I have two options:
- Write the proper mapping so I can get it work with JZMQ (the java-jni-binding)
- Write a function that creates everything I want and make it accessable via JNI.
But this have to wait till tomorrow. Now a little bit gamekit-fun :D
EDIT2: Ok, found out that JZMQ actually do have encryption built in and with this ZAP-Request you only have the final say if you are willing to allow or disallow a connection. Atm, I'm implementing CertStores for JZMQ, so only known clients are accepted as connecting clients. But this will be another post.
Links: