summaryrefslogtreecommitdiffstats
path: root/contrib/opie
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1997-09-29 10:33:14 +0000
committerache <ache@FreeBSD.org>1997-09-29 10:33:14 +0000
commit84d99714d1477366dbfa55ae6ce02a180261fe21 (patch)
treeef364fe60a840446b1bac6b8e282b719fec563dc /contrib/opie
parent0de5e596d7801e4eaca33ff33867f972156e3611 (diff)
downloadFreeBSD-src-84d99714d1477366dbfa55ae6ce02a180261fe21.zip
FreeBSD-src-84d99714d1477366dbfa55ae6ce02a180261fe21.tar.gz
Merge
Diffstat (limited to 'contrib/opie')
-rw-r--r--contrib/opie/config.h89
-rw-r--r--contrib/opie/libopie/generator.c48
-rw-r--r--contrib/opie/libopie/hash.c42
-rw-r--r--contrib/opie/libopie/hashlen.c4
-rw-r--r--contrib/opie/opie.410
-rw-r--r--contrib/opie/opie.h49
-rw-r--r--contrib/opie/opie_cfg.h61
-rw-r--r--contrib/opie/opieinfo.14
-rw-r--r--contrib/opie/opiekey.14
-rw-r--r--contrib/opie/opiepasswd.14
10 files changed, 178 insertions, 137 deletions
diff --git a/contrib/opie/config.h b/contrib/opie/config.h
index b01598a..0f6fd1c 100644
--- a/contrib/opie/config.h
+++ b/contrib/opie/config.h
@@ -1,3 +1,6 @@
+/* config.h. Generated automatically by configure. */
+/* config.h.in. Generated automatically from configure.in by autoheader. */
+
/* Define if on AIX 3.
System headers sometimes define this.
We just want to avoid a redefinition error message. */
@@ -40,9 +43,9 @@
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
*/
/* #undef STACK_DIRECTION */
@@ -78,6 +81,15 @@
/* The path to the mail spool, if we know it */
#define PATH_MAIL "/var/mail"
+/* The path to the utmp file, if we know it */
+#define PATH_UTMP_AC "/var/run/utmp"
+
+/* The path to the wtmp file, if we know it */
+#define PATH_WTMP_AC "/var/log/wtmp"
+
+/* The path to the wtmpx file, if we know it */
+/* #undef PATH_WTMPX_AC */
+
/* Defined if the system's profile (/etc/profile) displays
the motd file */
/* #undef HAVE_MOTD_IN_PROFILE */
@@ -138,6 +150,36 @@
/* Define if there is a ut_host field in struct utmp */
#define HAVE_UT_HOST 1
+/* Define if the system has getutline() */
+/* #undef HAVE_GETUTLINE */
+
+/* Defined if the system has SunOS C2 security shadow passwords */
+/* #undef HAVE_SUNOS_C2_SHADOW */
+
+/* Defined if you want to disable utmp support */
+/* #undef DISABLE_UTMP */
+
+/* Defined if you want to allow users to override the insecure checks */
+/* #undef INSECURE_OVERRIDE */
+
+/* Defined to the default hash value, always defined */
+#define MDX 5
+
+/* Defined if new-style prompts are to be used */
+#define NEW_PROMPTS 1
+
+/* Defined to the path of the OPIE lock directory */
+#define OPIE_LOCK_DIR "/etc/opielocks"
+
+/* Defined if users are to be asked to re-type secret pass phrases */
+/* #undef RETYPE */
+
+/* Defined if su should not switch to disabled accounts */
+/* #undef SU_STAR_CHECK */
+
+/* Defined if user locking is to be used */
+#define USER_LOCKING 1
+
/* Define if you have the bcopy function. */
/* #undef HAVE_BCOPY */
@@ -159,8 +201,8 @@
/* Define if you have the gethostname function. */
/* #undef HAVE_GETHOSTNAME */
-/* Define if you have the getspent function. */
-/* #undef HAVE_GETSPENT */
+/* Define if you have the getspnam function. */
+/* #undef HAVE_GETSPNAM */
/* Define if you have the gettimeofday function. */
#define HAVE_GETTIMEOFDAY 1
@@ -168,6 +210,9 @@
/* Define if you have the getttynam function. */
#define HAVE_GETTTYNAM 1
+/* Define if you have the getusershell function. */
+#define HAVE_GETUSERSHELL 1
+
/* Define if you have the getutxline function. */
/* #undef HAVE_GETUTXLINE */
@@ -180,18 +225,15 @@
/* Define if you have the lstat function. */
#define HAVE_LSTAT 1
+/* Define if you have the on_exit function. */
+/* #undef HAVE_ON_EXIT */
+
/* Define if you have the pututxline function. */
/* #undef HAVE_PUTUTXLINE */
/* Define if you have the rindex function. */
/* #undef HAVE_RINDEX */
-/* Define if you have the setegid function. */
-#define HAVE_SETEGID 1
-
-/* Define if you have the seteuid function. */
-#define HAVE_SETEUID 1
-
/* Define if you have the setgroups function. */
#define HAVE_SETGROUPS 1
@@ -202,7 +244,7 @@
#define HAVE_SETPRIORITY 1
/* Define if you have the setregid function. */
-#define HAVE_SETREGID 1
+/* #undef HAVE_SETREGID */
/* Define if you have the setresgid function. */
/* #undef HAVE_SETRESGID */
@@ -211,32 +253,44 @@
/* #undef HAVE_SETRESUID */
/* Define if you have the setreuid function. */
-#define HAVE_SETREUID 1
+/* #undef HAVE_SETREUID */
/* Define if you have the setvbuf function. */
#define HAVE_SETVBUF 1
+/* Define if you have the sigaddset function. */
+#define HAVE_SIGADDSET 1
+
/* Define if you have the sigblock function. */
/* #undef HAVE_SIGBLOCK */
+/* Define if you have the sigemptyset function. */
+#define HAVE_SIGEMPTYSET 1
+
/* Define if you have the sigsetmask function. */
/* #undef HAVE_SIGSETMASK */
/* Define if you have the socket function. */
#define HAVE_SOCKET 1
+/* Define if you have the strerror function. */
+#define HAVE_STRERROR 1
+
/* Define if you have the strftime function. */
#define HAVE_STRFTIME 1
+/* Define if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
/* Define if you have the strstr function. */
#define HAVE_STRSTR 1
-/* Define if you have the sysconf function. */
-#define HAVE_SYSCONF 1
-
/* Define if you have the ttyslot function. */
#define HAVE_TTYSLOT 1
+/* Define if you have the usleep function. */
+#define HAVE_USLEEP 1
+
/* Define if you have the <crypt.h> header file. */
/* #undef HAVE_CRYPT_H */
@@ -288,6 +342,9 @@
/* Define if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1
+/* Define if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
/* Define if you have the <sys/signal.h> header file. */
#define HAVE_SYS_SIGNAL_H 1
diff --git a/contrib/opie/libopie/generator.c b/contrib/opie/libopie/generator.c
index 539a1f9..02167bf 100644
--- a/contrib/opie/libopie/generator.c
+++ b/contrib/opie/libopie/generator.c
@@ -1,7 +1,7 @@
/* generator.c: The opiegenerator() library function.
-%%% portions-copyright-cmetz
-Portions of this software are Copyright 1996 by Craig Metz, All Rights
+%%% portions-copyright-cmetz-96
+Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights
Reserved. The Inner Net License Version 2 applies to these portions of
the software.
You should have received a copy of the license with this software. If
@@ -9,6 +9,9 @@ you didn't get a copy, you may request one from <license@inner.net>.
History:
+ Modified by cmetz for OPIE 2.31. Renamed "init" to "init-hex".
+ Removed active attack protection support. Fixed fairly
+ bug in how init response was computed (i.e., dead wrong).
Modified by cmetz for OPIE 2.3. Use _opieparsechallenge(). ifdef
around string.h. Output hex responses by default, output
OTP re-init extended responses (same secret) if sequence
@@ -45,21 +48,22 @@ int opiegenerator FUNCTION((buffer, secret, response), char *buffer AND char *se
if ((sequence < 2) || (sequence > 9999))
return 1;
- if (!secret[0])
- return 2;
-
if (opiepasscheck(secret))
return -2;
if (i = opiekeycrunch(algorithm, key, seed, secret))
return i;
+
if (sequence < 10) {
char newseed[OPIE_SEED_MAX + 1];
- char newkey[8], cko[8], ckn[8], ckxor[8], cv[8];
+ char newkey[8];
char *c;
char buf[OPIE_SEED_MAX + 48 + 1];
+ while (sequence-- != 0)
+ opiehash(key, algorithm);
+
if (opienewseed(strcpy(newseed, seed)) < 0)
return -1;
@@ -69,43 +73,15 @@ int opiegenerator FUNCTION((buffer, secret, response), char *buffer AND char *se
for (i = 0; i < 499; i++)
opiehash(newkey, algorithm);
- if (opiekeycrunch(algorithm | 0x10, cko, seed, secret))
- return -1;
-
- if (opiekeycrunch(algorithm | 0x10, ckn, newseed, secret))
- return -1;
-
- for (i = 0; i < 8; i++)
- ckxor[i] = cko[i] ^ ckn[i];
-
- strcpy(response, "init:");
+ strcpy(response, "init-hex:");
strcat(response, opiebtoh(buf, key));
sprintf(buf, ":%s 499 %s:", algids[algorithm], newseed);
strcat(response, buf);
strcat(response, opiebtoh(buf, newkey));
- strcat(response, ":");
- strcat(response, opiebtoh(buf, ckxor));
- strcat(response, ":");
-
- c = buf;
- memcpy(c, ckn, sizeof(ckn)); c += sizeof(ckn);
- memcpy(c, key, sizeof(key)); c += sizeof(key);
-#ifdef HAVE_ANSISPRINTF
- c += sprintf(c, "%s 499 %s", algids[algorithm], newseed);
-#else /* HAVE_ANSISPRINTF */
- sprintf(c, "%s 499 %s", algids[algorithm], newseed);
- while(*c) c++;
-#endif /* HAVE_ANSISPRINTF */
- memcpy(c, newkey, sizeof(newkey)); c += sizeof(newkey);
- memcpy(c, ckxor, sizeof(ckxor)); c += sizeof(ckxor);
- memcpy(c, ckn, sizeof(ckn)); c += sizeof(ckn);
- opiehashlen(algorithm, buf, cv, (unsigned int)c - (unsigned int)buf);
-
- strcat(response, opiebtoh(buf, cv));
} else {
while (sequence-- != 0)
opiehash(key, algorithm);
-
+
opiebtoh(response, key);
}
diff --git a/contrib/opie/libopie/hash.c b/contrib/opie/libopie/hash.c
index 0f1e497..a2ffca3 100644
--- a/contrib/opie/libopie/hash.c
+++ b/contrib/opie/libopie/hash.c
@@ -1,27 +1,28 @@
/* hash.c: The opiehash() library function.
-%%% copyright-cmetz
-This software is Copyright 1996 by Craig Metz, All Rights Reserved.
+%%% copyright-cmetz-96
+This software is Copyright 1996-1997 by Craig Metz, All Rights Reserved.
The Inner Net License Version 2 applies to this software.
You should have received a copy of the license with this software. If
you didn't get a copy, you may request one from <license@inner.net>.
History:
+ Updated by cmetz for OPIE 2.31. Added SHA support (which may
+ not be correct). Backed out previous optimizations as
+ they killed thread-safety.
Created by cmetz for OPIE 2.3 using the old hash.c as a guide.
*/
#include "opie_cfg.h"
+#if 0
+#include "sha.h"
+#endif /* 0 */
#include "opie.h"
#include <md4.h>
#include <md5.h>
-static UINT4 mdx_tmp[4];
-#if 0
-static SHA_INFO sha;
-#endif /* 0 */
-
VOIDRET opiehash FUNCTION((x, algorithm), VOIDPTR x AND unsigned algorithm)
{
UINT4 *results = (UINT4 *)x;
@@ -29,30 +30,39 @@ VOIDRET opiehash FUNCTION((x, algorithm), VOIDPTR x AND unsigned algorithm)
switch(algorithm) {
#if 0
case 3:
- sha_init(&sha);
- sha_update(&sha, (BYTE *)x, 8);
- sha_final(&sha);
- results[0] = sha.digest[0] ^ sha.digest[2] ^ sha.digest[4];
- results[1] = sha.digest[1] ^ sha.digest[3] ^ sha.digest[5];
+ {
+ SHA_CTX sha;
+ SHAInit(&sha);
+ SHAUpdate(&sha, (unsigned char *)x, 8);
+ SHAFinal(&sha);
+ results[0] = sha.buffer[0] ^ sha.buffer[2] ^ sha.buffer[4];
+ results[1] = sha.buffer[1] ^ sha.buffer[3];
+ };
break;
#endif /* 0 */
- case 4: {
+ case 4:
+ {
MD4_CTX mdx;
+ UINT4 mdx_tmp[4];
+
MD4Init(&mdx);
MD4Update(&mdx, (unsigned char *)x, 8);
MD4Final((unsigned char *)mdx_tmp, &mdx);
results[0] = mdx_tmp[0] ^ mdx_tmp[2];
results[1] = mdx_tmp[1] ^ mdx_tmp[3];
+ };
break;
- }
- case 5: {
+ case 5:
+ {
MD5_CTX mdx;
+ UINT4 mdx_tmp[4];
+
MD5Init(&mdx);
MD5Update(&mdx, (unsigned char *)x, 8);
MD5Final((unsigned char *)mdx_tmp, &mdx);
results[0] = mdx_tmp[0] ^ mdx_tmp[2];
results[1] = mdx_tmp[1] ^ mdx_tmp[3];
+ };
break;
- }
}
}
diff --git a/contrib/opie/libopie/hashlen.c b/contrib/opie/libopie/hashlen.c
index 7205004..5668b68 100644
--- a/contrib/opie/libopie/hashlen.c
+++ b/contrib/opie/libopie/hashlen.c
@@ -1,7 +1,7 @@
/* hashlen.c: The opiehashlen() library function.
-%%% copyright-cmetz
-This software is Copyright 1996 by Craig Metz, All Rights Reserved.
+%%% copyright-cmetz-96
+This software is Copyright 1996-1997 by Craig Metz, All Rights Reserved.
The Inner Net License Version 2 applies to this software.
You should have received a copy of the license with this software. If
you didn't get a copy, you may request one from <license@inner.net>.
diff --git a/contrib/opie/opie.4 b/contrib/opie/opie.4
index cb0c83b..92de78f 100644
--- a/contrib/opie/opie.4
+++ b/contrib/opie/opie.4
@@ -1,7 +1,7 @@
.\" opie.4: Overview of the OPIE software.
.\"
-.\" %%% portions-copyright-cmetz
-.\" Portions of this software are Copyright 1996 by Craig Metz, All Rights
+.\" %%% portions-copyright-cmetz-96
+.\" Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights
.\" Reserved. The Inner Net License Version 2 applies to these portions of
.\" the software.
.\" You should have received a copy of the license with this software. If
@@ -229,12 +229,6 @@ you would use a call to opieverify. For example:
.sp 0
.sp 0
- #include <sys/types.h>
-.sp 0
- .
-.sp 0
- .
-.sp 0
#include <stdio.h>
.sp 0
.
diff --git a/contrib/opie/opie.h b/contrib/opie/opie.h
index 76c07ed..67e85fc 100644
--- a/contrib/opie/opie.h
+++ b/contrib/opie/opie.h
@@ -1,8 +1,8 @@
/* opie.h: Data structures and values for the OPIE authentication
system that a program might need.
-%%% portions-copyright-cmetz
-Portions of this software are Copyright 1996 by Craig Metz, All Rights
+%%% portions-copyright-cmetz-96
+Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights
Reserved. The Inner Net License Version 2 applies to these portions of
the software.
You should have received a copy of the license with this software. If
@@ -15,6 +15,7 @@ License Agreement applies to this software.
History:
+ Modified by cmetz for OPIE 2.31. Removed active attack protection.
Modified by cmetz for OPIE 2.3. Renamed PTR to VOIDPTR. Added
re-init key and extension file fields to struct opie. Added
opie_ prefix on struct opie members. Added opie_flags field
@@ -32,7 +33,7 @@ License Agreement applies to this software.
(skey.h).
*/
#ifndef _OPIE_H
-#define _OPIE_H
+#define _OPIE_H 1
struct opie {
int opie_flags;
@@ -42,9 +43,6 @@ struct opie {
char *opie_seed;
char *opie_val;
long opie_recstart;
- char opie_extbuf[129]; /* > OPIE_PRINCIPAL_MAX + 1 + 16 + 2 + 1 */
- long opie_extrecstart;
- char *opie_reinitkey;
};
#define __OPIE_FLAGS_RW 1
@@ -71,11 +69,7 @@ struct opie {
/* Maximum length of a principal (read: user name) */
#define OPIE_PRINCIPAL_MAX 32
-struct opiemdx_ctx {
- u_int32_t state[4];
- u_int32_t count[2];
- unsigned char buffer[64];
-};
+#include <sys/cdefs.h>
__BEGIN_DECLS
int opieaccessfile __P((char *));
@@ -101,33 +95,28 @@ void opierandomchallenge __P((char *));
char * opieskipspace __P((register char *));
void opiestripcrlf __P((char *));
int opieverify __P((struct opie *,char *));
-int opiepasswd __P((struct opie *, int, char *, int, char *, char *));
+int opiepasswd __P((struct opie *, int, char *, int, char *, char *));
char *opiereadpass __P((char *, int, int));
int opielogin __P((char *line, char *name, char *host));
__END_DECLS
-#if _OPIE /* internal glue support */
-
-#define VOIDPTR void *
-#define VOIDRET void
-#define NOARGS void
-#define FUNCTION(arglist, args) (args)
-#define AND ,
-#define FUNCTION_NOARGS ()
-#define UINT4 u_int32_t
+#if _OPIE
+#define VOIDPTR void *
+#define VOIDRET void
+#define NOARGS void
+#define FUNCTION(arglist, args) (args)
+#define AND ,
+#define FUNCTION_NOARGS ()
+#define UINT4 u_int32_t
__BEGIN_DECLS
struct utmp;
-int __opiegetutmpentry __P((char *, struct utmp *));
-int __opiereadrec __P((struct opie *));
-int __opiewriterec __P((struct opie *));
-
+int __opiegetutmpentry __P((char *, struct utmp *));
#ifdef EOF
FILE *__opieopen __P((char *, int, int));
-#endif
-
-__END_DECLS
-
+#endif /* EOF */
+int __opiereadrec __P((struct opie *));
+int __opiewriterec __P((struct opie *));
#endif /* _OPIE */
-
+__END_DECLS
#endif /* _OPIE_H */
diff --git a/contrib/opie/opie_cfg.h b/contrib/opie/opie_cfg.h
index 2dad7f9..d890814 100644
--- a/contrib/opie/opie_cfg.h
+++ b/contrib/opie/opie_cfg.h
@@ -1,7 +1,7 @@
/* opie_cfg.h: Various configuration-type pieces of information for OPIE.
-%%% portions-copyright-cmetz
-Portions of this software are Copyright 1996 by Craig Metz, All Rights
+%%% portions-copyright-cmetz-96
+Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights
Reserved. The Inner Net License Version 2 applies to these portions of
the software.
You should have received a copy of the license with this software. If
@@ -14,6 +14,11 @@ License Agreement applies to this software.
History:
+ Modified by cmetz for OPIE 2.31. Added 4.4BSD-Lite pathnames.h
+ definitions from ftpd. Added struct spwd definition and
+ HAVE_SHADOW logic for SunOS C2 shadow password support.
+ Moved user locking config to configure script. Removed
+ options.h.
Modified by cmetz for OPIE 2.3. Splatted with opie_auto.h.
Obseleted many symbols. Changed OPIE_PASS_{MIN,MAX} to
OPIE_SECRET_{MIN,MAX}. Fixed SHADOW+UTMP definitions.
@@ -41,15 +46,17 @@ License Agreement applies to this software.
Written at NRL for OPIE 2.0.
*/
-#define VERSION "2.3"
-#define DATE "Sunday, September 22, 1996"
+#ifndef _OPIE_CFG_H
+#define _OPIE_CFG_H 1
+
+#define VERSION "2.31"
+#define DATE "Thursday, March 20, 1997"
#ifndef unix
#define unix 1
#endif /* unix */
#include "config.h"
-#include "options.h"
/* System characteristics */
@@ -92,21 +99,18 @@ License Agreement applies to this software.
#endif /* PATH_MAIL */
#endif /* MAIL_DIR */
-#if HAVE_SHADOW_H && HAVE_GETSPENT && HAVE_ENDSPENT
-#if defined(linux) && !HAVE_ETC_SHADOW
+#if HAVE_SHADOW_H && HAVE_GETSPNAM && HAVE_ENDSPENT
+#if defined(linux) && !HAVE_ETC_SHADOW
#define HAVE_SHADOW 0
#else /* defined(linux) && !HAVE_ETC_SHADOW */
#define HAVE_SHADOW 1
#endif /* defined(linux) && !HAVE_ETC_SHADOW */
-#endif /* HAVE_SHADOW_H && HAVE_GETSPENT && HAVE_ENDSPENT */
-
-#if !HAVE_SETEUID && HAVE_SETREUID
-#define seteuid(x) setreuid(-1, x)
-#endif /* !HAVE_SETEUID && HAVE_SETREUID */
+#endif /* HAVE_SHADOW_H && HAVE_GETSPNAM && HAVE_ENDSPENT */
-#if !HAVE_SETEGID && HAVE_SETREGID
-#define setegid(x) setregid(-1, x)
-#endif /* !HAVE_SETEGID && HAVE_SETREGID */
+#if HAVE_SUNOS_C2_SHADOW && !HAVE_SHADOW
+#undef HAVE_SHADOW
+#define HAVE_SHADOW 1
+#endif /* HAVE_SUNOS_C2_SHADOW && !HAVE_SHADOW */
/* If the user didn't specify, default to MD5 */
#ifndef MDX
@@ -125,14 +129,22 @@ License Agreement applies to this software.
#define _PATH_FTPUSERS "/etc/ftpusers"
#endif
+#ifndef _PATH_FTPLOGINMESG
+#define _PATH_FTPLOGINMESG "/etc/ftpmotd"
+#endif /* _PATH_FTPLOGINMESG */
+
+#ifndef _PATH_FTPWELCOME
+#define _PATH_FTPWELCOME "/etc/ftpwelcome"
+#endif /* _PATH_FTPWELCOME */
+
+#ifndef _PATH_NOLOGIN
+#define _PATH_NOLOGIN "/etc/nologin"
+#endif /* _PATH_NOLOGIN */
+
#ifndef TTYGRPNAME
#define TTYGRPNAME "tty" /* name of group to own ttys */
#endif
-#ifndef NO_LOGINS_FILE
-#define NO_LOGINS_FILE "/etc/nologin"
-#endif
-
#ifndef QUIET_LOGIN_FILE
#define QUIET_LOGIN_FILE ".hushlogin"
#endif
@@ -141,10 +153,6 @@ License Agreement applies to this software.
#define OPIE_ALWAYS_FILE ".opiealways"
#endif
-#ifndef OPIE_LOCK_PREFIX
-#define OPIE_LOCK_PREFIX "/tmp/opie-lock."
-#endif
-
#ifndef OPIE_LOCK_TIMEOUT
#define OPIE_LOCK_TIMEOUT (30*60)
#endif
@@ -165,4 +173,11 @@ License Agreement applies to this software.
#define POINTER unsigned char *
#endif /* POINTER */
+#ifdef HAVE_SUNOS_C2_SHADOW
+struct spwd {
+ char *sp_pwdp;
+};
+#endif /* HAVE_SUNOS_C2_SHADOW */
+
#define _OPIE 1
+#endif /* _OPIE_CFG_H */
diff --git a/contrib/opie/opieinfo.1 b/contrib/opie/opieinfo.1
index aaf388b..b44ddf4 100644
--- a/contrib/opie/opieinfo.1
+++ b/contrib/opie/opieinfo.1
@@ -1,7 +1,7 @@
.\" opieinfo.1: Manual page for the opieinfo(1) program.
.\"
-.\" %%% portions-copyright-cmetz
-.\" Portions of this software are Copyright 1996 by Craig Metz, All Rights
+.\" %%% portions-copyright-cmetz-96
+.\" Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights
.\" Reserved. The Inner Net License Version 2 applies to these portions of
.\" the software.
.\" You should have received a copy of the license with this software. If
diff --git a/contrib/opie/opiekey.1 b/contrib/opie/opiekey.1
index f33c1f8..2dea07e 100644
--- a/contrib/opie/opiekey.1
+++ b/contrib/opie/opiekey.1
@@ -1,7 +1,7 @@
.\" opiekey.1: Manual page for the opiekey(1) program.
.\"
-.\" %%% portions-copyright-cmetz
-.\" Portions of this software are Copyright 1996 by Craig Metz, All Rights
+.\" %%% portions-copyright-cmetz-96
+.\" Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights
.\" Reserved. The Inner Net License Version 2 applies to these portions of
.\" the software.
.\" You should have received a copy of the license with this software. If
diff --git a/contrib/opie/opiepasswd.1 b/contrib/opie/opiepasswd.1
index c5ff11d..1f9a9ee 100644
--- a/contrib/opie/opiepasswd.1
+++ b/contrib/opie/opiepasswd.1
@@ -1,7 +1,7 @@
.\" opiepasswd.1: Manual page for the opiepasswd(1) program.
.\"
-.\" %%% portions-copyright-cmetz
-.\" Portions of this software are Copyright 1996 by Craig Metz, All Rights
+.\" %%% portions-copyright-cmetz-96
+.\" Portions of this software are Copyright 1996-1997 by Craig Metz, All Rights
.\" Reserved. The Inner Net License Version 2 applies to these portions of
.\" the software.
.\" You should have received a copy of the license with this software. If
OpenPOWER on IntegriCloud