fork download
  1. from cryptography import x509
  2. from cryptography.hazmat.backends import default_backend
  3. import datetime
  4.  
  5. def _get_cert_days_to_expiry(certs):
  6. if certs is None or len(certs) == 0:
  7. return None
  8.  
  9. if isinstance(certs, str):
  10. certs = [certs]
  11.  
  12. max_days_left = float("-inf")
  13. try:
  14. for cert_str in certs:
  15. cert_str = cert_str.replace("\\n", "\n")
  16. cert_bytes = cert_str.encode('utf-8')
  17. cert = x509.load_pem_x509_certificate(cert_bytes, default_backend())
  18. now = datetime.datetime.utcnow()
  19. expiry_date = cert.not_valid_after or now
  20. days_left = (expiry_date - now).days
  21. print("Cert days to expire:", days_left)
  22. max_days_left = max(max_days_left, days_left)
  23. print("_get_cert_days_to_expiry max_days_left : ", max_days_left)
  24. return max(max_days_left, 0)
  25. except Exception as e:
  26. print("Failed to process certs expiry", e)
  27.  
  28.  
  29. print("Hello World !!")
  30. certs = ['-----BEGIN CERTIFICATE-----\\nMIICrjCCAZagAwIBAQIQSmL0k6T+QxW6tRTW+T/dFTANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhhY21lLmNvbTAeFw0yMTA4MDkxNDQzMzFaFw0zMTA4MDkxNDQzMzFaMBMxETAPBgNVBAMTCGFjbWUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAosK5KorXh8jl4CVL4O/4Wd0qeH5ZUX+4e3Pbo+VuuQtUAr26qXvzNLEL5x0cSFlO5rzji1ODpgFjlahD3d9J8lo9MPZgt2JJaeYEazYk/e6nSuO36hITfHhR04Wcb+d0M1ygZSRgB7SEf/bijaX10V7uu3V0sm1WCqCXUPkRb0MqcFFvjobRKOA4qblBXVMu/Sx4jpinTlPwu5iE2KXljqAZRckuU0bNgwINFu8sd0+mBlR8GPB93wZ2zLTmu/1oozPaxzJIZkqxqdojIfVhwCD0AOI6ut6lHpEc3tqJJRSk2cZ8h1n5qUjMZ757WaOmfFD21H786DXNO4/1BC6+XQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQATPSIXhtgPo9Cxg1GOtIOfz3ebG0MVD1U1UMd0dgAD9lnTRN43lEFiaaDnMcbHowRLEENdq99VqTajZZ0EZhjgV3bK8UX/tgCJbtcD0fry9PMY+bBV5Y5Hswn0v1VI/qLYGKkRCn2jap/pLEQZvF4Xk7KuCpFg2TYGwmnkBVHNt1TgxbWe6M9b8g8wvmlHmCwZC1WJhRFkIt4m51bHxeeLC1wxbO4oTMqFp+aLSGAAYC0qoHCeR88leoDIGdqhuZaffVijvX2/F8j7VVO3343rcPnJ7gFVmXMJZ5Q3VKio7YpMjfSSJdtWnPskkoN0vTZ9cfjDLMhSggeCEXrqrKdV\\n-----END CERTIFICATE-----\\n', '-----BEGIN CERTIFICATE-----\\nMIICrzCCAZegAwIBAQIRAKBfxsNg/kZkjST9PNss8ncwDQYJKoZIhvcNAQELBQAwEzERMA8GA1UEAxMIYWNtZS5jb20wHhcNMjEwNzEyMTU1MzQzWhcNMzEwNzEyMTU1MzQzWjATMREwDwYDVQQDEwhhY21lLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIXqnOOPpxaDCbvUWmq4XAxufs6wplBQ5WuDOt6Q6nAFM4SE6YGBw91tzO9Mi8U+n2dtE4fFQ/lLPIvPErS3YYX9qmTVzMBNv49yDYWIQYc9xPZ9D3pGzZYdAFrdrxYquvZlmfCjRsTrY7iyWOfznyF5PrRYW/oRqTsG8INaqkJKPr/ZSEMVskeIGykgcvFU/a4q+LYBNWfkoZtP2UsLCR01a8j1dx6fwikFhjGMGJAjCjqWfh4x3BXuAodmcuRo2wVWyeSAGfV9GHk1L4MBi42/MEl8Cd40HNfgbUnVoKzwbKUyzpiB/Rr4AULW5k5Z0R0hHz9Ml+EqrRc6NepTSEkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAZhDy+KN4/RIdivHO4C6utIJaacne5sreR/J55r7dzr75fP3gFCgD5Jb1Jq71OaWiQmtlhbb/N9Vu7DtcAhVG02QtBu/xN/zYm1bgXNydY979WhmqJaglE1/+jIWgx0NgVSGUXLid+Bi6Fm76Z8o5P50EJYjUZtt/7xr83Sg29wEjofL8POs5UeLPET0jWY0F3RrDxshWcN7ierJQMfRaxlTabPVnsLDRQOHWM+JN1btwMAuRrINcefrmoLshwtyIQskCAjyrDsHxYnXVSWLRIpITy4LGHhxbqrAeN1O/O/2j9wmanY5eiWOfClKwRggoK/QEPTZ4H2f29Oq2nAz/GQ==\\n-----END CERTIFICATE-----\\n', '-----BEGIN CERTIFICATE-----\\nMIICrjCCAZagAwIBAQIQTeMlbfSLQwSkHjKDQIk9ZTANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhhY21lLmNvbTAeFw0yMTA3MTIxNTM3NDRaFw0zMTA3MTIxNTM3NDRaMBMxETAPBgNVBAMTCGFjbWUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn1BeZ/EH0lINknB+lzpU6dATRcWacfvqdMZWPUvDFPLRlSsFXex+UcLmeflvsbIRZO/WY9OUdClLFjoJMz9TR3BGCRVda/il00JQULD/3p5yrLqIZZaw7LWNUBig2thDE8HVwr1EXriS83g2fP6UFlFaTyt09vk9/sQi48yukBBL/+NFtc9IDmt5WXYZS+9OIj4MhtQ5QEj0ql04RGOv3VnentQ9P47dCic+sjvHA4EIv1Kr84EaUafNXyKKXWrqFxN2ngI5sgJQHWQEWKGewiim9X1leIcnaKtyLF3SXN+JyRnYXHZK9dmr6TlsyjOrlciGNHbX7H90jj8YXxX2+wIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBYLq1TPVGx0xzdngsdAeuGewBojtnOXJjMzLa4xsaMS/+8pPlyD9HXFqIDDE13S98kN7yIAIZvD6GnLyagmAZZ7ghYz6WiD8hoj0dhICmQnchrcqsMEdc+hScLHx0MDot7mVPCUYNsZqttT+3WiNgZ1fCD7t4tQ9FphnEuy+FALVplV1932yoqDaZuDaCBUMiN2B8S5vFjryoJXIrFkvqGcQIxxAy0wbkF29yje0Xbcj9liKrO4aBkN3xlGyZ856hunpsjiPR3yZ+gAXzX6eeVibr6ojtPNDMAjByfc1E6Jl/vrPNv57ikLoNo9C7ZJe4UFLeDIK98W6+KnYtR2Mxf\\n-----END CERTIFICATE-----\\n']
  31. print(_get_cert_days_to_expiry(certs))
  32. print("Done!!")
Success #stdin #stdout 0.11s 21304KB
stdin
Standard input is empty
stdout
Hello World !!
('Cert days to expire:', 2029)
('Cert days to expire:', 2001)
('Cert days to expire:', 2001)
('_get_cert_days_to_expiry max_days_left : ', 2029)
2029
Done!!