Version 0.4
===========

• This version breaks ABI because of ISDS specification change. Please adapt
your application where affected functions are called.

• ABI change: isds_get_password_expiration() will return NULL if password never
expires. Adjust your application to cope with NULL pointer on IE_SUCCESS.

• ABI change: isds_add_box() has new credentials_delivery parameter to request
for on-line credentials delivery and to receive token for that.

• ABI change: isds_add_user() has new credentials_delivery parameter to
request for on-line credentials delivery and to receive token for that.

• ABI change: isds_reset_password() has different arguments to request for
on-line credentials delivery and to receive token for that.

• ABI change: deprecated functions isds_set_tls() and
isds_set_mime_type_normalization() removed. Use isds_set_opt() instead.

• SOAP Fault error message is passed to application via isds_long_message().

• New function isds_get_list_of_sent_message_state_changes() implements
GetMessageStateChanges service. It returns list of message status changes in
requested time interval.

• New function isds_get_box_list_archive() implements GetDataBoxList service.
It returns ZIP archive with comma separate list of boxes. Different types of
lists can be requested. Only type `UPG' is available to public.

• New function isds_activate() implements Activate service.

• New delivery state EV0 is recognized as EVENT_ENTERED_SYSTEM isds_event_type.

• `tsr' document name suffix is recognized as time stamp file type.

• New function isds_pki_credentials_free() to deallocate isds_pki_credentials
structure.

• ISO time string parser fixed (negative or no time zone offset).

• All tests can run in parallel now.

• Lot of internal tests added. Funny color output now.

Version 0.3.1
=============

• Add `server' directory to distribution tar balls because example messages
are needed for some tests.

Version 0.3
===========

• This library breaks API because of new features and changes in ISDS.

• This library version covers complete ISDS specification as released on
2010-05-23.

• Support for XML documents added. Use isds_document.is_xml to distinguish
between binary and XML document types. Because XML node list
(isds_document.xml_node_list) is used to describe XML document, your
application must link to libxml2 library too since now. Please note this
feature has not been heavily tested and that the interface is a little tricky
(regarding memory allocation). See client/sendxmldoc.c and
client/loadsentmessagewithxmldocuments.c examples for hints how to use it.

• Box creation (isds_add_box()) supports requesting for token. This
functionality is not covered by specification as it's not implemented on
server side yet.

• Message authenticity verification through new web service
AuthenticateMessage (isds_authenticate_message()) is supported. This function
sends a signed message encapsulated in CMS to ISDS where the system resolves
originality of the message.

• isds_envelope->dmType is input/output now. The one letter value is
transferred while sending new message. However ISDS ignores this option as
semantic is not defined yet.

• isds_envelope->timestamp is optional now. Some ISDS services can return
message without time stamp as can do not exist yet.

• Cookie-tracked session authentication changed to stateless. That means
password is transmitted to server on each request. Password is cached by
libcurl library until connection gets closed. Also different server locators
for non-certificate and certificate client authentication emerged. Old log-in
method will be canceled on 2010-07-01. Old libisds versions become useless.
Upgrade is strongly recommended.

• Static and out-of-source directory compilation is supported now.

• New function isds_normalize_mime_type(): translates file name extension to
MIME type (because official ISDS client is broken). This can be globally
enabled by isds_set_opt().

• Context parameters can be set by isds_set_opt(): TLS options (isds_set_tls()
is deprecated now), MIME type normalization (new: mangle document MIME type
in incoming messages into more reasonable values).

• Deprecated functions removed: isds_load_received_message(),
isds_log_signed_message().

• isds_DbUserInfo.caState added (country of contact address).

• isds_get_delivery_info() fixed to produce standard raw representation of
delivery details that can be loaded by isds_load_delivery() back.

• New function guess_raw_type(): detects type of supported message and
delivery details formats. Detected format can be supplied to
isds_load_message(). This way, application can automagically load and parse
any supported format.

• libcurl debug messages are caught by libisds and redirected to library
logger (ILF_HTTP facility).

Version 0.2.1
=============

• Libs value in libisds.pc pkg-config module fixed.

Version 0.2
===========

• X.509 client certificate authentication is supported (but not tested yet).
Underlying HTTPS cURL library supports OpenSSL, GnuTLS and NSS cryptographic
back ends currently.

Current legislation requires to use cryptographic module with unexportable
private key. I've tested ASEKey produced by Athena Smartcard Solution
with OpenSSL back end successfully (a patch for curl-7.20.0 is required).

Example code client/certauth.c and server/tls/peer server and CA, server and
client cryptographic material are bundled. 

• Application can pass CRL PEM file to cryptographic library.

• Library offers pkg-config integration. Application build scripts can check
`libisds' pkg-config module and use PKG_CHECK_MODULES() m4 macro.

• Application can get dynamic string describing library version and its
dependencies at run-time (isds_version()).

• API changed and is not backward compatible. Please adjust and recompile your
applications.

• Library tests have been splitted to off-line (--enable-test) and on-line
(--enable-online-test) tests. On-line tests can not be compiled without
off-line tests. All tests are switched off by default.

• Server base URL for isds_login() does not contain path anymore. Application
must supply schema and hostname only (e.g. https://localhost/). Undefined base
URL will be interpreted as official ISDS locator.

• Base URLs of official ISDS server (isds_locator) and testing ISDS server
(isds_testing_locator) are provided by library. Application can offer them as
default choices to the user.

• Documents can be submitted for authorize conversion into Czech POINT system
(czp_convert_document(), requires specific isds_ctx).

• Application can catch all global log messages and redirect them wherever it
needs.

Version 0.1
===========

• This is first public release. Whole ISDS 2010-01-22 specification is covered
except: XML documents, X.509 authentication
