38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
@end
OF_APPLICATION_DELEGATE(OFHash)
static void
help(void)
{
[of_stderr writeLine: OF_LOCALIZED(@"usage",
@"Usage: %[prog] [--md5|--ripemd160|--sha1|--sha224|--sha256|"
@"--sha384|--sha512] file1 [file2 ...]",
@"prog", [OFApplication programName])];
[OFApplication terminateWithStatus: 1];
}
static void
printHash(OFString *algo, OFString *path, id <OFCryptographicHash> hash)
{
const unsigned char *digest = hash.digest;
size_t digestSize = hash.digestSize;
[of_stdout writeFormat: @"%@ ", algo];
for (size_t i = 0; i < digestSize; i++)
[of_stdout writeFormat: @"%02x", digest[i]];
[of_stdout writeFormat: @" %@\n", path];
}
@implementation OFHash
- (void)applicationDidFinishLaunching
{
int exitStatus = 0;
bool calculateMD5, calculateRIPEMD160, calculateSHA1, calculateSHA224;
bool calculateSHA256, calculateSHA384, calculateSHA512;
const of_options_parser_option_t options[] = {
{ '\0', @"md5", 0, &calculateMD5, NULL },
{ '\0', @"ripemd160", 0, &calculateRIPEMD160, NULL },
{ '\0', @"sha1", 0, &calculateSHA1, NULL },
{ '\0', @"sha224", 0, &calculateSHA224, NULL },
{ '\0', @"sha256", 0, &calculateSHA256, NULL },
{ '\0', @"sha384", 0, &calculateSHA384, NULL },
{ '\0', @"sha512", 0, &calculateSHA512, NULL },
{ '\0', nil, 0, NULL, NULL }
};
OFOptionsParser *optionsParser =
[OFOptionsParser parserWithOptions: options];
of_unichar_t option;
OFMD5Hash *MD5Hash = nil;
OFRIPEMD160Hash *RIPEMD160Hash = nil;
OFSHA1Hash *SHA1Hash = nil;
OFSHA224Hash *SHA224Hash = nil;
OFSHA256Hash *SHA256Hash = nil;
OFSHA384Hash *SHA384Hash = nil;
OFSHA512Hash *SHA512Hash = nil;
#ifndef OF_AMIGAOS
[OFLocale addLanguageDirectory: @LANGUAGE_DIR];
#else
[OFLocale addLanguageDirectory: @"PROGDIR:/share/ofhash/lang"];
#endif
while ((option = [optionsParser nextOption]) != '\0') {
switch (option) {
case '?':
if (optionsParser.lastLongOption != nil)
[of_stderr writeLine:
OF_LOCALIZED(@"unknown_long_option",
@"%[prog]: Unknown option: --%[opt]",
@"prog", [OFApplication programName],
@"opt", optionsParser.lastLongOption)];
else {
OFString *optStr = [OFString stringWithFormat:
@"%c", optionsParser.lastOption];
[of_stderr writeLine:
OF_LOCALIZED(@"unknown_option",
@"%[prog]: Unknown option: -%[opt]",
@"prog", [OFApplication programName],
@"opt", optStr)];
}
[OFApplication terminateWithStatus: 1];
|
|
|
|
|
|
|
|
|
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
@end
OF_APPLICATION_DELEGATE(OFHash)
static void
help(void)
{
[OFStdErr writeLine: OF_LOCALIZED(@"usage",
@"Usage: %[prog] [--md5|--ripemd160|--sha1|--sha224|--sha256|"
@"--sha384|--sha512] file1 [file2 ...]",
@"prog", [OFApplication programName])];
[OFApplication terminateWithStatus: 1];
}
static void
printHash(OFString *algo, OFString *path, id <OFCryptographicHash> hash)
{
const unsigned char *digest = hash.digest;
size_t digestSize = hash.digestSize;
[OFStdOut writeFormat: @"%@ ", algo];
for (size_t i = 0; i < digestSize; i++)
[OFStdOut writeFormat: @"%02x", digest[i]];
[OFStdOut writeFormat: @" %@\n", path];
}
@implementation OFHash
- (void)applicationDidFinishLaunching
{
int exitStatus = 0;
bool calculateMD5, calculateRIPEMD160, calculateSHA1, calculateSHA224;
bool calculateSHA256, calculateSHA384, calculateSHA512;
const OFOptionsParserOption options[] = {
{ '\0', @"md5", 0, &calculateMD5, NULL },
{ '\0', @"ripemd160", 0, &calculateRIPEMD160, NULL },
{ '\0', @"sha1", 0, &calculateSHA1, NULL },
{ '\0', @"sha224", 0, &calculateSHA224, NULL },
{ '\0', @"sha256", 0, &calculateSHA256, NULL },
{ '\0', @"sha384", 0, &calculateSHA384, NULL },
{ '\0', @"sha512", 0, &calculateSHA512, NULL },
{ '\0', nil, 0, NULL, NULL }
};
OFOptionsParser *optionsParser =
[OFOptionsParser parserWithOptions: options];
OFUnichar option;
OFMD5Hash *MD5Hash = nil;
OFRIPEMD160Hash *RIPEMD160Hash = nil;
OFSHA1Hash *SHA1Hash = nil;
OFSHA224Hash *SHA224Hash = nil;
OFSHA256Hash *SHA256Hash = nil;
OFSHA384Hash *SHA384Hash = nil;
OFSHA512Hash *SHA512Hash = nil;
#ifndef OF_AMIGAOS
[OFLocale addLanguageDirectory: @LANGUAGE_DIR];
#else
[OFLocale addLanguageDirectory: @"PROGDIR:/share/ofhash/lang"];
#endif
while ((option = [optionsParser nextOption]) != '\0') {
switch (option) {
case '?':
if (optionsParser.lastLongOption != nil)
[OFStdErr writeLine:
OF_LOCALIZED(@"unknown_long_option",
@"%[prog]: Unknown option: --%[opt]",
@"prog", [OFApplication programName],
@"opt", optionsParser.lastLongOption)];
else {
OFString *optStr = [OFString stringWithFormat:
@"%c", optionsParser.lastOption];
[OFStdErr writeLine:
OF_LOCALIZED(@"unknown_option",
@"%[prog]: Unknown option: -%[opt]",
@"prog", [OFApplication programName],
@"opt", optStr)];
}
[OFApplication terminateWithStatus: 1];
|