125981136fb13bcacf5f475f3e0ec750341e1e671Christopher Ferris/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * if_alg: User-space algorithm interface 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright (c) 2010 Herbert Xu <herbert@gondor.apana.org.au> 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This program is free software; you can redistribute it and/or modify it 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * under the terms of the GNU General Public License as published by the Free 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Software Foundation; either version 2 of the License, or (at your option) 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * any later version. 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _LINUX_IF_ALG_H 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _LINUX_IF_ALG_H 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct sockaddr_alg { 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u16 salg_family; 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 salg_type[14]; 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 salg_feat; 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 salg_mask; 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 salg_name[64]; 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2730692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct af_alg_iv { 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 ivlen; 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u8 iv[0]; 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Socket options */ 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ALG_SET_KEY 1 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ALG_SET_IV 2 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ALG_SET_OP 3 3612e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define ALG_SET_AEAD_ASSOCLEN 4 3712e1f28cce28271eb109a5bae818a804f0c3bb27Christopher Ferris#define ALG_SET_AEAD_AUTHSIZE 5 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Operations */ 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ALG_OP_DECRYPT 0 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ALG_OP_ENCRYPT 1 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _LINUX_IF_ALG_H */ 44