@@ -13,32 +13,50 @@ * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ +#import "OFObject.h" #import "OFASN1Value.h" OF_ASSUME_NONNULL_BEGIN @class OFData; /*! - * @brief An ASN.1 bit string. + * @brief An ASN.1 BitString. */ -@interface OFASN1BitString: OFASN1Value +@interface OFASN1BitString: OFObject { OFData *_bitStringValue; size_t _bitStringLength; } /*! - * @brief The bit string value. + * @brief The BitString value. */ @property (readonly, nonatomic) OFData *bitStringValue; /*! - * @brief The length of the bit string in bits. + * @brief The length of the BitString in bits. */ @property (readonly, nonatomic) size_t bitStringLength; + +- (instancetype)init OF_UNAVAILABLE; + +/*! + * @brief Initializes an already allocated ASN.1 BitString with the specified + * arguments. + * + * @param tagClass The tag class of the value's type + * @param tagNumber The tag number of the value's type + * @param constructed Whether the value if of a constructed type + * @param DEREncodedContents The DER-encoded contents octets of the value. + * @return An initialized ASN.1 BitString + */ +- (instancetype)initWithTagClass: (of_asn1_tag_class_t)tagClass + tagNumber: (of_asn1_tag_number_t)tagNumber + constructed: (bool)constructed + DEREncodedContents: (OFData *)DEREncodedContents; @end OF_ASSUME_NONNULL_END