From 1264df3a5da0b4ba93aa3f250a20101bcc19e1ca Mon Sep 17 00:00:00 2001 From: Theo de Raadt Date: Sat, 14 Nov 1998 23:37:31 +0000 Subject: move ipsec tools into . --- sbin/ipsecadm/xf_ah_old.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 sbin/ipsecadm/xf_ah_old.c (limited to 'sbin/ipsecadm/xf_ah_old.c') diff --git a/sbin/ipsecadm/xf_ah_old.c b/sbin/ipsecadm/xf_ah_old.c new file mode 100644 index 00000000000..9185b50e9a3 --- /dev/null +++ b/sbin/ipsecadm/xf_ah_old.c @@ -0,0 +1,105 @@ +/* $OpenBSD: xf_ah_old.c,v 1.1 1998/11/14 23:37:20 deraadt Exp $ */ +/* + * The authors of this code are John Ioannidis (ji@tla.org), + * Angelos D. Keromytis (kermit@csd.uch.gr) and + * Niels Provos (provos@physnet.uni-hamburg.de). + * + * This code was written by John Ioannidis for BSD/OS in Athens, Greece, + * in November 1995. + * + * Ported to OpenBSD and NetBSD, with additional transforms, in December 1996, + * by Angelos D. Keromytis. + * + * Additional transforms and features in 1997 and 1998 by Angelos D. Keromytis + * and Niels Provos. + * + * Copyright (C) 1995, 1996, 1997, 1998 by John Ioannidis, Angelos D. Keromytis + * and Niels Provos. + * + * Permission to use, copy, and modify this software without fee + * is hereby granted, provided that this entire notice is included in + * all copies of any software which is or includes a copy or + * modification of this software. + * You may use this code under the GNU public license if you so wish. Please + * contribute changes back to the authors under this freer than GPL license + * so that we may further the use of strong encryption without limitations to + * all. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE + * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR + * PURPOSE. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include "net/encap.h" +#include "netinet/ip_ipsp.h" +#include "netinet/ip_ah.h" + +extern char buf[]; + +int xf_set __P(( struct encap_msghdr *)); +int x2i __P((char *)); + +int +xf_ah_old(src, dst, spi, auth, keyp, osrc, odst) +struct in_addr src, dst; +u_int32_t spi; +int auth; +u_char *keyp; +struct in_addr osrc, odst; +{ + int klen, i; + + struct encap_msghdr *em; + struct ah_old_xencap *xd; + + klen = strlen(keyp)/2; + + em = (struct encap_msghdr *)&buf[0]; + + em->em_msglen = EMT_SETSPI_FLEN + AH_OLD_XENCAP_LEN + klen; + em->em_version = PFENCAP_VERSION_1; + em->em_type = EMT_SETSPI; + em->em_spi = spi; + em->em_src = src; + em->em_dst = dst; + em->em_osrc = osrc; + em->em_odst = odst; + em->em_alg = XF_OLD_AH; + em->em_sproto = IPPROTO_AH; + + xd = (struct ah_old_xencap *)(em->em_dat); + + xd->amx_hash_algorithm = auth; + xd->amx_keylen = klen; + + for (i = 0; i < klen; i++ ) + xd->amx_key[i] = x2i(keyp + 2*i); + + return xf_set(em); +} -- cgit v1.2.3