wile icon indicating copy to clipboard operation
wile copied to clipboard

crashes if trying to reuse an EC account key

Open costela opened this issue 8 years ago • 2 comments

$ wile --account-key acme_account.key --verbose register
INFO:wile.reg:starting registration for email:"None", phone:"None"
Traceback (most recent call last):
  File "/usr/local/bin/wile", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.5/dist-packages/wile/__init__.py", line 112, in main
    return wile(obj=LazyClient())
  File "/usr/lib/python3/dist-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/wile/reg.py", line 30, in register
    regr = ctx.obj.acme.register(messages.NewRegistration.from_data(email=email, phone=phone))
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 97, in register
    response = self.net.post(self.directory[new_reg], new_reg)
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 682, in post
    return self._post_once(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 691, in _post_once
    data = self._wrap_in_jws(obj, self._get_nonce(url))
  File "/usr/local/lib/python3.5/dist-packages/acme/client.py", line 543, in _wrap_in_jws
    nonce=nonce).json_dumps(indent=2)
  File "/usr/local/lib/python3.5/dist-packages/acme/jws.py", line 54, in sign
    include_jwk=include_jwk)
  File "/usr/local/lib/python3.5/dist-packages/acme/jose/jws.py", line 272, in sign
    cls.signature_cls.sign(payload=payload, **kwargs),))
  File "/usr/local/lib/python3.5/dist-packages/acme/jose/jws.py", line 229, in sign
    protected = cls.header_cls(**protected_params).json_dumps()
  File "/usr/local/lib/python3.5/dist-packages/acme/jose/interfaces.py", line 189, in json_dumps
    return json.dumps(self, default=self.json_dump_default, **kwargs)
  File "/usr/lib/python3.5/json/__init__.py", line 237, in dumps
    **kw).encode(obj)
  File "/usr/lib/python3.5/json/encoder.py", line 198, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python3.5/json/encoder.py", line 256, in iterencode
    return _iterencode(o, 0)
  File "/usr/local/lib/python3.5/dist-packages/acme/jose/interfaces.py", line 214, in json_dump_default
    return python_object.to_partial_json()
  File "/usr/local/lib/python3.5/dist-packages/acme/jose/json_util.py", line 471, in to_partial_json
    jobj = self.fields_to_partial_json()
  File "/usr/local/lib/python3.5/dist-packages/acme/jose/jwk.py", line 268, in fields_to_partial_json
    private = self.key.private_numbers()
  File "/usr/local/lib/python3.5/dist-packages/acme/jose/util.py", line 90, in __getattr__
    return getattr(self._wrapped, name)
AttributeError: '_EllipticCurvePublicKey' object has no attribute 'private_numbers'

costela avatar Oct 18 '17 08:10 costela

acme's jose still doesn't support EC keys: https://letsencrypt.readthedocs.io/projects/acme/en/latest/api/jose/jwk.html

costela avatar Oct 18 '17 08:10 costela

even after the switch to josepy in #31, still not implemented

costela avatar Mar 19 '18 14:03 costela