288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
|
EXPECT_EXCEPTION(@"Detection of truncated enumerated",
OFTruncatedDataException,
[[OFData dataWithItems: "\x0A\x02\x00"
count: 3] objectByParsingASN1DER])
/* UTF-8 string */
TEST(@"Parsing of UTF-8 string",
[[[[OFData dataWithItems: "\x0C\x0EHällo Wörld!"
count: 16] objectByParsingASN1DER]
UTF8StringValue] isEqual: @"Hällo Wörld!"] &&
[[[[OFData dataWithItems: "\x0C\x81\x80xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xxxxxxxxxxxxxxxxxxxx"
count: 131] objectByParsingASN1DER]
UTF8StringValue] isEqual: @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@"xxxxxxxxxxx"])
EXPECT_EXCEPTION(@"Detection of out of range UTF-8 string",
OFOutOfRangeException,
[[OFData dataWithItems: "\x0C\x89"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01"
count: 11] objectByParsingASN1DER])
|
|
|
|
|
|
|
|
<
|
|
|
|
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
|
EXPECT_EXCEPTION(@"Detection of truncated enumerated",
OFTruncatedDataException,
[[OFData dataWithItems: "\x0A\x02\x00"
count: 3] objectByParsingASN1DER])
/* UTF-8 string */
TEST(@"Parsing of UTF-8 string",
[[[OFData dataWithItems: "\x0C\x0EHällo Wörld!"
count: 16] objectByParsingASN1DER]
isEqual: @"Hällo Wörld!"] &&
[[[OFData dataWithItems: "\x0C\x81\x80xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xxxxxxxxxxxxxxxxx"
count: 131] objectByParsingASN1DER]
isEqual: @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
@"xxxxxxxxxxxxxxxx"])
EXPECT_EXCEPTION(@"Detection of out of range UTF-8 string",
OFOutOfRangeException,
[[OFData dataWithItems: "\x0C\x89"
"\x01\x01\x01\x01\x01\x01\x01\x01\x01"
count: 11] objectByParsingASN1DER])
|
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
(array = [[OFData dataWithItems: "\x30\x00"
count: 2] objectByParsingASN1DER]) &&
[array isKindOfClass: [OFArray class]] && array.count == 0 &&
(array = [[OFData dataWithItems: "\x30\x09\x02\x01\x7B\x0C\x04Test"
count: 11] objectByParsingASN1DER]) &&
[array isKindOfClass: [OFArray class]] && array.count == 2 &&
[[array objectAtIndex: 0] longLongValue] == 123 &&
[[[array objectAtIndex: 1] stringValue] isEqual: @"Test"])
EXPECT_EXCEPTION(@"Detection of truncated sequence #1",
OFTruncatedDataException,
[[OFData dataWithItems: "\x30\x01"
count: 2] objectByParsingASN1DER])
EXPECT_EXCEPTION(@"Detection of truncated sequence #2",
|
|
|
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
|
(array = [[OFData dataWithItems: "\x30\x00"
count: 2] objectByParsingASN1DER]) &&
[array isKindOfClass: [OFArray class]] && array.count == 0 &&
(array = [[OFData dataWithItems: "\x30\x09\x02\x01\x7B\x0C\x04Test"
count: 11] objectByParsingASN1DER]) &&
[array isKindOfClass: [OFArray class]] && array.count == 2 &&
[[array objectAtIndex: 0] longLongValue] == 123 &&
[[array objectAtIndex: 1] isEqual: @"Test"])
EXPECT_EXCEPTION(@"Detection of truncated sequence #1",
OFTruncatedDataException,
[[OFData dataWithItems: "\x30\x01"
count: 2] objectByParsingASN1DER])
EXPECT_EXCEPTION(@"Detection of truncated sequence #2",
|
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
|
count: 2] objectByParsingASN1DER]) &&
[set isKindOfClass: [OFSet class]] && set.count == 0 &&
(set = [[OFData dataWithItems: "\x31\x09\x02\x01\x7B\x0C\x04Test"
count: 11] objectByParsingASN1DER]) &&
[set isKindOfClass: [OFSet class]] && set.count == 2 &&
(enumerator = [set objectEnumerator]) &&
[[enumerator nextObject] longLongValue] == 123 &&
[[[enumerator nextObject] stringValue] isEqual: @"Test"])
EXPECT_EXCEPTION(@"Detection of invalid set",
OFInvalidFormatException,
[[OFData dataWithItems: "\x31\x06\x02\x01\x02\x02\x01\x01"
count: 8] objectByParsingASN1DER])
EXPECT_EXCEPTION(@"Detection of truncated set #1",
|
|
|
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
|
count: 2] objectByParsingASN1DER]) &&
[set isKindOfClass: [OFSet class]] && set.count == 0 &&
(set = [[OFData dataWithItems: "\x31\x09\x02\x01\x7B\x0C\x04Test"
count: 11] objectByParsingASN1DER]) &&
[set isKindOfClass: [OFSet class]] && set.count == 2 &&
(enumerator = [set objectEnumerator]) &&
[[enumerator nextObject] longLongValue] == 123 &&
[[enumerator nextObject] isEqual: @"Test"])
EXPECT_EXCEPTION(@"Detection of invalid set",
OFInvalidFormatException,
[[OFData dataWithItems: "\x31\x06\x02\x01\x02\x02\x01\x01"
count: 8] objectByParsingASN1DER])
EXPECT_EXCEPTION(@"Detection of truncated set #1",
|