2010-07-25  John Dennis  <jdennis@redhat.com> 0.10
  * The following classes were added:
      InitParameters
      InitContext

  * The following module functions were added:
      nss.nss.nss_initialize()
      nss.nss.nss_init_context()
      nss.nss.nss_shutdown_context()
      nss.nss.nss_init_flags()

  * The following constants were added:
      NSS_INIT_READONLY
      NSS_INIT_NOCERTDB
      NSS_INIT_NOMODDB
      NSS_INIT_FORCEOPEN
      NSS_INIT_NOROOTINIT
      NSS_INIT_OPTIMIZESPACE
      NSS_INIT_PK11THREADSAFE
      NSS_INIT_PK11RELOAD
      NSS_INIT_NOPK11FINALIZE
      NSS_INIT_RESERVED
      NSS_INIT_COOPERATE

  * The following file was added:
      test/setup_certs.py

2010-05-28  John Dennis  <jdennis@redhat.com> 0.9

  * Correct definciencies in auth_certificate_callback found in several
    of the example files and documentation. If you've copied that code
    you should merge those changes in.

  * Unicode objects now accepted as well as str objects for
    interfaces expecting a string.

  * Sockets were enhanced thusly:
      - Threads will now yield during blocking IO.
      - Socket.makefile() reimplemented
	  file object methods that had been missing (readlines(), sendall(),
	  and iteration) were implemented, makefile now just returns the same
	  Socket object but increments an "open" ref count. Thus a Socket
	  object behaves like a file object and must be closed once for each
	  makefile() call before it's actually closed.
      - Sockets now support the iter protocol
      - Add Socket.readlines(), Socket.sendall()

  * The following classes were added:
      AuthKeyID
      BasicConstraints	
      CRLDistributionPoint
      CRLDistributionPts
      CertificateExtension
      GeneralName
      SignedCRL
      DN
      RDN
      AVA
      CertificateRequest
	
  * The following module functions were added:
      nss.nss.nss_is_initialized()
      nss.nss.cert_crl_reason_from_name()
      nss.nss.cert_crl_reason_name()
      nss.nss.cert_general_name_type_from_name()
      nss.nss.cert_general_name_type_name()
      nss.nss.cert_usage_flags()
      nss.nss.decode_der_crl()
      nss.nss.der_universal_secitem_fmt_lines()
      nss.nss.import_crl()
      nss.nss.make_line_pairs()
      nss.nss.oid_dotted_decimal()
      nss.nss.oid_str()
      nss.nss.oid_tag()
      nss.nss.oid_tag_name()
      nss.nss.read_der_from_file()
      nss.nss.x509_alt_name()
      nss.nss.x509_ext_key_usage()
      nss.nss.x509_key_usage()

  * The following class methods and properties were added:
    Note: it's a method if the name is suffixed with (), a propety otherwise
      Socket.next()
      Socket.readlines()
      Socket.sendall()
      SSLSocket.next()
      SSLSocket.readlines()
      SSLSocket.sendall()
      AuthKeyID.key_id
      AuthKeyID.serial_number
      AuthKeyID.get_general_names()
      CRLDistributionPoint.issuer
      CRLDistributionPoint.get_general_names()
      CRLDistributionPoint.get_reasons()
      CertDB.find_crl_by_cert()
      CertDB.find_crl_by_name()
      Certificate.extensions
      CertificateExtension.critical
      CertificateExtension.name
      CertificateExtension.oid
      CertificateExtension.oid_tag
      CertificateExtension.value
      GeneralName.type_enum
      GeneralName.type_name
      GeneralName.type_string
      SecItem.der_to_hex()
      SecItem.get_oid_sequence()
      SecItem.to_hex()
      SignedCRL.delete_permanently()
      AVA.oid
      AVA.oid_tag
      AVA.value
      AVA.value_str
      DN.cert_uid
      DN.common_name
      DN.country_name
      DN.dc_name
      DN.email_address
      DN.locality_name
      DN.org_name
      DN.org_unit_name
      DN.state_name
      DN.add_rdn()
      DN.has_key()
      RDN.has_key()

  * The following module functions were removed:
    Note: use nss.nss.oid_tag() instead
      nss.nss.sec_oid_tag_from_name()
      nss.nss.sec_oid_tag_name()
      nss.nss.sec_oid_tag_str()

  * The following files were added:
      doc/examples/cert_dump.py
      test/test_cert_components.py

  * Apply patches from  Miloslav Trmač <mitr@redhat.com>
    for ref counting and threading support. Thanks Miloslav!

  * Review all ref counting, numerous ref counting fixes

  * Implement cyclic garbage collection support by
    adding object traversal and clear methods

  * Identify static variables, move to thread local storage
	
  * Remove python-nss specific httplib.py, no longer needed
    python-nss now compatible with standard library

  * Rewrite httplib_example.py to use standard library and illustrate
    ssl, non-ssl, connection class, http class usage

2009-09-21  John Dennis  <jdennis@redhat.com> 0.8
  * The following methods, properties  and functions were added:
    SecItem.type SecItem.len, SecItem.data
    PK11SymKey.key_data, PK11SymKey.key_length, PK11SymKey.slot
    create_context_by_sym_key
    param_from_iv
    generate_new_param
    get_iv_length
    get_block_size
    get_pad_mechanism
  * SecItem's now support indexing and slicing on their data
  * Clean up parsing and parameter validation of variable arg functions

2009-09-18  John Dennis  <jdennis@redhat.com> 0.7
  * add support for symmetric encryption/decryption
    more support for digests (hashes)

    The following classes were added:
    PK11SymKey PK11Context

    The following methods and functions were added:
    get_best_wrap_mechanism          get_best_key_length
    key_gen                          derive
    get_key_length                   digest_key
    clone_context                    digest_begin
    digest_op                        cipher_op
    finalize                         digest_final
    read_hex                         hash_buf
    sec_oid_tag_str                  sec_oid_tag_name
    sec_oid_tag_from_name            key_mechanism_type_name
    key_mechanism_type_from_name     pk11_attribute_type_name
    pk11_attribute_type_from_name    get_best_slot
    get_internal_key_slot            create_context_by_sym_key
    import_sym_key                   create_digest_context
    param_from_iv                    param_from_algid
    generate_new_param               algtag_to_mechanism
    mechanism_to_algtag

    The following files were added:
    test/cipher_test.py test/digest_test.py

2009-07-08  John Dennis  <jdennis@redhat.com> 0.6
  * fix bug #510343 client_auth_data_callback seg faults if False
    is returned from callback

2009-07-01  John Dennis  <jdennis@redhat.com> 0.5
  * restore ssl.nss_init and ssl.nss_shutdown but make them deprecated
    add __version__ string to nss module

2009-06-30  John Dennis  <jdennis@redhat.com> 0.4
  * add binding for NSS_NoDB_Init(), bug #509002
    move nss_init and nss_shutdown from ssl module to nss module

2009-06-04  John Dennis  <jdennis@redhat.com> 0.3

  * import to Mozilla CVS, tweak directory layout

2009-05-21  John Dennis  <jdennis@redhat.com> 0.2
  * apply patch from bug #472805, (Miloslav Trmač)
    Don't allow closing a socket twice, that causes crashes.
    New function nss.io.Socket.new_socket_pair()
    New function nss.io.Socket.poll()
    New function nss.io.Socket.import_tcp_socket()
    New method nss.nss.Certificate.get_subject_common_name()
    New function nss.nss.generate_random()
    Fix return value creation in SSLSocket.get_security_status
    New function nss.ssl.SSLSocket.import_tcp_socket()
    Convert licensing to MPL tri-license
