mirror of https://github.com/openssl/openssl.git
				
				
				
			apps: Escape control characters in DNs by default
When displaying distinguished names the control characters
are escaped by default.
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26932)
(cherry picked from commit 2411f9b662)
			
			
This commit is contained in:
		
							parent
							
								
									9537245a5b
								
							
						
					
					
						commit
						84b4fef8ab
					
				| 
						 | 
				
			
			@ -27,7 +27,10 @@ OpenSSL 3.2
 | 
			
		|||
 | 
			
		||||
### Changes between 3.2.4 and 3.2.5 [xx XXX xxxx]
 | 
			
		||||
 | 
			
		||||
 * none yet
 | 
			
		||||
 * When displaying distinguished names in the openssl application escape control
 | 
			
		||||
   characters by default.
 | 
			
		||||
 | 
			
		||||
   *Tomáš Mráz*
 | 
			
		||||
 | 
			
		||||
### Changes between 3.2.3 and 3.2.4 [11 Feb 2025]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -189,7 +189,11 @@ int set_nameopt(const char *arg)
 | 
			
		|||
unsigned long get_nameopt(void)
 | 
			
		||||
{
 | 
			
		||||
    return
 | 
			
		||||
        nmflag_set ? nmflag : XN_FLAG_SEP_CPLUS_SPC | ASN1_STRFLGS_UTF8_CONVERT;
 | 
			
		||||
        nmflag_set ? nmflag : XN_FLAG_SEP_CPLUS_SPC | XN_FLAG_FN_SN
 | 
			
		||||
                              | ASN1_STRFLGS_ESC_CTRL
 | 
			
		||||
                              | ASN1_STRFLGS_UTF8_CONVERT
 | 
			
		||||
                              | ASN1_STRFLGS_DUMP_UNKNOWN
 | 
			
		||||
                              | ASN1_STRFLGS_DUMP_DER;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void dump_cert_text(BIO *out, X509 *x)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,8 +18,10 @@ displayed.
 | 
			
		|||
This is specified by using the B<-nameopt> option, which takes a
 | 
			
		||||
comma-separated list of options from the following set.
 | 
			
		||||
An option may be preceded by a minus sign, C<->, to turn it off.
 | 
			
		||||
The default value is C<utf8,sep_comma_plus_space>.
 | 
			
		||||
The first four are the most commonly used.
 | 
			
		||||
The first four option arguments are the most commonly used.
 | 
			
		||||
 | 
			
		||||
The default value is
 | 
			
		||||
C<esc_ctrl,utf8,dump_unknown,dump_der,sep_comma_plus_space,sname>.
 | 
			
		||||
 | 
			
		||||
=head1 OPTIONS
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIBCjCBvaADAgECAhQtSLWSJKg8TpmuRG/UlzepKY2MazAFBgMrZXAwEzERMA8G
 | 
			
		||||
A1UEAwwIVGVzdAlUQUIwIBcNMjUwMjI4MTAzNDE5WhgPMjEyNTAyMDQxMDM0MTla
 | 
			
		||||
MBMxETAPBgNVBAMMCFRlc3QJVEFCMCowBQYDK2VwAyEA1ptSJCGrDHMlWEoirhZe
 | 
			
		||||
s2TETOMe4f0G335qXYHDPP+jITAfMB0GA1UdDgQWBBQwCDnyYnvR2GXoToxSxPmp
 | 
			
		||||
kvER+zAFBgMrZXADQQBszFQxeWW1BBUgWf9as2zDyYCO43kBWTFTypPsFkpuAg4t
 | 
			
		||||
oxrqzb7Kd4RIT0TGtRGgd3gwRkqC0ecgM/NmXOYM
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
Certificate:
 | 
			
		||||
    Data:
 | 
			
		||||
        Version: 3 (0x2)
 | 
			
		||||
        Serial Number:
 | 
			
		||||
            2d:48:b5:92:24:a8:3c:4e:99:ae:44:6f:d4:97:37:a9:29:8d:8c:6b
 | 
			
		||||
        Signature Algorithm: ED25519
 | 
			
		||||
        Issuer: CN=Test\09TAB
 | 
			
		||||
        Validity
 | 
			
		||||
            Not Before: Feb 28 10:34:19 2025 GMT
 | 
			
		||||
            Not After : Feb  4 10:34:19 2125 GMT
 | 
			
		||||
        Subject: CN=Test\09TAB
 | 
			
		||||
        Subject Public Key Info:
 | 
			
		||||
            Public Key Algorithm: ED25519
 | 
			
		||||
                ED25519 Public-Key:
 | 
			
		||||
                pub:
 | 
			
		||||
                    d6:9b:52:24:21:ab:0c:73:25:58:4a:22:ae:16:5e:
 | 
			
		||||
                    b3:64:c4:4c:e3:1e:e1:fd:06:df:7e:6a:5d:81:c3:
 | 
			
		||||
                    3c:ff
 | 
			
		||||
        X509v3 extensions:
 | 
			
		||||
            X509v3 Subject Key Identifier: 
 | 
			
		||||
                30:08:39:F2:62:7B:D1:D8:65:E8:4E:8C:52:C4:F9:A9:92:F1:11:FB
 | 
			
		||||
    Signature Algorithm: ED25519
 | 
			
		||||
    Signature Value:
 | 
			
		||||
        6c:cc:54:31:79:65:b5:04:15:20:59:ff:5a:b3:6c:c3:c9:80:
 | 
			
		||||
        8e:e3:79:01:59:31:53:ca:93:ec:16:4a:6e:02:0e:2d:a3:1a:
 | 
			
		||||
        ea:cd:be:ca:77:84:48:4f:44:c6:b5:11:a0:77:78:30:46:4a:
 | 
			
		||||
        82:d1:e7:20:33:f3:66:5c:e6:0c
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +16,7 @@ use OpenSSL::Test qw/:DEFAULT srctop_file/;
 | 
			
		|||
 | 
			
		||||
setup("test_x509");
 | 
			
		||||
 | 
			
		||||
plan tests => 44;
 | 
			
		||||
plan tests => 46;
 | 
			
		||||
 | 
			
		||||
# Prevent MSys2 filename munging for arguments that look like file paths but
 | 
			
		||||
# aren't
 | 
			
		||||
| 
						 | 
				
			
			@ -42,6 +42,18 @@ ok(run(app(["openssl", "x509", "-text", "-in", $pem, "-out", $out_utf8,
 | 
			
		|||
is(cmp_text($out_utf8, $utf),
 | 
			
		||||
   0, 'Comparing utf8 output with cyrillic.utf8');
 | 
			
		||||
 | 
			
		||||
SKIP: {
 | 
			
		||||
    skip "EdDSA disabled", 2 if disabled("ecx");
 | 
			
		||||
 | 
			
		||||
    $pem = srctop_file(@certs, "tab-in-dn.pem");
 | 
			
		||||
    my $out_text = "out-tab-in-dn.text";
 | 
			
		||||
    my $text = srctop_file(@certs, "tab-in-dn.text");
 | 
			
		||||
    ok(run(app(["openssl", "x509", "-text", "-noout",
 | 
			
		||||
            "-in", $pem, "-out", $out_text])));
 | 
			
		||||
    is(cmp_text($out_text, $text),
 | 
			
		||||
       0, 'Comparing default output with tab-in-dn.text');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SKIP: {
 | 
			
		||||
    skip "DES disabled", 1 if disabled("des");
 | 
			
		||||
    skip "Platform doesn't support command line UTF-8", 1 if $^O =~ /^(VMS|msys)$/;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue