X509_EXTENSION_SET_OBJECT(3ossl)

πŸ“¦
version 15.1 Β· 3 versions
, in freebsd 15.1

πŸŽ€ X509_EXTENSION_SET_OBJECT πŸŽ€

okay bestie, welcome to the 3ossl manual page for X509_EXTENSION_SET_OBJECT β€” extension utility functions and your new fave little squad. this is where we set an extension’s object, criticality, and data; create extensions by NID or OBJ; and get all that info back out. no cap, we’re in the extension internals now. πŸ’…


✨ NAME ✨

extension utility functions, bestie β€” say hi to the whole squad:

  • X509_EXTENSION_set_object β€” sets the extension object.
  • X509_EXTENSION_set_critical β€” sets the criticality.
  • X509_EXTENSION_set_data β€” sets the extension data.
  • X509_EXTENSION_create_by_NID β€” creates an extension by NID.
  • X509_EXTENSION_create_by_OBJ β€” creates an extension by OBJ.
  • X509_EXTENSION_get_object β€” gets the extension object.
  • X509_EXTENSION_get_critical β€” gets the criticality.
  • X509_EXTENSION_get_data β€” gets the extension data.

🧚 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);

πŸ’– DESCRIPTION πŸ’–

  • X509_EXTENSION_set_object() β€” sets the extension type of ex to obj. the obj pointer is duplicated internally, so obj should be freed up after use. 🫢
  • X509_EXTENSION_set_critical() β€” sets the criticality of ex to crit. if crit is zero, the extension is non-critical; otherwise it is critical. πŸ”₯
  • X509_EXTENSION_set_data() β€” sets the data in extension ex to data. the data pointer is duplicated internally. πŸŽ€
  • X509_EXTENSION_create_by_NID() β€” creates an extension of type nid, criticality crit, using data as the data. the created extension is returned and written to *ex, reusing or allocating a new extension if necessary, so *ex should either be NULL or a valid X509_EXTENSION structure β€” it must not be an uninitialised pointer. ⚠️
  • X509_EXTENSION_create_by_OBJ() β€” identical to X509_EXTENSION_create_by_NID(), except it creates an extension using obj instead of a NID. πŸ’…
  • X509_EXTENSION_get_object() β€” returns the extension type of ex as an ASN1_OBJECT pointer. the returned pointer is an internal value which must not be freed up. πŸ¦‹
  • X509_EXTENSION_get_critical() β€” returns the criticality of extension ex; it returns 1 for critical and 0 for non-critical. ✨
  • X509_EXTENSION_get_data() β€” returns the data of extension ex. the returned pointer is an internal value which must not be freed up. 🌸

πŸ”₯ 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(). πŸ‘‘

direct manipulation is a thing you can do, bestie, but most apps should take the encode/decode route instead. iykyk. πŸ’€

the data associated with an extension is the extension encoding in an ASN1_OCTET_STRING structure. 🧚


🌈 RETURN VALUES 🌈

  • X509_EXTENSION_set_object(), X509_EXTENSION_set_critical(), and X509_EXTENSION_set_data() return 1 for success and 0 for failure. 🫢
  • X509_EXTENSION_create_by_NID() and X509_EXTENSION_create_by_OBJ() return an X509_EXTENSION pointer or NULL if an error occurs. 😭
  • X509_EXTENSION_get_object() returns an ASN1_OBJECT pointer. ⭐
  • X509_EXTENSION_get_critical() returns 0 for non-critical and 1 for critical. πŸ’œ
  • X509_EXTENSION_get_data() returns an ASN1_OCTET_STRING pointer. πŸŽ€

πŸ¦‹ SEE ALSO πŸ¦‹


Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (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 <https://www.openssl.org/source/license.html>. πŸ’…


that’s the whole page, bestie 🫢 this beauty is from OpenSSL source version 3.5.6, dated 2026-04-07 β€” footer handled, periodt. πŸŽ€

πŸ“¦ where this page comes from