@@ -25,30 +25,28 @@ @implementation OFASN1BitString @synthesize bitStringValue = _bitStringValue; @synthesize bitStringLength = _bitStringLength; -+ (instancetype)bitStringWithBitStringValue: (OFData *)bitStringValue - bitStringLength: (size_t)bitStringLength ++ (instancetype)bitStringWithBitString: (OFData *)bitString + length: (size_t)length { - return [[[self alloc] - initWithBitStringValue: bitStringValue - bitStringLength: bitStringLength] autorelease]; + return [[[self alloc] initWithBitString: bitString + length: length] autorelease]; } -- (instancetype)initWithBitStringValue: (OFData *)bitStringValue - bitStringLength: (size_t)bitStringLength +- (instancetype)initWithBitString: (OFData *)bitString length: (size_t)length { self = [super init]; @try { - if (bitStringValue.count * bitStringValue.itemSize != - OF_ROUND_UP_POW2(8, bitStringLength) / 8) + if (bitString.count * bitString.itemSize != + OF_ROUND_UP_POW2(8, length) / 8) @throw [OFInvalidFormatException exception]; - _bitStringValue = [bitStringValue copy]; - _bitStringLength = bitStringLength; + _bitStringValue = [bitString copy]; + _bitStringLength = length; } @catch (id e) { [self release]; @throw e; } @@ -59,12 +57,12 @@ tagNumber: (of_asn1_tag_number_t)tagNumber constructed: (bool)constructed DEREncodedContents: (OFData *)DEREncodedContents { void *pool = objc_autoreleasePoolPush(); - OFData *bitStringValue; - size_t bitStringLength; + OFData *bitString; + size_t length; @try { unsigned char unusedBits; size_t count = DEREncodedContents.count; @@ -89,23 +87,22 @@ @throw [OFInvalidFormatException exception]; if (SIZE_MAX / 8 < count - 1) @throw [OFOutOfRangeException exception]; - bitStringLength = (count - 1) * 8; - bitStringValue = [DEREncodedContents subdataWithRange: + length = (count - 1) * 8; + bitString = [DEREncodedContents subdataWithRange: of_range(1, count - 1)]; if (unusedBits != 0) - bitStringLength -= unusedBits; + length -= unusedBits; } @catch (id e) { [self release]; @throw e; } - self = [self initWithBitStringValue: bitStringValue - bitStringLength: bitStringLength]; + self = [self initWithBitString: bitString length: length]; objc_autoreleasePoolPop(pool); return self; } @@ -122,11 +119,11 @@ [super dealloc]; } - (OFData *)ASN1DERRepresentation { - size_t bitStringValueCount = [_bitStringValue count]; + size_t bitStringValueCount = _bitStringValue.count; size_t roundedUpLength = OF_ROUND_UP_POW2(8, _bitStringLength); unsigned char unusedBits = roundedUpLength - _bitStringLength; unsigned char header[] = { OF_ASN1_TAG_NUMBER_BIT_STRING, bitStringValueCount + 1, @@ -139,11 +136,11 @@ @throw [OFInvalidFormatException exception]; data = [OFMutableData dataWithCapacity: sizeof(header) + bitStringValueCount]; [data addItems: header count: sizeof(header)]; - [data addItems: [_bitStringValue items] count: bitStringValueCount]; + [data addItems: _bitStringValue.items count: bitStringValueCount]; [data makeImmutable]; return data; }