Rotor was removed form python for a variety of reasons (see the mailing list archives) but one of them was that it's a terrible way to do any sort of encryption. There are numberous python extensions that do encryption and decryption which could be incorporated into your product. Alternatively, you can add rotor as a python script into your product-- and interesting programming project <smile.
As I said elsewhere, I am not doing any encryption. I get the same error using the sample ZooExhibit product in the 2.7 book. My error is coming from Zope files as near as I can tell. Until yesterday evening I had never heard of the rotor module. :) Actually I just downloaded the 2.9.1 tarball and there are references to rotor in there as well: [jgentry@berlioz App]$ pwd /home/jgentry/Zope-2.9.1/Dependencies/App-Zope-2.9.1/App [jgentry@berlioz App]$ grep rotor * Extensions.py: import rotor Extensions.py: rotor.newrotor(prod_id +' shshsh').decrypt(open(p,'rb').read()) Product.py: import rotor Product.py: rot=rotor.newrotor(id+' shshsh') Product.py: import rotor Product.py: rot=rotor.newrotor(rot) -J