So, from the original parameter capabilities being sub-functional, I've just realised that the stuff I've tried to implement was way over-complex, and while being a good playground to experiment with, it also was just too generalised and just resulted in needless bloat and complex dependencies, not to speak of a confusing pletora of types, all looking the same, but not quite.


Oh, I shouldn't complain too much. It's been a learning experience, and goodness is growing out of it.

So, I'm whiping the NC_PARAMETERS type and it's aliases and starting them over. I'm keeping NC_PARAMETER_PROCESSOR and making it a structure that's handled much in the same way as NC_ALGORITHM, and define NC_KEY_PARAMETERS, NC_PKEY_PARAMETERS, NC_CIPHER_OPERATION_PARAMETERS and NC_PKCIPHER_OPERATION_PARAMETERS to be separate types without public definition (i.e. you can only use them for pointers) instead of being aliases for NC_PARAMETERS. Parameter blocks that are sent on to engines are seen the same way as any other blob sent down that way; as a void*.

Simple and easy to implement. Did it once with algorithms, can do it again.

I had originally planned to get something out by the end of the summer. Guess that's delayed, and will be delayed further since my paying workload just quadrupled or more. Sorry 'bout that.

blog comments powered by Disqus