#12 stdin_text bytestring being modified unexpectedly
Closed 6 years ago Opened 6 years ago by spoore.

I'm seeing a case where it looks like stdin_text is slightly modified from expected when passing binary data.

In my case, I'm trying to pass in an x509 certificate in DER format to the ldif command.

This is the code:

der_cert = convert_pem_to_binder(self.host, cert_file)                             
run = ['ldif', '-b', 'userCertificate']                                                 
cmd = self.host.run_command(run, stdin_text=der_cert)

This what I expect to see:

[root@ibm-x3250m4-06 ~]# cat /tmp/setup_card_cert_singleuser1-01.der | ldif -b userCertificate
userCertificate:: MIIDszCCApugAwIBAgIBVjANBgkqhkiG9w0BAQsFADA4MRYwFAYDVQQKDA1U
RVNUUkVMTS5URVNUMR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTgwMjI4MTM1O
DA2WhcNMjAwMjI5MTM1ODA2WjAuMRYwFAYDVQQKDA1URVNUUkVMTS5URVNUMRQwEgYDVQQDDAtzaW
5nbGV1c2VyMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt1bP/wb4kjsz9JupWMfSKf/uaSg
kfa1J9xAEBCeae7dkFLoAdEMzzjMJQpwW7SKROZ4SEQ5fMnO9J1c3TleK75bgBFfv946F+Oc1ci3E
O6G1FIF/dcMsAV/a+l+fnFt/lllv6e8vfu/x2b7SmSqYaspMgDKBIo3eVheM+rJ/iyMCAwEAAaOCA
VQwggFQMB8GA1UdIwQYMBaAFEqo2ItzIZDdPFViPZ+sL4EeczkZMD8GCCsGAQUFBwEBBDMwMTAvBg
grBgEFBQcwAYYjaHR0cDovL2lwYS1jYS50ZXN0cmVsbS50ZXN0L2NhL29jc3AwDgYDVR0PAQH/BAQ
DAgTwMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjB4BgNVHR8EcTBvMG2gNaAzhjFodHRw
Oi8vaXBhLWNhLnRlc3RyZWxtLnRlc3QvaXBhL2NybC9NYXN0ZXJDUkwuYmluojSkMjAwMQ4wDAYDV
QQKDAVpcGFjYTEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB0GA1UdDgQWBBTvv1EA36
6wgYzEUOP0PfdC59QcTzAkBgNVHREEHTAbgRlzaW5nbGV1c2VyMUB0ZXN0cmVsbS50ZXN0MA0GCSq
GSIb3DQEBCwUAA4IBAQCnwjqZ7w3Jfohs33oTJYpHTGogy6biSdgl30WVx0ew+UoZ6IlCxWcn9cnf
+DkoP9KfGAK18biC73DlYXLCEoB3/2dnI4a+ClXXTeNebAyes0lsp6aW5P3Xilj+IQlOfBnVIHGko
f9xgXpyAQ6VS8AZmmhqeSceQcYo3eqRFH1uXfvoKCgk33WLODKYXR0Jdjnu5FlTQYo4DAKtqoZBNH
ranvbHFEYanFPclVNnRRoGMLSv2zBgTOdhX9aXTZAJ+fOmjOh20b9V5hqvFjE+WP23bMRcgcKYyXM
iNOHumsnvouv1OvI++vJH1BuIVuRg17fD7mettassrHLPy0Eitpoy

This is what I actually saw:

('userCertificate:: MIIDszCCApugAwIBAgIBVjANBgkqhkiG9w0BAQsFADA4MRYwFAYDVQQKDA1U\n RVNUUkVMTS5URVNUMR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTgwMjI4MTM1O\n DA2WhcNMjAwMjI5MTM1ODA2WjAuMRYwFAYDVQQKDA1URVNUUkVMTS5URVNUMRQwEgYDVQQDDAtzaW\n 5nbGV1c2VyMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt1bP/wb4kjsz9JupWMfSKf/uaSg\n kfa1J9xAEBCeae7dkFLoAdEMzzjMJQpwW7SKROZ4SEQ5fMnO9J1c3TleK75bgBFfv946F+Oc1ci3E\n O6G1FIF/dcMsAV/a+l+fnFt/lllv6e8vfu/x2b7SmSqYaspMgDKBIo3eVheM+rJ/iyMCAwEAAaOCA\n VQwggFQMB8GA1UdIwQYMBaAFEqo2ItzIZDdPFViPZ+sL4EeczkZMD8GCCsGAQUFBwEBBDMwMTAvBg\n grBgEFBQcwAYYjaHR0cDovL2lwYS1jYS50ZXN0cmVsbS50ZXN0L2NhL29jc3AwDgYDVR0PAQH/BAQ\n DAgTwMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjB4BgNVHR8EcTBvMG2gNaAzhjFodHRw\n Oi8vaXBhLWNhLnRlc3RyZWxtLnRlc3QvaXBhL2NybC9NYXN0ZXJDUkwuYmluojSkMjAwMQ4wDAYDV\n QQKDAVpcGFjYTEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB0GA1UdDgQWBBTvv1EA36\n 6wgYzEUOP0PfdC59QcTzAkBgNVHREEHTAbgRlzaW5nbGV1c2VyMUB0ZXN0cmVsbS50ZXN0MA0GCSq\n GSIb3DQEBCwUAA4IBAQCnwjqZ7w3Jfohs33oTJYpHTGogy6biSdgl30WVx0ew+UoZ6IlCxWcn9cnf\n +DkoP9KfGAK18biC73DlYXLCEoB3/2dnI4a+ClXXTeNebAyes0lsp6aW5P3Xilj+IQlOfBnVIHGko\n f9xgXpyAQ6VS8AZmmhqeSceQcYo3eqRFH1uXfvoKCgk33WLODKYXR0Jdjnu5FlTQYo4DAKtqoZBNH\n ranvbHFEYanFPclVNnRRoGMLSv2zBgTOdhX9aXTZAJ+fOmjOh20b9V5hqvFjE+WP23bMRcgcKYyXM\n iNOHumsnvouv1OvI++vJH1BuIVuRg17fD7mettassrHLPy0EitpoyCg==\n', 'utf-8')

so it appears that the stdin passed to ldif was modified slightly causing ldif to need the extra characters and padding at the end of the base64 output.


Metadata Update from @spoore:
- Issue assigned to spoore

6 years ago

I think I found the problem. The echo -e appends an additional newline to the end of the string passed to the pipe. I don't think we want to do that. I think we want to pass only what was passed in as stdin_text.

Metadata Update from @pviktori:
- Issue status updated to: Closed (was: Open)

6 years ago

Login to comment on this ticket.

Metadata