Re: x509 Extension missing constructors

cryptearth <[email protected]> Fri, 12 Jul 2019 07:12:17 +0200
Newsgroups gmane.comp.encryption.bouncy-castle.devel
Message-ID <[email protected]>
Hey David,

thanks for the reply. I've just checked - ASN1OctetString is a subtype 
of ASN1Encodable - didn't seen that before. Wouldn't it be smarter to 
just change the type from ASN1OctetString to its interface ASN1Encodable 
or would it break other boundaries with supertype ASN1Primitive?
Also: I don't think "create" is a good name for such a method, 
getInstance maybe better. But nvm, thanks for the addition anyway.

Matt

Am 12.07.2019 um 02:18 schrieb David Hook:
> I've added a static create() method. There would be a type clash with
> the constructor with ASN1OctetString otherwise.
>
> Regards,
>
> David
>
> On 11/7/19 7:55 pm, cryptearth wrote:
>> Hi there, Matt here.
>>
>> As I'm building a helper class for set up and use my own PKI CA I
>> noticed that the class org.bouncycastle.asn1.x509.Extension is missing
>> constructors:
>>
>> Extension(ASN1ObjectIdentifier, ASN1Boolean, ASN1Encodable)
>> Extension(ASN1ObjectIdentifier, boolean, ASN1Encodable)
>>
>> Why I think one or both of this constructors missing:
>> org.bouncycastle.cert.X509v3CertificateBuilder has the method
>> addExtension(ASN1ObjectIdentifier, boolean, ASN1Encodable) so it's
>> easy to do some like this:
>>
>> .addExtension(Extension.basicConstraints, true, new
>> BasicConstraints(true))
>>
>> For a helper it's better to have an array of type Extension to rapid
>> add them in a loop with the method addExtension(Extension). The major
>> inconvenience here is that to set up the array one has to write a line
>> like this:
>>
>> new Extension(Extension.basicConstraints, true, (new
>> BasicConstraints(true)).getEncoded())
>>
>> This involves error prone double conversion from object to byte array
>> and back to an object just because there is now constructor taking an
>> ASN1Encodable directly. As side note: Aside from possible error prone
>> it looks like code smell and interrupts the code flow when reading it
>> without knowing the lib or figure it out with doc.
>>
>> Thanks in advance and maybe consider adding one or both constructors
>> in next release.
>>
>> Matt
>>
>>
>
>