ros2 / sros2

tools to generate and distribute keys for SROS 2
Apache License 2.0
89 stars 44 forks source link

Use S/MIME API from cryptography instead of SSL bindings #240

Closed kyrofa closed 7 months ago

kyrofa commented 3 years ago

The SROS2 utilities use the Cryptography library, which doesn't officially support S/MIME. As a result, we had to hit the SSL bindings directly to get that functionality. These bindings were removed in v3.1 of Cryptography, which means the SROS2 utilities were stuck on v3.0 at the latest (see https://github.com/pyca/cryptography/issues/5433).

However, Cryptography is working on adding an official S/MIME API which is far easier to use than the raw SSL API. This PR resolves #239 by updating the SROS2 utilities to use it. Note, however, that the S/MIME API has not been merged nor released in Cryptography, so this PR will remain in draft and fail all its tests for a little while.

See also: ros2/ci#507

kyrofa commented 3 years ago

Once this API is settled, this PR should be refactored to only use it if available, and fallback to the bindings if not. It seems that we will need to support both Cryptography 2.8 and the latest, until rolling has switched to the next Ubuntu LTS beyond 20.04.

clalancette commented 7 months ago

This API changed from the time that this PR was opened. I've now opened up #290 , which supersedes this one. So closing this out.