Skip to content
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

Establish interop with Circl and other implementations #910

Open
baentsch opened this issue Feb 12, 2021 · 14 comments
Open

Establish interop with Circl and other implementations #910

baentsch opened this issue Feb 12, 2021 · 14 comments
Labels
enhancement New feature or request future-work Will not be fixed in current release cycle
Milestone

Comments

@baentsch
Copy link
Member

Circl implements several algorithms also provided by liboqs. An automated interop test set would be good to avoid issues like #909 in the future. Possibly an application for liboqs-go?

@thomwiggers
Copy link
Contributor

thomwiggers commented Feb 12, 2021

Although more testing is generally better, both liboqs and circl already do KAT tests. They also do development at different paces....

@baentsch
Copy link
Member Author

They also do development at different paces

And also seem to have different goals (integrations of more/different PQ algs into different apps, say). But 4 months difference (judging for example for Kyber from cloudflare/circl@6168cdb) is a bit steep, indeed. Good we now have more upstream-pull automation.

--> Would anyone be in favour of setting a date for releasing liboqs 0.5? Would also be good to finally upgrade the pretty dated https://test.openquantumsafe.org to r3 (servers)...

@thomwiggers
Copy link
Contributor

thomwiggers commented Feb 12, 2021

I've yolo-opened a discussion on release schedules here #912

@claucece
Copy link
Contributor

I'm currently updating to the latest changes in some pq algorithms at CIRLC. It could be good to test between the two projects, and I can provide an status of them.

@baentsch
Copy link
Member Author

@claucece Thanks for that update and your interest to look into this issue. In case you didn't find them yet, here's pointers to some interop test scripts we already have distributed across the various projects and that may provide thoughts:

Upon glancing at them, the latter two are particularly badly "documented" (my fault), so please don't hesitate to ask questions if you'd want to build off this if you also want run tests against the server. If you'd want to do something that runs as part of CI, I'd recommend the first link.

@xvzcf
Copy link
Contributor

xvzcf commented Oct 22, 2021

Having looked into checking all KATs for each KEM (let alone signatures) I see two issues:

  • Time (as suggested in the meeting): python3 tests/test_kat.py went from taking 43.70 s to taking 461.13 s
  • KAT hashes: copy_from_upstream can update the KAT hashes, which are taken over just the first KAT value. Modifying this to update and cover all 100 KAT values will take some doing

One way to move forward would be to test interop on the one KAT set, and then run a few more tests on randomly sampled inputs

@dstebila
Copy link
Member

One way to move forward would be to test interop on the one KAT set, and then run a few more tests on randomly sampled inputs

Sounds like a good compromise.

@dstebila
Copy link
Member

dstebila commented Nov 1, 2023

@baentsch Can we close this due as having been satisfactorily resolved via open-quantum-safe/oqs-provider#278?

@baentsch
Copy link
Member Author

baentsch commented Nov 1, 2023

OK for me if the only truly supported PQ feature CIRCL has is two specific TLS KEMs (which open-quantum-safe/oqs-provider#278 ascertains interop of). My original impression was that it is much broader in scope, both in terms of algorithms as well as protocols supported.

@dstebila
Copy link
Member

dstebila commented Nov 1, 2023

OK for me if the only truly supported PQ feature CIRCL has is two specific TLS KEMs (which open-quantum-safe/oqs-provider#278 ascertains interop of). My original impression was that it is much broader in scope, both in terms of algorithms as well as protocols supported.

You're right, there's also Dilithium and FrodoKEM in Circle. Nevermind.

@SWilson4 SWilson4 added enhancement New feature or request future-work Will not be fixed in current release cycle labels Jan 26, 2024
@ajbozarth ajbozarth moved this to Todo in liboqs planning Jul 23, 2024
@SWilson4
Copy link
Member

@open-quantum-safe/liboqs-committers Given the discussion around external interoperability testing in this week's meeting, perhaps it's worth adding this to an upcoming release milestone?

@baentsch baentsch changed the title Establish interop with Circl Establish interop with Circl and other implementations Sep 25, 2024
@dstebila dstebila added this to the 0.12.0 milestone Sep 25, 2024
@dstebila
Copy link
Member

@baentsch As discussed in today's OQS status call, how much of TLS hybrid interop (with Google servers, Cloudflare servers, ...?) is being done already in oqs-provider?

@baentsch
Copy link
Member Author

@baentsch As discussed in today's OQS status call, how much of TLS hybrid interop (with Google servers, Cloudflare servers, ...?) is being done already in oqs-provider?

Not an awful lot, see for yourself: https://github.com/open-quantum-safe/oqs-provider/blob/main/scripts/oqsprovider-externalinterop.sh

Re-reading the above, this issue originally called for interop tests across all supported algorithms, not just specific hybrid TLS1.3 KEM(s). Unless we re-define the goal, this is clearly not in scope for 0.12.0 but would require a serious effort. Also, I'd add BouncyCastle as an interop target as it seems to rival if not eclipe OQS in PQC "completeness".

@dstebila dstebila modified the milestones: 0.12.0, 0.13.0 Nov 12, 2024
@dstebila
Copy link
Member

@baentsch As discussed in today's OQS status call, how much of TLS hybrid interop (with Google servers, Cloudflare servers, ...?) is being done already in oqs-provider?

Not an awful lot, see for yourself: https://github.com/open-quantum-safe/oqs-provider/blob/main/scripts/oqsprovider-externalinterop.sh

Yes, fairly barebones. Thanks for looking.

Re-reading the above, this issue originally called for interop tests across all supported algorithms, not just specific hybrid TLS1.3 KEM(s). Unless we re-define the goal, this is clearly not in scope for 0.12.0 but would require a serious effort. Also, I'd add BouncyCastle as an interop target as it seems to rival if not eclipe OQS in PQC "completeness".

Agreed. I think it's fair to say that the oqs-provider TLS interop doesn't cover the full scope of this goal. And I also agree that it's bigger in scope than we can do in 0.12.0, so I've retagged it for 0.13.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request future-work Will not be fixed in current release cycle
Projects
Status: Todo
Development

No branches or pull requests

6 participants