DPDK  18.11.11
rte_crypto_sym.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2016-2017 Intel Corporation
3  */
4 
5 #ifndef _RTE_CRYPTO_SYM_H_
6 #define _RTE_CRYPTO_SYM_H_
7 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #include <string.h>
22 
23 #include <rte_mbuf.h>
24 #include <rte_memory.h>
25 #include <rte_mempool.h>
26 #include <rte_common.h>
27 
28 
81  RTE_CRYPTO_CIPHER_LIST_END
82 
83 };
84 
86 extern const char *
88 
95 };
96 
98 extern const char *
100 
116  struct {
117  uint8_t *data;
118  uint16_t length;
119  } key;
146  struct {
147  uint16_t offset;
178  uint16_t length;
196  } iv;
197 };
198 
268  RTE_CRYPTO_AUTH_LIST_END
269 };
270 
272 extern const char *
274 
279 };
280 
282 extern const char *
284 
298  struct {
299  uint8_t *data;
300  uint16_t length;
301  } key;
309  struct {
310  uint16_t offset;
325  uint16_t length;
335  } iv;
337  uint16_t digest_length;
347 };
348 
349 
356  RTE_CRYPTO_AEAD_LIST_END
357 };
358 
360 extern const char *
362 
369 };
370 
372 extern const char *
374 
375 struct rte_crypto_aead_xform {
378  enum rte_crypto_aead_algorithm algo;
381  struct {
382  uint8_t *data;
383  uint16_t length;
384  } key;
385 
386  struct {
387  uint16_t offset;
407  uint16_t length;
416  } iv;
418  uint16_t digest_length;
419 
420  uint16_t aad_length;
426 };
427 
434 };
435 
449  ;
451  union {
456  struct rte_crypto_aead_xform aead;
458  };
459 };
460 
462 
494  struct rte_mbuf *m_src;
495  struct rte_mbuf *m_dst;
498  union {
503  struct rte_security_session *sec_session;
505  };
506 
508  union {
509  struct {
510  struct {
511  uint32_t offset;
516  uint32_t length;
521  } data;
522  struct {
523  uint8_t *data;
545  } digest;
546  struct {
547  uint8_t *data;
579  } aad;
581  } aead;
582 
583  struct {
584  struct {
585  struct {
586  uint32_t offset;
600  uint32_t length;
614  } data;
615  } cipher;
616 
617  struct {
618  struct {
619  uint32_t offset;
635  uint32_t length;
651  } data;
654  struct {
655  uint8_t *data;
677  } digest;
678  } auth;
679  };
680  };
681 };
682 
683 
689 static inline void
691 {
692  memset(op, 0, sizeof(*op));
693 }
694 
695 
706 static inline struct rte_crypto_sym_xform *
708  void *priv_data, uint8_t nb_xforms)
709 {
710  struct rte_crypto_sym_xform *xform;
711 
712  sym_op->xform = xform = (struct rte_crypto_sym_xform *)priv_data;
713 
714  do {
716  xform = xform->next = --nb_xforms > 0 ? xform + 1 : NULL;
717  } while (xform);
718 
719  return sym_op->xform;
720 }
721 
722 
729 static inline int
731  struct rte_cryptodev_sym_session *sess)
732 {
733  sym_op->session = sess;
734 
735  return 0;
736 }
737 
738 
739 #ifdef __cplusplus
740 }
741 #endif
742 
743 #endif /* _RTE_CRYPTO_SYM_H_ */
enum rte_crypto_cipher_operation op
struct rte_security_session * sec_session
struct rte_crypto_auth_xform auth
struct rte_crypto_cipher_xform::@77 key
struct rte_crypto_cipher_xform cipher
struct rte_crypto_sym_op::@87::@89::@93 digest
static void __rte_crypto_sym_op_reset(struct rte_crypto_sym_op *op)
enum rte_crypto_auth_operation op
struct rte_mbuf * m_src
rte_crypto_auth_operation
const char * rte_crypto_cipher_operation_strings[]
const char * rte_crypto_aead_operation_strings[]
rte_crypto_cipher_operation
enum rte_crypto_auth_algorithm algo
struct rte_crypto_sym_op::@87::@89::@94 aad
const char * rte_crypto_aead_algorithm_strings[]
static struct rte_crypto_sym_xform * __rte_crypto_sym_op_sym_xforms_alloc(struct rte_crypto_sym_op *sym_op, void *priv_data, uint8_t nb_xforms)
rte_crypto_aead_operation
struct rte_mbuf * m_dst
struct rte_crypto_aead_xform aead
static int __rte_crypto_sym_op_attach_sym_session(struct rte_crypto_sym_op *sym_op, struct rte_cryptodev_sym_session *sess)
struct rte_crypto_auth_xform::@79 key
struct rte_cryptodev_sym_session * session
#define RTE_STD_C11
Definition: rte_common.h:37
rte_crypto_auth_algorithm
rte_crypto_sym_xform_type
const char * rte_crypto_auth_algorithm_strings[]
uint64_t rte_iova_t
Definition: rte_memory.h:82
struct rte_crypto_sym_op::@87::@89::@92 data
struct rte_crypto_sym_xform * xform
enum rte_crypto_sym_xform_type type
enum rte_crypto_cipher_algorithm algo
const char * rte_crypto_auth_operation_strings[]
struct rte_crypto_cipher_xform::@78 iv
struct rte_crypto_sym_xform * next
struct rte_crypto_auth_xform::@80 iv
rte_iova_t phys_addr
rte_crypto_aead_algorithm
const char * rte_crypto_cipher_algorithm_strings[]
rte_crypto_cipher_algorithm