Archived

This forum has been archived. Please start a new discussion on GitHub.

How to get access to marshaled/demarshaled data

Hi,

I've got a question which could be very shortly formulated like "looking for something like CORBA interceptors". I would be very thankful if somebody could share experience with Ice in this area or provide any other suggestions. The following is brief summary of the context and actual problem I have.

We are working on the application (using Ice) which will be running on a kind of embedded system. There is a requirement to perform some encryption of the data transmitted over the network. For some reasons SSL (and corresponding Ice support for SSL) could not be used. The hardware platform has slow CPU which could not be used for calculation-intensive encryption algorithms. Instead, there is a special hardware encryption unit which can receive binary data block, perform encryption and return encrypted binary block back.

Now I am trying to figure out how can we integrate this hardware-based encryption with Ice. Based on my previous experience with CORBA I was thinking about something similar to interceptors where it would be possible to get access to "raw" binary information just before/after transmission and perform encoding/decoding using our hardware unit. Ice has very similar functionality with protocol compression. So my question is - are there any public interfaces or preffered ways to implement this kind of functionality?


Thank you.
Andrey.

Comments

  • matthew
    matthew NL, Canada
    I don't think that it is possible with standard CORBA interceptors to get at the raw protocol data.

    The best way to do this with Ice is to write your own transport plug-in. This would work like our standard TCP/UDP or SSL transports. You could use the tcp transport as a basis of your implementation. See src/Ice/Tcp* for the source.

    Best Regards, Matthew
  • Thank you Matthew for the quick response and suggestion.

    Regards.
    Andrey.