Categories:

Android (13)

Apple Mac (27)

DH Keys (39)

DSA Keys (70)

EC Keys (853)

Firefox (30)

General (10)

Google Chrome (25)

Intermediate CA (152)

Java VM (29)

JDK Keytool (28)

Microsoft CertUtil (29)

Microsoft Edge (9)

Mozilla CertUtil (21)

OpenSSL (236)

Other (7)

Portecle (38)

Publishers (3080)

Revoked Certificates (16)

Root CA (85)

RSA Keys (2483)

Tools (46)

Tutorial (1)

What Is (22)

Windows (127)

Collections:

Other Resources:

OpenSSL rsautl "data too large for key size" Error

Q

Why am I getting the "data too large for key size" error, when using OpenSSL "rsautl" command to encrypt a large file?

✍: FYIcenter.com

A

Because of the nature of the RSA algorithm, a single encryption process can only encrypt input data that is smaller than the modulus value of the RSA key. In other words, the size (number of bytes) of the input data should be smaller than the size (number bytes) of the modulus, which is also the RSA key size.

If you try to use an RSA public key to encrypt a file larger than the key size, you will get the "data too large for key size" error. For example:

C:\Users\fyicenter>type clear.txt The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. C:\Users\fyicenter>dir *.txt 138 clear.txt C:\Users\fyicenter>\local\openssl\openssl.exe OpenSSL> rsautl -encrypt -pubin -inkey my_rsa_pub.key -in clear.txt -out cipher.txt RSA operation error 18472:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2: data too large for key size:.\crypto\rsa\rsa_pk1.c:153: error in rsautl OpenSSL> OpenSSL> pkey -pubin -in my_rsa_pub.key -text -noout Public-Key: (1024 bit) ...

The test output tells us that:

- The RSA public key size is 1024-bit long.
- The input data, clear.txt, has 138 bytes = 1104 bits, which is larger than the RSA key size.
- "rsautl" will not encrypt any input data that is larger (longer) than the RSA key size.

Actually, OpenSSL could be improved to encrypt larger input files by dividing the input into multiple 128-byte blocks and perform encryption one block at a time.

**⇒** OpenSSL "rsautl" - Encrypt Large File with RSA Key

**⇐** OpenSSL "rsautl -decrypt" - Decryption with RSA Private Key

2021-05-04, 28581👍, 1💬

Popular Posts:

What is CRL (Certificate Revocation List)? A CRL (Certificate Revocation List) is a digitally signed...

Renewing a certificate with a new key allows you to continue using an existing certificate and its a...

Certificate summary - Owner: www.skype.com Issuer: MSIT Machine Auth CA 2, Dredmond, Dcorp, Dmicroso...

How to export a Root CA certificate from IE? I want to save a copy before removing the certificate. ...

Certificate summary - Owner: *.thepiratebay.se, Domain Control Validated - RapidSSL(R), See www.rapi...