CryptoPkg: Remove deprecated function usage in X509GetCommonName()
BZ#: https://bugzilla.tianocore.org/show_bug.cgi?id=923 X509_NAME_get_text_by_NID() used in X509GetCommonName() implementation is one legacy function which have various limitations. The returned data may be not usable when the target cert contains multicharacter string type like a BMPString or a UTF8String. This patch replaced the legacy function usage with more general X509_NAME_get_index_by_NID() / X509_NAME_get_entry() APIs for X509 CommonName retrieving. Tests: Validated the commonName retrieving with test certificates containing PrintableString or BMPString data. Cc: Ye Ting <ting.ye@intel.com> Cc: Michael Turner <Michael.Turner@microsoft.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Long Qin <qin.long@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com>
This commit is contained in:
		| @@ -2,7 +2,7 @@ | ||||
|   X.509 Certificate Handler Wrapper Implementation which does not provide | ||||
|   real capabilities. | ||||
|  | ||||
| Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved.<BR> | ||||
| Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR> | ||||
| This program and the accompanying materials | ||||
| are licensed and made available under the terms and conditions of the BSD License | ||||
| which accompanies this distribution.  The full text of the license may be found at | ||||
| @@ -135,7 +135,7 @@ X509GetSubjectName ( | ||||
|   @param[in]      Cert             Pointer to the DER-encoded X509 certificate. | ||||
|   @param[in]      CertSize         Size of the X509 certificate in bytes. | ||||
|   @param[out]     CommonName       Buffer to contain the retrieved certificate common | ||||
|                                    name string. At most CommonNameSize bytes will be | ||||
|                                    name string (UTF8). At most CommonNameSize bytes will be | ||||
|                                    written and the string will be null terminated. May be | ||||
|                                    NULL in order to determine the size buffer needed. | ||||
|   @param[in,out]  CommonNameSize   The size in bytes of the CommonName buffer on input, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user