I have a question regarding the practical integration of NIST SP 800-227 in major cryptographic libraries, specifically OpenSSL.
SP 800-227 provides a lot of flexibility—it supports various KDFs from SP 800-56C and key combiners from SP 800-133, and the specification does not mandate any particular order for the inputs to the KDF (as long as a NIST-approved algorithm is included).
Given the massive combinatorial explosion this flexibility can generate, I’m curious about the consensus on how this will be implemented at the API level:
Subset vs. Universal Support: Are libraries like OpenSSL planning to support only a very specific, hardcoded subset of these combinations (e.g., pre-defined Named Groups tied to IETF standards like TLS 1.3 or CMS), or is the goal to provide generic EVP_KEM APIs that allow developers to dictate the KDF and input ordering?
Thanks for the links clarifying the rigid pairs for TLS/SSH, and apologies for the confusion regarding signatures in my original post!
My follow-up question is about Key Wraps. Since session protocols bake the KEM and KDF into fixed identifiers (like Named Groups), how is key wrapping expected to fit into OpenSSL's architecture?
Will the entire chain (KEM + KDF + Wrap algorithm) be locked into monolithic identifiers to prevent combinatorial explosion? Or will OpenSSL leave them as decoupled API calls (e.g., calling EVP_KEM, then a KDF, then a wrap cipher separately), leaving the combination choice to the developer?