]>
Commit | Line | Data |
---|---|---|
8217c099 MW |
1 | /* |
2 | * Copyright (C) 2012 Martin Willi | |
3 | * Copyright (C) 2012 revosec AG | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify it | |
6 | * under the terms of the GNU General Public License as published by the | |
7 | * Free Software Foundation; either version 2 of the License, or (at your | |
8 | * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, but | |
11 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
12 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
13 | * for more details. | |
14 | */ | |
15 | ||
16 | #include <stdio.h> | |
17 | #include <library.h> | |
18 | ||
19 | ||
20 | ||
21 | int main(int argc, char *argv[]) | |
22 | { | |
23 | hash_algorithm_t alg; | |
24 | hasher_t *hasher; | |
25 | char buffer[1024]; | |
26 | int limit = 0, i = 0; | |
27 | ||
34d3bfcf | 28 | library_init(NULL, "hash_burn"); |
b18a5317 | 29 | lib->plugins->load(lib->plugins, PLUGINS); |
8217c099 MW |
30 | atexit(library_deinit); |
31 | ||
32 | printf("loaded: %s\n", PLUGINS); | |
33 | ||
34 | memset(buffer, 0x12, sizeof(buffer)); | |
35 | ||
36 | if (argc < 2) | |
37 | { | |
38 | fprintf(stderr, "usage: %s <algorithm>!\n", argv[0]); | |
39 | return 1; | |
40 | } | |
41 | if (argc > 2) | |
42 | { | |
43 | limit = atoi(argv[2]); | |
44 | } | |
45 | ||
064fe9c9 | 46 | if (!enum_from_name(hash_algorithm_short_names, argv[1], &alg)) |
8217c099 MW |
47 | { |
48 | fprintf(stderr, "unknown hash algorthm: %s\n", argv[1]); | |
49 | return 1; | |
50 | } | |
51 | hasher = lib->crypto->create_hasher(lib->crypto, alg); | |
52 | if (!hasher) | |
53 | { | |
54 | fprintf(stderr, "hash algorthm not supported: %N\n", | |
55 | hash_algorithm_names, alg); | |
56 | return 1; | |
57 | } | |
58 | ||
59 | while (TRUE) | |
60 | { | |
61 | if (!hasher->get_hash(hasher, chunk_from_thing(buffer), buffer)) | |
62 | { | |
63 | fprintf(stderr, "hashing failed!\n"); | |
64 | return 1; | |
65 | } | |
66 | if (limit && ++i == limit) | |
67 | { | |
68 | break; | |
69 | } | |
70 | } | |
71 | hasher->destroy(hasher); | |
72 | return 0; | |
73 | } |