PyNSS? Thoughts
PyNSS? would be a project to wrap Mozilla's Network Security Services (NSS) with Python. The purpose and clients would be the same as with M2Crypto, which wraps OpenSSL.
I am aware of one other "PyNSS" implementation, which is part of
PyAuthD?:
PyAuthD? is very limited in scope at the moment, though, and as such the NSS wrapping there is so small that it wouldn't even be a suitable starting point.
Now that I got that out of the way, here are some requirements and design thoughts I have on this, based on my experiences with M2Crypto:
- Package name: nss (unless someone already has taken that)
- All file names all lowercase
- NSS functions that are available in Python are named the same in Python as in C
- There are probably cases where some change makes sense to Python, and these would start with '??' prefix.
- Functions that are totally new in PyNSS? would start with prefix '??'
- Rest of the naming would follow Python conventions
- Classes etc. would possibly start out by mimicing what Mozilla uses to wrap NSS with IDL (PSM etc.).
- First proof-of-concept release should be similar in functionality what Python's socket.ssl provides, i.e. SSL with no real security.
- First implementation probably using SWIG, but possibility of going pure C/C++.
- Source layout such that it would be possible to do python setup.py test for example
- Plan source code and modules so that the roadmap to wrap more NSS is clear