=pod =head1 NAME X509_EXTENSION_set_object, X509_EXTENSION_set_critical, X509_EXTENSION_set_data, X509_EXTENSION_create_by_NID, X509_EXTENSION_create_by_OBJ, X509_EXTENSION_get_object, X509_EXTENSION_get_critical, X509_EXTENSION_get_data - extension utility functions =head1 SYNOPSIS int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, int nid, int crit, ASN1_OCTET_STRING *data); X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, const ASN1_OBJECT *obj, int crit, ASN1_OCTET_STRING *data); ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); =head1 DESCRIPTION X509_EXTENSION_set_object() sets the extension type of B to B. The B pointer is duplicated internally so B should be freed up after use. X509_EXTENSION_set_critical() sets the criticality of B to B. If B is zero the extension in non-critical otherwise it is critical. X509_EXTENSION_set_data() sets the data in extension B to B. The B pointer is duplicated internally. X509_EXTENSION_create_by_NID() creates an extension of type B, criticality B using data B. The created extension is returned and written to B<*ex> reusing or allocating a new extension if necessary so B<*ex> should either be B or a valid B structure it must B be an uninitialised pointer. X509_EXTENSION_create_by_OBJ() is identical to X509_EXTENSION_create_by_NID() except it creates and extension using B instead of a NID. X509_EXTENSION_get_object() returns the extension type of B as an B pointer. The returned pointer is an internal value which must not be freed up. X509_EXTENSION_get_critical() returns the criticality of extension B it returns B<1> for critical and B<0> for non-critical. X509_EXTENSION_get_data() returns the data of extension B. The returned pointer is an internal value which must not be freed up. =head1 NOTES These functions manipulate the contents of an extension directly. Most applications will want to parse or encode and add an extension: they should use the extension encode and decode functions instead such as X509_add1_ext_i2d() and X509_get_ext_d2i(). The B associated with an extension is the extension encoding in an B structure. =head1 RETURN VALUES X509_EXTENSION_set_object() X509_EXTENSION_set_critical() and X509_EXTENSION_set_data() return B<1> for success and B<0> for failure. X509_EXTENSION_create_by_NID() and X509_EXTENSION_create_by_OBJ() return an B pointer or B if an error occurs. X509_EXTENSION_get_object() returns an B pointer. X509_EXTENSION_get_critical() returns B<0> for non-critical and B<1> for critical. X509_EXTENSION_get_data() returns an B pointer. =head1 SEE ALSO L =head1 COPYRIGHT Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at L. =cut