s2i_ASN1_IA5STRING(3) | OpenSSL | s2i_ASN1_IA5STRING(3)

# NAME

i2s_ASN1_IA5STRING, s2i_ASN1_IA5STRING, i2s_ASN1_INTEGER, s2i_ASN1_INTEGER, i2s_ASN1_OCTET_STRING, s2i_ASN1_OCTET_STRING, i2s_ASN1_ENUMERATED, i2s_ASN1_ENUMERATED_TABLE, i2s_ASN1_UTF8STRING, s2i_ASN1_UTF8STRING - convert objects from/to ASN.1/string representation

# SYNOPSIS

     #include <openssl/x509v3.h>
     char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5);
     ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method,
                                       X509V3_CTX *ctx, const char *str);
     char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *method, const ASN1_INTEGER *a);
     ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *method, const char *value);
     char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
                                const ASN1_OCTET_STRING *oct);
     ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
                                             X509V3_CTX *ctx, const char *str);
     char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *method, const ASN1_ENUMERATED *a);
     char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method,
                                    const ASN1_ENUMERATED *e);
     char *i2s_ASN1_UTF8STRING(X509V3_EXT_METHOD *method,
                               ASN1_UTF8STRING *utf8);
     ASN1_UTF8STRING *s2i_ASN1_UTF8STRING(X509V3_EXT_METHOD *method,
                                          X509V3_CTX *ctx, const char *str);

# DESCRIPTION

These functions convert OpenSSL objects to and from their ASN.1/string representation. This function is used for X509v3 extensions.

# NOTES

The letters i and s in i2s and s2i stand for "internal" (that is, an internal C structure) and string respectively. So i2s_ASN1_IA5STRING() converts from internal to string.

It is the caller's responsibility to free the returned string. In the i2s_ASN1_IA5STRING() function the string is copied and the ownership of the original string remains with the caller.

# RETURN VALUES

i2s_ASN1_IA5STRING() returns the pointer to a IA5 string or NULL if an error occurs.

s2i_ASN1_IA5STRING() return a valid ASN1_IA5STRING structure or NULL if an error occurs.

i2s_ASN1_INTEGER() return a valid string or NULL if an error occurs.

s2i_ASN1_INTEGER() returns the pointer to a ASN1_INTEGER structure or NULL if an error occurs.

i2s_ASN1_OCTET_STRING() returns the pointer to a OCTET_STRING string or NULL if an error occurs.

s2i_ASN1_OCTET_STRING() return a valid ASN1_OCTET_STRING structure or NULL if an error occurs.

i2s_ASN1_ENUMERATED() return a valid string or NULL if an error occurs.

s2i_ASN1_ENUMERATED() returns the pointer to a ASN1_ENUMERATED structure or NULL if an error occurs.

s2i_ASN1_UTF8STRING() return a valid ASN1_UTF8STRING structure or NULL if an error occurs.

i2s_ASN1_UTF8STRING() returns the pointer to a UTF-8 string or NULL if an error occurs.

# HISTORY

i2s_ASN1_UTF8STRING() and s2i_ASN1_UTF8STRING() were made public in OpenSSL 3.0.

# COPYRIGHT

Copyright 2020-2021 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>.

2026-06-09 | 3.5.7