Our goal is to send SOAP messages to a web service, signing these messages using TripleDesRSA15 algorithm.

Web service staff sent us a .pfx file, where certificate for encryption is stored. I'm able to extract private key from this certificate and its first line is BEGIN RSA PRIVATE KEY.

Then I store this private key in a server and use it for encryption using python:

pkey=open("pkey.key", "rb").read()

from pyDes import *

But python module pyDes complaints: *** ValueError: Invalid triple DES key size. Key must be either 16 or 24 bytes long

Did I use wrong key or use it in a wrong way?

  • I'm confused why you used pyDes.triple_des() on a RSA private key. – schroeder Dec 9 '15 at 15:54
  • I am not convinced you have the wrong key. See MS reference – Neil Smithline Dec 9 '15 at 21:05

How to use RSA private key for TripleDES encryption?

You don't!

RSA and 3DES are two completely different encryption algorithms with completely different properties. For a start, RSA uses a key pair (encryption and decryption key, respectively; this is known as asymmetric or public-key cryptography) while 3DES (because DES) uses only a single key for both encryption and decryption (called symmetric cryptography).

If you don't know exactly what you are doing (and not to be disparaging, but based on your question, I get the distinct feeling that you don't), you really shouldn't be doing encryption on your own. There are just far too many ways to mess up, in ways that puts data at risk, even when using well-known and time-proven algorithms like these (let alone if you are designing something entirely of your own).

Instead, you should delegate the task of data secrecy and authenticity to appropriate libraries, perhaps through Python's TLS support (same as your web browser uses when connecting to a HTTPS server), and just ask for a secure pipe to the remote system. The odds of getting that wrong are vastly smaller.

  • 1
    I think the RSA15 refers to using the PKCS 1.5 key padding algorithm. – Neil Smithline Dec 9 '15 at 14:25
  • Thanks! I'll contact web service stuff and ask to send me correct keys... – Darius Varnelis Dec 9 '15 at 16:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.