Skip to content

X509Certificate validFrom method throws exception for timestamps ending with Z #5263

Description

@milica-todorovic

Describe the bug
Issue is in PocoCrypto X509Certificate class, methods validFrom and expiresOn.

Example of string being parsed: 260325082414Z
Result: Exception "Invalid DateTimeString: 260325082414Z unexpected trailing characters".
Exception was added in this commit.

To Reproduce

   Poco::Net::X509Certificate certificate("certificate.pem");
   const auto validFrom = certificate.validFrom();

Certificate:

-----BEGIN CERTIFICATE-----
MIIDdDCCAlygAwIBAgIUZtXjEd/ct7FWvWhCTIhxP7V/9egwDQYJKoZIhvcNAQEL
BQAwJDENMAsGA1UECgwEVGVzdDETMBEGA1UEAwwKdGVzdGRldmljZTAeFw0yNjAz
MjUwODI0MTRaFw0yNjA2MjMwODI0MTRaMCQxDTALBgNVBAoMBFRlc3QxEzARBgNV
BAMMCnRlc3RkZXZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDQ
tP8m+2dydb0521hQrkEz0PADyfz557SLqE4wnodVnj13MFC+sPlWKq9MEtg3uzWu
rtItN2vTzfoSRmyXGbhzKCzHZ6aGMYs8swBrhLVSW7APnJenxxBdJcUhGJHegyC2
9gdgUROos3kS8TGxGZjaNuPb2Zh6MzKGqwi5kcLf18iWCJAhbB4PAPF2xjKsVa15
ZDalUqFc67ks9696M5UUI6OypyzHgN88H+AAi6abkzqlAaSRz5mSmO5H3y9HvTTG
Srn+zMOoo8Xub7pqA04joze/YxNwr02EQFZzqFkQQC6nDFTsIHL4Pb2nFQM23Cu4
/740qh+humAtmI+IpmJjAgMBAAGjgZ0wgZowCQYDVR0TBAIwADAdBgNVHQ4EFgQU
7UKWi2qtcWj6mU+fjJchvVaSSFMwCwYDVR0PBAQDAgL0MB0GA1UdJQQWMBQGCCsG
AQUFBwMCBggrBgEFBQcDATAhBgNVHREEGjAYggp0ZXN0ZGV2aWNlhwQKQAOYhwTA
qGRkMB8GA1UdIwQYMBaAFO1ClotqrXFo+plPn4yXIb1WkkhTMA0GCSqGSIb3DQEB
CwUAA4IBAQC/QGO2LtzY1/kfmrE8YWB5sAO9ecnxOXl5tvzDiIxJy5LV0YPIMtxi
8TfBuU1DlKq3p9saTsqpyNFY0S7iVYZwM4edIqJRaNOqCKqLPNtKAldZnO3r6a8m
p84uqIqH2NJwdElEijUaaChZa2Talvd957k0LM1ymQfM1lltECTAuOjgRW6ugBj9
zgxPHfVTmUZhR9wSrG3F/Qh239XZeviA1tyaopfhxqBREoJfDUF7KPoJ2KhlTKsU
iRSSK+vMCCZ5hcnTQyZYl3s1h28GUL+kdh4OmDy45HdgeXcWkPeE2E4Ix23HHot6
/6vYUulv9/oWU9deh3/dzwRrutJqivA2
-----END CERTIFICATE-----

Expected behavior
Z at the end should be accepted.

Please add relevant environment information:

  • OS Type and Version: Windows 11
  • POCO Version: 1.15.0

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions