oxidecomputer / oxidecomputer/omicron

want samael 0.0.20+

Open
#10,702 0 comments 0 reactions 1 assignee View on GitHub

@jmpesp is already working on this.

Since Jun 30, 2026.

Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Gentoo has stabilized LLVM 22 and bindgen needs some updates to support it; samael 0.0.20 updates bindgen to support this.

Unfortunately naively updating to either 0.0.20 or 0.0.21 causes integration test failures:

$ TMPDIR=/tmp/omicron chrt -i 0 cargo t --no-fail-fast -E 'package(omicron-nexus)' -j 8 -- integration_tests::saml
info: experimental features enabled: setup-scripts, benchmarks
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.78s
    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
     Running `target/debug/crdb-seed`
Jun 30 14:01:32.550 INFO Using existing CRDB seed tarball: `/tmp/omicron/crdb-base-iliana/c3b7c01f2493b97eda0295f026efab0028f50f05960a99f96b507dcfec8612fa.tar`
  SETUP PASS [   0.416s] crdb-seed: cargo run -p crdb-seed --profile test
        FAIL [   0.026s] omicron-nexus::test_all integration_tests::saml::test_accept_saml_response_only_assertion_signed
  stdout ───

    running 1 test
    test integration_tests::saml::test_accept_saml_response_only_assertion_signed ... FAILED

    failures:

    failures:
        integration_tests::saml::test_accept_saml_response_only_assertion_signed

    test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 564 filtered out; finished in 0.00s

  stderr ───

    thread 'integration_tests::saml::test_accept_saml_response_only_assertion_signed' (200780) panicked at nexus/tests/integration_tests/saml.rs:928:10:
    called `Result::unwrap()` on an `Err` value: HttpError { status_code: 400, error_code: None, external_message: "assertion is missing signature!", internal_message: "assertion is missing signature!", headers: None }
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

        PASS [   0.028s] omicron-nexus::test_all integration_tests::saml::test_correct_saml_response_with_group_attributes_wrong_attribute_name
        PASS [   0.029s] omicron-nexus::test_all integration_tests::saml::test_correct_saml_response_with_group_attributes
        PASS [   0.030s] omicron-nexus::test_all integration_tests::saml::test_correct_saml_response
        PASS [   0.031s] omicron-nexus::test_all integration_tests::saml::test_correct_saml_response_ecdsa_sha256
        FAIL [   0.030s] omicron-nexus::test_all integration_tests::saml::test_handle_saml_response_with_xml_comment
  stdout ───

    running 1 test
    test integration_tests::saml::test_handle_saml_response_with_xml_comment ... FAILED

    failures:

    failures:
        integration_tests::saml::test_handle_saml_response_with_xml_comment

    test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 564 filtered out; finished in 0.01s

  stderr ───

    thread 'integration_tests::saml::test_handle_saml_response_with_xml_comment' (200828) panicked at nexus/tests/integration_tests/saml.rs:1033:16:
    expected validation to succeed: HttpError { status_code: 400, error_code: None, external_message: "could not extract SAMLResponse assertion! SAML Response and all assertions must be signed", internal_message: "could not extract SAMLResponse assertion! SAML Response and all assertions must be signed", headers: None }
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

        PASS [   9.683s] omicron-nexus::test_all integration_tests::saml::test_create_a_saml_idp_invalid_descriptor_truncated
        PASS [   0.035s] omicron-nexus::test_all integration_tests::saml::test_reject_saml_response_signed_with_other_key
        PASS [   0.024s] omicron-nexus::test_all integration_tests::saml::test_reject_unsigned_saml_response
        PASS [   9.989s] omicron-nexus::test_all integration_tests::saml::test_create_a_saml_idp_metadata_no_keys
        PASS [  10.030s] omicron-nexus::test_all integration_tests::saml::test_create_a_saml_idp_invalid_descriptor_no_redirect_binding
        PASS [  10.159s] omicron-nexus::test_all integration_tests::saml::test_create_a_saml_idp_metadata_only_encryption_keys
        PASS [  10.224s] omicron-nexus::test_all integration_tests::saml::test_create_a_saml_idp
        PASS [  10.326s] omicron-nexus::test_all integration_tests::saml::test_create_a_hidden_silo_saml_idp
        PASS [  10.548s] omicron-nexus::test_all integration_tests::saml::test_post_saml_response_with_relay_state
        PASS [  10.952s] omicron-nexus::test_all integration_tests::saml::test_post_saml_response
        PASS [   7.401s] omicron-nexus::test_all integration_tests::saml::test_saml_idp_reject_keypair
        PASS [   7.912s] omicron-nexus::test_all integration_tests::saml::test_saml_idp_metadata_url_404
        PASS [   7.674s] omicron-nexus::test_all integration_tests::saml::test_saml_idp_rsa_keypair_ok
        PASS [   7.929s] omicron-nexus::test_all integration_tests::saml::test_saml_idp_metadata_url_invalid
────────────
     Summary [  18.369s] 20 tests run: 18 passed, 2 failed, 860 skipped
        FAIL [   0.026s] omicron-nexus::test_all integration_tests::saml::test_accept_saml_response_only_assertion_signed
        FAIL [   0.030s] omicron-nexus::test_all integration_tests::saml::test_handle_saml_response_with_xml_comment
error: test run failed

0.0.19...0.0.20[^maybe]: https://github.com/njaremko/samael/compare/9d11d7390bae442e84279545dcf16264006b5481...02ee0ddc746da21f2b555fe26fd3f48cea66ffe4 (problem likely introduced in this range)
0.0.20...0.0.21: https://github.com/njaremko/samael/compare/02ee0ddc746da21f2b555fe26fd3f48cea66ffe4...5b187c12fc86fa2e016d7764a476d95fbe6957fb

[^maybe]: maybe, .cargo_vcs_info.json in the crate says 0.0.20 was published with a dirty tree i checked the diff and they are not relevant to the rust code

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.