Rampart/C 1.3.0
  * WS-Secure Conversation Language support
  * WS-Trust Language support
  * Rahas module to give STS support to a service
  * Rampart functionality and Rampart module are splitted into two libraries
  * PKCS12 Keystore support
  * Security Policy 1.2 support
  * Memory leak fixes
  * Many bug fixes
--Rampart-C team <rampart-c-dev@ws.apache.org> 27 May 2009

Rampart/C 1.2.0
  * WS-Secure Conversation Language support (Experimental)
  * WS-Trust Language support (Experimental)
  * SAML 1.1 Support
  * Memory leak fixes
  * Many bug fixes
--Rampart-C team <rampart-c-dev@ws.apache.org> 23 Apr 2008

Rampart/C 1.1.0

  * MAC support with HMAC-SHA1
  * Derrived key encryption
  * Derived key signing
  * Symmetric policy bindings
  * New security header processor based on SOAP header layout
  * Security policy validator
  * Extensible Replay detection module
  * Signature confirmation support
  * Support for thumb prints
  * Easy to use deployment scripts
  * Memory leak fixes
  * Many bug fixes
--Rampart-C team <rampart-c-dev@ws.apache.org> 16 Jan 2008

Rampart/C 1.0.0

  * WS-Security Policy (spec 1.1) based configurations
  * Replay detection support
  * Improvements to the context model
  * Authentication module implementation
  * Credentials module implementation
  * Impirovements to Key/Certificate loading mechanisms
  * Easy to use deployment scripts
  * Memory leak fixes
  * Many bug fixes
--Rampart-C team <rampart-c-dev@ws.apache.org> 05 Oct 2007

Rampart/C 0.90 

  * Initial release 
  * Usernametoken support
  * Timestamp support
  * Samples for clients and callbacks
--Rampart-C team <rampart-c-dev@ws.apache.org> 25 Sept 2007
