test: server_cli: Report reason why server could not been started
[libisds.git] / NEWS
blobb5445d0cb80a02379035b9b824fd7821ea4d33a0
1 Version 0.6.2
2 =============
4 • Building tests out of source tree has been fixed.
6 Version 0.6.1
7 =============
9 • Missing test/simline/server_types.h files has been added into distribution
10 to fix test suite compilation.
12 Version 0.6
13 ===========
15 • ABI changed due to changes in specification. Some functions got additional
16 parameters or return codes.
18 • One-time password (OTP) authentication implemented. There is a new argument
19 at isds_login() and isds_change_password() functions of type struct isds_otp*.
20 Pass NULL if do not request OTP authentication.  The structure is used to
21 select OTP method (HMAC- or time-based code), to pass the OTP code (use NULL
22 to ask server for new time-based code), and to retrieve fine state of OTP
23 authentication. The functions can return IE_PARTIAL_SUCCESS if time-based
24 method is selected and server sent the new OTP code successfully.
25 OTP-authenticated context resides on URL different from others (use NULL or
26 isds_otp_locator for official instance or isds_otp_testing_locator for testing
27 instance). You can try client/login tool to check OTP-authenticated log-in.
28 You can use client/hotp_generator tool to generate series of HMAC-based OTP
29 codes (requires Perl Authen::OATH module).  There is a bug in cURL < 7.28.0
30 preventing from correct re-authentication. If you have unpatched cURL,
31 configure libisds with `--enable-curlreauthorizationbug' option. (See INSTALL
32 for more details.)
34 • isds_change_password() has additional argument to retrieve reference number
35 of the request assigned by the server. Pass NULL if you do not care.
37 • Internal tests check log-in procedure against simulated ISDS server. You can
38 run the simulated server as standalone executable in test/simline/server_cli
39 to check another clients. The server implements besides authentication
40 DummyRequest, services for changing passwords and EraseMessage.
42 • New DeleteDataBoxPromptly service implemented as isds_delete_box_promptly().
43 (This service is not documented in the specification).
45 • New PDZInfo service implemented as isds_get_commercial_permissions(). This
46 service enables application to know whether it can send commercial messages,
47 which subtypes of commercial messages can send (there are differences on
48 payment type), and to retrieve tokens for sending such messages.
50 • New service EraseMessage implemented as isds_delete_message_from_storage().
51 This function can be used to delete messages stored in long term storage (also
52 known as safe previously). Only messages in the long term storage can be
53 explicitly deleted.
55 • New user types USERTYPE_LIQUIDATOR (company liquidator) and
56 USERTYPE_OFFICIAL_CERT (undocumented in specification) added.
58 • Return value of isds_normalize_mime_type() is pointer to constant string now
59 to discourage application from fiddling with the value.
61 • Autoconf m4 macros have been updated (curl-7.26.0, gettext-0.18.1.1,
62 gpgme-1.3.1, libgcrypt-1.5.0, libtool-2.4.2, libxml2-2.8.0).
64 Version 0.5
65 ===========
67 • ABI changed due to changes in specification. API is preserved. Please
68 recompile your applications.
70 • This release has not been tested on real system because devoloper has not
71 obtained new testing account yet. But he believes library works. Testers are
72 welcome.
74 • Delivery events 5, 10, 11, 12, and 13 are recognized now.
76 • GetMessageAuthor service implemented as get_message_sender() function.
78 • New isds_envelope member `dmPublishOwnID' added. It allows sender to reveal
79 his natural name to recipient on sending a message.
81 • isds_GetDataBoxUsers() can return empty list of users now.
83 • New document types recognised. MIME types of Software602 forms have been
84 changed to reflect IANA registry.
86 • Credential for testing account removed from documentation and code. Owner of
87 ISDS removed all testing accounts, testers must request for new account and
88 must agree with new rules including keeping credentials in secret and
89 non-disclosuring found bugs in ISDS. Example clients and on-line tests read
90 credentials from environment and central file in build root direcotory. See
91 README for more details.
93 • Errors from libxml2 parser are captured by libisds log system as ILF_XML
94 facility and at ILL_ERROR level. Application can get them by standard library
95 interface.
97 • Library can be compiled without support for network operation by passing
98 `--without-libcurl' option to configure script. All functions dependent on
99 network remain available and will return IE_NOTSUP return code.
101 • Dead variables removed to pass compilation by GCC 4.6 in strict mode.
103 • Prepare test environment to pass without ~/.gnupg directory. Packagers can
104 remove the hack from their packages now.
106 Version 0.4
107 ===========
109 • This version breaks ABI because of ISDS specification change. Please adapt
110 your application where affected functions are called.
112 • ABI change: isds_get_password_expiration() will return NULL if password never
113 expires. Adjust your application to cope with NULL pointer on IE_SUCCESS.
115 • ABI change: isds_add_box() has new credentials_delivery parameter to request
116 for on-line credentials delivery and to receive token for that.
118 • ABI change: isds_add_user() has new credentials_delivery parameter to
119 request for on-line credentials delivery and to receive token for that.
121 • ABI change: isds_reset_password() has different arguments to request for
122 on-line credentials delivery and to receive token for that.
124 • ABI change: deprecated functions isds_set_tls() and
125 isds_set_mime_type_normalization() removed. Use isds_set_opt() instead.
127 • SOAP Fault error message is passed to application via isds_long_message().
129 • New function isds_get_list_of_sent_message_state_changes() implements
130 GetMessageStateChanges service. It returns list of message status changes in
131 requested time interval.
133 • New function isds_get_box_list_archive() implements GetDataBoxList service.
134 It returns ZIP archive with comma separate list of boxes. Different types of
135 lists can be requested. Only type `UPG' is available to public.
137 • New function isds_activate() implements Activate service.
139 • New delivery state EV0 is recognized as EVENT_ENTERED_SYSTEM isds_event_type.
141 • `tsr' document name suffix is recognized as time stamp file type.
143 • New function isds_pki_credentials_free() to deallocate isds_pki_credentials
144 structure.
146 • ISO time string parser fixed (negative or no time zone offset).
148 • All tests can run in parallel now.
150 • Lot of internal tests added. Funny color output now.
152 Version 0.3.1
153 =============
155 • Add `server' directory to distribution tar balls because example messages
156 are needed for some tests.
158 Version 0.3
159 ===========
161 • This library breaks API because of new features and changes in ISDS.
163 • This library version covers complete ISDS specification as released on
164 2010-05-23.
166 • Support for XML documents added. Use isds_document.is_xml to distinguish
167 between binary and XML document types. Because XML node list
168 (isds_document.xml_node_list) is used to describe XML document, your
169 application must link to libxml2 library too since now. Please note this
170 feature has not been heavily tested and that the interface is a little tricky
171 (regarding memory allocation). See client/sendxmldoc.c and
172 client/loadsentmessagewithxmldocuments.c examples for hints how to use it.
174 • Box creation (isds_add_box()) supports requesting for token. This
175 functionality is not covered by specification as it's not implemented on
176 server side yet.
178 • Message authenticity verification through new web service
179 AuthenticateMessage (isds_authenticate_message()) is supported. This function
180 sends a signed message encapsulated in CMS to ISDS where the system resolves
181 originality of the message.
183 • isds_envelope->dmType is input/output now. The one letter value is
184 transferred while sending new message. However ISDS ignores this option as
185 semantic is not defined yet.
187 • isds_envelope->timestamp is optional now. Some ISDS services can return
188 message without time stamp as can do not exist yet.
190 • Cookie-tracked session authentication changed to stateless. That means
191 password is transmitted to server on each request. Password is cached by
192 libcurl library until connection gets closed. Also different server locators
193 for non-certificate and certificate client authentication emerged. Old log-in
194 method will be canceled on 2010-07-01. Old libisds versions become useless.
195 Upgrade is strongly recommended.
197 • Static and out-of-source directory compilation is supported now.
199 • New function isds_normalize_mime_type(): translates file name extension to
200 MIME type (because official ISDS client is broken). This can be globally
201 enabled by isds_set_opt().
203 • Context parameters can be set by isds_set_opt(): TLS options (isds_set_tls()
204 is deprecated now), MIME type normalization (new: mangle document MIME type
205 in incoming messages into more reasonable values).
207 • Deprecated functions removed: isds_load_received_message(),
208 isds_log_signed_message().
210 • isds_DbUserInfo.caState added (country of contact address).
212 • isds_get_delivery_info() fixed to produce standard raw representation of
213 delivery details that can be loaded by isds_load_delivery() back.
215 • New function guess_raw_type(): detects type of supported message and
216 delivery details formats. Detected format can be supplied to
217 isds_load_message(). This way, application can automagically load and parse
218 any supported format.
220 • libcurl debug messages are caught by libisds and redirected to library
221 logger (ILF_HTTP facility).
223 Version 0.2.1
224 =============
226 • Libs value in libisds.pc pkg-config module fixed.
228 Version 0.2
229 ===========
231 • X.509 client certificate authentication is supported (but not tested yet).
232 Underlying HTTPS cURL library supports OpenSSL, GnuTLS and NSS cryptographic
233 back ends currently.
235 Current legislation requires to use cryptographic module with unexportable
236 private key. I've tested ASEKey produced by Athena Smartcard Solution
237 with OpenSSL back end successfully (a patch for curl-7.20.0 is required).
239 Example code client/certauth.c and server/tls/peer server and CA, server and
240 client cryptographic material are bundled. 
242 • Application can pass CRL PEM file to cryptographic library.
244 • Library offers pkg-config integration. Application build scripts can check
245 `libisds' pkg-config module and use PKG_CHECK_MODULES() m4 macro.
247 • Application can get dynamic string describing library version and its
248 dependencies at run-time (isds_version()).
250 • API changed and is not backward compatible. Please adjust and recompile your
251 applications.
253 • Library tests have been splitted to off-line (--enable-test) and on-line
254 (--enable-online-test) tests. On-line tests can not be compiled without
255 off-line tests. All tests are switched off by default.
257 • Server base URL for isds_login() does not contain path anymore. Application
258 must supply schema and hostname only (e.g. https://localhost/). Undefined base
259 URL will be interpreted as official ISDS locator.
261 • Base URLs of official ISDS server (isds_locator) and testing ISDS server
262 (isds_testing_locator) are provided by library. Application can offer them as
263 default choices to the user.
265 • Documents can be submitted for authorize conversion into Czech POINT system
266 (czp_convert_document(), requires specific isds_ctx).
268 • Application can catch all global log messages and redirect them wherever it
269 needs.
271 Version 0.1
272 ===========
274 • This is first public release. Whole ISDS 2010-01-22 specification is covered
275 except: XML documents, X.509 authentication