@@ -122,24 +122,28 @@ [_bitStringValue release]; [super dealloc]; } -- (OFData *)DEREncodedValue +- (OFData *)ASN1DERRepresentation { size_t bitStringValueCount = [_bitStringValue count]; unsigned char lastByteBits = _bitStringLength % 8; - unsigned char header[] = { 3, bitStringValueCount + 1, lastByteBits }; + unsigned char header[] = { + OF_ASN1_TAG_NUMBER_BIT_STRING, + bitStringValueCount + 1, + lastByteBits + }; OFMutableData *data; if (bitStringValueCount + 1 > UINT8_MAX || bitStringValueCount != OF_ROUND_UP_POW2(8, _bitStringLength) / 8) @throw [OFInvalidFormatException exception]; data = [OFMutableData dataWithCapacity: 3 + bitStringValueCount]; [data addItems: header - count: 3]; + count: sizeof(header)]; [data addItems: [_bitStringValue items] count: bitStringValueCount]; [data makeImmutable];