• Nicolai Stange's avatar
    crypto: kpp - provide support for KPP template instances · 1038fd78
    Nicolai Stange authored
    The upcoming support for the RFC 7919 ffdhe group parameters will be
    made available in the form of templates like "ffdhe2048(dh)",
    "ffdhe3072(dh)" and so on. Template instantiations thereof would wrap the
    inner "dh" kpp_alg and also provide kpp_alg services to the outside again.
    Furthermore, it might be perhaps be desirable to provide KDF templates in
    the future, which would similarly wrap an inner kpp_alg and present
    themselves to the outside as another kpp_alg, transforming the shared
    secret on its way out.
    
    Introduce the bits needed for supporting KPP template instances. Everything
    related to inner kpp_alg spawns potentially being held by such template
    instances will be deferred to a subsequent patch in order to facilitate
    review.
    
    Define struct struct kpp_instance in close analogy to the already existing
    skcipher_instance, shash_instance and alike, but wrapping a struct kpp_alg.
    Implement the new kpp_register_instance() template instance registration
    primitive. Provide some helper functions for
    - going back and forth between a generic struct crypto_instance and the new
      struct kpp_instance,
    - obtaining the instantiating kpp_instance from a crypto_kpp transform and
    - for accessing a given kpp_instance's implementation specific context
      data.
    
    Annotate everything with proper kernel-doc comments, even though
    include/crypto/internal/kpp.h is not considered for the generated docs.
    Signed-off-by: default avatarNicolai Stange <nstange@suse.de>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    1038fd78
kpp.c 3.13 KB