Categories:

Android (13)

Apple Mac (27)

DH Keys (39)

DSA Keys (69)

EC Keys (675)

Firefox (30)

General (9)

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 (2825)

Revoked Certificates (16)

Root CA (85)

RSA Keys (2324)

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, 24189👍, 1💬

Popular Posts:

Certificate Summary: Subject: OneLogin Account 98624 Issuer: OneLogin Account 98624 Expiration: 2020...

Certificate summary - Owner: AlphaSSL CA - G2, AlphaSSL Issuer: GlobalSign Root CA, Root CA, GlobalS...

Certificate summary - Owner: GeoTrust DV SSL CA, Domain Validated SSL, GeoTrust Inc., US Issuer: Geo...

Where to find tutorials on using OpenSSL "s_client" command? Here is a collection of tutorials on us...

What types of certificate stores do I have on my Windows system? What is "Personal" certificate stor...