Differences From Artifact [25dbe148e7]:
- File src/OFASN1IA5String.m — part of check-in [d3207b2a3d] at 2018-10-13 22:58:53 on branch trunk — OFASN1*: Add -[description] (user: js, size: 1856) [annotate] [blame] [check-ins using]
To Artifact [7247e3cb9c]:
- File
src/OFASN1IA5String.m
— part of check-in
[b1944fd052]
at
2018-10-27 13:01:38
on branch trunk
— Do not subclass OFASN1Value
The reason for this is that OFASN1Value requires an initializer for DER
encoding, however, it might be beneficial to create an ASN.1 type
without providing DER encoding for it. (user: js, size: 2164) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 | #import "OFData.h" #import "OFString.h" #import "OFInvalidArgumentException.h" @implementation OFASN1IA5String @synthesize IA5StringValue = _IA5StringValue; - (instancetype)initWithTagClass: (of_asn1_tag_class_t)tagClass tagNumber: (of_asn1_tag_number_t)tagNumber constructed: (bool)constructed DEREncodedContents: (OFData *)DEREncodedContents { | > > > > > | < < < | | > | > | | > > > > > > > > > > > > > > > > > > > > | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 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 | #import "OFData.h" #import "OFString.h" #import "OFInvalidArgumentException.h" @implementation OFASN1IA5String @synthesize IA5StringValue = _IA5StringValue; - (instancetype)init { OF_INVALID_INIT_METHOD } - (instancetype)initWithTagClass: (of_asn1_tag_class_t)tagClass tagNumber: (of_asn1_tag_number_t)tagNumber constructed: (bool)constructed DEREncodedContents: (OFData *)DEREncodedContents { self = [super init]; @try { if (tagClass != OF_ASN1_TAG_CLASS_UNIVERSAL || tagNumber != OF_ASN1_TAG_NUMBER_IA5_STRING || constructed) @throw [OFInvalidArgumentException exception]; if ([DEREncodedContents itemSize] != 1) @throw [OFInvalidArgumentException exception]; _IA5StringValue = [[OFString alloc] initWithCString: [DEREncodedContents items] encoding: OF_STRING_ENCODING_ASCII length: [DEREncodedContents count]]; } @catch (id e) { [self release]; @throw e; } return self; } - (void)dealloc { [_IA5StringValue release]; [super dealloc]; } - (OFString *)stringValue { return [self IA5StringValue]; } - (bool)isEqual: (id)object { OFASN1IA5String *IA5String; if (![object isKindOfClass: [OFASN1IA5String class]]) return false; IA5String = object; if (![IA5String->_IA5StringValue isEqual: _IA5StringValue]) return false; return true; } - (uint32_t)hash { return [_IA5StringValue hash]; } - (OFString *)description { return [OFString stringWithFormat: @"<OFASN1IA5String: %@>", _IA5StringValue]; } @end |