cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

if_alg.h (1566B)


      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
     19struct 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 */
     35struct 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
     43struct af_alg_iv {
     44	__u32	ivlen;
     45	__u8	iv[0];
     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
     56/* Operations */
     57#define ALG_OP_DECRYPT			0
     58#define ALG_OP_ENCRYPT			1
     59
     60#endif	/* _LINUX_IF_ALG_H */