X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..c0fea4742e91338fffdcf79f86a7c1d5e2b97eb1:/bsd/netinet6/esp.h diff --git a/bsd/netinet6/esp.h b/bsd/netinet6/esp.h index 8add062e1..6802e81a3 100644 --- a/bsd/netinet6/esp.h +++ b/bsd/netinet6/esp.h @@ -1,4 +1,5 @@ -/* $KAME: esp.h,v 1.5 2000/02/22 14:04:15 itojun Exp $ */ +/* $FreeBSD: src/sys/netinet6/esp.h,v 1.2.2.2 2001/07/03 11:01:49 ume Exp $ */ +/* $KAME: esp.h,v 1.16 2000/10/18 21:28:00 itojun Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -35,8 +36,8 @@ #ifndef _NETINET6_ESP_H_ #define _NETINET6_ESP_H_ +#include -#include /* for struct secas */ struct esp { u_int32_t esp_spi; /* ESP */ @@ -66,41 +67,41 @@ struct esptail { /*variable size, 32bit bound*/ /* Authentication data (new IPsec)*/ }; -struct esp_algorithm_state { - struct secasvar *sav; - void* foo; /*per algorithm data - maybe*/ -}; +#ifdef KERNEL_PRIVATE +struct secasvar; -/* XXX yet to be defined */ struct esp_algorithm { size_t padbound; /* pad boundary, in byte */ - int (*mature) __P((struct secasvar *)); + int ivlenval; /* iv length, in byte */ + int (*mature)(struct secasvar *); int keymin; /* in bits */ int keymax; /* in bits */ - int (*ivlen) __P((struct secasvar *)); - int (*decrypt) __P((struct mbuf *, size_t, - struct secasvar *, struct esp_algorithm *, int)); - int (*encrypt) __P((struct mbuf *, size_t, size_t, - struct secasvar *, struct esp_algorithm *, int)); + int (*schedlen)(const struct esp_algorithm *); + const char *name; + int (*ivlen)(const struct esp_algorithm *, struct secasvar *); + int (*decrypt)(struct mbuf *, size_t, + struct secasvar *, const struct esp_algorithm *, int); + int (*encrypt)(struct mbuf *, size_t, size_t, + struct secasvar *, const struct esp_algorithm *, int); + /* not supposed to be called directly */ + int (*schedule)(const struct esp_algorithm *, struct secasvar *); + int (*blockdecrypt)(const struct esp_algorithm *, + struct secasvar *, u_int8_t *, u_int8_t *); + int (*blockencrypt)(const struct esp_algorithm *, + struct secasvar *, u_int8_t *, u_int8_t *); }; -#if KERNEL -extern struct esp_algorithm esp_algorithms[]; +extern const struct esp_algorithm *esp_algorithm_lookup(int); +extern int esp_max_ivlen(void); /* crypt routines */ -extern int esp4_output __P((struct mbuf *, struct ipsecrequest *)); -extern void esp4_input __P((struct mbuf *, int off)); -extern size_t esp_hdrsiz __P((struct ipsecrequest *)); +extern int esp4_output(struct mbuf *, struct ipsecrequest *); +extern void esp4_input(struct mbuf *, int off); +extern size_t esp_hdrsiz(struct ipsecrequest *); -#if INET6 -extern int esp6_output __P((struct mbuf *, u_char *, struct mbuf *, - struct ipsecrequest *)); -extern int esp6_input __P((struct mbuf **, int *, int)); -#endif /* INET6 */ -#endif /*KERNEL*/ - -struct secasvar; -extern int esp_auth __P((struct mbuf *, size_t, size_t, - struct secasvar *, u_char *)); +extern int esp_schedule(const struct esp_algorithm *, struct secasvar *); +extern int esp_auth(struct mbuf *, size_t, size_t, + struct secasvar *, u_char *); +#endif /* KERNEL_PRIVATE */ -#endif /*_NETINET6_ESP_H_*/ +#endif /* _NETINET6_ESP_H_ */