Hi People.

We now have a working PC running with the IBM 4758 PCI-Crypto card, and a few
test programs running. A quick discussion with Martin and Ivan found that we at
the very least need something like the following (C-syntax for now)

int getRandomBytes(int count, unsigned char **randomBytes);
int setShare(int id, unsigned char *shareValue);
int getShare(int id, unsigned char **shareValue);

the getRandomBytes operation is a way to get hardware-generated pseudorandom
values from the PCI card, and the set/get Share operations can be used to
securely store secret shares (encrypting them with a hardware key).

There are some issues, so if anyone wish to comment on these (or have additional
operations they would like to have in hardware).

1. Memory allocation
How is memory to be handled? One way would be to have the caller (the Python
code) allocate enough memory to store return values (fx. from getRandomBytes),
or perhaps it would be better to let the C code allocate the memoery? How is
this usually handled with Python/C? Anyone?

Regarding free'ing the memory when done, can Python do this on its own, or will
we need to expose some cleanup-handles in the C-module, for free'ing memory
allocated earlier in the C code?

2. SSL communication?
Ivan mentioned that it would be nice to have the RSA keys used for SSL
communication to be stored in hardware. This is also doable, and would likely
only require that the SSL software we use supports hardware keys (which
software do we use for communication, and does it support hardware keys?)

Kind regards
Brian Graversen
_______________________________________________
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk

Reply via email to