get data from X509_EXTENSION in openSSL 1.1.1.

Viktor Dukhovni openssl-users at dukhovni.org
Fri Jul 10 14:27:47 UTC 2020


On Fri, Jul 10, 2020 at 05:25:03PM +0530, prudvi raj wrote:

> we are upgrading our codebase to 1.1.1 from 1.0.2k.Here's a code snippet
> causing error :
> 
>  ext = X509_get_ext(X509, n);
>  data = ext->value->data;

Given:

    X509_EXTENSION *ext;

you can obtain

    /* ext->object */
    ASN1_OBJECT *oid = X509_EXTENSION_get_object(X509_EXTENSION *ext);

    /* ext->value, formally ASN1_OCTET_STRING, same as ASN1_STRING */
    ASN1_OCTET_STRING *value = X509_EXTENSION_get_data(X509_EXTENSION *ext);

from which you get:

    /* ASN1 type, e.g. V_ASN1_UTF8STRING */
    int type = ASN1_STRING_type(value);

    /* Data length */
    int length = ASN1_STRING_length(value);

    /* Data content, generally not a NUL-terminated C string */
    const unsigned char *data = ASN1_STRING_get0_data(value);

-- 
    Viktor.


More information about the openssl-users mailing list