-
Notifications
You must be signed in to change notification settings - Fork 122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix c14n canonization #15
base: develop
Are you sure you want to change the base?
Conversation
Would you mind adding a test for this? Also, it'd be great if you could double-check that this is what libxml does as well. It's probably more important for esaml that we do what libxml does than what is actually in the spec -- pretty much all of the SAML implementations we need to interoperate with use it. |
6e62d62
to
403022f
Compare
I added a quick test to illustrate the problem. |
Any update on this? |
👍 This change actually makes esaml play nice with Azure AD, and thus fixes #20. Comparing the c14n of the Reponse's SignedInfo with the output of another tool turned out that this is the only difference (this is
Thanks! |
I could only verify with Apache Axis that this change provides compatible behavior. Especially to libxml this is an incompatible change. I'm really unhappy the specs are unclear on this and big libraries implement it differently. |
I'm not sure I follow: so current esaml (without your fix) matches what libxml does? Do we know of an IdP that expects this behaviour? You're right, c14n shouldn't leave any variance, or "styles", though...it'd be a bad spec for this use case... |
@srenatus I only use esaml with Apache-Axis at this time. Hard to say how other people are using this. Summing up:
Going forward:
|
…utilized; the specs suggest that we need to remove even a default namespace, if it is no visibly utilized on the parent. I.e. omit a default ns id the parent is prefixed.
403022f
to
f9a41e1
Compare
omit a default namespace if it is not visibly utilized; the specs suggest that we need to remove even a default namespace, if it is no visibly utilized on the parent. I.e. omit a default ns if the parent is prefixed.