<?xml version="1.0"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->
<document>
  <properties>
    <title>Fulcrum Crypto</title>
    <author email="epugh@upstate.com">Eric Pugh</author>
  </properties>

  <body>
    <release version="1.0.6" date="2007-11-13">
      <action dev="sgoeschl" type="update">
        Getting rid of all external dependencies - in particular
        the crytptix library. The cryptix library contains strong
        encyryption algorithm causing problems using the software
        outside of the US (ECCN). Copy and wasted some source from
        JetSpeed (UnixCrpyt) and commons-codec (Base64).
      </action>
    </release>
    <release version="1.0.5" date="2004-11-24">
      <action dev="epugh" type="update" due-to="Kostyantyn Shchekotykhin">
        Merge api and impl jars into one project.
      </action>
      <action dev="epugh" type="update">
        Add ECM based tests.
      </action>
      <action dev="epugh" type="update" due-to="Youngho Cho">
        Update to use commons-codec-1.3
      </action>
    </release>
    <release version="1.0.4" date="">
      <action dev="epugh" type="update">
        Update to use Merlin 3.3.0
      </action>
      <action dev="epugh" type="add">
        Implementing the merlinized code.
      </action>
    </release>
    <release version="1.0-alpha-3" date="11-18-2003">
      <action dev="epugh" type="add">
        Integrated howto documentation on main page.
      </action>
    </release>

  </body>
</document>

