From 4f87437dc9135aa08d71f0c5c741c162f95f2729 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20P=C3=ADsa=C5=99?= Date: Wed, 19 May 2010 19:25:21 +0200 Subject: [PATCH] Remove public depreceated functions isds_load_received_message() and isds_log_signed_message() has been marked as deprecated in 0.2 version and will be removed in newer release. --- src/isds.c | 275 ------------------------------------------------------------- src/isds.h | 30 ------- 2 files changed, 305 deletions(-) diff --git a/src/isds.c b/src/isds.c index 3997a2d..60454a9 100644 --- a/src/isds.c +++ b/src/isds.c @@ -7390,119 +7390,6 @@ leave: } -/* Load incoming message from buffer. - * @context is session context - * @buffer XML stream with unsigned message. You can retrieve such data from - * message->raw after calling isds_get_received_message(). - * @length is length of buffer in bytes. - * @message is automatically reallocated message parsed from @buffer. - * @strategy selects how buffer will be attached into raw isds_message member. - * */ -isds_error isds_load_received_message(struct isds_ctx *context, - const void *buffer, const size_t length, - struct isds_message **message, const isds_buffer_strategy strategy) { - - isds_error err = IE_SUCCESS; - xmlDocPtr message_doc = NULL; - xmlXPathContextPtr xpath_ctx = NULL; - xmlXPathObjectPtr result = NULL; - - if (!context) return IE_INVALID_CONTEXT; - zfree(context->long_message); - if (!message) return IE_INVAL; - isds_message_free(message); - if (!buffer) return IE_INVAL; - - - isds_log(ILF_ISDS, ILL_DEBUG, - _("Incoming message content:\n%.*s\nEnd of message\n"), - length, buffer); - - /* Convert extracted messages XML stream into XPath context */ - message_doc = xmlParseMemory(buffer, length); - if (!message_doc) { - err = IE_XML; - goto leave; - } - xpath_ctx = xmlXPathNewContext(message_doc); - if (!xpath_ctx) { - err = IE_ERROR; - goto leave; - } - /* XXX: Standard name space */ - if (register_namespaces(xpath_ctx, MESSAGE_NS_UNSIGNED)) { - err = IE_ERROR; - goto leave; - } - result = xmlXPathEvalExpression( - BAD_CAST "/isds:MessageDownloadResponse/isds:dmReturnedMessage", - xpath_ctx); - if (!result) { - err = IE_ERROR; - goto leave; - } - /* Missing dmReturnedMessage */ - if (xmlXPathNodeSetIsEmpty(result->nodesetval)) { - isds_printf_message(context, - _("XML document does not contain isds:dmReturnedMessage " - "element")); - err = IE_ISDS; - goto leave; - } - /* More elements. This should never happen. */ - if (result->nodesetval->nodeNr > 1) { - isds_printf_message(context, - _("XML document has more isds:dmReturnedMessage elements")); - err = IE_ISDS; - goto leave; - } - /* One message */ - xpath_ctx->node = result->nodesetval->nodeTab[0]; - - /* Extract the message */ - err = extract_TReturnedMessage(context, 1, message, xpath_ctx); - if (err) goto leave; - - /* Append XML stream into message */ - (*message)->raw_type = RAWTYPE_INCOMING_MESSAGE; - switch (strategy) { - case BUFFER_DONT_STORE: - break; - case BUFFER_COPY: - (*message)->raw = malloc(length); - if (!(*message)->raw) { - err = IE_NOMEM; - goto leave; - } - memcpy((*message)->raw, buffer, length); - (*message)->raw_length = length; - break; - case BUFFER_MOVE: - (*message)->raw = (void *) buffer; - (*message)->raw_length = length; - break; - default: - err = IE_ENUM; - goto leave; - } - -leave: - if (err) { - if (*message && strategy == BUFFER_MOVE) (*message)->raw = NULL; - isds_message_free(message); - } - - xmlFreeDoc(message_doc); - xmlXPathFreeObject(result); - xmlXPathFreeContext(xpath_ctx); - - if (!err) - isds_log(ILF_ISDS, ILL_DEBUG, - _("Incoming message loaded successfully.\n")); - return err; -} - - /* Download incoming message identified by ID. * @context is session context * @message_id is message identifier (you can get them from @@ -7638,168 +7525,6 @@ leave: } -/* Load signed message from buffer. - * @context is session context - * @outgoing is true if message is outgoing, false if message is incoming - * @buffer is DER encoded PKCS#7 structure with signed message. You can - * retrieve such data from message->raw after calling - * isds_get_signed_{received,sent}_message(). - * @length is length of buffer in bytes. - * @message is automatically reallocated message parsed from @buffer. - * @strategy selects how buffer will be attached into raw isds_message member. - * */ -isds_error isds_load_signed_message(struct isds_ctx *context, - const _Bool outgoing, const void *buffer, const size_t length, - struct isds_message **message, const isds_buffer_strategy strategy) { - - isds_error err = IE_SUCCESS; - xmlDocPtr message_doc = NULL; - xmlXPathContextPtr xpath_ctx = NULL; - xmlXPathObjectPtr result = NULL; - void *xml_stream = NULL; - size_t xml_stream_length = 0; - - if (!context) return IE_INVALID_CONTEXT; - zfree(context->long_message); - if (!message) return IE_INVAL; - isds_message_free(message); - if (!buffer) return IE_INVAL; - - - /* Extract message from PKCS#7 structure */ - err = extract_cms_data(context, buffer, length, - &xml_stream, &xml_stream_length); - if (err) goto leave; - - isds_log(ILF_ISDS, ILL_DEBUG, (outgoing) ? - _("Signed outgoing message content:\n%.*s\nEnd of message\n") : - _("Signed incoming message content:\n%.*s\nEnd of message\n"), - xml_stream_length, xml_stream); - - /* Convert extracted messages XML stream into XPath context */ - message_doc = xmlParseMemory(xml_stream, xml_stream_length); - if (!message_doc) { - err = IE_XML; - goto leave; - } - xpath_ctx = xmlXPathNewContext(message_doc); - if (!xpath_ctx) { - err = IE_ERROR; - goto leave; - } - /* XXX: Name spaces mangled for outgoing direction: - * http://isds.czechpoint.cz/v20/SentMessage: - * - * - * - * - * 151916 - * ... - * - * ... - * ... - * 260 - * - * - * - * XXX: Name spaces mangled for incoming direction: - * http://isds.czechpoint.cz/v20/message: - * - * - * - * - * 151916 - * ... - * - * ... - * ... - * 260 - * - * - * - * Stupidity of ISDS developers is unlimited */ - if (register_namespaces(xpath_ctx, (outgoing) ? - MESSAGE_NS_SIGNED_OUTGOING : MESSAGE_NS_SIGNED_INCOMING)) { - err = IE_ERROR; - goto leave; - } - /* XXX: Embeded message XML document is always rooted as - * /sisds:MessageDownloadResponse (even outgoing message). */ - result = xmlXPathEvalExpression( - BAD_CAST "/sisds:MessageDownloadResponse/sisds:dmReturnedMessage", - xpath_ctx); - if (!result) { - err = IE_ERROR; - goto leave; - } - /* Empty embedded message */ - if (xmlXPathNodeSetIsEmpty(result->nodesetval)) { - isds_printf_message(context, - _("XML document embedded into PKCS#7 structure is not " - "sisds:dmReturnedMessage document")); - err = IE_ISDS; - goto leave; - } - /* More embedded messages */ - if (result->nodesetval->nodeNr > 1) { - isds_printf_message(context, - _("XML document embedded into PKCS#7 structure has more " - "root sisds:dmReturnedMessage elements")); - err = IE_ISDS; - goto leave; - } - /* One embedded message */ - xpath_ctx->node = result->nodesetval->nodeTab[0]; - - /* Extract the message */ - err = extract_TReturnedMessage(context, 1, message, xpath_ctx); - if (err) goto leave; - - /* Append raw CMS structure into message */ - (*message)->raw_type = (outgoing) ? RAWTYPE_CMS_SIGNED_OUTGOING_MESSAGE : - RAWTYPE_CMS_SIGNED_INCOMING_MESSAGE; - switch (strategy) { - case BUFFER_DONT_STORE: - break; - case BUFFER_COPY: - (*message)->raw = malloc(length); - if (!(*message)->raw) { - err = IE_NOMEM; - goto leave; - } - memcpy((*message)->raw, buffer, length); - (*message)->raw_length = length; - break; - case BUFFER_MOVE: - (*message)->raw = (void *) buffer; - (*message)->raw_length = length; - break; - default: - err = IE_ENUM; - goto leave; - } - - -leave: - if (err) { - if (*message && strategy == BUFFER_MOVE) (*message)->raw = NULL; - isds_message_free(message); - } - - xmlFreeDoc(message_doc); - cms_data_free(xml_stream); - xmlXPathFreeObject(result); - xmlXPathFreeContext(xpath_ctx); - - if (!err) - isds_log(ILF_ISDS, ILL_DEBUG, - _("Signed message loaded successfully.\n")); - return err; -} - - /* Load message of any type from buffer. * @context is session context * @raw_type defines content type of @buffer. Only message types are allowed. diff --git a/src/isds.h b/src/isds.h index f5973df..b8beddc 100644 --- a/src/isds.h +++ b/src/isds.h @@ -1015,20 +1015,6 @@ isds_error isds_load_delivery_info(struct isds_ctx *context, isds_error isds_get_delivery_info(struct isds_ctx *context, const char *message_id, struct isds_message **message); -/* Deprecated: Use isds_load_message() instead. */ -/* Load incoming message from buffer. - * @context is session context - * @buffer XML stream with unsigned message. You can retrieve such data from - * message->raw after calling isds_get_received_message(). - * @length is length of buffer in bytes. - * @message is automatically reallocated message parsed from @buffer. - * @strategy selects how buffer will be attached into raw isds_message member. - * */ -isds_error isds_load_received_message(struct isds_ctx *context, - const void *buffer, const size_t length, - struct isds_message **message, const isds_buffer_strategy strategy) - _deprecated; - /* Download incoming message identified by ID. * @context is session context * @message_id is message identifier (you can get them from @@ -1037,22 +1023,6 @@ isds_error isds_load_received_message(struct isds_ctx *context, isds_error isds_get_received_message(struct isds_ctx *context, const char *message_id, struct isds_message **message); -/* Deprecated: Use isds_load_message() instead. */ -/* Load signed message from buffer. - * @context is session context - * @outgoing is true if message is outgoing, false if message is incoming - * @buffer is DER encoded PKCS#7 structure with signed message. You can - * retrieve such data from message->raw after calling - * isds_get_signed{received,sent}_message(). - * @length is length of buffer in bytes. - * @message is automatically reallocated message parsed from @buffer. - * @strategy selects how buffer will be attached into raw isds_message member. - * */ -isds_error isds_load_signed_message(struct isds_ctx *context, - const _Bool outgoing, const void *buffer, const size_t length, - struct isds_message **message, const isds_buffer_strategy strategy) - _deprecated; - /* Load message of any type from buffer. * @context is session context * @raw_type defines content type of @buffer. Only message types are allowed. -- 2.11.4.GIT