canonical / manual-tls-certificates-operator

A charmed operator for managing TLS certificates manually.
https://charmhub.io/manual-tls-certificates
Apache License 2.0
2 stars 11 forks source link

Providing a letsencrypr certificate results in AttributeError: 'cryptography.hazmat.primitives.asymmetric.ec.Ellip' object has no attribute 'n' #249

Closed dparv closed 2 months ago

dparv commented 2 months ago

Bug Description

provide-certificate results in error with AttributeError: 'cryptography.hazmat.primitives.asymmetric.ec.Ellip' object has no attribute 'n'

To Reproduce

juju deploy manual-tls-certificates --channel latest/edge juju relate istio-pilot manual-tls-certificates juju run manual-tls-certificates/leader provide-certificate relation-id=65 certificate="$(base64 -w0 certificate.pem)" ca-certificate="$(base64 -w0 ca-certificate.pem)" certificate-signing-request="$(base64 -w0 csr.pem)"

Environment

Juju 3.4.3 Kubernetes AKS/Azure 1.28.9 Charm revision: manual-tls-certificates active 1 manual-tls-certificates latest/edge 105 10.0.188.149 no 1 outstanding requests, use juju actions to provide certificates

Relevant log output

unit-manual-tls-certificates-0: 11:25:37 ERROR unit.manual-tls-certificates/0.juju-log Uncaught exception while in charm code:
Traceback (most recent call last):
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/./src/charm.py", line 270, in <module>
    main(ManualTLSCertificatesCharm)
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/venv/ops/main.py", line 548, in main
    manager.run()
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/venv/ops/main.py", line 527, in run
    self._emit()
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/venv/ops/main.py", line 516, in _emit
    _emit_charm_event(self.charm, self.dispatcher.event_name)
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/venv/ops/main.py", line 147, in _emit_charm_event
    event_to_emit.emit(*args, **kwargs)
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/venv/ops/framework.py", line 348, in emit
    framework._emit(event)
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/venv/ops/framework.py", line 860, in _emit
    self._reemit(event_path)
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/venv/ops/framework.py", line 950, in _reemit
    custom_handler(event)
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/lib/charms/tempo_k8s/v1/charm_tracing.py", line 546, in wrapped_function
    return callable(*args, **kwargs)  # type: ignore
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/./src/charm.py", line 137, in _on_provide_certificate_action
    if not csr_matches_certificate(csr=csr, cert=certificate):
  File "/var/lib/juju/agents/unit-manual-tls-certificates-0/charm/lib/charms/tls_certificates_interface/v3/tls_certificates.py", line 1125, in csr_matches_certificate
    csr_object.public_key().public_numbers().n  # type: ignore[union-attr]
AttributeError: 'cryptography.hazmat.primitives.asymmetric.ec.Ellip' object has no attribute 'n'
unit-manual-tls-certificates-0: 11:25:37 WARNING unit.manual-tls-certificates/0.provide-certificate Uncaught AttributeError in charm code: 'cryptography.hazmat.primitives.asymmetric.ec.Ellip' object has no attribute 'n'
unit-manual-tls-certificates-0: 11:25:37 WARNING unit.manual-tls-certificates/0.provide-certificate Use `juju debug-log` to see the full traceback.

Additional context

No response

gruyaume commented 2 months ago

Thank you @dparv for opening this issue. I've moved this to the top of our backlog.

kayra1 commented 2 months ago

Hello @dparv, we've merged a fix for this issue. Please do let us know if it resurfaces again.