Search code examples
javasecuritycertificatebouncycastlepki

From DEROctetString to KeyUsage


In bouncycastle I can create a DEROctetString starting from a KeyUsage.

How can I obtain KeyUsage starting from a DEROctetString then?

Example:

DEROctetString derString = new DEROctetString(new KeyUsage(KeyUsage.digitalSignature));
KeyUsage ku = ...(some code to get back KeyUsage starting from derString)...

I need this because I'm able to create Certificate Requests with KeyUsage extension request, but then, given the Certificate Request alone, I'm not able to get back the KeyUsage extension.


Solution

  • I've found the solution using ASN1InputStream:

    ASN1InputStream ais = new ASN1InputStream(derOctetString.getOctetStream());
    KeyUsage ku = new KeyUsage((DERBitString) ais.readObject());
    

    That works!