summaryrefslogtreecommitdiff
path: root/sys/src/cmd/auth/lib/readwrite.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-08-21 03:16:50 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-08-21 03:16:50 +0200
commitc3487a4b49b6988aad0e340ad9e986e4549b9317 (patch)
tree7c0c17cef490f751d305e1689038ddc529ffe021 /sys/src/cmd/auth/lib/readwrite.c
parent63b18e79252845d09abbad44672eabd9233a911b (diff)
authsrv: more aes key stuff
Diffstat (limited to 'sys/src/cmd/auth/lib/readwrite.c')
-rw-r--r--sys/src/cmd/auth/lib/readwrite.c48
1 files changed, 42 insertions, 6 deletions
diff --git a/sys/src/cmd/auth/lib/readwrite.c b/sys/src/cmd/auth/lib/readwrite.c
index 1c19bad01..b5a01e91e 100644
--- a/sys/src/cmd/auth/lib/readwrite.c
+++ b/sys/src/cmd/auth/lib/readwrite.c
@@ -41,7 +41,21 @@ finddeskey(char *db, char *user, char *key)
snprint(filename, sizeof filename, "%s/%s/key", db, user);
n = readfile(filename, key, DESKEYLEN);
if(n != DESKEYLEN)
- return 0;
+ return nil;
+ else
+ return key;
+}
+
+uchar*
+findaeskey(char *db, char *user, uchar *key)
+{
+ int n;
+ char filename[Maxpath];
+
+ snprint(filename, sizeof filename, "%s/%s/aeskey", db, user);
+ n = readfile(filename, (char*)key, AESKEYLEN);
+ if(n != AESKEYLEN)
+ return nil;
else
return key;
}
@@ -49,8 +63,12 @@ finddeskey(char *db, char *user, char *key)
int
findkey(char *db, char *user, Authkey *key)
{
+ int ret;
+
memset(key, 0, sizeof(Authkey));
- return finddeskey(db, user, key->des) != nil;
+ ret = finddeskey(db, user, key->des) != nil;
+ ret |= findaeskey(db, user, key->aes) != nil;
+ return ret;
}
char*
@@ -63,7 +81,7 @@ findsecret(char *db, char *user, char *secret)
n = readfile(filename, secret, SECRETLEN-1);
secret[n]=0;
if(n <= 0)
- return 0;
+ return nil;
else
return secret;
}
@@ -77,7 +95,21 @@ setdeskey(char *db, char *user, char *key)
snprint(filename, sizeof filename, "%s/%s/key", db, user);
n = writefile(filename, key, DESKEYLEN);
if(n != DESKEYLEN)
- return 0;
+ return nil;
+ else
+ return key;
+}
+
+uchar*
+setaeskey(char *db, char *user, uchar *key)
+{
+ int n;
+ char filename[Maxpath];
+
+ snprint(filename, sizeof filename, "%s/%s/aeskey", db, user);
+ n = writefile(filename, (char*)key, AESKEYLEN);
+ if(n != AESKEYLEN)
+ return nil;
else
return key;
}
@@ -85,7 +117,11 @@ setdeskey(char *db, char *user, char *key)
int
setkey(char *db, char *user, Authkey *key)
{
- return setdeskey(db, user, key->des) != nil;
+ int ret;
+
+ ret = setdeskey(db, user, key->des) != nil;
+ ret |= setaeskey(db, user, key->aes) != nil;
+ return ret;
}
char*
@@ -97,7 +133,7 @@ setsecret(char *db, char *user, char *secret)
snprint(filename, sizeof filename, "%s/%s/secret", db, user);
n = writefile(filename, secret, strlen(secret));
if(n != strlen(secret))
- return 0;
+ return nil;
else
return secret;
}