diff options
Diffstat (limited to 'sys/src/cmd/unix/drawterm/libsec/thumb.c')
-rw-r--r-- | sys/src/cmd/unix/drawterm/libsec/thumb.c | 97 |
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; -} - |