Open Questions on Xmlsec Integration #2896
Replies: 4 comments 4 replies
-
@maths22 Thanks for bringing up these points. I should have some headspace this weekend to respond more thoughtfully than I can at the moment. Thanks for your patience with me! |
Beta Was this translation helpful? Give feedback.
-
@maths22 So the heavyweight option you didn't list is to statically link against a crypto library when we precompile. If we're not exporting symbols, then the code within We do something similar already with If we wanted to explore this option, we should also probably make a decision about which crypto library (or libraries) we would prefer. I'd prefer something that's licensed under MIT or Apache or BSD (not GPL or LGPL) if possible. Smaller is (slightly) better. And preferably something that's stable and doesn't get frequent security updates. WDYT? |
Beta Was this translation helpful? Give feedback.
-
Also - I think we should create an issue to track all the xmlsec-related conversations and work, if that's OK. I'd like to be transparent, but also I like having a canonical hub that links out to all the other useful information. Something like #2204 but for xmlsec? If you want to create it, cool, otherwise I'll do it in the next day or two. |
Beta Was this translation helpful? Give feedback.
-
@maths22 - apologies for not replying on any of the issues you've created, I've had to triage my OSS time recently. Hoping to dig back in over the next two weeks. |
Beta Was this translation helpful? Give feedback.
-
As I am working on getting the native builds of #2888 into a healthy state (see https://github.com/maths22/nokogiri/tree/nokogiri-xmlsec-testing for what I've been working on), I've realized it opens up some questions.
xmlsec itself requires one of the crypto libraries listed on this page: https://www.aleksey.com/xmlsec/download.html , and as seen here: https://www.aleksey.com/xmlsec/xmldsig.html#algorithms , different crypto libraries end up supporting a combination of different formats and different algorithms, which ends up affecting the behavior exposed in ruby. (The current tests implicitly assume an openssl backend.) Most ruby distributions will be on platforms with openssl available since ruby itself bundles the openssl extension, but that's not a guarantee, and we certainly can't build on one system and expect an ABI-compatible openssl to be available on the other end. This leaves us with a few options best I can see:
Beta Was this translation helpful? Give feedback.
All reactions