-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "zpm.h"
-#include "sha256.h"
-
-int main(int ac, char **av){
- int rv;
- char hash[65];
-
- /*
- * hash stdin
- */
- if (ac == 1 || (ac == 2 && !strcmp(av[1], "-"))) {
- struct sha256_state md;
- unsigned char buf[4096];
- size_t bytes;
- unsigned char tmp[32];
- int j;
-
- sha256_init(&md);
- do {
- bytes = fread(buf, 1, sizeof buf, stdin);
- sha256_process(&md, buf, bytes);
- } while (bytes && !feof(stdin));
- if (ferror(stdin)) {
- exit(1);
- }
- sha256_done(&md, tmp);
- for (j=0;j<32;j++) {
- sprintf(hash+j*2, "%02x", (unsigned)tmp[j]);
- }
- hash[64] = 0;
- printf("%s\n", hash);
- return 0;
- }
-
- if (ac < 2) {
- fprintf(stderr, "usage: path\n");
- return 1;
- }
- rv = zpm_hash(av[1], hash, 0);
- if (rv) {
- printf("%s\n", hash);
- }
-
- return !rv;
-}