linux-headers (unknown)

(root)/
include/
linux/
if_alg.h
       1  /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
       2  /*
       3   * if_alg: User-space algorithm interface
       4   *
       5   * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au>
       6   *
       7   * This program is free software; you can redistribute it and/or modify it
       8   * under the terms of the GNU General Public License as published by the Free
       9   * Software Foundation; either version 2 of the License, or (at your option)
      10   * any later version.
      11   *
      12   */
      13  
      14  #ifndef _LINUX_IF_ALG_H
      15  #define _LINUX_IF_ALG_H
      16  
      17  #include <linux/types.h>
      18  
      19  struct sockaddr_alg {
      20  	__u16	salg_family;
      21  	__u8	salg_type[14];
      22  	__u32	salg_feat;
      23  	__u32	salg_mask;
      24  	__u8	salg_name[64];
      25  };
      26  
      27  /*
      28   * Linux v4.12 and later removed the 64-byte limit on salg_name[]; it's now an
      29   * arbitrary-length field.  We had to keep the original struct above for source
      30   * compatibility with existing userspace programs, though.  Use the new struct
      31   * below if support for very long algorithm names is needed.  To do this,
      32   * allocate 'sizeof(struct sockaddr_alg_new) + strlen(algname) + 1' bytes, and
      33   * copy algname (including the null terminator) into salg_name.
      34   */
      35  struct sockaddr_alg_new {
      36  	__u16	salg_family;
      37  	__u8	salg_type[14];
      38  	__u32	salg_feat;
      39  	__u32	salg_mask;
      40  	__u8	salg_name[];
      41  };
      42  
      43  struct af_alg_iv {
      44  	__u32	ivlen;
      45  	__u8	iv[];
      46  };
      47  
      48  /* Socket options */
      49  #define ALG_SET_KEY			1
      50  #define ALG_SET_IV			2
      51  #define ALG_SET_OP			3
      52  #define ALG_SET_AEAD_ASSOCLEN		4
      53  #define ALG_SET_AEAD_AUTHSIZE		5
      54  #define ALG_SET_DRBG_ENTROPY		6
      55  #define ALG_SET_KEY_BY_KEY_SERIAL	7
      56  
      57  /* Operations */
      58  #define ALG_OP_DECRYPT			0
      59  #define ALG_OP_ENCRYPT			1
      60  
      61  #endif	/* _LINUX_IF_ALG_H */