X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..bb59bff194111743b33cc36712410b5656329d3c:/bsd/netinet6/esp.h diff --git a/bsd/netinet6/esp.h b/bsd/netinet6/esp.h index 8add062e1..048a792cb 100644 --- a/bsd/netinet6/esp.h +++ b/bsd/netinet6/esp.h @@ -1,4 +1,33 @@ -/* $KAME: esp.h,v 1.5 2000/02/22 14:04:15 itojun Exp $ */ +/* + * Copyright (c) 2008-2013 Apple Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ + +/* $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 +64,8 @@ #ifndef _NETINET6_ESP_H_ #define _NETINET6_ESP_H_ +#include -#include /* for struct secas */ struct esp { u_int32_t esp_spi; /* ESP */ @@ -66,41 +95,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 BSD_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 secasvar *); +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 /* BSD_KERNEL_PRIVATE */ -#endif /*_NETINET6_ESP_H_*/ +#endif /* _NETINET6_ESP_H_ */