RSA_padding_check_PKCS1_type_2 is not constant time.
authorEmilia Kasper <emilia@openssl.org>
Tue, 18 Jul 2017 09:26:34 +0000 (11:26 +0200)
committerEmilia Kasper <emilia@openssl.org>
Tue, 18 Jul 2017 09:27:27 +0000 (11:27 +0200)
This is an inherent weakness of the padding mode. We can't make the
implementation constant time (see the comments in rsa_pk1.c), so add a
warning to the docs.

Reviewed-by: Rich Salz <rsalz@openssl.org>
doc/crypto/RSA_padding_add_PKCS1_type_1.pod
doc/crypto/RSA_public_encrypt.pod

index b8f678fe729d71d98ede104978eaf6168c15f5a6..f20f815d478642556036977cce8f19dceec22264 100644 (file)
@@ -104,6 +104,13 @@ The RSA_padding_check_xxx() functions return the length of the
 recovered data, -1 on error. Error codes can be obtained by calling
 L<ERR_get_error(3)|ERR_get_error(3)>.
 
+=head1 WARNING
+
+The RSA_padding_check_PKCS1_type_2() padding check leaks timing
+information which can potentially be used to mount a Bleichenbacher
+padding oracle attack. This is an inherent weakness in the PKCS #1
+v1.5 padding design. Prefer PKCS1_OAEP padding.
+
 =head1 SEE ALSO
 
 L<RSA_public_encrypt(3)|RSA_public_encrypt(3)>,
index 0541f348b3e20c199140774c426eccf0b202d485..4d7c1f2cac7a273a9f561becd729c0d8d1ef2a20 100644 (file)
@@ -67,6 +67,13 @@ recovered plaintext.
 On error, -1 is returned; the error codes can be
 obtained by L<ERR_get_error(3)|ERR_get_error(3)>.
 
+=head1 WARNING
+
+Decryption failures in the RSA_PKCS1_PADDING mode leak information
+which can potentially be used to mount a Bleichenbacher padding oracle
+attack. This is an inherent weakness in the PKCS #1 v1.5 padding
+design. Prefer RSA_PKCS1_OAEP_PADDING.
+
 =head1 CONFORMING TO
 
 SSL, PKCS #1 v2.0