︙ | | | ︙ | |
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
|
@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;
|
|
|
|
|
|
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
|
@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;
|
︙ | | | ︙ | |
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
[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];
|
|
|
|
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
[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];
|
︙ | | | ︙ | |
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
SHA512Hash = [OFSHA512Hash hashWithAllowsSwappableMemory: true];
for (OFString *path in optionsParser.remainingArguments) {
void *pool = objc_autoreleasePoolPush();
OFStream *file;
if ([path isEqual: @"-"])
file = of_stdin;
else {
@try {
file = [OFFile fileWithPath: path mode: @"r"];
} @catch (OFOpenItemFailedException *e) {
OFString *error = [OFString
stringWithCString: strerror(e.errNo)
encoding: [OFLocale encoding]];
[of_stderr writeLine: OF_LOCALIZED(
@"failed_to_open_file",
@"Failed to open file %[file]: %[error]",
@"file", e.path,
@"error", error)];
exitStatus = 1;
goto outer_loop_end;
|
|
|
|
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
SHA512Hash = [OFSHA512Hash hashWithAllowsSwappableMemory: true];
for (OFString *path in optionsParser.remainingArguments) {
void *pool = objc_autoreleasePoolPush();
OFStream *file;
if ([path isEqual: @"-"])
file = OFStdIn;
else {
@try {
file = [OFFile fileWithPath: path mode: @"r"];
} @catch (OFOpenItemFailedException *e) {
OFString *error = [OFString
stringWithCString: strerror(e.errNo)
encoding: [OFLocale encoding]];
[OFStdErr writeLine: OF_LOCALIZED(
@"failed_to_open_file",
@"Failed to open file %[file]: %[error]",
@"file", e.path,
@"error", error)];
exitStatus = 1;
goto outer_loop_end;
|
︙ | | | ︙ | |
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
length = [file readIntoBuffer: buffer
length: 1024];
} @catch (OFReadFailedException *e) {
OFString *error = [OFString
stringWithCString: strerror(e.errNo)
encoding: [OFLocale encoding]];
[of_stderr writeLine: OF_LOCALIZED(
@"failed_to_read_file",
@"Failed to read %[file]: %[error]",
@"file", path,
@"error", error)];
exitStatus = 1;
goto outer_loop_end;
|
|
|
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
length = [file readIntoBuffer: buffer
length: 1024];
} @catch (OFReadFailedException *e) {
OFString *error = [OFString
stringWithCString: strerror(e.errNo)
encoding: [OFLocale encoding]];
[OFStdErr writeLine: OF_LOCALIZED(
@"failed_to_read_file",
@"Failed to read %[file]: %[error]",
@"file", path,
@"error", error)];
exitStatus = 1;
goto outer_loop_end;
|
︙ | | | ︙ | |