xref: /netbsd-src/crypto/dist/ipsec-tools/src/include-glibc/net/pfkeyv2.h (revision fdd5bac4fc9d8d7162dfb143db909adcd749c74e)
1 /*	$NetBSD: pfkeyv2.h,v 1.5 2013/05/23 05:42:29 tteras Exp $	*/
2 
3 #ifndef __NET_PFKEYV2_H_
4 #define __NET_PFKEYV2_H_ 1
5 
6 #include <stdint.h>
7 #include <linux/pfkeyv2.h>
8 
9 /* Private allocations for authentication algorithms */
10 #define SADB_AALG_SHA2_256		SADB_X_AALG_SHA2_256HMAC
11 #define SADB_X_AALG_SHA2_256		SADB_X_AALG_SHA2_256HMAC
12 #define SADB_AALG_SHA2_384		SADB_X_AALG_SHA2_384HMAC
13 #define SADB_X_AALG_SHA2_384		SADB_X_AALG_SHA2_384HMAC
14 #define SADB_AALG_SHA2_512		SADB_X_AALG_SHA2_512HMAC
15 #define SADB_X_AALG_SHA2_512		SADB_X_AALG_SHA2_512HMAC
16 #define SADB_AALG_RIPEMD160HMAC		SADB_X_AALG_RIPEMD160HMAC
17 #define SADB_X_AALG_MD5              249
18 #define SADB_X_AALG_SHA              250
19 
20 /* private allocations - based on RFC2407/IANA assignment */
21 #ifdef SADB_X_EALG_CASTCBC
22 #define SADB_X_EALG_CAST128CBC		SADB_X_EALG_CASTCBC
23 #else
24 #define SADB_X_EALG_CAST128CBC		5
25 #endif
26 #define SADB_X_EALG_RIJNDAELCBC		SADB_X_EALG_AESCBC
27 #define SADB_X_EALG_AES			SADB_X_EALG_AESCBC
28 
29 
30 #define SADB_X_CALG_NONE	0
31 #define SADB_X_CALG_OUI		1
32 #define SADB_X_CALG_DEFLATE	2
33 #define SADB_X_CALG_LZS		3
34 #define SADB_X_CALG_MAX		4
35 
36 
37 #define SADB_X_EXT_NONE		0x0000	/* i.e. new format. */
38 #define SADB_X_EXT_OLD		0x0001	/* old format. */
39 
40 #define SADB_X_EXT_IV4B		0x0010	/* IV length of 4 bytes in use */
41 #define SADB_X_EXT_DERIV	0x0020	/* DES derived */
42 #define SADB_X_EXT_CYCSEQ	0x0040	/* allowing to cyclic sequence. */
43 
44 	/* three of followings are exclusive flags each them */
45 #define SADB_X_EXT_PSEQ		0x0000	/* sequencial padding for ESP */
46 #define SADB_X_EXT_PRAND	0x0100	/* random padding for ESP */
47 #define SADB_X_EXT_PZERO	0x0200	/* zero padding for ESP */
48 #define SADB_X_EXT_PMASK	0x0300	/* mask for padding flag */
49 
50 #define SADB_X_EXT_RAWCPI	0x0080	/* use well known CPI (IPComp) */
51 
52 
53 #define PFKEY_SOFT_LIFETIME_RATE	80
54 
55 #define SADB_X_LIFETIME_ALLOCATIONS	0
56 #define SADB_X_LIFETIME_BYTES		1
57 #define SADB_X_LIFETIME_ADDTIME		2
58 #define SADB_X_LIFETIME_USETIME		3
59 
60 
61 #define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1)))
62 #define	PFKEY_EXTLEN(msg) \
63 	PFKEY_UNUNIT64(((struct sadb_ext *)(msg))->sadb_ext_len)
64 #define PFKEY_ADDR_PREFIX(ext) \
65 	(((struct sadb_address *)(ext))->sadb_address_prefixlen)
66 #define PFKEY_ADDR_PROTO(ext) \
67 	(((struct sadb_address *)(ext))->sadb_address_proto)
68 #define PFKEY_ADDR_SADDR(ext) \
69 	((struct sockaddr *)((caddr_t)(ext) + sizeof(struct sadb_address)))
70 
71 /* in 64bits */
72 #define	PFKEY_UNUNIT64(a)	((a) << 3)
73 #define	PFKEY_UNIT64(a)		((a) >> 3)
74 
75 #endif
76