Saving RSA keys to a file, using pycrypto

qdii picture qdii · Feb 8, 2012 · Viewed 24.7k times · Source

I’m using PyCrypto 2.3 and I would like to save the keys I have generated into a file, so as to distribute them to the client and server. I can’t seem to find a way to print the keys correctly, neither can I find examples on the internet.

    def resetKeys(self):
        keys = RSA.generate(1024)

        privHandle = open(self.privateKeyFile, 'wb')
        privHandle.write(keys.privatekey())
        privHandle.close()

        pubHandle = open(self.publicKeyFile, 'wb')
        pubHandle.write(keys.publickey())
        pubHandle.close()

This codes does not work for many reasons: first, keys.publickey() doesn’t seem to be printable, it returns:

    <_RSAobj @0x10f810d0 n(1024),e>

and second, keys has no function named privatekey.

Has anyone done that before?

Answer

wRAR picture wRAR · Feb 8, 2012

keys.exportKey() for the private key, keys.publickey().exportKey() for the public key. You can change the output format with format argument, see the docs at this site.