/**
 * \file asn1build.h
 * \brief ASN.1 certificate builder.
 * \author Dmytro Podgornyi (d.podgornyi@samsung.com)
 * \version 0.1
 * \date Created May 28, 2013
 * \par In Samsung Ukraine R&D Center (SURC) under a contract between
 * \par LLC "Samsung Electronics Ukraine Company" (Kiev, Ukraine) and
 * \par "Samsung Elecrtronics Co", Ltd (Seoul, Republic of Korea)
 * \par Copyright: (c) Samsung Electronics Co, Ltd 2012. All rights reserved.
 **/

#ifndef __ASN1BUILD_H_INCLUDED__
#define __ASN1BUILD_H_INCLUDED__

#include <stdint.h>
#include "asn1gen.h"
#include "x509v3.h"

asn1_gen_t *asn1_build_ext_raw(asn1_object_t *oid, const uint8_t *value,
                                      uint32_t valueLen, int crit);
asn1_gen_t *asn1_build_ext(asn1_object_t *oid, asn1_gen_t *value,
                                  int crit);
void asn1_free_ext(asn1_gen_t *seq);
void asn1_free(asn1_gen_t *seq);
int32_t build_utc_time(char *notbefore, size_t notbefore_len,
                              char *notafter, size_t notafter_len,
                              const struct x509_certificate *cert);
asn1_gen_t *asn1_build_name(const struct x509_name *name);

#endif /* __ASN1BUILD_H_INCLUDED__ */
