---
name: "shishi_asn1_read_optional"
section: "3"
platform: "linux"
package: "shishi-doc"
version: "1.0.3-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/shishi_asn1_read_optional"
---

# shishi\_asn1\_read\_optional(3)

API function

## NAME

shishi\_asn1\_read\_optional - API function

## SYNOPSIS

**#include \<shishi.h\>**

**int shishi\_asn1\_read\_optional(Shishi \*** *handle***, Shishi\_asn1** *node***, const char \*** *field***, char \*\*** *data***, size\_t \*** *datalen***);**

## ARGUMENTS

- Shishi \* handle

  shishi handle as allocated by **shishi\_init()**.

- Shishi\_asn1 node

  ASN.1 variable to read field from.

- const char \* field

  name of field in *node* to read.

- char \*\* data

  newly allocated output buffer that will hold ASN.1 field data.

- size\_t \* datalen

  actual size of output buffer.

## DESCRIPTION

Extract data stored in a ASN.1 field into a newly allocated buffer. If the field does not exist (i.e., SHISHI\_ASN1\_NO\_ELEMENT), this function set datalen to 0 and succeeds.  Can be useful to read ASN.1 fields which are marked OPTIONAL in the grammar, if you want to avoid special error handling in your code.

## RETURN VALUE

Returns SHISHI\_OK if successful, SHISHI\_ASN1\_NO\_VALUE if the field has no value, ot SHISHI\_ASN1\_ERROR otherwise.

## REPORTING BUGS

Report bugs to \<bug-shishi@gnu.org\>. GNU Shishi home page: http://www.gnu.org/software/shishi/ General help using GNU software: http://www.gnu.org/gethelp/

## COPYRIGHT

Copyright © 2002-2022 Simon Josefsson.\
 Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

## SEE ALSO

The full documentation for **shishi** is maintained as a Texinfo manual.  If the **info** and **shishi** programs are properly installed at your site, the command

-

  **info shishi**

should give you access to the complete manual.
