summaryrefslogtreecommitdiff
path: root/sys/src/cmd/unix/drawterm/libsec/thumb.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/src/cmd/unix/drawterm/libsec/thumb.c')
-rw-r--r--sys/src/cmd/unix/drawterm/libsec/thumb.c97
1 files changed, 0 insertions, 97 deletions
diff --git a/sys/src/cmd/unix/drawterm/libsec/thumb.c b/sys/src/cmd/unix/drawterm/libsec/thumb.c
deleted file mode 100644
index cac95a436..000000000
--- a/sys/src/cmd/unix/drawterm/libsec/thumb.c
+++ /dev/null
@@ -1,97 +0,0 @@
-#include <u.h>
-#include <libc.h>
-#include <bio.h>
-#include <auth.h>
-#include <mp.h>
-#include <libsec.h>
-
-enum{ ThumbTab = 1<<10 };
-
-static void *
-emalloc(int n)
-{
- void *p;
- if(n==0)
- n=1;
- p = malloc(n);
- if(p == nil){
- exits("out of memory");
- }
- memset(p, 0, n);
- return p;
-}
-
-void
-freeThumbprints(Thumbprint *table)
-{
- Thumbprint *hd, *p, *q;
- for(hd = table; hd < table+ThumbTab; hd++){
- for(p = hd->next; p; p = q){
- q = p->next;
- free(p);
- }
- }
- free(table);
-}
-
-int
-okThumbprint(uchar *sum, Thumbprint *table)
-{
- Thumbprint *p;
- int i = ((sum[0]<<8) + sum[1]) & (ThumbTab-1);
-
- for(p = table[i].next; p; p = p->next)
- if(memcmp(sum, p->sha1, SHA1dlen) == 0)
- return 1;
- return 0;
-}
-
-static void
-loadThumbprints(char *file, Thumbprint *table, Thumbprint *crltab)
-{
- Thumbprint *entry;
- Biobuf *bin;
- char *line, *field[50];
- uchar sum[SHA1dlen];
- int i;
-
- bin = Bopen(file, OREAD);
- if(bin == nil)
- return;
- for(; (line = Brdstr(bin, '\n', 1)) != 0; free(line)){
- if(tokenize(line, field, nelem(field)) < 2)
- continue;
- if(strcmp(field[0], "#include") == 0){
- loadThumbprints(field[1], table, crltab);
- continue;
- }
- if(strcmp(field[0], "x509") != 0 || strncmp(field[1], "sha1=", strlen("sha1=")) != 0)
- continue;
- field[1] += strlen("sha1=");
- dec16(sum, sizeof(sum), field[1], strlen(field[1]));
- if(crltab && okThumbprint(sum, crltab))
- continue;
- entry = (Thumbprint*)emalloc(sizeof(*entry));
- memcpy(entry->sha1, sum, SHA1dlen);
- i = ((sum[0]<<8) + sum[1]) & (ThumbTab-1);
- entry->next = table[i].next;
- table[i].next = entry;
- }
- Bterm(bin);
-}
-
-Thumbprint *
-initThumbprints(char *ok, char *crl)
-{
- Thumbprint *table, *crltab = nil;
-
- if(crl){
- crltab = emalloc(ThumbTab * sizeof(*table));
- loadThumbprints(crl, crltab, nil);
- }
- table = emalloc(ThumbTab * sizeof(*table));
- loadThumbprints(ok, table, crltab);
- free(crltab);
- return table;
-}
-