linux/include/crypto/internal/kpp.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/*
   3 * Key-agreement Protocol Primitives (KPP)
   4 *
   5 * Copyright (c) 2016, Intel Corporation
   6 * Authors: Salvatore Benedetto <salvatore.benedetto@intel.com>
   7 */
   8#ifndef _CRYPTO_KPP_INT_H
   9#define _CRYPTO_KPP_INT_H
  10#include <crypto/kpp.h>
  11#include <crypto/algapi.h>
  12
  13/*
  14 * Transform internal helpers.
  15 */
  16static inline void *kpp_request_ctx(struct kpp_request *req)
  17{
  18        return req->__ctx;
  19}
  20
  21static inline void *kpp_tfm_ctx(struct crypto_kpp *tfm)
  22{
  23        return tfm->base.__crt_ctx;
  24}
  25
  26static inline void kpp_request_complete(struct kpp_request *req, int err)
  27{
  28        req->base.complete(&req->base, err);
  29}
  30
  31static inline const char *kpp_alg_name(struct crypto_kpp *tfm)
  32{
  33        return crypto_kpp_tfm(tfm)->__crt_alg->cra_name;
  34}
  35
  36/**
  37 * crypto_register_kpp() -- Register key-agreement protocol primitives algorithm
  38 *
  39 * Function registers an implementation of a key-agreement protocol primitive
  40 * algorithm
  41 *
  42 * @alg:        algorithm definition
  43 *
  44 * Return: zero on success; error code in case of error
  45 */
  46int crypto_register_kpp(struct kpp_alg *alg);
  47
  48/**
  49 * crypto_unregister_kpp() -- Unregister key-agreement protocol primitive
  50 * algorithm
  51 *
  52 * Function unregisters an implementation of a key-agreement protocol primitive
  53 * algorithm
  54 *
  55 * @alg:        algorithm definition
  56 */
  57void crypto_unregister_kpp(struct kpp_alg *alg);
  58
  59#endif
  60