Represent a X509 Extension Attribute.
Extensions are additional attributes which can be inserted in a X509 v3 certificate. For example a "Driving License Certificate" could have the driving license number as a extension.
Extensions are represented as a sequence of the extension identifier (Object Identifier), a boolean flag stating whether the extension is to be treated as being critical and the extension value itself (this is again a DER encoding of the extension value).
ASN.1 definition of Extension: Extension ::= SEQUENCE { ExtensionId OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extensionValue OCTET STRING }
All subclasses need to implement a constructor of the form
(Boolean, Object)
where the Object is typically an array of DER encoded bytes.
@author Amit Kapoor
@author Hemma Prafullchandra