asn1_write_value − API function


#include <libtasn1.h>

int asn1_write_value(asn1_node node_root, const char * name, const void * ivalue, int len);


asn1_node node_root

pointer to a structure

const char * name

the name of the element inside the structure that you want to set.

const void * ivalue

vector used to specify the value to set. If len is >0, VALUE must be a two’s complement form integer. if len=0 *VALUE must be a null terminated string with an integer value.

int len

number of bytes of *value to use to set the value: value[0]..value[len−1] or 0 if value is a null terminated string


Set the value of one element inside a structure.

If an element is OPTIONAL and you want to delete it, you must use the value=NULL and len=0. Using "pkix.asn":

result=asn1_write_value(cert, "tbsCertificate.issuerUniqueID", NULL, 0);

Description for each type:


VALUE must contain a two’s complement form integer.

value[0]=0xFF , len=1 −> integer=−1. value[0]=0xFF value[1]=0xFF , len=2 −> integer=−1. value[0]=0x01 , len=1 −> integer= 1. value[0]=0x00 value[1]=0x01 , len=2 −> integer= 1. value="123" , len=0 −> integer= 123.


As INTEGER (but only with not negative numbers).


VALUE must be the null terminated string "TRUE" or "FALSE" and LEN != 0.

value="TRUE" , len=1 −> boolean=TRUE. value="FALSE" , len=1 −> boolean=FALSE.

OBJECT IDENTIFIER: VALUE must be a null terminated string with each number separated by a dot (e.g. ""). LEN != 0.

value="1 2 840 10040 4 3" , len=1 −> OID=dsa−with−sha.


VALUE must be a null terminated string in one of these formats: "YYMMDDhhmmssZ", "YYMMDDhhmmssZ", "YYMMDDhhmmss+hh’mm’", "YYMMDDhhmmss−hh’mm’", "YYMMDDhhmm+hh’mm’", or "YYMMDDhhmm−hh’mm’". LEN != 0.

value="9801011200Z" , len=1 −> time=Jannuary 1st, 1998 at 12h 00m Greenwich Mean Time


VALUE must be in one of this format: "YYYYMMDDhhmmss.sZ", "YYYYMMDDhhmmss.sZ", "YYYYMMDDhhmmss.s+hh’mm’", "YYYYMMDDhhmmss.s−hh’mm’", "YYYYMMDDhhmm+hh’mm’", or "YYYYMMDDhhmm−hh’mm’" where ss.s indicates the seconds with any precision like "10.1" or "01.02". LEN != 0

value="2001010112001.12−0700" , len=1 −> time=Jannuary 1st, 2001 at 12h 00m 01.12s Pacific Daylight Time

OCTET STRING: VALUE contains the octet string and LEN is the number of octets. c c c k k k

value="$ssh$x01$ssh$x02$ssh$x03" , len=3 −> three bytes octet string l l l


VALUE contains the generalstring and LEN is the number of octets.c c c k k k

value="$ssh$x01$ssh$x02$ssh$x03" , len=3 −> three bytes generalstring l l l

BIT STRING: VALUE contains the bit string organized by bytes and LEN is the number of bits.c k

value="$ssh$xCF" , len=6 −> bit string="110011" (six bits) l


if NAME indicates a choice type, VALUE must specify one of the alternatives with a null terminated string. LEN != 0. Using "pkix.asn"

result=asn1_write_value(cert, "certificate1.tbsCertificate.subject", "rdnSequence", 1);


VALUE indicates the der encoding of a structure. LEN != 0.

SEQUENCE OF: VALUE must be the null terminated string "NEW" and LEN != 0. With this instruction another element is appended in the sequence. The name of this element will be "?1" if it’s the first one, "?2" for the second and so on.

Using "pkix.asn"

result=asn1_write_value(cert, "certificate1.tbsCertificate.subject.rdnSequence", "NEW", 1);

SET OF: the same as SEQUENCE OF. Using "pkix.asn":

result=asn1_write_value(cert, "tbsCertificate.subject.rdnSequence.?LAST", "NEW", 1);


ASN1_SUCCESS if the value was set, ASN1_ELEMENT_NOT_FOUND if name is not a valid element, and ASN1_VALUE_NOT_VALID if ivalue has a wrong format.


Copyright © 2006-2013 Free Software Foundation, Inc..
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.


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

info libtasn1

should give you access to the complete manual. As an alternative you may obtain the manual from:

More Linux Commands

ctime_r(3) - transform date and time to broken-down time or
The ctime(), gmtime() and localtime() functions all take an argument of data type time_t, which represents calendar time. When interpreted as an absolute time v

pcap-filter(7) - packet filter syntax - Linux manual page...
pcap_compile() is used to compile a string into a filter program. The resulting filter program can then be applied to some stream of packets to determine which

audit_add_watch(3) - create a rule layout for a watch.......
audit_add_watch will create a watch rule in the pointer to a pointer rulep. All that you need to pass it is the full path to a file and it will initialize the a

setsockopt(2) - get and set options on sockets (Man Page)...
getsockopt() and setsockopt() manipulate options for the socket referred to by the file descriptor sockfd. Options may exist at multiple protocol levels; they a

pam_error(3) - display error messages to the user (ManPage)
The pam_error function prints error messages through the conversation function to the user. The pam_verror function performs the same task as pam_error() with t

cd(1) bash built-in commands, see bash(1) - Linux man page
Unless otherwise noted, each builtin command documented in this section as accepting options preceded by accepts to signify the end of the options. The tru

ppm2tiff(1) create a TIFF file from PPM, PGM and PBM image f
ppm2tiff converts a file in the PPM, PGM and PBM image formats to TIFF. By default, the TIFF image is created with data samples packed (PlanarConfiguration=1),

Tcl_UpVar(3) - link one variable to another - Linux man page
Tcl_UpVar and Tcl_UpVar2 provide the same functionality as the upvar command: they make a link from a source variable to a destination variable, so that referen

gnutls_x509_crq_get_key_id(3) - API function (Man Page).....
gnutls_x509_crq_get_key_id.3 - This function will return a unique ID the depends on the public key parameters. This ID can be used in checking whether a certifi

utmp(5) - login records (File formats - Linux man page).....
The utmp file allows one to discover information about who is currently using the system. There may be more users currently using the system, because not all pr

glScissor(3gl) - define the scissor box - Linux manual page
glScissor defines a rectangle, called the scissor box, in window coordinates. The first two arguments, x and y, specify the lower left corner of the box. width

tcltest(n) - Test harness support code and utilities........
The tcltest package provides several utility commands useful in the construction of test suites for code instrumented to be run by evaluation of Tcl commands. N

We can't live, work or learn in freedom unless the software we use is free.