summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorJim Rees <rees@cvs.openbsd.org>2001-07-26 21:05:16 +0000
committerJim Rees <rees@cvs.openbsd.org>2001-07-26 21:05:16 +0000
commit857a7a5489ff3eca33232d3aa92aacffcda03096 (patch)
tree8d612092909dad798570c6bb788c81013901d9fd /usr.bin
parent7e9df75a90f98feb43faf27a40668b98be6a644d (diff)
require confirmation when changing aut0 passphrase
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/sectok/cyberflex.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/usr.bin/sectok/cyberflex.c b/usr.bin/sectok/cyberflex.c
index beb601241e5..8333c587a12 100644
--- a/usr.bin/sectok/cyberflex.c
+++ b/usr.bin/sectok/cyberflex.c
@@ -1,4 +1,4 @@
-/* $Id: cyberflex.c,v 1.13 2001/07/26 20:00:16 rees Exp $ */
+/* $Id: cyberflex.c,v 1.14 2001/07/26 21:05:15 rees Exp $ */
/*
copyright 1999, 2000
@@ -71,11 +71,11 @@ static des_cblock app_key = {0x6A, 0x21, 0x36, 0xF5, 0xD8, 0x0C, 0x47, 0x83};
static void print_acl(int isdir, unsigned char *acl);
static int
-get_AUT0(int ac, char *av[], char *prompt, unsigned char *digest)
+get_AUT0(int ac, char *av[], char *prompt, int confirm, unsigned char *digest)
{
int i, dflag = 0, xflag = 0;
SHA1_CTX ctx;
- char *s;
+ char *s, *s2;
optind = optreset = 1;
opterr = 0;
@@ -99,6 +99,16 @@ get_AUT0(int ac, char *av[], char *prompt, unsigned char *digest)
if (!dflag && !xflag) {
SHA1Init(&ctx);
s = getpass(prompt);
+ if (confirm) {
+ s2 = strdup(s);
+ s = getpass("Re-enter passphrase: ");
+ if (strcmp(s, s2)) {
+ printf("passphrase mismatch\n");
+ return -1;
+ }
+ bzero(s2, strlen(s2));
+ free(s2);
+ }
SHA1Update(&ctx, s, strlen(s));
bzero(s, strlen(s));
SHA1Final(digest, &ctx);
@@ -133,7 +143,7 @@ int jlogin(int ac, char *av[])
}
}
- if (get_AUT0(ac, av, "Enter AUT0 passphrase: ", AUT0) < 0)
+ if (get_AUT0(ac, av, "Enter AUT0 passphrase: ", 0, AUT0) < 0)
return -1;
if (vflag) {
@@ -930,7 +940,7 @@ int jsetpass(int ac, char *av[])
if (!aut0_vfyd && jaut(0, NULL) < 0)
return -1;
- if (get_AUT0(ac, av, "Enter new AUT0 passphrase: ", AUT0) < 0)
+ if (get_AUT0(ac, av, "Enter new AUT0 passphrase: ", 1, AUT0) < 0)
return -1;
cyberflex_fill_key_block (data, 0, 1, AUT0);