<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <title>The Security Module for Apache Axis2/C</title>
</head>

<body xml:lang="en">
<h1>Welcome to Apache Rampart/C</h1>

<p>Apache Rampart/C is the security module for <a href="http://ws.apache.org/axis2/c/">Apache Axis2/C</a>. It features in many ways to protect SOAP messages exchanged. This includes SOAP message encryption and signature as specified in <a href="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf">WS-Security Specification</a>. In addition Apache Rampart/C configurations are based on security policy assertions as per <a href="http://specs.xmlsoap.org/ws/2005/07/securitypolicy/ws-securitypolicy.pdf">WS-Security Policy specificatoin</a></p>

<h2>Why Apache Rampart/C ?</h2>
<p>In distributed computing, web services play a crucial role. But as many distributed systems web services are also vulnerable for security threats. Developers are always struggling to ensure the integrity, confidentiality of messages. Implementing the right security solution can be an expensive and time consuming task. Rampart/C makes the life easier for those who uses Axis2/C, by providing a configurable security module, which protect SOAP messages from such threats.
</p>

<h2>Latest Release</h2>

<h3>27th May 2009 - Apache Rampart/C Version 1.3.0 Released</h3>
<a href="http://ws.apache.org/rampart/c/download.cgi">Download 1.3</a>

<h4>Key Features</h4>
<ol>
<li>Ability to send and verify UsernameTokens with
    <ul> 
    <li>Username and PlainText password
    <li>Username and Digested password
    </ul>
<li>Ability to send Timestamp tokens
<li>SOAP message encryption
    <ul>
    <li> With derived key support for improved security
    <li> Symmetric and Asymmetric modes of operations
    <li> Support for AES and Tripple DES encryption
    <li> Signature encryption
    <li> Keys encryption
    </ul>
<li>SOAP message signature
    <ul>
    <li> XML signature with RSA-SHA1
    <li> Message authentication with HMAC-SHA1
    <li> Signature confirmation support
    <li> SOAP Header signing
    </ul>
<li>WS-Security Policy (spec 1.1 and spec 1.2) based configurations
    <ul>
    <li> Support for both Symmetric as well as Asymmetric policy bindings
    <li> Support for different modes of key identifiers
    <li> Support for different algorithm suites<br>
        [Basic128, Basic 192, Basic256, TrippleDES, Basic128Rsa15, Basic192Rsa15,Basic256Rsa15, TripleDesRsa15]
	<li> Support for IssuedToken assertion in client side
	<li> Support for SAMLToken assertion
     </ul>
<li>Replay detection support
    <ul>
    <li> Easy to use built-in replay detection module
    <li> Ability to deploy a customized replay detection module
    </ul>
<li>Different protection orders
    <ul>
    <li> Encrypt before signing
    <li> Sign before encrypting
    </ul>
<li>Extensible modules
    <ul>
    <li> Password callback module
    <li> Authentication module
    <li> Credentials module
	<li> Replay detection module
	<li> Secure conversation token module
    </ul>
<li>Keys management
    <ul>
    <li> Support for X509 token profile
	<li> Support for Key identifiers, Thumb prints, Issuer/Serial pairs, Embedded and Direct references
	<li> Support for PKCS12 keystore
    </ul>
<li> WS-Secure Conversation Language support
    <ul>
    <li> Establishing Security Context and thereby maintaining a session
    <li> Per message key derivation
    <li> Support for stored securtiy context token
	<li> Rahas module support to give STS functionality to a service
    </ul>
<li> WS-Trust Language support 
    <ul>
    <li> Security Token Services (STS)
    <li> STS Client
    <li> Server and Client entrophy support
    </ul>
<li> SAML Support
	<ul>
		<li> Support for Creation and Processing of SAML Core 1.1 Assertion
		<li> SAML Token as Sign Supporting Token
		<li> Signing and Encryption with SAML
	</ul>
<li>Other
    <ul>
    <li> Easy to use deployment scripts
    <li> A comprehensive set of samples
    </ul>
</ol>
<h4>Major Changes Since Last Release</h4>
<p>
<ol>
    <li> WS-Secure Conversation Language support
	<li> WS-Trust Language support
	<li> Rahas module to give STS support to a service
    <li> PKCS12 Keystore support
	<li> Security Policy 1.2 support
    <li> Memory leak fixes</li>
    <li> Many bug fixes</li>
 </ol>
</p>
<h4>Archived News</h4>
    <p>News on 
      <a href='archived_news.html'>previous Rampart/C releases</a>.
    </p>
</body>
</html>
