Adding initial code jy.oak@samsung.com
[ric-app/kpimon.git] / asn1c_defs / all-defs / der_encoder.h
diff --git a/asn1c_defs/all-defs/der_encoder.h b/asn1c_defs/all-defs/der_encoder.h
new file mode 100755 (executable)
index 0000000..f8b07e1
--- /dev/null
@@ -0,0 +1,68 @@
+/*-\r
+ * Copyright (c) 2003-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.\r
+ * Redistribution and modifications are permitted subject to BSD license.\r
+ */\r
+#ifndef        _DER_ENCODER_H_\r
+#define        _DER_ENCODER_H_\r
+\r
+#include <asn_application.h>\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+struct asn_TYPE_descriptor_s;  /* Forward declaration */\r
+\r
+/*\r
+ * The DER encoder of any type. May be invoked by the application.\r
+ * Produces DER- and BER-compliant encoding. (DER is a subset of BER).\r
+ *\r
+ * NOTE: Use the ber_decode() function (ber_decoder.h) to decode data\r
+ * produced by der_encode().\r
+ */\r
+asn_enc_rval_t der_encode(const struct asn_TYPE_descriptor_s *type_descriptor,\r
+                          const void *struct_ptr, /* Structure to be encoded */\r
+                          asn_app_consume_bytes_f *consume_bytes_cb,\r
+                          void *app_key /* Arbitrary callback argument */\r
+);\r
+\r
+/* A variant of der_encode() which encodes data into the pre-allocated buffer */\r
+asn_enc_rval_t der_encode_to_buffer(\r
+    const struct asn_TYPE_descriptor_s *type_descriptor,\r
+    const void *struct_ptr, /* Structure to be encoded */\r
+    void *buffer,           /* Pre-allocated buffer */\r
+    size_t buffer_size      /* Initial buffer size (maximum) */\r
+);\r
+\r
+/*\r
+ * Type of the generic DER encoder.\r
+ */\r
+typedef asn_enc_rval_t(der_type_encoder_f)(\r
+    const struct asn_TYPE_descriptor_s *type_descriptor,\r
+    const void *struct_ptr, /* Structure to be encoded */\r
+    int tag_mode,           /* {-1,0,1}: IMPLICIT, no, EXPLICIT */\r
+    ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */\r
+    void *app_key /* Arbitrary callback argument */\r
+);\r
+\r
+\r
+/*******************************\r
+ * INTERNALLY USEFUL FUNCTIONS *\r
+ *******************************/\r
+\r
+/*\r
+ * Write out leading TL[v] sequence according to the type definition.\r
+ */\r
+ssize_t der_write_tags(const struct asn_TYPE_descriptor_s *type_descriptor,\r
+                       size_t struct_length,\r
+                       int tag_mode,      /* {-1,0,1}: IMPLICIT, no, EXPLICIT */\r
+                       int last_tag_form, /* {0,!0}: prim, constructed */\r
+                       ber_tlv_tag_t tag,\r
+                       asn_app_consume_bytes_f *consume_bytes_cb,\r
+                       void *app_key);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* _DER_ENCODER_H_ */\r