extern ASN1_API int
asn1_copy_node (asn1_node dst, const char *dst_name,
asn1_node src, const char *src_name);
+ extern ASN1_API asn1_node
+ asn1_copy_node2 (asn1_node src, const char *src_name);
/* Internal and low-level DER utility functions. */
/**
* asn1_copy_node:
- * @dst: Destination asn1_node node.
+ * @dst: Destination asn1 node.
* @dst_name: Field name in destination node.
- * @src: Source asn1_node node.
+ * @src: Source asn1 node.
* @src_name: Field name in source node.
*
- * Create a deep copy of a asn1_node variable.
+ * Create a deep copy of a asn1_node variable. That
+ * function requires @dst to be expanded using asn1_create_element().
*
* Returns: Return %ASN1_SUCCESS on success.
**/
asn1_copy_node (asn1_node dst, const char *dst_name,
asn1_node src, const char *src_name)
{
-/* FIXME: rewrite using copy_structure().
- * It seems quite hard to do.
- */
int result;
asn1_node dst_node;
void *data = NULL;
return result;
}
+
+/**
+ * asn1_copy_node2:
+ * @src: Source asn1 node.
+ * @src_name: Field name in source node.
+ *
+ * Create a deep copy of a asn1_node variable. This function
+ * will return an exact copy of the provided structure.
+ *
+ * Returns: Return %NULL on failure.
+ **/
+asn1_node
+asn1_copy_node2 (asn1_node src, const char *src_name)
+{
+ return _asn1_copy_structure2(src, src_name);
+}
exit(1);
}
-#if 0
asn1_delete_structure (&cpy_node);
/* Test asn1_copy_node2 */
printf("DER encoded data differ!\n");
exit(1);
}
-#endif
/* Clear the definition structures */
asn1_delete_structure (&asn1_element);