CVSROOT: /cvs Module name: src Changes by: b...@cvs.openbsd.org 2023/05/28 03:02:01
Modified files: lib/libtls : tls_verify.c regress/lib/libtls/verify: verifytest.c Log message: Refactor tls_check_common_name to use lower level API. X509_NAME_get_text_by_NID is kind of a bad interface that we wish to make safer, and does not give us the visibility we really want here to detect hostile things. Instead call the lower level functions to do some better checking that should be done by X509_NAME_get_text_by_NID, but is not in the OpenSSL version. Specifically we will treat the input as hostile and fail if: 1) The certificate contains more than one CN in the subject. 2) The CN does not decode as UTF-8 3) The CN is of invalid length (must be between 1 and 64 bytes) 4) The CN contains a 0 byte 4) matches the existing logic, 1 and 2, and 3 are new checks. ok tb@