Newer
Older
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
Supplemental data is described in RFC 4680 and the authorization
extensions in draft-housley-tls-authz-extns-07.
** Support for authorization data in gnutls-cli and gnutls-serv.
New parameters --authz-x509-attr-cert and --authz-saml-assertion.
** Fix for gnutls_x509_crt_check_hostname.
Before it would have reported that the certificate matched a hostname
when it did not have any dNSName or any CN field. Report and tiny
patch from "Richard W.M. Jones" <rjones@redhat.com>.
** New self test for RFC 2818 comparison in gnutls_x509_crt_check_hostname.
Tests regressions of the bug, and several other features.
** GnuTLS now matches URI's with IP Addresses against iPAddress SAN's.
Before there were no support for iPAddress SAN's during comparison.
** New API to print information about CRL's.
The function is gnutls_x509_crl_print.
** New API to extract signature value from CRL's.
The function is gnutls_x509_crl_get_signature.
** Support for directoryName Subject Alternative Name's.
The gnutls_x509_crt_get_subject_alt_name function returns the DN as a
string in the provided buffer.
** Internal improvements to certtool.
It uses gnutls_x509_crl_print to print CRL information. It uses some
more gnulib modules to simplify error handling.
** API and ABI modifications:
GNUTLS_HANDSHAKE_SUPPLEMENTAL: ADD, new gnutls_handshake_description_t element.
gnutls_supplemental_data_format_type_t: ADD.
gnutls_authz_data_format_type_t: ADD.
gnutls_supplemental_get_name: ADD.
gnutls_authz_recv_callback_func,
gnutls_authz_send_callback_func: ADD, callback prototypes.
gnutls_authz_enable: ADD.
gnutls_authz_send_x509_attr_cert,
gnutls_authz_send_saml_assertion,
gnutls_authz_send_x509_attr_cert_url,
gnutls_authz_send_saml_assertion_url: ADD.
GNUTLS_SAN_DN: ADD, new gnutls_x509_subject_alt_name_t element.
gnutls_x509_crl_print: ADD.
gnutls_x509_crl_get_signature: ADD.
* Version 1.7.6 (released 2007-02-12)
** Support for 'otherName' Subject Alternative Names.
The existing API gnutls_x509_crt_get_subject_alt_name may now return
the new type GNUTLS_SAN_OTHERNAME together with the otherName value.
To find out the otherName OID (necessary for proper parsing of the
value), use the new API gnutls_x509_crt_get_subject_alt_othername_oid.
For known OIDs, gnutls_x509_crt_get_subject_alt_othername_oid will
return "virtual" SAN values, e.g., GNUTLS_SAN_OTHERNAME_XMPP to
simplify OID matching. Suggested by Matthias Wimmer <m@tthias.eu>.
** Certtool can print otherName SAN values for certificates.
For known otherName OIDs (currently only id-on-xmppAddr as defined by
RFC 3920), it will also print the name.
** Fix TLS 1.2 RSA signing in servers.
Before it used the old-style MD5+SHA1 signature, but the TLS
signatures should be normal PKCS#1 signatures. FYI, we use and
require that DigestInfo parameters are present and NULL for TLS 1.2.
** Add APIs to access X.509 extensions sequentially.
The existing APIs gnutls_x509_crt_get_extension_oid() and
gnutls_x509_crt_get_extension_by_oid() does not permit callers to
inspect the extensions in the order defined by the certificate.
** Add API to extract signature value from X.509 certificates.
The function is gnutls_x509_crt_get_signature.
** Fix crash when generating proxy certificates in batch mode.
If you don't specify a proxy policy in batch mode, it will use
id-ppl-inheritALL.
** Add API to print information about X.509 certificates.
The function is gnutls_x509_crt_print.
** Certtool uses the new API gnutls_x509_crt_print to print certificate info.
One consequence of this is that the output syntax has changed
slightly. Some more fields are printed.
** Doc fixes.
** API and ABI modifications:
gnutls_x509_crt_print: ADD
gnutls_certificate_print_formats_t: ADD, new enum.
gnutls_x509_crt_get_signature: ADD.
gnutls_x509_crt_get_extension_data: ADD.
gnutls_x509_crt_get_extension_info: ADD.
gnutls_x509_crt_get_subject_alt_othername_oid: ADD.
GNUTLS_SAN_OTHERNAME: ADD, new gnutls_x509_subject_alt_name_t element.
GNUTLS_SAN_OTHERNAME_XMPP: ADD, new gnutls_x509_subject_alt_name_t element.
* Version 1.7.5 (released 2007-02-06)
** Servers won't negotiate SRP RSA/DSS cipher suites if no SRP credential
** is set.
** Default behaviour for the gnutls-cli and gnutls-serv tools improved.
** Fix --list output for gnutls-cli and gnutls-serv.
Mention TLS1.2, SHA512 etc.
** Manual contains new section on setting up a test HTTP server.
A server set up following those descriptions are available online via
<http://www.gnutls.org/server.html>.
** Update of gnulib files.
** API and ABI modifications:
No changes since last version.
* Version 1.7.4 (released 2007-02-05)
** Support for RSA signing using SHA-256/384/512.
A new self test "sha2" tries to build a long X.509 certificate chain
testing all new hashes.
** The gnutls-serv tool now use static DH parameters if none are supplied.
** Discuss proxy certificates in the manual.
** Improve bibliographical citations in the manual.
** Update of gnulib files.
** Fix certtool template handling of pathLenConstraints.
It now defaults to -1 instead of 0, which causes the field to be
missing unless the template specify it.
** API and ABI modifications:
GNUTLS_MAC_SHA256,
GNUTLS_MAC_SHA384,
GNUTLS_MAC_SHA512: New gnutls_mac_algorithm_t values.
GNUTLS_DIG_SHA256,
GNUTLS_DIG_SHA384,
GNUTLS_DIG_SHA512: New gnutls_digest_algorithm_t values.
GNUTLS_SIGN_RSA_SHA256,
GNUTLS_SIGN_RSA_SHA384,
GNUTLS_SIGN_RSA_SHA512: New gnutls_sign_algorithm_t values.
* Version 1.7.3 (released 2007-02-01)
** New option to certtool: --generate-proxy.
This will generate a Proxy Certificate from an end entity certificate.
Proxy Certificates are documented in RFC 3820. You will need to
specify the proxy certificate's private key with --load-privkey, the
user certificate with --load-certificate and the private key used to
sign the new proxy certificate with --load-ca-privkey. Certtool will
query for proxy path length and the policy language OID. Currently
only OIDs that have an empty policy are supported (which includes the
two OIDs defined by RFC 3820).
** Certtool --certificate-info now prints information for Proxy Certificates.
Before the proxy extension was just printed as DER encoded data.
** New APIs to set proxy subject names and get/set proxy cert extension.
** Fix parsing of pathLenConstraints in BasicConstraints with missing cA.
** Added self-test to test for regressions of pathLenConstraint bug.
Incidentally, this also test (some) other regressions or changes in
the output from certtool --certificate-info.
** When certtool generates CA certificates, pressing enter on the path
** length constraint query will now remove the field.
Before it set the path length constraint to 0, which is a rather poor
default.
** Certtool now print times in UTC when printing certificate/CRL info.
** Add better fix to work around C++ compiler bug on Mac OS X.
Reported and tiny patch provided by Matthias Scheler <tron@NetBSD.org>.
** Fix import of ASCII armored OpenPGP keys.
Patch by ludovic.courtes@laas.fr (Ludovic Courtès).
** Update of gnulib files.
** API and ABI modifications:
gnutls_x509_crt_set_proxy_dn: ADD.
gnutls_x509_crt_set_proxy: ADD.
gnutls_x509_crt_get_proxy: ADD.
* Version 1.7.2 (released 2007-01-14)
** Certtool now print the value of the pathLenConstraints field for certs.
** Certtool now query for path length constraints when generating CA certs.
For batch uses, the certtool configuration name is "path_len".
Suggested by Sascha Ziemann <sascha.ziemann@secunet.com>.
** Add new API to get/set pathLenConstraint in the Basic Constraints.
The new functions gnutls_x509_crt_get_basic_constraints and
gnutls_x509_crt_set_basic_constraints provide a superset of the
functionality in the old gnutls_x509_crt_get_ca_status and
gnutls_x509_crt_set_ca_status (respectively), but the old functions
will continue to be supported.
** Add new API in OpenCDK to extract public/secret OpenPGP key to S-expr.
The functions are cdk_pubkey_to_sexp and cdk_seckey_to_sexp. A proper
OpenCDK release with this patch will be made soon, which should bump
the OpenCDK version number. Patch by Mario Lenz <mario.lenz@gmx.net>.
** Certtool --to-p12 can now store more than one certificate in the blob.
Before it could only store one certificate, but now it will read and
store as many certificate there are from the --load-certificate file.
Suggested by Sascha Ziemann <sascha.ziemann@secunet.com>.
** Clean up separation of gnutls and gnutls-extra for OpenPGP.
In particular, the OpenPGP function variables are no longer part of
the exported libgnutls interface, and no header files from
libgnutls-extra (GPL) are needed by libgnutls (LGPL). The variables
were never intended for non-internal purposes, and thus this does not
imply a change in the external API/ABI.
** Print URL to gaa when missing, and fix srcdir!=builddir for GAA files.
Reported by ludovic.courtes@laas.fr (Ludovic Courtès).
** GnuTLS no longer uses -mms-bitfields --enable-runtime-pseudo-reloc.
Before these parameters were set to make GnuTLS build under mingw32,
however, they appear to no longer be necessary.
** A minor fix to the C++ library to make it build.
Reported by Pavlov Konstantin <thresh@altlinux.ru>.
** Update of gnulib files.
** API and ABI modifications:
gnutls_x509_crt_get_basic_constraints: ADD.
gnutls_x509_crt_set_basic_constraints: ADD.
cdk_pubkey_to_sexp: ADD (in opencdk).
cdk_seckey_to_sexp: ADD (in opencdk).
* Version 1.7.1 (released 2006-12-28)
** TLS 1.2 server side fix.
The Certificate Request sent did not contain the list of supported
hashes field, thus violating the protocol. It will now contain an
empty list. Reported by ludovic.courtes@laas.fr (Ludovic Courtès).
** TLS 1.2 DSA signature verification fix.
Reported by ludovic.courtes@laas.fr (Ludovic Courtès).
** Fix the list of trusted CAs that server's send to clients.
Before, the list contained issuer DN's instead of subject DN's of the
trusted CAs. Reported by Max Kellermann <max@duempel.org>.
** Fix gnutls_certificate_set_x509_crl to initialize the CRL before using it.
Also added a self-test in tests/certificate_set_x509_crl.c to test the
function. Reported by Max Kellermann <max@duempel.org>.
** Encode UID fields in DN's as DirectoryString.
Before GnuTLS encoded and parsed UID fields as IA5String. This was
incorrect, it should have used DirectoryString. Now it will use
DirectoryString for the UID field, but for backwards compatibility it
will also accept IA5String UID's. Reported by Max Kellermann
<max@duempel.org>.
** Improve out-of-sourcedir builds from CVS.
Reported by ludovic.courtes@laas.fr (Ludovic Courtès).
** Bootstrap tools changed.
We now require autoconf 2.61, automake 1.10, and gettext 0.16, when
building GnuTLS from CVS. Libtool 1.5.22 is used.
** Fixed a syntax error in lib/gnutls.asn.
Reported by Paul Millar <p.millar@physics.gla.ac.uk>.
** Added German translation of GnuTLS messages.
** Update of gnulib files.
** API and ABI modifications:
No changes since last version.
* Version 1.7.0 (released 2006-11-29)
** The default protocol priority try TLS 1.1 and TLS 1.2 too.
The details is that the protocol priority set by
`gnutls_set_default_priority' has been changed from TLS 1.0 and SSL
3.0 to TLS 1.2, TLS 1.1, TLS 1.0 and SSL 3.0.
** Preliminary support for TLS 1.2.
The client has been successfully tested against
https://www.mikestoolbox.org:4433/.
** Anonself test now print a lot of debugging info, including TLS version.
** Doc fixes in OpenCDK, to avoid some gtk-doc warnings.
** Update of gnulib files.
** API and ABI modifications:
GNUTLS_TLS1_2: New gnutls_protocol_t enum member.
*** Pulled up from stable 1.6.x branch:
** Fix ./configure failure with non-GCC compilers.
This fixes the following error message:
configure: error: conditional "HAVE_LD_OUTPUT_DEF" was never defined.
Reported by "Michael C. Vergallen" <mvergall@telenet.be>.
* Version 1.6.3 (released 2007-05-26)
** New API functions to extract DER encoded X.509 Subject/Issuer DN.
Suggested by Nate Nielsen <nielsen-list@memberwebs.com>. Backported
from the 1.7.x branch, see
<http://lists.gnu.org/archive/html/help-gnutls/2007-05/msg00029.html>.
** Have PKCS8 parser return better error codes.
Reported by Nate Nielsen <nielsen-list@memberwebs.com>, see
<http://lists.gnupg.org/pipermail/gnutls-dev/2007-May/001653.html> and
<http://lists.gnupg.org/pipermail/gnutls-dev/2007-May/001654.html>.
** Fix mem leak for sessions with client authentication via certificates.
Reported by Andrew W. Nosenko <andrew.w.nosenko@gmail.com>, see
<http://lists.gnupg.org/pipermail/gnutls-dev/2007-April/001539.html>.
** Fix building of 'tlsia' self test.
Earlier some gcc are known to build tlsia linking to
$prefix/lib/libgnutls-extra.so rather than the libgnutls-extra.so in
the build directory, even though command line parameters look OK.
Changing order of some parameters fixes it.
** API and ABI modifications:
gnutls_x509_crt_get_raw_issuer_dn: ADD.
gnutls_x509_crt_get_raw_dn: ADD.
* Version 1.6.2 (released 2007-04-18)
** Fix X.509 signing with RSA-PKCS#1 to set a NULL parameters fields.
Before, we remove the parameters field, which resulted in a slightly
different DER encoding which in turn caused signature verification
failures of GnuTLS-generated RSA certificates in some other
implementations (e.g., GnuPG 2.x's gpgsm). Depending on which RFCs
you read, this may or may not be correct, but our new behaviour appear
to be consistent with other widely used implementations.
** Regenerate the PKIX ASN.1 syntax tree.
For some reason, after changing the ASN.1 type of ldap-UID in the last
release, the generated C file built from the ASN.1 schema was not
refreshed. This can cause problems when reading/writing UID
components inside X.500 Distinguished Names. Reported by devel
<dev001@pas-world.com>.
** Updated translations.
** API and ABI modifications:
No changes since last version.
* Version 1.6.1 (released 2006-12-28)
** Fix the list of trusted CAs that server's send to clients.
Before, the list contained issuer DN's instead of subject DN's of the
trusted CAs. Reported by Max Kellermann <max@duempel.org>.
** Fix gnutls_certificate_set_x509_crl to initialize the CRL before using it.
Reported by Max Kellermann <max@duempel.org>.
** Encode UID fields in DN's as DirectoryString.
Before GnuTLS encoded and parsed UID fields as IA5String. This was
incorrect, it should have used DirectoryString. Now it will use
DirectoryString for the UID field, but for backwards compatibility it
will also accept IA5String UID's. Reported by Max Kellermann
<max@duempel.org>.
** Fix ./configure failure with non-GCC compilers.
This fixes the following error message:
configure: error: conditional "HAVE_LD_OUTPUT_DEF" was never defined.
Reported by "Michael C. Vergallen" <mvergall@telenet.be>.
** API and ABI modifications:
No changes since last version.
* Version 1.6.0 (released 2006-11-17)
** No changes since 1.5.5.
The major changes compared to the 1.4.x branch are:
*** A GnuTLS C++ library is part of the official distribution.
Currently there are no examples or documentation, but hopefully this
will change. See gnutlsxx.h for the API.
*** Windows is a supported platform.
There are, however, two know bugs. One is related to select() in
command line tools (not, nota bene, in the library), the other is a
problem with libgcrypt that causes delays. Help is needed to resolve
those issues, so we feel we can't delay the release because of this.
*** New APIs for custom push/pull function error reporting.
The new APIs are gnutls_transport_set_errno and
gnutls_transport_set_global_errno. See the release notes for version
1.5.4 for more information.
*** Self tests are run under valgrind, if available. See --disable-valgrind.
* Version 1.5.5 (released 2006-11-16)
** Correctly bump shared library version after adding new APIs.
This was forgotten in the last release.
** Fix unsigned vs signed problem in ex-x509-info.c example.
Reported by Tim Kosse <tim.kosse@filezilla-project.org>.
** Fix the rsa-md5-collision self test to work for MinGW+Wine.
** Update of gnulib files.
** API and ABI modifications:
No changes since last version.
* Version 1.5.4 (released 2006-11-07)
** New API functions to set errno in push/pull functions.
Under Windows, setting the errno variable in a push/pull replacement
may end up setting the wrong errno variable, and GnuTLS send/recv
functions become confused about the real errno returned from a failed
push/pull function. Therefor, we have added two APIs to set the errno
variable used by GnuTLS. The APIs can also help to keep things
thread-safe, by avoiding potentially global variables. Typically,
instead of setting errno in your push/pull function, you will call one
of these functions. It is recommended to use
gnutls_transport_set_errno, but if you don't have the session variable
easily accessible in the push/pull replacement function, you can use
gnutls_transport_set_global_errno. Suggested by Tim Kosse
<tim.kosse@filezilla-project.org>.
void gnutls_transport_set_errno (gnutls_session_t session, int err);
void gnutls_transport_set_global_errno (int err);
** When calling `recv' or `send' Windows errors are handled properly.
The Windows recv/send functions doesn't use errno, and GnuTLS now use
WSAGetLastError to access the error condition instead.
** Several OpenPGP API fixes.
All suggested by ludovic.courtes@laas.fr (Ludovic Courtès). The most
important fix is to change the return value of
gnutls_openpgp_privkey_get_pk_algorithm and
gnutls_openpgp_key_get_pk_algorithm from 'int' to
'gnutls_pk_algorithm_t', which is an enum type (and thus API/ABI
compatible with 'int').
** When a GnuTLS server receive a SSLv2 Client Hello for an unknown TLS
** version, try to negotiate the highest version support by the GnuTLS server,
** instead of the lowest.
Reported by <Pasi.Eronen@nokia.com>.
** Replace old constructs with use of gnulib modules.
For example, we can now assume unistd.h, sys/stat.h, sys/socket.h in
the code. If the headers doesn't exist on the target system, gnulib
will make sure its replacement header files are used instead.
** Fix SOVERSION computation for *.def files.
This fixes build errors similar to "No rule to make target
`libgnutls-`expr', needed by `all-am'." when building for Windows.
** gnutls_check-version uses strverscmp from gnulib.
** Update of gnulib files.
** API and ABI modifications:
gnutls_transport_set_errno: ADD
gnutls_transport_set_global_errno: ADD
* Version 1.5.3 (released 2006-10-26)
** Add new self-test of RSA-MD5 signature chains.
Note that we already, since GnuTLS 1.2.9, reject RSA-MD5 signatures
when verifying X.509 chains. The code is in tests/rsa-md5-collision/
and is based on the work by Marc Stevens et al, see
<http://www.win.tue.nl/hashclash/TargetCollidingCertificates/>.
** Re-factor self tests.
** The include copy of Libtasn1 is updated to version 0.3.7.
** The included copy of OpenCDK is updated to version 0.5.11.
** Fix the filename of the *.def file on Windows after library version bump.
** Separated the gnulib directory into one for LGPL modules and one for GPL.
This allows the GPL'd part of GnuTLS to take advantage of the GPL'd
gnulib modules. Earlier we could only use the LGPL'ed module from
gnulib, because two gnulib directories in the same project didn't
work.
** API and ABI modifications:
No changes since last version.
* Version 1.5.2 (released 2006-10-03)
** Decrement the shared library version back to 13 (as in the 1.4.x branch).
Note that if you installed 1.5.0 or 1.5.1, they will have a higher
shared library version than this version, so you'll have to remove
them and possibly relink your applications. The reason for this is
that no API/ABI changes have been made since the 1.4.x branch, and
that incrementing the shared library version was a mistake. Reported
by Andreas Metzler <ametzler@downhill.at.eu.org>.
** Fix off-by-one error when computing length to malloc.
The code is used by gnutls_openpgp_add_keyring_file and
gnutls_openpgp_add_keyring_mem. Reported by "Adam Langley"
<agl@imperialviolet.org>.
** Add version script for the GnuTLS C++ library.
Reported by Andreas Metzler <ametzler@downhill.at.eu.org>.
** Fix the C++ compiler detection logic.
Reported by Andreas Metzler <ametzler@downhill.at.eu.org>.
** Update of gnulib files.
** API and ABI modifications:
No changes since last version.
* Version 1.5.1 (released 2006-09-21)
** Fix PKCS#1 verification to avoid a variant of Bleichenbacher's
** Crypto 06 rump session attack.
In particular, we check that the digestAlgorithm.parameters field is
missing or empty, to avoid that it can contain "garbage" that may be
used to alter the numeric properties of the signature. See
<http://www.imc.org/ietf-openpgp/mail-archive/msg14307.html> (which is
not exactly the same as the problem we fix here). Reported by Yutaka
OIWA <y.oiwa@aist.go.jp>.
See GNUTLS-SA-2006-4 on http://www.gnutls.org/security.html for more
up to date information.
** Add self test to test for above flaw.
** Fix gnutls-cli-debug regarding resume support detection.
Earlier, if the session-id from the server had a length of 0, it would
indicate that the server supports resumption, which isn't the case.
Reported by Kataja Kai <kai.kataja@op.fi>.
** Fix building of examples on FreeBSD by including netinet/in.h.
Reported by Roman Bogorodskiy <novel@FreeBSD.org>.
** Fix certtool bug that caused the private key to not be loaded when
generating a certificate with --load-request, which in turn triggered
another unrelated bug in gnutls_x509_crt_sign2 (also fixed). Reported
by Sascha Ziemann <sascha.ziemann@secunet.com>.
** gnutls-cli and gnutls-serv works on Windows.
The problem was the select() call that doesn't work on file
descriptors (stdin) on Windows. We borrowed some code from plibc to
solve this. It appears to be somewhat unreliable though.
** Autoconf 2.60 is now used.
** API and ABI modifications:
No changes since last version.
* Version 1.5.0 (released 2006-08-13)
** Change SRP and Cert-Type extensions to match IANA registry.
** Fixed bug in OpenPGP authentication handshake.
** Improvements for building under MinGW.
Provides internal inet_ntop and inet_pton functions and arpa/inet.h
header. Calls WSAStartup and WSACleanup in gnutls_global_init and
gnutls_global_deinit, respectively. Loads getaddrinfo and getnameinfo
at run-time from ws2_32.dll, and falls back on a simple replacement if
it is not available. Builds the library with -mms-bitfields
-Wl,--enable-runtime-pseudo-reloc. Links with --output-def, to
create *.def files, which are installed.
** The examples now (conditionally) include config.h and link to gnulib.
No other source changes were necessary, so the examples should
continue to be possible to use stand-alone without any autoconf or
gnulib stuff.
** Added C++ header "gnutlsxx.h" and library "libgnutlsxx".
You may unconditionally disable it with --disable-cxx. See
includes/gnutls/gnutlsxx.h and lib/gnutlsxx.cpp for the
implementation.
** Made command line tool '--version' behave according to GNU Standards.
This enables 'make distcheck' to succeed.
** OpenCDK updated to 0.5.9 to fix some problems with OpenPGP support.
** Make --without-included-libtasn1 work.
Reported by Daniel Black <dragonheart@gentoo.org>.
** Fix a crash (strcmp() on a NULL value) in the certificate verification logic.
See https://www.gnu.org/software/gnutls/security.html regardging
GNUTLS-SA-2006-2 for more up to date information. Reported by
satyakumar <satyam_kkd@hyd.hellosoft.com>.
** API and ABI modifications:
No changes since last version.
* Version 1.4.5 (released 2006-11-06)
** When a GnuTLS server receive a SSLv2 Client Hello for an unknown TLS
** version, try to negotiate the highest version support by the GnuTLS server,
** instead of the lowest.
Reported by <Pasi.Eronen@nokia.com>.
** Fix typo in doc/examples/ex-serv-pgp.c.
Reported by Adam Langley" <agl@imperialviolet.org>.
** API and ABI modifications:
No changes since last version.
* Version 1.4.4 (released 2006-09-12)
** Relax the test that caught signatures that exploit the variant of
** Bleichenbacher's Crypto 06 rump session attack on our
** verification logic flaw.
In particular, we now permit the digestAlgorithm.parameters field to
be present but empty, whereas in 1.4.3 we actually checked that the
field was absent.
** Revert the removal of debug information for the GNUTLS-SA-2006-3 problem.
The messages are only printed in debug mode, which is not recommended
for normal use, and thus logging this situation cannot be abused as an
oracle in typical recommended situations.
** API and ABI modifications:
No changes since last version.
* Version 1.4.3 (released 2006-09-08)
** Fix PKCS#1 verification to avoid a variant of Bleichenbacher's
** Crypto 06 rump session attack.
In particular, we check that the digestAlgorithm.parameters field is
empty, to avoid that it can contain "garbage" that may be used to
alter the numeric properties of the signature. See
<http://www.imc.org/ietf-openpgp/mail-archive/msg14307.html> (which is
not exactly the same as the problem we fix here). Reported by Yutaka
OIWA <y.oiwa@aist.go.jp>.
See GNUTLS-SA-2006-4 on http://www.gnutls.org/security.html for more
up to date information.
** Fix PKCS#1 decryption to avoid Bleichenbacher's Crypto 98 attack.
See <http://www.bell-labs.com/user/bleichen/papers/pkcs.ps.gz>.
Reported by Werner Koch <wk@gnupg.org>.
See GNUTLS-SA-2006-3 on http://www.gnutls.org/security.html for more
up to date information.
** Fix crash in gnutls_x509_crt_sign2 if passed a NULL issuer_key.
** API and ABI modifications:
No changes since last version.
* Version 1.4.2 (released 2006-08-12)
** Fix a crash (strcmp() on a NULL value) in the certificate verification logic.
This can happen if you call gnutls_certificate_verify_peers2 and have
a certain mix of local CA certificates and the peer send special
certificates, that together trigger certain behaviour. It is not
known at this point whether the crash can be triggered without the
special local CA certificate, and thus turn this into a remote crash
of clients that verify server certificates when they talk to a server
with the special server certificate. See GNUTLS-SA-2006-2 on
https://www.gnu.org/software/gnutls/security.html for more up to date
information. Reported by satyakumar <satyam_kkd@hyd.hellosoft.com>.
** Change SRP and Cert-Type extensions to match IANA registry.
** OpenCDK updated to 0.5.9 to fix some problems with OpenPGP support.
** Make --without-included-libtasn1 work.
Reported by Daniel Black <dragonheart@gentoo.org>.
** API and ABI modifications:
No changes since last version.
* Version 1.4.1 (released 2006-06-14)
** Replaced inactive ifdefs to enable openpgp support in test programs.
** Fixed bug in OpenPGP authentication handshake.
** Fixed typographical in man pages.
** Build fixes of the manual.
** Added Swedish translation.
** API and ABI modifications:
No changes since last version.
* Version 1.4.0 (released 2006-05-15)
** Remove GnuTLS 0.8.x compatibility functions.
** The libgcrypt RNG is initialized in gnutls_global_init().
** TLS/IA API changes from Emile van Bergen.
A dummy credential structure is not needed now, if you wish to use the
low-level TLS/IA API, simply call gnutls_ia_enable to enable TLS/IA on
a session.
** The self-tests are now run under valgrind, if it is installed.
** Libtasn1 is updated to 0.3.4, and that version is now required.
** The command line tools now use getaddrinfo and support IPv6.
** API and ABI modifications:
_gnutls_x509_get_raw_crt_activation_time,
_gnutls_x509_get_raw_crt_expiration_time: Removed.
gnutls_ia_require_inner_phase: Removed, replaced by gnutls_ia_enable.
gnutls_ia_enable: Added.
* Version 1.3.5 (released 2006-03-08)
** Error messages are now translated using GNU Gettext.
** The function gnutls_x509_crt_to_xml now return an internal error.
This means that the code to convert X.509 certificates to XML format
does not work any more. The reason is that the function called
libtasn1 internal functions. It seems unclean for libtasn1 to export
the APIs needed here. Instead it would be better to implement XML
support inside libtasn1 properly. If you need this functionality
strongly, please consider looking into implementing this suggested
approach instead. As a workaround, you may also modify lib/x509/xml.c
(change '#if 1' to '#if 0') and build using --with-included-libtasn1.
** Libraries are now built with libtool's -no-undefined.
This helps producing libraries for Windows using mingw32.
** Doc fixes to explain that gnutls_record_send can block.
** Libtasn1 0.3.1 or later is now required.
The include copy has been updated too.
** gnutls-cli can now recognize services and port numbers with the -p option.
** API and ABI modifications:
No changes since last version.
* Version 1.3.4 (released 2006-02-09)
** Fix read of out bounds bug in DER parser.
Reported by Evgeny Legerov <admin@gleg.net>, and debugging help from
Protover SSL. Libtasn1 0.2.18 is now required, which contains the
previous bug fix. The included libtasn1 version in GnuTLS has been
updated.
** Fixed bug in non-blocking gnutls_bye(). gnutls_record_send() will no
longer invalidate a session if the underlying send fails, but it will
prevent future writes. That is to allow reading the already received data.
Patches and bug reports by Yoann Vandoorselaere <yoann@prelude-ids.org>
** Corrected bugs in gnutls_certificate_set_x509_crl() and
gnutls_certificate_set_x509_trust(), that caused memory corruption if
more than one certificates were added. Report and patch by Max Kellermann.
** Fix build problems of OpenCDK on AIX.
Thanks to "Heiden, John" <JHeiden@UTNet.UToledo.Edu>.
** API and ABI modifications:
No changes since last version.
* Version 1.3.3 (released 2006-01-12)
** New API to access the TLS master secret.
When possible, you should use the TLS PRF functions instead.
Suggested by Jouni Malinen <jkmaline@cc.hut.fi>.
** Improved handling when multiple libraries use GnuTLS at the same time.
Now gnutls_global_init() can be called multiple times, and
gnutls_global_deinit() will only deallocate the structure when it has
been called as many times as gnutls_global_init() was called.
** Added a self test of TLS resume functionality.
** Fix crash in TLS resume code, caused by TLS/IA changes.
** Documentation fixes about thread unsafety, prompted by
** discussion with bryanh@giraffe-data.com (Bryan Henderson).
In particular, gnutls_global_init() and gnutls_global_deinit() are not
thread safe. Careful callers may want to protect the call using a
mutex. The problem could also be ignored, which would cause a memory
leak under rare conditions when two threads invoke the function
roughly at the same time.
** Add 'const' keywords in various places, from Frediano ZIGLIO.
** The code was indented again, including the external header files.
** API and ABI modifications:
New functions to retrieve the master secret value:
gnutls_session_get_master_secret
Add a 'const' keyword to existing API:
gnutls_x509_crq_get_challenge_password
* Version 1.3.2 (released 2005-12-15)
** GnuTLS now support TLS Inner application (TLS/IA).
This is per draft-funk-tls-inner-application-extension-01. This
functionality is added to libgnutls-extra, so it is licensed under the
GNU General Public License.
** New APIs to access the TLS Pseudo-Random-Function (PRF).
The PRF is used by some protocols building on TLS, such as EAP-PEAP
and EAP-TTLS. One function to access the raw PRF and one to access
the PRF seeded with the client/server random fields are provided.
Suggested by Jouni Malinen <jkmaline@cc.hut.fi>.
** New APIs to acceess the client and server random fields in a session.
These fields can be useful by protocols using TLS. Note that these
fields are typically used as input to the TLS PRF, and if this is your
intended use, you should use the TLS PRF API that use the
client/server random field directly. Suggested by Jouni Malinen
<jkmaline@cc.hut.fi>.
** Internal type cleanups.
The uint8, uint16, uint32 types have been replaced by uint8_t,
uint16_t, uint32_t. Gnulib is used to guarantee the presence of
correct types on platforms that lack them. The uint type have been
replaced by unsigned.
** API and ABI modifications:
New functions to invoke the TLS Pseudo-Random-Function (PRF):
gnutls_prf
gnutls_prf_raw
New functions to retrieve the session's client and server random values:
gnutls_session_get_server_random
gnutls_session_get_client_random
New function, to perform TLS/IA handshake:
gnutls_ia_handshake
New function to decide whether to do a TLS/IA handshake:
gnutls_ia_handshake_p
New functions to allocate a TLS/IA credential:
gnutls_ia_allocate_client_credentials
gnutls_ia_free_client_credentials
gnutls_ia_allocate_server_credentials
gnutls_ia_free_server_credentials
New functions to handle the AVP callback:
gnutls_ia_set_client_avp_function
gnutls_ia_set_client_avp_ptr
gnutls_ia_get_client_avp_ptr
gnutls_ia_set_server_avp_function
gnutls_ia_set_server_avp_ptr
gnutls_ia_get_server_avp_ptr
New functions, to toggle TLS/IA application phases:
gnutls_ia_require_inner_phase
New function to mix session keys with inner secret:
gnutls_ia_permute_inner_secret
Low-level API (used internally by gnutls_ia_handshake):
gnutls_ia_endphase_send
gnutls_ia_send
gnutls_ia_recv
New functions that can be used after successful TLS/IA negotiation:
gnutls_ia_generate_challenge
gnutls_ia_extract_inner_secret
Enum type with TLS/IA modes:
gnutls_ia_mode_t
Enum type with TLS/IA packet types:
gnutls_ia_apptype_t
Enum values for TLS/IA alerts:
GNUTLS_A_INNER_APPLICATION_FAILURE
GNUTLS_A_INNER_APPLICATION_VERIFICATION
New error codes, to signal when an application phase has finished:
GNUTLS_E_WARNING_IA_IPHF_RECEIVED
GNUTLS_E_WARNING_IA_FPHF_RECEIVED
New error code to signal TLS/IA verify failure:
GNUTLS_E_IA_VERIFY_FAILED
* Version 1.3.1 (released 2005-12-08)
** Support for DHE-PSK cipher suites has been added.
This method offers perfect forward secrecy.
** Fix gnutls-cli STARTTLS hang when SIGINT is sent too quickly, thanks to
Otto Maddox <ottomaddox@fastmail.fm> and Nozomu Ando <nand@mac.com>.
** Corrected a bug in certtool for 64 bit machines. Reported
by Max Kellermann <max@duempel.org>.
** New function to set a X.509 private key and certificate pairs, and/or
CRLs, from an PKCS#12 file, suggested by Emile van Bergen
<emile@e-advies.nl>.
The integrity of the PKCS#12 file is protected through a password
based MAC; public-key based signatures for integrity protection are
not supported. PKCS#12 bags may be encrypted using password derived
symmetric keys, public-key based encryption is not supported. The
PKCS#8 keys may be encrypted using passwords. The API use the same
password for all operations. We believe that any more flexibility
create too much complexity that would hurt overall security, but may
add more PKCS#12 related APIs if real-world experience indicate
otherwise.
** gnutls_x509_privkey_import_pkcs8 now accept unencrypted PEM PKCS#8 keys,
reported by Emile van Bergen <emile@e-advies.nl>.
This will enable "certtool -k -8" to parse those keys.
** Certtool now generate keys in unencrypted PKCS#8 format for empty passwords.
Use "certtool -p -8" and press press enter at the prompt. Earlier,
certtool would have encrypted the key using an empty password.
** Certtool now accept --password for --key-info and encrypted PKCS#8 keys.
Earlier it would have prompted the user for it, even if --password was
supplied.
** Added self test of PKCS#8 parsing.
Unencrypted and encrypted (pbeWithSHAAnd3-KeyTripleDES-CBC and
pbeWithSHAAnd40BitRC2-CBC) formats are tested. The test is in
tests/pkcs8.
** API and ABI modifications:
New function to set X.509 credentials from a PKCS#12 file:
gnutls_certificate_set_x509_simple_pkcs12_file
New gnutls_kx_algorithm_t enum type:
GNUTLS_KX_DHE_PSK
New API to return session data (basically same as gnutls_session_get_data):
gnutls_session_get_data2
New API to set PSK Diffie-Hellman parameters:
gnutls_psk_set_server_dh_params
* Version 1.3.0 (2005-11-15)
** Support for TLS Pre-Shared Key (TLS-PSK) ciphersuites have been added.
This add several new APIs, see below. Read the updated manual for
more information. A new self test "pskself" has been added, that will
test this functionality.
** The session resumption data are now system independent.
** The code has been re-indented to conform to the GNU coding style.
** Removed the RIPEMD ciphersuites.
** Added a discussion of the internals of gnutls in manual.
** Fixes for Tru64 UNIX 4.0D that lack MAP_FAILED, from Albert Chin.
** Remove trailing comma in enums, for IBM C v6, from Albert Chin.
** Make sure config.h is included first in a few files, from Albert Chin.
** Don't use C++ comments ("//") as they are invalid, from Albert Chin.
** Don't install SRP programs and man pages if --disable-srp-authentication,
from Albert Chin.
** API and ABI modifications:
New gnutls_kx_algorithm_t key exchange type: GNUTLS_KX_PSK
New gnutls_credentials_type_t credential type:
GNUTLS_CRD_PSK
New credential types:
gnutls_psk_server_credentials_t
gnutls_psk_client_credentials_t
New functions to allocate PSK credentials:
gnutls_psk_allocate_client_credentials
gnutls_psk_free_client_credentials
gnutls_psk_free_server_credentials
gnutls_psk_allocate_server_credentials
New enum type for PSK key flags:
gnutls_psk_key_flags
New function prototypes for credential callback:
gnutls_psk_client_credentials_function
gnutls_psk_server_credentials_function
New function to set PSK username and key:
gnutls_psk_set_client_credentials
New function to set PSK passwd file:
gnutls_psk_set_server_credentials_file
New function to extract PSK user in server: