blautenb    2003/03/14 20:44:03

  Added:       doc/site forrest-targets.ent forrest.properties status.xml
               doc/site/src/documentation README.txt skinconf.xml
               doc/site/src/documentation/content/xdocs book-sample.xml
                        contrib.xml faq.xml history.xml index.xml
                        license.xml mail-lists.xml site.xml tabs.xml
                        who.xml xmlsec_entities.ent
               doc/site/src/documentation/content/xdocs/Java api.xml
                        examples.xml faq.xml index.xml installation.xml
                        interop.xml resolver.xml
               doc/site/src/documentation/content/xdocs/c credits.xml
                        faq.xml index.xml installation.xml interop.xml
                        programming.xml releases.xml tools.xml
               doc/site/src/documentation/resources/images group-logo.gif
                        icon.png project-logo.gif vc6a.gif vc6b.gif
  Log:
  Initial checkin of new forrest docs
  
  Revision  Changes    Path
  1.1                  xml-security/doc/site/forrest-targets.ent
  
  Index: forrest-targets.ent
  ===================================================================
  <!--
  This build.xml snippet contains Forrest targets for Ant 1.5+.  It checks that
  the user has set ${forrest.home}, either in one of:
    build.properties
    project.properties
    ant.properties
    .ant.properties
  or with the FORREST_HOME environment variable, and prints an informative error
  message if not found.
  
  Usage:
  1) Copy this file to somewhere in your project.
  2) Add the following to the top of your project's Ant build.xml script
  (adjusting the path):
  
    <!DOCTYPE project [
      <!ENTITY forrest-targets SYSTEM "file:./forrest-targets.ent">
    ]>
  
  3) Before the closing '</project>' in your build.xml, add this:
  
    &forrest-targets;
    
  This is like expanding a macro: it pulls in the contents of this file.
  
  A minimal build.xml would thus be:
  
  <!DOCTYPE project [
  <!ENTITY forrest-targets SYSTEM "file:./forrest-targets.ent">
  ]>
  
  <project default="site">
      &forrest-targets;
  </project>
  -->
  
    <target name="site" depends="forrest.init" description="Generates static 
HTML documentation">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="site"/>
    </target>
  
    <target name="webapp" depends="forrest.init" description="Generates an 
unpackaged webapp of the website">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="webapp"/>
    </target>
  
    <target name="war" depends="forrest.init" description="Generates a .war 
file containing the website">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="war"/>
    </target>
  
    <target name="validate" depends="forrest.init" description="Validates XML 
documentation files">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="validate"/>
    </target>
  
    <target name="forrest.init" depends="forrest.sethome, 
forrest.home.defined"/>
  
    <target name="forrest.sethome" depends="forrest.loadenv,
    forrest.checkenv, forrest.checkhome, forrest.check-build.properties,
    forrest.check-project.properties, forrest.check-ant.properties,
    forrest.check-.ant.properties"/>
  
    <target name="forrest.loadenv" unless="forrest.home.present">
      <property environment="env"/>
      <echo level="verbose">Forrest: Got ${env.FORREST_HOME}</echo>
    </target>
  
    <target name="forrest.checkenv" if="env.FORREST_HOME">
      <echo level="verbose">Found $FORREST_HOME..</echo>
      <property name="forrest.home" location="${env.FORREST_HOME}"/>
      <echo level="verbose">forrest.home set to ${forrest.home}</echo>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
  
    <target name="forrest.checkhome">
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
      <available file="build.properties" type="file" 
property="build.properties.present"/>
      <available file="project.properties" type="file" 
property="project.properties.present"/>
      <available file="ant.properties" type="file" 
property="ant.properties.present"/>
      <available file=".ant.properties" type="file" 
property=".ant.properties.present"/>
    </target>
  
    <!-- No we can't extract the commonalities below into an antcall'ed target,
    because it wouldn't be able to set forrest.home -->
    <target name="forrest.check-build.properties" unless="forrest.home.present"
    if="build.properties.present">
      <echo level="verbose">Forrest: Checking build.properties..</echo>
      <loadproperties srcfile="build.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
  
    </target>
  
    <target name="forrest.check-project.properties" 
unless="forrest.home.present"
    if="project.properties.present">
      <echo level="verbose">Forrest: Checking project.properties..</echo>
      <loadproperties srcfile="project.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
    <target name="forrest.check-ant.properties" unless="forrest.home.present"
    if="ant.properties.present">
      <echo level="verbose">Forrest: Checking ant.properties..</echo>
      <loadproperties srcfile="ant.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
    <target name="forrest.check-.ant.properties" unless="forrest.home.present"
    if=".ant.properties.present">
      <echo level="verbose">Forrest: Checking .ant.properties..</echo>
      <loadproperties srcfile=".ant.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
    <target name="forrest.home.defined" depends="forrest.sethome" 
unless="forrest.home.present">
      <property name="path" value="${user.home}/xml-forrest/build/dist/shbat"/>
      <pathconvert targetos="windows" property="winpath">
        <path>
          <pathelement location="${path}"/>
        </path>
      </pathconvert>
      <pathconvert targetos="unix" property="unixpath">
        <path>
          <pathelement
            location="${path}"/>
        </path>
      </pathconvert>
  
      <echo>
        ----------------------------------------------
        To run this target, you need Forrest installed.
        Please do the following:
  
        export CVSROOT=:pserver:[EMAIL PROTECTED]:/home/cvspublic
        cvs checkout xml-forrest
        cd xml-forrest
        build      (Windows)
        ./build.sh (Unix)
  
        Then either:
  
        - Set FORREST_HOME as the Forrest build instructions describe
        - Create a build.properties, with the forrest.home property pointing to
          the forrest shbat directory, eg:
  
          forrest.home=${winpath}  (Windows)
          forrest.home=${unixpath}  (Unix)
  
          (adjusting the path according to where your xml-forrest is)
        ----------------------------------------------
      </echo>
      <fail message="Need to define $${forrest.home}"/>
    </target>
  
  
  
  1.1                  xml-security/doc/site/forrest.properties
  
  Index: forrest.properties
  ===================================================================
  ##############
  # Properties used by forrest.build.xml for building the website
  ##############
  
  # Prints out a summary of Forrest settings for this project
  #forrest.echo=true 
  
  # Project name (used to name .war file)
  #project.name=my-project
  
  # Specifies name of Forrest skin to use
  #project.skin=forrest-site
  #project.skin=avalon-tigris
  #project.skin=krysalis-site
  
  
  ##############
  # layout properties
  
  # Properties that must be set to override the default locations
  #
  # Parent properties must be set. This usually means uncommenting
  # project.content-dir if any other property using it is uncommented
  
  #project.status=status.xml
  #project.content-dir=src/documentation
  #project.conf-dir=${project.content-dir}/conf
  #project.sitemap=${project.content-dir}/sitemap.xmap
  #project.xdocs-dir=${project.content-dir}/content/xdocs
  #project.stylesheets-dir=${project.content-dir}/resources/stylesheets
  #project.images-dir=${project.content-dir}/resources/images
  #project.schema-dir=${project.content-dir}/resources/schema
  #project.skins-dir=${project.content-dir}/skins
  #project.skinconf=${project.content-dir}/skinconf.xml
  #project.lib-dir=${project.content-dir}/lib
  #project.classes-dir=${project.content-dir}/classes
  
  
  ##############
  # Cocoon catalog entity resolver properties
  
  # A local catalog to supplement the default Forrest catalog
  #project.catalog=${project.schema-dir}/catalog
  
  # The verbosity level for the entity resolver (1..10)
  #forrest.catalog.verbosity=1
  
  
  ##############
  # validation properties
  
  # These props determine if validation is performed at all
  # Values are inherited unless overridden.
  # Eg, if forrest.validate=false, then all others are false unless set to true.
  #forrest.validate=true
  #forrest.validate.xdocs=${forrest.validate}
  #forrest.validate.skinconf=${forrest.validate}
  #forrest.validate.sitemap=${forrest.validate}
  #forrest.validate.stylesheets=${forrest.validate}
  #forrest.validate.skins=${forrest.validate}
  #forrest.validate.skins.stylesheets=${forrest.validate.skins}
  
  
  # Key:
  # *.failonerror=(true|false)    stop when an XML file is invalid
  # *.includes=(pattern)         Comma-separated list of path patterns to 
validate
  # *.excludes=(pattern)         Comma-separated list of path patterns to not 
validate
  
  #forrest.validate.failonerror=true
  #forrest.validate.includes=**/*
  #forrest.validate.excludes=
  #
  #forrest.validate.xdocs.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.xdocs.includes=**/*.x*
  #forrest.validate.xdocs.excludes=site.xml
  #
  #forrest.validate.skinconf.includes=${skinconf-file}
  #forrest.validate.skinconf.excludes=
  #forrest.validate.skinconf.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.sitemap.includes=${sitemap-file}
  #forrest.validate.sitemap.excludes=
  #forrest.validate.sitemap.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.stylesheets.includes=**/*.xsl
  #forrest.validate.stylesheets.excludes=
  #forrest.validate.stylesheets.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.skins.includes=**/*
  #forrest.validate.skins.excludes=**/*.xsl
  #forrest.validate.skins.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.skins.stylesheets.includes=**/*.xsl
  #forrest.validate.skins.stylesheets.excludes=
  
#forrest.validate.skins.stylesheets.failonerror=${forrest.validate.skins.failonerror}
  
  
  
  1.1                  xml-security/doc/site/status.xml
  
  Index: status.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <status>  
    <developers>
      <person name="Christian Geuer-Pollmann"  email="[EMAIL PROTECTED]"  
id="CGP" />
      <person name="Berin Lautenbach"      email="[EMAIL PROTECTED]"      
id="BL" />
      <person name="Axl Mattheus"      email="[EMAIL PROTECTED]"      id="AXL" 
/>
      <person name="Erwin van der Koogh" email="[EMAIL PROTECTED]" id="EK" />
      <person name="Karel Wouters"      email="[EMAIL PROTECTED]"      id="KW" 
/>
      <!-- Add more people here -->
    </developers>
    
    <changes>
      <!-- Add new releases here; action attributes: type:(add | fix | update); 
-->
      <!-- context:(docs | java_something | c_something ) -->
      <release version="Java 1.0.5" date="unreleased">
        <action dev="KW" type="update" context="docs">
        <p>Ported the docs to Forrest</p>
        </action>
      </release>
      <release version="C++ 0.10" date="unreleased">
        <action dev="BL" type="add" context="c_rel">
          <p>
            First release of a Beta for the C++ library.
          </p>
        </action>
      </release>
      <release version="Java 1.0.4" date="15 July 2002">
        <action dev="CGP" type="update" context="java_jdk">
        <p>Java - People who did not install Xalan properly under JDK 1.4.0 now
        get a more specific error message.</p>
        </action>
        <action dev="CGP" type="update" context="java_csp">
        <p>Java - We use the most recent version of the BouncyCastle JCE 
now.</p>
        </action>
      </release>
      <release version="Java 1.0.3" date="unknown">
        <action dev="CGP" type="add" context="java_exc_c14n">
        <p>Java - Added support <link href="ext:w3c/c14n"> Exclusive XML
          Canonicalization Version 1.0, W3C Recommendation 18 July 2002
        </link>. (There is no interop to test vector <link
          href="ext:w3c/c14n-interop">Y4</link> because of a problem in Xalan) 
</p>
        <p>Canonicalization is written completely new: it's about 5-80 times
        faster than the implementation in version 1.0.2. It's highly
        recommended to upgrade to the new version. </p>
        </action>
        <action dev="CGP" type="update" context="java_xpath2">
         <p>Java - Added support for <link href="ext:w3c/xpath-filterv2">
            XML-Signature XPath Filter 2.0, W3C Candidate Recommendation 18
            July 2002 
          </link>
          </p>
        </action>
      </release>
    </changes>
    
    <todo>
      <actions priority="high">
        <action context="Java-code" dev="AXL">
        Finish XML Encryption.
        </action>
        <action context="C++ code" dev="BL">
          Create MD5 transform.
        </action>
        <action context="C++ code" dev="BL">
          Create XPath-Filter Transform.
        </action>
        <action context="C++ code" dev="BL">
          Release a "1.00" version.
        </action>
        <action context="C++ code" dev="BL">
          Implement XML Encryption. 
        </action>
      </actions>
      <actions priority="medium">
        <action context="Java-code" dev="open">
        Construct more examples.
        </action>
        <action context="C++ code" dev="BL">
          Build a PGP/GPG signature capability.
        </action>
        <action context="C++ code" dev="BL">
          Implement interface for Windows CAPI.
        </action>
      </actions>
      <actions priority="low">
        <action context="docs" dev="KW">
        Polish the ported docs. Add more content. Todo and changes are in 
<code>status.xml</code>
        </action>
        <action context="Java-code and C++ code" dev="open">
          Implement an XKMS client.
        </action>
      </actions>
    </todo>
  </status>
  
  
  
  
  
  
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  xml-security/doc/site/src/documentation/README.txt
  
  Index: README.txt
  ===================================================================
  This is the base documentation directory. It usually contains two files:
  
  skinconf.xml     # This file customizes Forrest for your project. In it, you
                   # tell forrest the project name, logo, copyright info, etc
  
  sitemap.xmap     # Optional. This sitemap overrides the default one bundled
                   # with Forrest. Typically, one would copy a sitemap from
                   # xml-forrest/src/resources/conf/sitemap.xmap, and customize
                   # it.
  
  
  
  
  1.1                  xml-security/doc/site/src/documentation/skinconf.xml
  
  Index: skinconf.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <!--
  Skin configuration file. This file contains details of your project, which 
will
  be used to configure the chosen Forrest skin.
  -->
  
  <!DOCTYPE skinconfig [
  
    <!ENTITY % links.att 'name CDATA #REQUIRED'>
    <!ENTITY % link.att 'name CDATA #REQUIRED href CDATA #REQUIRED'>
    <!ELEMENT skinconfig (disable-search?, disable-compliance-links?, 
searchsite-domain?, searchsite-name?,
    project-name, project-url, project-logo, group-name?, group-url?, 
group-logo?,
    host-url?, host-logo?, year?, vendor?, trail?, credits?)*>
    <!ELEMENT credits (credit*)>
    <!ELEMENT credit (name, url, image?, width?, height?)>
    <!-- id uniquely identifies the tool, and role indicates its function -->
    <!ATTLIST credit id   CDATA #IMPLIED
                     role CDATA #IMPLIED>
    <!ELEMENT disable-search (#PCDATA)>
    <!ELEMENT disable-compliance-links (#PCDATA)>
    <!ELEMENT searchsite-domain (#PCDATA)>
    <!ELEMENT searchsite-name (#PCDATA)>  
    <!ELEMENT project-name (#PCDATA)>
    <!ELEMENT project-url (#PCDATA)>
    <!ELEMENT project-logo (#PCDATA)>
    <!ELEMENT group-name (#PCDATA)>
    <!ELEMENT group-url (#PCDATA)>
    <!ELEMENT group-logo (#PCDATA)>
    <!ELEMENT host-url (#PCDATA)>
    <!ELEMENT host-logo (#PCDATA)>
    <!ELEMENT year (#PCDATA)>
    <!ELEMENT vendor (#PCDATA)>
    <!ELEMENT trail (link1, link2, link3)>
    <!ELEMENT link1 EMPTY>
    <!-- Seems we can't use param entity refs until this is DTDified -->
    <!ATTLIST link1 name CDATA #REQUIRED href CDATA #IMPLIED>
    <!ELEMENT link2 EMPTY>
    <!ATTLIST link2 name CDATA #REQUIRED href CDATA #IMPLIED>
    <!ELEMENT link3 EMPTY>
    <!ATTLIST link3 name CDATA #REQUIRED href CDATA #IMPLIED>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT url (#PCDATA)>
    <!ELEMENT image (#PCDATA)>
    <!ELEMENT width (#PCDATA)>
    <!ELEMENT height (#PCDATA)>
    ]>
  
  <skinconfig>
    <!-- Do we want to disable the Google search box? -->
    <disable-search>false</disable-search>
    <disable-compliance-links>false</disable-compliance-links>
    <searchsite-domain>xml.apache.org/security</searchsite-domain>
    <searchsite-name>XML Security</searchsite-name>  
  
    <!-- mandatory project logo
         skin: forrest-site renders it at the top -->
    <project-name>Apache XML Security</project-name>
    <project-url>http://xml.apache.org/security</project-url>
    <project-logo>images/project-logo.gif</project-logo>
  
    <!-- optional group logo
         skin: forrest-site renders it at the top-left corner -->
    <group-name>Apache XML</group-name>
    <group-url>http:///xml.apache.org</group-url>
    <group-logo>images/group-logo.gif</group-logo>
  
    <!-- optional host logo (e.g. sourceforge logo)
         skin: forrest-site renders it at the bottom-left corner -->
    <host-url></host-url>
    <host-logo></host-logo>
  
    <!-- The following are used to construct a copyright statement -->
    <year>2002</year>
    <vendor>The Apache Software Foundation.</vendor>
  
    <!-- Some skins use this to form a 'breadcrumb trail' of links. If you don't
    want these, set the attributes to blank. The DTD purposefully requires them.
    -->
    <trail>
      <link1 name="apache" href="http://www.apache.org/"/>
      <link2 name="xml.apache" href="http://xml.apache.org/"/>
      <link3 name="" href=""/>
    </trail>
  
    <!-- Credits are typically rendered as a set of small clickable images in 
the
    page footer -->
    <credits>
      <credit>
        <name>Built with Apache Forrest</name>
        <url>http://xml.apache.org/forrest/</url>
        <image>images/built-with-forrest-button.png</image>
        <width>88</width>
        <height>31</height>
      </credit>
      <!-- A credit with @role='pdf' will have its name and url displayed in the
      PDF page's footer. -->
    </credits>
  
  </skinconfig>
  
  
  
  
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/book-sample.xml
  
  Index: book-sample.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE book PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN" 
"book-cocoon-v10.dtd">
  
  <!--
  Sample Forrest book.xml file.  If renamed to book.xml, this file will 
determine
  the menu for files in this directory, rather than have a menu be 
auto-generated
  from site.xml,
  
  NOTE:
    If you use site.xml in conjunction with a custom book.xml file, you can use
    'site:' URLs in book.xml.  Eg, instead of href="sample.html", one could have
    href="site:sample".
  -->
   
  <book software="MyProj"
    title="MyProj"
    copyright="@year@ The Apache Software Foundation"
    xmlns:xlink="http://www.w3.org/1999/xlink";>
  
    <menu label="About">
      <menu-item label="Index" href="index.html"/>
      <menu-item label="Sample page" href="sample.html"/>
      <menu-item label="Sample ihtml page" href="ihtml-sample.html"/>
      <menu-item label="Sample ehtml page" href="ehtml-sample.html"/>
      <menu-item label="FAQ" href="faq.html"/>
      <menu-item label="Changes" href="changes.html"/>
      <menu-item label="Todo" href="todo.html"/>
    </menu>
  
    <menu label="Subdir">
      <menu-item label="index" href="subdir/index.html"/>
    </menu>
  
  </book>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/contrib.xml
  
  Index: contrib.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  <document>
    <header>
      <title>Contributing to XML-Security</title>
    </header>
    <body>
      <section>
        <title>Introduction</title>
        <p> 
        The XML Security Project is an 
        <link href="http://www.opensource.org/";>Open Source</link> 
          volunteer project released
        under a very open license. This means there are many ways to contribute 
to the
        project - either with direct participation (coding, documenting, 
answering
        questions, proposing ideas, reporting bugs, suggesting bug-fixes, 
etc..) or by
        resource donations (money, time, publicity, hardware, software, 
conference
        presentations, speeches, etc...). 
        </p>
        <p> 
        To begin with, we suggest you to subscribe to the
          <link href="site:mail-lists">XML-Security mailing list</link> (follow 
the link for
        information on how to subscribe and to access the mail list archives).
        Listen-in for a while, to hear how others make contributions. 
        </p>
        <p>
        You can get your local working copy of the
          <link 
href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/xml-security";>latest and
          greatest code</link> (which you find in the xml-security module in 
the CVS code
        repository. Review the todo list, choose a task (or perhaps you have 
noticed
        something that needs patching). Make the changes, do the testing, 
generate a
        patch, and post to the dev mailing list. (Do not worry - the process is 
easy
        and explained below.) 
        </p>
      </section>
      <section>
       <title>Help Wanted Here</title>
        <p> 
        The rest of this document is mainly about contributing new or
          improved code and/or documentation, but we would also be glad to have 
extra
          help in any of the following areas: 
        </p>
        <ul>
          <li>
          Answering questions on the <code>users</code> mailing list - there
            is often a problem of having too many questioners and not enough 
experts to
            respond to all the questions.
        </li>
          <li>
          Testing the package (especially its less-frequently-used features) on
            various configurations and reporting back.
        </li>
          <li>
          Debugging - producing reproduceable test cases and/or finding
            causes of bugs. Some known bugs are informally listed on To Do, and 
some are
            recorded in Bugzilla (see <link href="#procedure">explanation
            below</link>).
        </li>
        <li>
          Specifying/analysing/designing new features - and beyond. (If you
          wish to get involved with this, please join the mailing list, install
          and try out Forrest and read some of the 
          <link href="site:mail-lists">mail archives</link>. You should have a 
strong
            "fluency" in XML technologies especially XMLDSig and XML Encryption,
          Java or C++ and a basic understanding of the architecture of this
          package.
        </li>
        </ul>
      </section> <anchor id="cvshowto"/>
      <section>
      <title>CVS Usage Precis</title>
        <p>
        An overview of how to use CVS to participate in the XML Security 
development.
          Do not be afraid - you cannot accidently destroy the actual code 
repository,
          because you are working with a local copy as an anonymous user. 
Therefore, you
          do not have the system permissions to change anything. You can only 
update your
          local repository and compare your revisions with the real repository. 
        </p>
        <p> 
        (Further general CVS usage information is at
          <link href="http://www.cvshome.org/";>www.cvshome.org</link> and your 
local
        <code>info cvs</code> pages or <code>man cvs</code> pages or user
        documentation.) 
        </p>
        <p> 
        Have a look at the <link href="site:java/installation">Java</link> or
        <link href="site:c/installation">C++</link> installation pages to see
        how to get a local copy of the source.
        </p>
      </section> <anchor id="ssh"/>
      <section>
      <title>CVS Committer with Secure Shell access</title>
        <p>
        After a developer has consistently provided contributions (code,
          documentation and discussion), then the rest of the dev community may 
vote to
          grant this developer commit access to CVS. 
        </p>
        <p>
        You will need secure access to the repository to be able to commit
          patches. Here are some resources that help to get your machine 
configured to
          use the repository over SSH. 
        </p>
        <ul>
          <li><link href="http://cvsbook.red-bean.com/";>The CVS Book</link></li>
        <li><link href="http://www.cvshome.org/";>www.cvshome.org</link></li>
        <li><link href="https://sourceforge.net/cvs/?group_id=32701";></link> -
          See the bottom of the page for links to tips for UNIX and Windows. 
Even if you
          are on UNIX, the Windows page will also help.</li>
        </ul>
      </section> <anchor id="procedure"/>
      <section>
      <title>Procedure for Raising Development Issues</title>
        <p> 
        There are two methods for discussing development and submitting
          patches. So that everyone can be productive, it is important to know 
which
          method is appropriate for a certain situation and how to go about it 
without
          confusion. This section explains when to use the 
<code>developer</code>
          <link href="site:mail-lists">mailing list</link> the bug database. 
        </p>
        <p> 
        Research your topic thoroughly before beginning to discuss a new
          development issue. Search and browse through the email archives - 
your issue
          may have been discussed before. Prepare your post clearly and
        concisely. 
        </p>
        <p> 
        Most issues will be discovered, resolved, and then patched quickly
          via the <code>developer</code> mailing list. Larger issues, and ones 
that are
          not yet fully understood or are hard to solve, are destined for
        Bugzilla. 
        </p>
        <p> 
        Experienced developers use Bugzilla directly, as they are very sure
          when they have found a bug and when not. However, less experienced 
users should
          first discuss it on the user or developer mailing list (as 
appropriate).
          Impatient people always enter everything into Bugzilla without caring 
if it is
          a bug of our package or their own installation/configuration mistake 
- please do
          not do this. 
        </p>
        <p> 
        As a rule-of-thumb, discuss an issue on the <code>developers</code>
          mailing list first to work out any details. After it is confirmed to 
be
          worthwhile, and you are clear about it, then submit the bug 
description or
          patch via Bug Tracking. 
        </p>
        <p> 
        Perhaps you do not get any answer on your first reply, so just post
          it again until you get one. (But please not every hour - allow a few 
days for
          the list to deal with it.) Do not be impatient - remember that the 
whole world
          is busy, not just you. Bear in mind that other countries will have 
holidays at
          different times to your country and that they are in different time 
zones. You
          might also consider rewriting your initial posting - perhaps it was 
not clear
          enough and the readers eyes glazed over. 
        </p>
      </section> <anchor id="tips"/>
      <section>
       <title>Contribution Notes and Tips</title>
        <p> 
        This is a collection of tips for contributing to the project in a
          manner that is productive for all parties. 
        </p>
        <ul>
          <li> 
          Every contribution is worthwhile. Even if the ensuing discussion
            proves it to be off-beam, then it may jog ideas for other people. 
        </li>
          <li> 
          Use sensible and concise email subject headings. Search engines,
            and humans trying to browse a voluminous list, will respond 
favourably to a
            descriptive title. 
        </li>
          <li>
          Start new threads with new Subject for new topics, rather than
            reusing the previous Subject line. 
        </li>
          <li>
          Keep each topic focused. If some new topic arises then start a new
            discussion. This leaves the original topic to continue uncluttered. 
        </li>
          <li>
          Whenever you decide to start a new topic, then start with a fresh
            new email message window. Do not use the &quot;Reply to&quot; 
button, because
            threaded mail-readers get confused (they utilise the 
<code>In-reply-to</code>
            header). If so, then your new topic will get lost in the previous 
thread and go
            unanswered. 
        </li>
          <li> 
          Prepend your email subject line with a marker when that is
            appropriate, e.g. <code>[Patch]</code>, <code>[Proposal]</code>,
            <code>[RT]</code> (Random Thought which quickly blossom into 
research topics
            :-), <code>[STATUS]</code> (development status of a certain
          facility). 
        </li>
          <li> 
          When making changes to XML documentation, or any XML document for
            that matter, use a <link 
href="http://www.oasis-open.org/cover/";>validating
            parser</link> (one that is tried and true is
          <link href="http://openjade.sourceforge.net/";>OpenSP/onsgmls</link>). 
This
          procedure will detect errors without having to go through the whole 
<code>build
            docs</code> process to find them. Do not expect Forrest or the 
build system to
          detect the validation errors for you - they can do it, but that is 
not their
          purpose. (Anyway, nsgmls validation error messages are more
          informative.) 
        </li>
        <li> 
          Remember that most people are participating in development on a
          volunteer basis and in their "spare time". These enthusiasts will 
attempt to
          respond to issues. It may take a little while to get your answers. 
</li>
        <li> 
          Research your topic thoroughly before beginning to discuss a new
          development issue. Search and browse through the email archives - 
your issue
          may have been discussed before. Do not just perceive a problem and 
then rush
          out with a question - instead, delve. 
        </li>
        <li> 
          Try to at least offer a partial solution and not just a problem
          statement. 
        </li>
        <li> 
          Take the time to clearly explain your issue and write a concise
          email message. Less confusion facilitates fast and complete
          resolution. 
        </li>
        <li> 
          Do not bother to send an email reply that simply says "thanks". When
          the issue is resolved, that is the finish - end of thread. Reduce 
clutter.
          </li>
        <li> 
          You would usually do any development work against the HEAD branch of
          CVS. 
        </li>
        <li> 
          When sending a patch, you usually do not need to worry about which
          CVS branch it should be applied to. The maintainers of the repository 
will
          decide. 
        </li>
        <li> 
          If an issue starts to get bogged down in list discussion, then it
          may be appropriate to go into private off-list discussion with a few 
interested
          other people. Spare the list from the gory details. Report a summary 
back to
          the list to finalise the thread. 
        </li>
        <li> 
          Become familiar with the mailing lists. As you browse and search,
          you will see the way other people do things. Follow the leading
          examples. 
        </li>
        </ul>
      </section>
    </body>
  </document>
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/faq.xml
  
  Index: faq.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE faqs PUBLIC "-//APACHE//DTD FAQ V1.1//EN" "dtd/faq-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "./xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  <faqs title="Frequently Asked Questions">
    <part id="mailinglist">
      <title>Mailinglist</title>
      <faq id="archive">
        <question>
          Where's the archive for the list?
        </question>
        <answer>
          <p>
          Currently, <link href="ext:gmane">Gmane</link> holds the messages
          of the last two weeks. This service also makes the mailinglist
          reachable with a news reader.
        </p>
        <p>
          You can use the ezmlm mailing list controller to recieve previous
          messages by email. Send an empty email to <link
            href="ext:mailhelp">[EMAIL PROTECTED]</link> for detailed 
information on how
          to use this service 
        </p>
        </answer>
      </faq>
      <!-- More faqs or parts here -->
    </part>
    
    <part id="general">
      <title>Required background</title>
      <faq id="XML-general">
        <question>
        Where can I learn about XML?
        </question>
        <answer>
        <p>
          There are plenty of resources on the web, just use any search
          engine. You might start at <link href="ext:xmlfaq">XMLFAQ</link> or 
<link href="ext:zvon">ZVON</link>.
        </p>
        </answer>
      </faq>
     <faq id="XMLDSig">
        <question>
        Where can I learn about XML Digital Signatures?
        </question>
        <answer>
        <p>
          The best place to start is <link href="ext:w3c/xmldsig"> &xmldsig; 
</link>. Links on XML
          security in general can be found on <link 
href="ext:christ-page">&christpage; </link>.
        </p>
        </answer>
      </faq>
     <faq id="XMLEnc">
        <question>
        Where can I learn about XML Encryption?
        </question>
        <answer>
        <p>
          The best place to start is <link 
href="ext:w3c/xmlenc">&xmlenc;</link>. Links on XML
          security in general can be found on <link 
href="ext:christ-page">&christpage;</link>.
        </p>
        </answer>
      </faq>
     <faq id="Crypto">
        <question>
        Where can I learn about Cryptography in general?
        </question>
        <answer>
        <p> 
          A lot of resources exist on the web, including the 'green bible' for
          cryptography: <link href="ext:hac">&hac;</link>. The &hac; is 
completely online and
          it should satisfy most of your cryptographic hunger. Disadvantage of
          it is that it goes rather deep, so it isn't a executive overview or a
          &quot;Learn XYZ in 21 days&quot;-book
        </p>
        </answer>
      </faq>
    </part>
  
    <part id="xmldsig">
      <title>XMLDSig questions</title>
      <faq id="env-transf">
        <question>
        What is the enveloped transform?
        </question>
        <answer>
        <p>
          The enveloped transform is a special transform that enables the use of
          so-called enveloped signatures.
        </p>
        <p>
          Enveloped signatures are signatures over an entire XML document, for
          which the <code>&lt;Signature&gt;</code> element is included in the
          document itself. An example could be:
        </p>
        <source>
  <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
     <Root>
       <SomeContent>
         ... 
       </SomeContent>]]><em><![CDATA[
         <ds:Signature>
           <ds:SignedInfo>
             <ds:Reference URI="">
               <ds:Transforms>
                 <ds:Transform 
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
               </ds:Transforms>
             </ds:Reference>
           </ds:SignedInfo>
           ....
         </ds:Signature>]]></em><![CDATA[
     </Root>]]>
        </source>
        <p>
          The <code>Reference</code> indicates that <code>Root</code> and it's
          descendants (except for comments) are signed, but the
          <code>Transform</code> element says to throw out the
          <code>Signature</code> element (that is the parent of this
          <code>Reference</code>) from the stream that is to be signed. Note
          that if there are other
          <code>Signature</code> elements in <code>Root</code>, they will remain
          untouched.
        </p>
        </answer>
      </faq>
      <faq id="c14N">
        <question>
        What's the difference between C14N and ExclC14N?
        </question>
        <answer>
        <p>
          C14N was introduced to solve some problems that arise when signing
          XML. Because XML allows to change the representation of an XML 
document
          without changing the actual content, signatures may break when
          different parsers are used to generate and verify the signature. A 
simple
          example of such an allowed change is changing the order of attributes
          within an element. (That is solved by C14N by sorting the attributes 
by
          alphabet)
        </p>
        <p>
          Because a C14N'ed XML fragment inherits all the namespace declarations
          from it's ancestors, it is not possible to embed a signed XML fragment
          into a document that has other namespace declarations.
        </p>
        <p>
          This is solved by ExclC14N. ExclC14N takes extra information as input
          in which you can specify which of the ancestor's namespaces should be
          included. 
        </p>
        <p>
          For more information on this topic, have a look at the C14N and
          ExclC14N sections of the <jump href="site:w3c/xmldsig">W3C XMLDSig 
WG</jump>.
        </p>
        </answer>
      </faq>
      
      <!-- template
      <faq id="">
      <question>
    </question>
      <answer>
    </answer>
      </faq>
      -->
  
    </part>
    <!-- More faqs or parts here -->
  </faqs>
  
  
  
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/history.xml
  
  Index: history.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "./xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  
  <document> 
    <header> 
      <title>XML Security History</title> 
    </header> 
    <body> 
      <section>
        <title>The &lt;WebSig&gt; project</title>
        <p>
        In mid-1999, the <jump
          href="http://www.nue.et-inf.uni-siegen.de/";>Institute for Data
          Communications Systems</jump> at the <jump
          href="http://www.uni-siegen.de/";>University of Siegen</jump> in
        Germany looked for partners to participate in a European project for
        implementing the upcoming <jump href="ext:w3c/xmldsig">XML Signature
          standard</jump>. We found our partners in the companies <jump
          href="http://www.expnet.gr/";>Expertnet S.A.</jump> and <jump
          href="http://www.proodos.gr/";>PROODOS S.A.</jump>, both from Athens,
        who were willing to use our XML Signature library in a first commercial
        project. 
        </p>
        <p>
        The project started in January 2000 and ended up in September 2001. 50%
        of the costs have been funded by the European Commission in the <jump
          href="http://www.ispo.cec.be/isis/99websig.htm";>ISIS
          programme</jump>. Goal was to develop a JAVA library for creating and
        validating XML Signatures and to make the binaries of this software
        freely available. 
        </p>
        <p>In September 2001, the Institute for Data Communications Systems 
decided to
        make the sources freely available, too, to promote the use of digital
        signatures and to give XML Signature a spin. The decision was made to
        give the complete library (including an implementation of "Canonical
        XML" and "XML Signature") under the hood of the Apache Software
        Foundation to ensure availablility of the source and to enable other
        people to use it under the Apache License. 
        </p>
      </section>
      <section>
        <title>XML Encryption</title>
        <p>2Bdone</p>
      </section>    
      <section>
        <title>The C++ Library</title>
        <p>The C++ library is a much more recent addition to the XML-Security
          project.  It started out on <jump href="http://www.sourceforge.net";>
            Sourceforge</jump> and was migrated into XML Security in early 2003.
        </p>
      </section>
    </body>
  </document>
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  <document> 
    <header> 
      <title>Welcome to XML Security</title> 
    </header> 
    <body> 
      <section>
        <title>News</title>
        <p>
          The site has now been re-built using the new xml.apache.org standard,
          using Forrest.
        </p>
      </section>
      <section>
        <title>The Project</title>
        <p>
          The XML Security project is aimed at providing implementation of
          security standards for XML.  Currently the focus is on the W3C
          standards :
        </p>
        <ul>
          <li><jump href="http://www.w3.org/Signature/";>
              XML-Signature Syntax and Processing; and</jump>
          </li>
          <li><jump href="http://www.w3.org/Encryption/2001/";>
              XML Encryption Syntax and Processing.</jump></li>
        </ul>
        <p>
          Once these are implemented, 
          <jump href="http://www.w3.org/2001/XKMS";>XML Key Management</jump>
            is likely to be the next focus for the project.
        </p>
        <p>
          Two libraries are currently available.
        </p>
        <ol>
          <li>A Java library, which includes a mature Digital Signature 
            implementation.  Encryption is currently under development.</li>
          <li>A C++ library is also now available.  Currently this is in
            beta and supports Digital Signature processing only.</li>
        </ol>
      </section>
    </body>
  </document>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/license.xml
  
  Index: license.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  
  <document>
   <header>
    <title>The Apache Software License, Version 1.1</title>
   </header>
  
  <body>
  <source><![CDATA[
   Copyright (C) 2002 The Apache Software Foundation. All rights reserved.
   
   Redistribution and use in source and binary forms, with or without modifica-
   tion, are permitted provided that the following conditions are met:
   
   1. Redistributions of  source code must  retain the above copyright  notice,
      this list of conditions and the following disclaimer.
   
   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
   
   3. The end-user documentation included with the redistribution, if any, must
      include  the following  acknowledgment:  "This product includes  software
      developed  by the  Apache Software Foundation  (http://www.apache.org/)."
      Alternately, this  acknowledgment may  appear in the software itself,  if
      and wherever such third-party acknowledgments normally appear.
   
   4. The names "Apache Forrest" and  "Apache Software Foundation" must  not be
      used to  endorse or promote  products derived from  this software without
      prior written permission. For written permission, please contact
      [EMAIL PROTECTED]
   
   5. Products  derived from this software may not  be called "Apache", nor may
      "Apache" appear  in their name,  without prior written permission  of the
      Apache Software Foundation.
   
   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
   APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
   INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
   DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
   OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
   ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
   (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
   THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   
   This software  consists of voluntary contributions made  by many individuals
   on behalf  of the Apache  Software Foundation. For  more information  on the 
   Apache Software Foundation, please see <http://www.apache.org/>.]]></source>
  </body>
  </document>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/mail-lists.xml
  
  Index: mail-lists.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  <document> 
    <header> 
      <title>XML security mailing list</title> 
    </header> 
    <body> 
      <section>
        <title>XML security mailing list</title>
        <p>
        There exists a mailing list which you can subscribe to ask questions:
        </p>
        <p>
        The <jump href="ext:xml.apache.org/mail">ezmlm mailing list 
controller</jump> 
        accepts commands by sending emails to it, generally
        like the following:
        </p>
        <ul>
        <li>
          <jump href="ext:mailsub">security-dev-subscribe</jump> to subscribe
          your current email address to the list.
        </li>
        <li>
          <jump href="ext:mailunsub">security-dev-unsubscribe</jump> to
          <em>un</em>subscribe your *current* email address from the list.
        </li>
        <li>
          <jump href="ext:mailhelp">security-dev-help</jump> to get Help on
          mailing list commands.
        </li>
        </ul>
      </section>
      <section>
        <title>Mail Archives</title>
        <p>
        An archive of this list is kept under 
        <jump href="ext:gmane">
          http://news.gmane.org/thread.php?group=gmane.text.xml.security.devel
        </jump>
        </p>
        <p>
        Another archive is held by <jump href="ext:nagoya">The EyeBrowse Mail 
Archive
        </jump>.
        </p>
      </section>
    </body>
  </document>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/site.xml
  
  Index: site.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE site
  [
    <!ENTITY % xmlsec_entities SYSTEM "xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  <site label="XML Security" href="" 
xmlns="http://apache.org/forrest/linkmap/1.0";>
  
    <about label="About">
      <index label="Index" href="index.html"/>
      <!--    <download label="Download" 
href="http://xml.apache.org/security/dist/"/> -->
      <download label="Download" 
href="http://www.apache.org/dyn/closer.cgi/xml/security/"/>
      <faq label="FAQs" href="faq.html"/>
      <who label="Who we are" href="who.html"/>
      <todo label="Todo" href="todo.html"/>
      <changes label="Changes" href="changes.html"/>
      <history label="History" href="history.html"/>
      <license label="License" href="license.html"/>
    </about>
  
    <getting-involved label="Getting Involved">
      <contrib label="Contributing" href="contrib.html"/>
      <CVS label="CVS" href="http://cvs.apache.org/viewcvs/xml-security/"/>
      <mail-lists label="Mail lists" href="mail-lists.html"/>
    </getting-involved>
  
    <java label="Java" href="Java/">
      <!-- changes label="Changes" href="changes.html"/ -->
      <index label="Index" href="index.html"/>
      <installation label="Installation" href="installation.html" />
      <examples label="Examples" href="examples.html"/>
      <faq_j label="FAQs" href="faq.html"/>
      <api label="API Docs" href="api.html" />
      <interop label="Interoperability" href="interop.html"/>
      <gump label="Gump results"
        href="http://cvs.apache.org/builds/gump/latest/xml-security.html"; />
      <resolvers label="Resolvermania" href="resolver.html"/>
    </java>
  
    <c label="C++" href="c/">
      <index label="Index" href="index.html"/>
        <install label="Installation" href="installation.html"/>
      <programming label="Programming" href="programming.html"/>
      <cfaq label="FAQs" href="faq.html"/>
        <external label="API Docs" href="apiDocs/index.html"/>
      <tools label="Tools" href="tools.html"/>
      <releases label="Release Information" href="releases.html"/>
      <credits label="Credits" href="credits.html"/>
      <interop label="Interoperability" href="interop.html"/>
    </c>
  
    <references label="References">
      <xmldsig label="W3C XML DSig" href="http://www.w3c.org/Signature"/>
      <xmlenc label="W3C XML Enc" href="http://www.w3c.org/Encryption"/>
    </references>
  
    <external-refs>
      <!-- NOTE: the label atts are not defined/used in Forrest; I added them 
for -->
      <!-- later use. Karel. -->
  
      <!-- Christian's security page -->
      <christ-page label="The XML Security page" 
href="http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/xml_security.html"/>
  
      <!-- W3C -->
      <w3c href="http://www.w3c.org/";>
        <xmldsig label="&xmldsig;" href="Signature"/>
        <xmldsig_java_supported label="&supp_java_dsig;" 
href="&supp_java_dsig_ref;"/> 
        <xmldsig_C_supported label="&supp_C_dsig;" href="&supp_C_dsig_ref;"/> 
        <xmlenc_java_supported label="&supp_java_enc;" 
href="&supp_java_enc_ref;"/> 
        <xmlenc_C_supported label="&supp_C_enc;" href="&supp_C_enc_ref;"/> 
        <xmlenc label="&xmlenc;" href="Encryption"/>
        <c14n label="C14N-supported" href="TR/2002/REC-xml-exc-c14n-20020718/" 
/>
        <c14n-interop label="C14N tests" 
href="Signature/2002/02/01-exc-c14n-interop.html" />
        <xpath-filterv2 label="XMLDSig XPath Filter 2.0" 
href="TR/2002/CR-xmldsig-filter2-20020718/" />
        <xpath label="XML Path Language (XPath) Version 1.0" href="TR/xpath"/>
        <dom label="DOM" href="DOM"/>
        <dom2 label="DOM level 2" href="DOM-Level-2/"/>      
      </w3c>
  
      <!-- SAX -->
      <sax label="SAX" href="http://www.megginson.com/SAX/sax.html"/>
      <sax2 label="SAX 2" href="http://www.megginson.com/SAX/Java/index.html"/>
  
      <!-- Apache -->
      <xml.apache.org href="http://xml.apache.org/";>
        <xml4j-used label="Apache Xerces2" href="xerces2-j/index.html"/>
        <ApacheLicense label="The Apache Software License, Version 1.1" 
href="dist/LICENSE.txt"/>
        <forrest href="forrest/"/>
        <mail href="mail.html"/>
      </xml.apache.org>
      <ant label="Ant" href="http://jakarta.apache.org/ant/index.html"/>
      <bugzilla label="Bugzilla (the Apache bug database)" 
href="http://nagoya.apache.org/bugzilla"/>
      <buglist label="XalanJ2 open bugs" 
href="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=XalanJ2&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;cmdtype=doit&amp;order=%27Importance%27"/>
      
      <!-- Java -->
      <java>
        <docs>
        <full-api href=""/>
        <hierachry href=""/>
        <gumpdocs 
href="http://nagoya.apache.org/gump/javadoc/xml-security/build/doc/html/api/index.html";
 />
        </docs>
        <jce>
        <download href="http://www.bouncycastle.org/download/";>
          <file href="&jce_download_file;"/>
        </download>
        </jce>
      </java>
  
      <!-- Crypto and CSPs -->
      <hac label="&hac;" href="http://www.cacr.math.uwaterloo.ca/hac/"/>
      <bouncy label="Boucy Castle" href="http://www.bouncycastle.org/"/>
  
      <!-- SUN -->
      <java label="Java (TM) 2 Platform Standard Edition v1.4.0"
        href="http://java.sun.com/j2se/1.4/index.html"/>
      <javaforum label="SUN java forum" href="http://forum.java.sun.com/"/>
      <jaxp label="Java API for XML Parsing 1.0" 
href="http://java.sun.com/xml/docs/api/index.html"/>
  
      <!-- General information -->
      <zvon label="ZVON" href="http://www.zvon.org/"/>
      <xmlfaq label="XMLFAQ" href="http://www.ucc.ie/xml/"/>
      <bsf label="Bean Scripting Framework (BSF)" 
href="http://oss.software.ibm.com/developerworks/projects/bsf"/>
  
      <!-- Mailing list -->
      <nagoya label="EyeBrowseList" 
href="http://nagoya.apache.org/eyebrowse/SummarizeList?listId=72"/>
      <gmane label="Gmane" 
href="http://news.gmane.org/thread.php?group=gmane.text.xml.security.devel"/>
      <mailhelp label="mailinglisthelp" href="mailto:[EMAIL PROTECTED]"/>
      <mailsub label="mailinglistsubscribe" href="mailto:[EMAIL PROTECTED]"/>
      <mailunsub label="mailinglistunsubscribe" href="mailto:[EMAIL 
PROTECTED]"/>
  
      <!-- Contacts (this should change in a future version of Forrest) -->
      <geuerp label="Christian Geuer-Pollmann" href="mailto:[EMAIL PROTECTED]"/>
  
      <!-- Links to specific emails -->      
      <mail>
        <linkmaps 
href="http://marc.theaimsgroup.com/?l=forrest-dev&amp;m=103444028129281&amp;w=2"/>
        <semantic-linking 
href="http://marc.theaimsgroup.com/?l=forrest-dev&amp;m=103097808318773&amp;w=2"/>
        <inputmoduletransformer
          
href="http://marc.theaimsgroup.com/?t=103992708800001&amp;r=1&amp;w=2"/>
        <linkrewritertransformer 
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15611"/>
        <xpathtransformer 
href="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12235"/>
      </mail>
    </external-refs>
  
  </site>
  
  
  
  
  
  
  
  
  
  
  
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/tabs.xml
  
  Index: tabs.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.0//EN" 
"tab-cocoon-v10.dtd">
  
  <tabs software="XML Security"
      title="Apache XML Security"
      copyright="@year@ The Apache Foundation"
      xmlns:xlink="http://www.w3.org/1999/xlink";>
  
      <!-- The rules are:
      @dir will always have /index.html added.
      @href is not modified unless it is root-relative and obviously specifies a
      directory (ends in '/'), in which case /index.html will be added
      -->
  
      <tab label="Home" dir=""/>
      <tab label="Java" dir="Java"/>
      <tab label="C++" dir="c"/>
  
  </tabs>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/who.xml
  
  Index: who.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  <document>
    <header>
      <title>Who we are</title>
    </header>
    <body>
      <section>
        <title>The Apache XML-Security Community</title>
        <p> The XML-Security Project operates on a meritocracy: the more you 
do, the
          more responsibility you will obtain. This page lists all of the 
people who have
          gone the extra mile and are Committers. If you would like to get 
involved, the
          first step is to join the mailing lists. </p>
        <p> We ask that you please do not send us emails privately asking for
          support. We are non-paid volunteers who help out with the project and 
we do not
          necessarily have the time or energy to help people on an individual 
basis.
          Instead, we have set up mailing lists which often contain hundreds of
          individuals who will help answer detailed requests for help. The 
benefit of
          using mailing lists over private communication is that it is a shared 
resource
          where others can also learn from common mistakes and as a community 
we all grow
          together.</p>
      </section>
      <section>
        <title>Committers</title>
        <ul>
        <li> [CGP] Christian Geuer-Pollmann 
(geuer-pollmannATnue.et-inf.uni-siegen.de) </li>
          <li> [BL] Berin Lautenbach (berinATozemail.com.au) </li>
          <li> [AXL] Axl Mattheus (axl.mattheusATsun.com) </li>
          <li> [EK] Erwin van der Koogh (erwinATkoogh.com) </li>
        </ul>
      </section>
    </body>
  </document>
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/xmlsec_entities.ent
  
  Index: xmlsec_entities.ent
  ===================================================================
  <!ENTITY packagenamelong  "Apache-XML-Security-J">
  <!ENTITY packagename      "xml-security">
  <!ENTITY packageversion   "1.0.5D2">
  <!ENTITY packagedirectory "NOT USED ??">
  <!ENTITY packagedistname  "Apache-XML-Security-J">
  
  <!ENTITY jce_download_file "jce-jdk13-114.jar">
  <!ENTITY lib_jce "./libs/bc-&jce_download_file;">
  
  <!-- ENTITY packagenamelong  "@@packagenamelong@@"-->
  <!-- ENTITY packagename      "@@packagename@@"-->
  <!-- ENTITY packageversion   "@@packageversion@@"-->
  <!-- ENTITY packagedirectory "@@packagedirectory@@ "-->
  <!-- ENTITY packagedistname  "@@packagedistname@@  Apache-XML-Security-J"-->
  
  <!ENTITY xmlsec  "Apache-XML-Security-J">
  <!ENTITY xmldsig "W3C XML-Signature Syntax and Processing">
  <!ENTITY xmlenc  "W3C XML Encryption Syntax and Processing">
  <!ENTITY hac     "Handbook of Applied Cryptography">
  <!ENTITY christpage     "The XML Security Page">
  <!ENTITY supp_java_dsig "XML-Signature Syntax and Processing,  W3C 
Recommendation 12 February 2002">
  <!ENTITY supp_java_dsig_ref "TR/2002/REC-xmldsig-core-20020212/">
  <!ENTITY supp_C_dsig "XML-Signature Syntax and Processing,  W3C 
Recommendation 12 February 2002">
  <!ENTITY supp_C_dsig_ref "TR/2002/REC-xmldsig-core-20020212/">
  <!ENTITY supp_java_enc "XML Encryption Syntax and Processing, W3C 
Recommendation 10 December 2002">
  <!ENTITY supp_java_enc_ref "TR/2002/REC-xmlenc-core-20021210/">
  <!ENTITY supp_C_enc "XML Encryption Syntax and Processing, W3C Recommendation 
10 December 2002">
  <!ENTITY supp_C_enc_ref "TR/2002/REC-xmlenc-core-20021210/">
  <!ENTITY api_ref "api/org/apache/xml/security/">
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/Java/api.xml
  
  Index: api.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  <document> 
    <header> 
      <title>Java API Documentation</title> 
    </header> 
    <body> 
      <section>
        <title>Javadoc Generated Documentation</title>
        <p>&packagenamelong; comes packaged with API documentation.</p>
        <p>This documentation is generated automatically from the Javadoc-style
        comments inside the source files.  Click on one of the links below to
        go to the appropriate API documentation.</p>
      </section>
      <section>
        <title>&packagename; API Documentation</title>
      <ul>
        <li><jump href="ext:java/docs/full-api">Full API 
documentation</jump></li>
        <li><jump href="ext:java/docs/hierachry">Hierarchy for all the 
packages</jump></li>
        <li>If the above documentation is outdated, an always-fresh copy can be 
found <jump href="ext:java/docs/gumpdocs">here</jump></li>
      </ul>
      </section>
    </body>
  </document>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/Java/examples.xml
  
  Index: examples.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  
  <document> 
    <header> 
      <title>Java Examples</title> 
    </header> 
    <body> 
      <section>
        <title>About</title>
        <p>
        Part of this software can be used to create and verify arbitrary forms
        of XML Signatures. The documentation available here is not very huge;
        my first approach is to supply usage examples which are available in
        the <code>src_samples/</code> directory to give interested users a
        first starting point to jump-start with XML Signature. 
        </p>
        <note>
        The samples divide into two groups: Samples that <em>create</em> and
        samples that <em>verify</em> Signatures. Eventually, you should adjust
        the verifying program to another filename if you get
        <code>FileNotFoundException</code>s.
        </note>
        <fixme author="KW">
        We should add more information here.
        </fixme>
        
      </section>
    </body>
  </document>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/Java/faq.xml
  
  Index: faq.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE faqs PUBLIC "-//APACHE//DTD FAQ V1.1//EN" "dtd/faq-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  <faqs title="Frequently Asked Questions - Java">
    <part id="general_j">
      <title>Questions about Java</title>
      <faq id="security_j">
        <question>
        I have a Java-(security/cryptography) problem. Can you help me?
        </question>
        <answer>
        <p>
          Go to the <link href="ext:javaforum">java forum</link> of Sun. You can
          find forums where you can ask questions like &quot;How do I generate
          a keypair&quot;, etc.
        </p>
        </answer>
      </faq>
      <faq id="xml_j">
        <question>
        I have a Java-XML problem.
        </question>
        <answer>
        <p>
          Go to the <link href="ext:javaforum">java forum</link> of Sun, section
          Java Technology &amp; XML and have a look at <link
            href="ext:xml.apache.org/xml4j-used"> Apache Xerces</link>.
        </p>
        </answer>
      </faq>
    </part>
  
    <part id="specific_">
      <title>Questions about this package</title>
      <faq id="crimson">
        <question>
        I'm using Crimson, but it throws Exceptions. Why?
        </question>
        <answer>
        <p>
          Crimson is not supported at the moment. The main reason is that
          Crimson did not support the
          <code>org.w3c.dom.traversal.TreeWalker</code> interface in the
          past. Additionally, it does not support the
          <code>org.apache.xerces.dom.DocumentImpl.putIdentifier(String ID,
            Element e)</code> functionality where Xerces allows us to enable ID
          attributes during document generation.
        </p>
        <p>
          Use <link href="ext:xml.apache.org/xml4j-used">Apache Xerces</link>
          instead of Crimson.
        </p>
        </answer>
      </faq>
      <faq id="bouncy">
        <question>
        What's up with the Bouncy Castle CSP? / Where is my CSP?
        </question>
        <answer>
        <p>
          There is <em>no</em> JCE bundled together with this
          distribution. This is because the Apache Project web site is hosted
          in the US where some export restrictions apply to the cryptographic
          primitives. 
        </p>
        <p>
          The nice guys from the <jump href="ext:bouncy">Legion of Bouncy
            Castle</jump> where so helpful to supply their JCE in a simple JAR
          package so that we can simply fetch it during the compilation process
          and put it into the <code>libs/</code> directory. When you use the
          ant makefile <code>build.xml</code> and simply say <code>ant
            compile</code> or <code>ant get-jce</code>, <code>ant</code> tries
          to fetch this JAR from the australian server. After that step, the
          compilation works completely.  
        </p>
        <p>
          The ant make tools initiates an automated download of the
          BouncyCastle JCE. The file is downloaded into the <code>libs/</code>
          directory and a &quot;bc-&quot; is prepended to the filename. This is
          done because we want the provider name (bc means BouncyCastle) being
          visible in the JAR's filename. 
        </p>
        <note>
          The fact that we <em>use</em> Bouncy in this project does not mean
          that you <em>must</em> use it, it's only the default. If you take a
          look at the configuration
          <code>src/org/apache/xml/security/resource/config.xml</code>, you'll
          notice the sections which do integrate these alternative JCEs.
        </note>                 
        <p>
          More information can be found in the <link
            href="site:java/installation">Installation</link> section.
        </p>
        </answer>
      </faq>
      <faq id="logging">
        <question>
        How do I enable/turn off logging?
        </question>
        <answer>
        <p>
          The logging is configured in the <code>config.xml</code> file which
          either in the <code>xmlsec.jar</code> file or in the class path. This
          is a little bit complicated as config.xml is used both for library
          wide configurations like algorithms as well as for the user setting
          about log4j. This will be changed someday ;-))
        </p>
        <p>OK, so it goes: In the 
          <jump
            
href="http://cvs.apache.org/viewcvs.cgi/xml-security/src/org/apache/xml/security/resource/config.xml?rev=HEAD&amp;content-type=text/vnd.viewcvs-markup";>
            
<code>xml-security/src/org/apache/xml/security/resource/config.xml</code>
          </jump> file, there is an element called
          <code>&lt;log4j:configuration&gt;</code>. This element contains the
          XML style configuration information as defined in the 
          <jump
            
href="http://jakarta.apache.org/log4j/docs/api/org/apache/log4j/xml/DOMConfigurator.html";>
            log4j DOMConfigurator class
          </jump>. You can find examples 
          <jump 
href="http://cvs.apache.org/viewcvs.cgi/jakarta-log4j/tests/input/xml/";>here</jump>
        </p>
        </answer>
      </faq>
      <faq id="baseURI">
        <question>
        What is the meaning of <code>BaseURI</code>?
        </question>
        <answer>
        <p>
          When you work with URIs like
          &quot;<code>http://www.example.com/index.html</code>&quot;, it is
          quite sure what you mean as this is an absolute URL, i.e. it is clear
          which protocol ise used to fetch which file from which server. When
          you use such a URL inside a signature, the software can automatically
          figure out what you sign. But when you sign something in your local
          file system or if you use a relative path like
          &quot;<code>../1.txt</code>&quot;, it's not possible to understand
          this reference without some context. <em>This</em> context is the
          <code>BaseURI</code>. For instance, if you sign
          <code>URI=&quot;../1.txt&quot;</code> and the
          
<code>BaseURI=&quot;file:///home/user/work/signature.xml&quot;</code>, 
          it is clear that the file
          <code>BaseURI=&quot;file:///home/user/1.txt&quot;</code> is to be
          signed. But when you create the signature, the file
          <code>BaseURI=&quot;file:///home/user/work/signature.xml&quot;</code>
          does not yet exist; therefore, you have to supply the URL where you
          intend to store the signature later (relative to the signed objects). 
        </p>
        <p>
          The String BaseURI is the systemID on which the Object will be stored
          in the future. This is needed to resolve relative links in the
          <code>Reference</code> elements which point to the filesystem or
          something similar. 
        </p>
        <p>
          Example: Imagine that you want to create a signature to store it on a
          web server as
          <code>http://www.acme.com/signatures/sig1.xml</code>. So
          <code>BaseURI=&quot;http://www.acme.com/sig1.xml&quot;</code>. This
          means that if you create a <code>Reference</code> with
          <code>URI=&quot;./index.html&quot;</code>, the library can easily use
          it's HTTPResourceResolver to fetch
          <code>http://www.acme.com/index.html</code> without that you have to
          say <code>URI=&quot;http://www.acme.com/index.html&quot;</code>. 
        </p>
        </answer>
      </faq>
      <faq id="examples">
        <question>
        How do I use the package to generate and verify a signature?
        </question>
        <answer>
        <p>
          Checkout the samples in
          <code>src_samples/org/apache/xml/security/samples/signature/</code>. 
        </p>
        <note>
          The samples divide into two groups: Samples that <em>create</em> and
          samples that <em>verify</em> Signatures. Eventually, you should
          adjust the verifying program to another filename if you get
          <code>FileNotFoundException</code>s.
        </note>
        </answer>
      </faq>
      <faq id="jdk140">
        <question>
        I'm using SUN JDK v1.4.0 or v1.4.1 and it get some exceptions. Any 
clues?
        </question>
        <answer>
        <p>
          After SUN released the  <jump href="ext:java"> Java (TM) 2 Platform
            Standard Edition v1.4.0 </jump>, the xml-security package stopped
          working. This is a  
          <jump
            
href="http://developer.java.sun.com/developer/bugParade/bugs/4615582.html";>
            known 
          </jump> 
          problem: SUN packaged a beta of Xalan into the JDK1.4.0, but the
          xml-security package requires a stable version of Xalan (v2.2.0 or
          later). To fix the problem, you have to put the xalan.jar into a
          special directory in your JDK:
          <code>j2sdk1.4.0/jre/lib/endorsed/xalan.jar</code>. If you installed
          an out-of-the-box JDK1.4 (e.g. on Windows 2000), the
          &quot;endorsed&quot; directory does not exist: you'll have to create
          it by hand.
        </p>
        <warning>Putting this JAR to another location like lib/ext WILL NOT 
WORK. </warning>
        <p>
          For more on that, you can also check the  <jump
            href="http://xml.apache.org/~edwingo/jaxp-faq.html#override";>
            Unofficial JAXP FAQ </jump>. 
        </p>
        </answer>
      </faq>
      <faq id="nullptrexception">
        <question>
        I get a NullPointerException, and I don't know what's wrong.
        </question>
        <answer>
        <p>
          Often, this problem is caused by using DOM1 calls like
          <code>createElement(), setAttribute(), createAttribute()</code>. 
These are
          non-namespace-aware and will cause XPath and C14N errors.
          Always use the DOM2 <code>create(Attribute|Element)NS(...)</code>
          methods instead, even if you're creating an element without a 
namespace
          (in that case, you can use null as a namespace).
        </p>
        <p>
          The Xalan-J Team told us that DOM1 calls are deprecated and are not to
          be used in code. xml-security has been reviewed and is DOM1 clean 
now. 
          The Xalan folks told us that if you create Elements or attributes 
          using DOM1 calls which are not namespace aware, they do not care about
          any problem you have because of incorrect hehaviour of Xalan.
        </p> 
        </answer>
      </faq>
    </part>
  
  </faqs>
  
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/Java/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  
  <document> 
    <header> 
      <title>The Java section</title> 
    </header> 
    <body> 
      <section>
        <title>News</title>
        <p>Version 1.0.4 released on 15 July 2002; minor
        improvements. The most significant is that people who did not install
        Xalan properly under JDK 1.4.0 get a more specific error message. It
        uses the most recent version of the BouncyCastle JCE now. </p>
      </section>
      <section>
        <title>XML Security Release</title>
        <p>
        The &packagenamelong; &packageversion; supports
        <jump href="ext:w3c/xmldsig_java_supported">&supp_java_dsig;
        </jump> 
        </p>
        <p>
        Note that there is no standard API avaliable at the moment. SUN is
        working on a JAVA Specification Request 
        <jump href="http://jcp.org/jsr/detail/105.jsp";>
          JSR-105: XML Digital Signature APIs
        </jump> on an API for XML Signature and 
        <jump href="http://jcp.org/jsr/detail/106.jsp";>
          JSR-106: XML Digital Encryption APIs
        </jump>, but until now, nothing has been published. So, this software
        does <em>not</em> conform to any of these specifications.
        </p>
      </section>
      <section>
        <title>JDK 1.4 issues</title>
        <p>
        If you use JDK 1.4 and want to use this software, be sure that Xalan is
        properly installed. Check the bottom of the <jump
          href="site:java/installation">installation guide</jump>!!!
        </p>
        <p>
        I have so many complaints from people who argue that the software
        throws exceptions during running the examples or during unit
        testing. This package NEEDS a Xalan version after 2.2D13 (and SUN
        shipped his JDK 1.4.0 final with a Xalan beta!). I started integrating
        the installation guide into the exception messages cause it seems that
        people don't have a look at the installation guide. 
        </p>
      </section>
    </body>
  </document>
  
  
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/Java/installation.xml
  
  Index: installation.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  
  <document> 
    <header> 
      <title>Installation - Java</title> 
    </header> 
    <body> 
      <section> 
        <title>Using JDK 1.4.0</title>
        <p>
        After SUN released the 
        <jump href="ext:java">
          Java (TM) 2 Platform Standard Edition v1.4.0
        </jump>, the xml-security package stopped working. This is a 
        <jump 
href="http://developer.java.sun.com/developer/bugParade/bugs/4615582.html";>
          known
        </jump> 
        problem: SUN packaged a beta of Xalan into the JDK 1.4.0, but the
        xml-security package requires a stable version of Xalan (v2.2.0 or
        later). To fix the problem, you have to put the xalan.jar into a
        special directory in your JDK:
        <code>j2sdk1.4.0/jre/lib/endorsed/xalan.jar</code> . If you installed
        an out-of-the-box JDK1.4 (e.g. on Windows 2000), the "endorsed"
        directory does not exist: you'll have to create it by hand. 
        </p>
        <warning>
        Putting this JAR to another location like <code>lib/ext</code> WILL
        NOT WORK.
        </warning>
        <p>
        For more on that, you can also check the 
        <jump href="http://xml.apache.org/~edwingo/jaxp-faq.html#override";>
          Unofficial JAXP FAQ
        </jump>.
        </p>
      </section>
  
      <section>
        <title>Prerequisites</title>
        <p>
        Make sure you get the Jakarta Ant Tool from 
        <jump href="ext:ant">http://jakarta.apache.org/ant/</jump>
        </p>
      </section>
  
      <section>
        <title>Getting the source</title>
        <p>
        You can download the sources via WWW in the distribution directory
        under 
        <jump href="site:about/download">
          http://xml.apache.org/security/dist/
        </jump>
        </p>
        <p>
        This project's CVS repository can be checked out through anonymous
        (pserver) CVS with the following instruction set. The module you wish
        to check out must be specified as the modulename. When prompted for a
        password for anonymous, simply enter "anoncvs" without quotes: 
        </p>
        <source>cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic login
        password: anoncvs
        cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout
        xml-security
        </source>
        <p>
        A HTTP interface to browse the sources online is available via 
        <jump 
href="site:getting-involved/CVS">http://cvs.apache.org/viewcvs.cgi/xml-security/</jump>
        </p>
      </section>
      
      <section>
        <title>Compiling the source</title>
        <p>
        At the command prompt type <code>ant test</code>. If you want to 
        use jikes instead of your default java compiler locate the 
<code>build.xml</code>
        file and replace the line
        </p>
        <source>&lt;property name="build.compiler" value="classic"/&gt;</source>
        <p>
        with
        </p>
        <source>&lt;property name="build.compiler" value="jikes"/&gt;</source>
      </section>
      
  <!-- Uncommented in the original docs 
      <section> 
        <title>Unpacking the files</title> 
        <p>
        &packagename; is packaged as a ZIP file for all
        platforms and operating systems.  You can run the Java
        <ref>jar</ref> command to unpack the distribution.
        </p>
        <ul>
        <li>jar xf &packagename;-bin.&packageversion;.zip</li>
        <li>jar xf &packagename;-src.&packageversion;.zip</li>
        <li>This command creates a "&packagedirectory;" sub-directory in the
          current directory containing all the files.</li>
        </ul>
      </section>
      
      <section> 
        <title>Files in the binary package release</title>
        <table>
        <tr><td>LICENSE</td><td>License for &packagename;</td></tr>
        <tr><td>Readme.html</td><td>Web page redirect to 
docs/html/index.html</td></tr>
        <tr><td>xerces.jar</td><td>Jar file containing all the parser class 
files</td></tr>
        <tr><td>xercesSamples.jar</td><td>Jar file containing all sample class 
files</td></tr>
        <tr><td>data/</td><td>Directory containing sample XML data 
files</td></tr>
        <tr><td>doc/html/</td><td>Directory containing documentation</td></tr>
        <tr><td>doc/html/api/</td><td>Directory containing Javadoc API</td></tr>
        </table>
        <note>To use &packagename; you do not need the source files.</note>
      </section>
  -->
      <section> 
        <title>Testing the distibution</title>
        <p>
        The first way to ensure that everything is in place is to run the unit
        tests. This is simply done by typing <code>ant test</code>. This starts
        the included JUnit test cases. Actually, we do not have complete test
        coverage, but as a first start, it works.
        </p>
      </section>
  
      <section> 
        <title>Playing around with the examples </title>
        <p>
        To see how the distribution works, simply run <code>ant
          mega-sample</code> to let ant execute several examples from the
        <code>src_samples/</code> directory. 
        </p>
      </section>
      <section> 
        <title>Files in the source package release</title>
        <table>
        <tr>
          <td>build.xml</td>
          <td>Top level <jump href="ext:ant">Ant</jump> Makefile -- read README
            file before building</td>
        </tr>
        <tr>
          <td>LICENSE.txt</td>
          <td>License for the software</td>
        </tr>
        <tr>
          <td>README</td>
          <td>Build instructions</td>
        </tr>
        <tr>
          <td>Readme.html</td>
          <td>Web page redirect required for building documentation</td>
        </tr>
        <tr>
          <td>STATUS</td>
          <td>Current source code status information</td>
        </tr>
        <tr>
          <td>data/</td>
          <td>Directory containing sample data files and test vectors for the 
unit tests</td>
        </tr>
        <tr>
          <td>doc/xml/</td>
          <td>Directory containing documentation, in XML form</td>
        </tr>
        <tr>
          <td>src/</td>
          <td>Directory containing source code for the core library</td>
        </tr>
        <tr>
          <td>src_samples/</td>
          <td>Directory containing source code for samples</td>
        </tr>
        <tr>
          <td>src_unitTests/</td>
          <td>Directory containing source code for unit tests</td>
        </tr>
        </table>
      </section>
  
      <section> 
        <title>Where is my JCE?</title>
        <p>
        There is <em>no</em> JCE bundled together with this
        distribution. Living in Germany, I had no problem to include the JCE in
        this software package but then I realized that the Apache Project is
        hosted in the US where some export restrictions apply to the
        cryptographic primitives. 
        </p>
        <p>
        Well, how do we solve this problem? The nice guys from the <jump
          href="ext:bouncy">Bouncy Castle</jump> where so
        helpful to supply the JAR that you need to create HMAC integrity checks
        on their web site. When you use the ant makefile <code>build.xml</code>
        and simply say <code>ant compile</code> or <code>ant get-jce</code>,
        <code>ant</code> tries to fetch this JAR from the australian
        server. After that step, the compilation works completely. 
        </p>
        <p/>
        <p>
        The ant make tools initiates an automated download of the BouncyCastle
        JCE. The file is downloaded into the libs/ directory and a "bc-" is
        prepended to the filename. This is done because we want the provider
        name (bc means BouncyCastle) being visible in the JAR's filename. 
        </p>
        <p/>
        <p>
        If you are a little paranoid like all security people and don't want
        ant to make automated downloads or your firewall doesn't permit it
        (preventing programs "phoning home"), look in the
        <code>./build.xml</code> file for the properties called
        </p>
        <p/>
        <source><![CDATA[
        <property name="jce.download.file" 
value="]]>&jce_download_file;<![CDATA[ />
        <property name="jce.download" 
                  
value="http://www.bouncycastle.org/download/${jce.download.file}"; />
        <property name="lib.jce" value="${libs}/bc-${jce.download.file}" />
        ]]></source>
        <p>
        Here you can see that the file 
        <jump href="ext:java/jce/download/file">&jce_download_file;</jump>
         is downloaded and stored in the location <code>&lib_jce;</code>
        </p>
        <p>
        If you do this by hand (pointing you favourite web browser and download
        it yourself), simply put a "<code>bc-</code>" in front of the filename
        and put it to <code>./libs/</code>, then ant won't try to make a
        download.
        </p>
      </section>
    </body>
  </document>
  
  
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/Java/interop.xml
  
  Index: interop.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  <document> 
    <header> 
      <title>Java Interoperability</title> 
    </header> 
    <body> 
      <section> 
        <title>Problems</title>
        <p>In Version v1.0.4, there is one test case which fails (interop test
        for exclusive c14n). This is related to very esoteric node sets (The Y4
        test vector from 
        <jump
          href="http://www.w3.org/Signature/2002/02/01-exc-c14n-interop.html";>
          the interop matrix
        </jump>). 
        </p>
      </section>
      <section> 
        <title>Interoperability issues</title>
        <p>
        As it can be seen on the 
        <jump href="ext:w3c/xmldsig">working group homepage</jump>,
        there are some interoperability reports, namely for 
        <jump href="http://www.w3.org/Signature/2000/10/10-c14n-interop.html";>
          Canonical XML
        </jump>, 
        <jump
          href="http://www.w3.org/Signature/2002/02/01-exc-c14n-interop.html";>
          Exclusive Canonical XML
        </jump> 
        and 
        <jump
          
href="http://www.w3.org/TR/xmldsig-core/2001/04/05-xmldsig-interop.html";>
          XML Signature
        </jump>.
        </p>
        <p>
        Interoperability depends heavily on test vectors, this means that
        implementation A has to check whether the signatures from
        implementation B can be verified. For this purpose, we have a
        collection of different test vectors in our <code>data/</code>
        directory. The directory includes test vectors from   
        </p>
        <ul>
        <li><jump href="http://www.baltimore.com/keytools/xml/index.html";>
            Baltimore KeyTools XML</jump>
        </li>
        <li><jump href="http://jcewww.iaik.at/products/ixsil/index.php";>IAIK 
IXSIL</jump></li>
        <li><jump
            href="http://www.rsasecurity.com/products/bsafe/certj.html";>
            RSA Security Cert-J</jump>
        </li>
        <li>The vectors from the 
          <jump
            href="http://www.alphaworks.ibm.com/tech/xmlsecuritysuite";>
            IBM alphaWorks XML Security suite
          </jump> could not been included in this distribution because of
          licensing issues. For some reasons which I do not understand, they
          copyrighted their test signatures which they have bundled with
          xss4j. If you want to include interop testing against IBM in your
          unit tests, simply do the following:
          Download <code>xss4j-20011029.zip</code> from the 
          <jump
            
href="http://www.alphaworks.ibm.com/aw.nsf/download/xmlsecuritysuite";>
            alphaWorks download page
          </jump>. 
          Copy all files from the <code>xss4j-20011029.zip#/xss4j/data</code>
          directory into the
          <code>xml-security/data/com/ibm/xss4j-20011029/</code>
          directory. If the 
          <jump href="api/org/apache/xml/security/test/InteropTest.html">
            Interop
          </jump> class finds these files, the 
          <code>org.apache.xml.security.test.interop.IBMTest</code> class is
          also executed during unit interop tests. 
        </li>
        </ul>
      </section>
    </body>
  </document>
  
  
  
  
  
  
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/Java/resolver.xml
  
  Index: resolver.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  
  <document> 
    <header> 
      <title>Resolver-Mania</title> 
    </header> 
    <body> 
      <section>
        <title>Why do we need all these resolvers?</title>
        <p>
        For security and comfort reasons. In the XML Security package, there
        exist many kinds of Resolvers for different purposes. Resolvers in this
        package do the same job as an EntityResolver in the SAX package:
        retrieve information from the apropriate location and give it to the
        parser/software who needs it. The reason for offering these different
        Resolvers is that it should be under complete control of the
        application which connections to the network are made. In the security
        area, it wouldn't be a good idea to imediately fetch some documents
        from the web or make other connections only because you want to verify
        a Signature. This resolver framework gives the application developer
        the ability to have total control about the interface from the library
        to the rest of the world. 
        </p>
      </section>
      <section>
        <title>Types of resolvers</title>
        <section>
        <title>ResourceResolvers</title>
        <p>
          A 
          <jump href="&api_ref;utils/resolver/ResourceResolver.html">
            ResourceResolver
          </jump> is used by a 
          <jump href="&api_ref;signature/Reference.html">
            Reference
          </jump> to retrieve the signed resource from it's location. Different
          resolvers exist to get signed portions from the XML document in which
          the signature resides, to make HTTP connections or to fetch files
          from the local file system. <br /> 
          The concept of a 
          <jump href="&api_ref;utils/resolver/ResourceResolver.html">
            ResourceResolver
          </jump> is very similar to an org.xml.sax.EntityResolver, but in
          contrast to that Interface, the ResourceResolver is able to
          de-reference contents <em>inside</em> an XML document.  
        </p> 
        </section>
        <section>
        <title>StorageResolver</title>
        <p>A 
          <jump href="&api_ref;keys/storage/StorageResolver.html">
            StorageResolver
          </jump> is used by 
          <jump href="&api_ref;keys/KeyInfo.html">
            KeyInfo
          </jump> and it's child objects / Elements to retrieve Certificates
          from storage locations. This approach is used to allow a user to
          customize the library for use in a specific corporate
          environment. It's possible to write 
          <jump href="&api_ref;keys/storage/StorageResolver.html">
            StorageResolver
          </jump>s who make requests to LDAP servers or to use specificic PKI
          interfaces. <br/>
          Bundled with the software come three sample 
          <jump href="&api_ref;keys/storage/StorageResolver.html">
            StorageResolver
          </jump>s which can be used for common tasks:
        </p>
        <ul>
          <li>
            The 
            <jump
              
href="&api_ref;keys/storage/implementations/KeyStoreResolver.html">
              KeyStoreResolver
            </jump> is able to retrieve Certificates from a JAVA KeyStore
            object. This 
            <jump
              
href="&api_ref;keys/storage/implementations/KeyStoreResolver.html">
              KeyStoreResolver
            </jump> is constructed from an open JAVA KeyStore.
          </li>
          <li>
            The 
            <jump
              
href="&api_ref;keys/storage/implementations/SingleCertificateResolver.html">
              SingleCertificateResolver
            </jump> resolves only to a single Certificate. The 
            <jump
              
href="&api_ref;keys/storage/implementations/SingleCertificateResolver.html">
              SingleCertificateResolver
            </jump> is constructed using this single Certificate. 
          </li>
          <li>
            The 
            <jump
              
href="&api_ref;keys/storage/implementations/CertsInFilesystemDirectoryResolver.html">
              CertsInFilesystemDirectoryResolver
            </jump> is useful for resolving to raw X.509 certificates which
            reside as separate files in a directory in the filesystem. Such a
            resolver is needed for verifying the test signatures from Merlin
            Huges which are bundled in a directory.
          </li> 
        </ul>
        <p>
          <jump href="&api_ref;keys/storage/StorageResolver.html">
            StorageResolver
          </jump>s are supplied to the KeyInfo's 
<code>addStorageResolver()</code> method.
        </p>
        <p>
          Generally, a 
          <jump href="&api_ref;keys/storage/StorageResolver.html">
            StorageResolver
          </jump> has only a method to return an Iterator which iterates
          through the available Certificates.
        </p>
        </section>
        <section>
        <title>KeyResolver</title>
        <p>
          A 
          <jump href="&api_ref;keys/keyresolver/KeyResolver.html">
            KeyResolver
          </jump> is used by 
          <jump href="&api_ref;keys/KeyInfo.html">
            KeyInfo
          </jump> to process it's child Elements. There exist two general
          classes of a 
          <jump href="&api_ref;keys/keyresolver/KeyResolver.html">
            KeyResolver
          </jump>:
        </p>
        <ul>
          <li>
            If a ds:RSAKeyValue or ds:DSAKeyValue or ds:X509Certificate is used
            inside the ds:KeyInfo, the resolvers can return a public key or
            Certificate directly without further action, because the key itself
            is contained inside the ds:Signature.
          </li>
          <li>
            If there is only key material identification information like a
            ds:KeyName or the serial number of the Certificate, the KeyResolver
            must use the StorageResolvers to query the available keys and
            certificates to find the correct one.
          </li>
        </ul>
        <p>
          Of course, there are cross-dependencies: e.g. a KeyResolver named 
          <jump
            
href="&api_ref;keys/keyresolver/implementations/RetrievalMethodResolver.html">
            RetrievalMethodResolver
          </jump> uses the 
          <jump href="&api_ref;utils/resolver/ResourceResolver.html">
            ResourceResolver
          </jump> framework to retrieve a public key or certificate from an
          arbitrary location.
        </p>
        </section>
      </section>
    </body>
  </document>
  
  
  
  
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/credits.xml
  
  Index: credits.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  
  <document>
    <header>
      <title>Credits</title>
    </header>
    <body>
      <section>
          <title>Software Used</title>
          <p>
                The XML-Security-C package makes heavy use of the Xalan-C and
                Xerces-C++ libraries from the <jump 
href="http://xml.apache.org";>
                  Apache Software Foundation XML Project</jump>.
          </p>
          <p>
                This documentation has been created using Forrest, also part of
                the Apache Sofware Foundation's XML project.
          </p>
          <p>
                The package also makes heavy use of the <jump 
href="http://www.openssl.org";>
                  OpenSSL</jump> cryptographic
                libraries to provide the cryptographic foundation.  The 
associated
                license can be found in the distribution in the doc/ directory.
          </p>
        </section>
    </body>
  </document>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/faq.xml
  
  Index: faq.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE faqs PUBLIC "-//APACHE//DTD FAQ V1.1//EN" "dtd/faq-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  <faqs title="Frequently Asked Questions - C++">
    <part id="general_c">
      <title>Compiling and Using the Library</title>
      <faq id="openssl_c">
          <question>
                Is OpenSSL required?
        </question>
        <answer>
                <p>
                  At this time, the xml-security-c library requires OpenSSL to 
perform
                  cryptographic operations.  However the library has been 
written to
                  easily interface to other cryptographic providers.  Future 
versions
                  will provide interface layers to libgcrypt (the GNU Privacy 
Guard
                  crypto library) and the Windows Crypto API.
                </p>
        </answer>
      </faq>
      <faq id="xalan_c">
        <question>
                Is Xalan required?
        </question>
        <answer>
                <p>
                  The library can be compiled without linking to Xalan-c.  
However
                  doing so will disable support for XPath and XSLT 
transformations.
                </p>
                <p>
                  To disable Xalan-c support either use --without-xalan when 
running
                  configure on UNIX, or use the VC++ "without Xalan" settings.
                </p>
        </answer>
      </faq>
    </part>
  </faqs>
  
  
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/index.xml
  
  Index: index.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  <document>
    <header>
      <title>C++ Library Documentation</title>
    </header>
    
    <body>
      <section>
        <title>News</title>
        <p>
          The C++ library has now been fully transferred into the Apache XML
          project.  It was previously hosted on SourceForge.
        </p>
        <p>
          The first release under Apache is 0.10.  This is a Beta release,
          with fairly complete documentation, and a stable code base.  It
          fully validates the various interop documents held in the xml-security
          CVS, with the exception of those related to :
        </p>
        <ul>
          <li>MD5 Digests (to be added in next point release)</li>
          <li>XPath Filter (to be added in next point release)</li>
          <li>XML Encryption (to be added post 1.00 release)</li>
        </ul>
      </section>
      <section>
        <title>Overview of the C++ Library</title>
        <p>
          The C++ library is an implementation of the XML Digital Signature
          specification.  It is designed to be easily ported to new platforms,
          and has been tested on Solaris, Linux and Windows.  The next version
          will have ports to FreeBSD and HP-UX.
        </p>
        <p>
          The library makes use of the Apache XML project's Xerces-C XML Parser
          and Xalan-C XSLT processor.  The latter is used for processing XPath
          and XSLT transforms.  The use of Xalan-C is optional, but without it,
          XPath and XSLT transformations cannot be performed.
        </p>
        <p>
          In addition, the library currently uses OpenSSL to provide 
          cryptographic functionality.  The cryptographic interface is
          implemented via a thin wrapper layer, which will be expanded to
          support the GNU Privacy Guard cryptographic library (libgcrypt) and
          Windows CAPI in the near future.
        </p>
      </section>
    </body>
  </document>
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/installation.xml
  
  Index: installation.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  
  <document> 
    <header> 
      <title>Installing the C++ Library</title> 
    </header> 
    <body> 
      <section> 
        <title>Prerequisites</title>
        <p>
                The library requires OpenSSL for cryptographic support.  Xalan-C
                is also required if XPath and/or XSLT transformations are 
required.
        </p>
      </section>
  
      <section>
        <title>Getting the source</title>
        <p>
        You can download the sources via WWW in the distribution directory
        from one of the Apache  
        <jump href="site:about/download">
          mirrors
        </jump>.
        </p>
        <p>
        This project's CVS repository can be checked out through anonymous
        (pserver) CVS with the following instruction set. The module you wish
        to check out must be specified as the modulename. When prompted for a
        password for anonymous, simply enter "anoncvs" without quotes: 
        </p>
        <source>cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic login
        password: anoncvs
        cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout
        xml-security
        </source>
        <p>
        A HTTP interface to browse the sources online is available via 
        <jump 
href="site:getting-involved/CVS">http://cvs.apache.org/viewcvs.cgi/xml-security/</jump>
        </p>
      </section>
      
      <section>
          <title>Building for UNIX</title>
          <p>
                XML-Security-C is currently supported on Linux and Solaris.
                It has been built and tested using GNU gcc 2.95.4 and GNU make.
          </p>
          <note>
                The UNIX XML-Security-C build process has changed radically 
since
                beta 0.0.2 as the Makefiles and configure scripts have been 
completely
                rewritten.
          </note>
          <section>
                <title>Set up the Environment</title>
                <p>
                  The build process has been automated as much as possible.  To
                  start the process, three environment variables <em>can</em> 
be set :
                </p>
                <ul>
                  <li><em>XERCESCROOT</em> - points to the base of your Xerces 
distribution</li>
                  <li><em>XALANCROOT</em> - points to the base of your Xalan 
distribution</li>
                  <li><em>OPENSSL</em> - points to the base of your OpenSSL 
distribution</li>
                </ul>
                <p>
                  For example (on my Debian Linux box under Bash) :
                </p>
                <source><![CDATA[
  export XERCESCROOT=~/prog/extlibs/xerces-c-src2_2_0
  export XALANCROOT=~/prog/extlibs/xalan-c-src1_5/c
  export OPENSSL=~/prog/extlibs/openssl-0.9.7a
                  ]]></source>
                <p>
                  If these environment variables are not set, configure will 
try to
                  find the necessary include and library files in the system 
directories.
                  The configure script is created through <em>autoconf</em> so 
you
                  can also tell your compiler where to find these things via
                  the <em>CXXFLAGS</em> and <em>LDFLAGS</em> environment 
variables.
                </p>
                <p>
                  If configure cannot find anything for Xalan, it will assume 
that
                  you are not interested in XPath or XSLT support and will 
compile
                  XSEC without linking to Xalan.  Any attempt to use these 
features
                  will raise an exception in the library.
                </p>
          </section>
          <section>
                <title>Configure</title>
                <p>
                  Now go to the $XSECCROOT/src directory and run the command
                  <em>./configure</em>.  This will create the necessary 
makefiles
                  and header files necessary to build the package.
                </p>
                <p>
                  In addition to the standard options, <em>configure</em> can 
be 
                  passed a number of XSEC specific options :
                </p>
                <ul>
                  <li><em>--without-xalan</em> disable linkage to Xalan.</li>
                  <li><em>--enable-debug</em> cause the library to be built 
with symbols</li>
                </ul>
                <note>
                  Using the <em>--without-xalan</em> option will automatically 
mean
                  that the library does not support XPath or XSLT 
transformations
                  (although envelope transforms will work as the library can now
                  perform these without going through an XPath transform).
                </note>
          </section>
          <section>
                <title>Compile</title>
                <p>
                  Assuming the output of the above command looks reasonable 
simply
                  type <em>make</em> (or <em>gmake</em> - you must use the GNU
                  make utility) in the <em>src</em> directory.  This
                  will make the shared library.  In addition,  <em>make 
tools</em>
                  will make the tools (or examples) in the src/tools directory.
                </p>
                <p>
                  The make process will create three directories in the 
distribution
                  directory:
                </p>
                <ol>
                  <li><em>include</em> - All public header files are copied 
here</li>
                  <li><em>bin</em> - Where the tools are placed once compiles 
</li>
                  <li><em>lib</em> - Where the shared library is place</li>
                </ol>
                <p>
                  You will need to set up your <em>LD_LIBRARY_PATH</em> 
environment
                  variable to ensure ld.so will find the new shared libraries.
                </p>
                <p>
                  Finally - you can use <em>make clean</em> and <em>make 
distclean</em>
                  to remove all binaries and libraries (former) and build 
scripts (latter)
                </p>
          </section>
        </section>
        <section>
          <title>Building for Windows</title>
          <p>
                XML-Security-C has been built and tested on Microsoft's Visual 
C++ 6.0
                compiler only.  (VC++ .NET support is currently being worked 
on.)  
                The following subsections briefly describe how to 
                rebuild the library, tools and samples using the supplied 
workspaces.
          </p>
          <section>
                <title>Setup Directories</title>
                <p>
                  The workspace and project files provided do not make any 
assumptions
                  about where Xerces, Xalan or OpenSSL might be on the system.  
The
                  first step is therefore to configure VC directories under 
                  Tools->Options (Directories).
                </p>
                <p>
                  For the Include directories you will need something similar 
to my
                  setup below (replacing D:\PROG\CLIB\.. with the appropriate 
path
                  on your system).
                </p>
                <figure src="images/vc6a.gif" alt="Include Directories"/>
                <p>
                  Similarly the library directories will need to be added to.  
Note
                  that in the example below, I use both Debug and Release 
libraries
                  for Xalan and Xerces.  As provided, the workspace projects 
link to
                  the debug libraries for XSEC Debug and Release for XSEC 
Release.
                </p>
                
                <figure src="images/vc6b.gif" alt="Link Directories"/>
  
          </section>
          <section>
                <title>Build Library and Tools</title>
                <p>
                  The main workspace is found in :
                </p>
                <p><em>.../src/Projects/VC6.0/xsec/xsec.dsw</em></p>
                <p>
                  You can load this to build the tools or the library using the 
relevant
                  project.  (The library is xsec_lib.)
                </p>
                <p>
                  Samples can be built using the workspace found in :
                </p>
                <p><em>.../src/Projects/VC6.0/Samples/Samples.dsw</em></p>
                <p>All output will be sent to</p>
                <p><em>.../Build/Win32/VC6/Debug</em></p>
                <p>for the debug builds and Release for the release.</p>
          </section>
        </section>
    </body>
  </document>
  
  
  
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/interop.xml
  
  Index: interop.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd"
  [
    <!ENTITY % xmlsec_entities SYSTEM "../xmlsec_entities.ent"> 
    %xmlsec_entities; 
  ]>
  <document> 
    <header> 
      <title>C++ Interoperability</title> 
    </header> 
    <body> 
      <section> 
        <title>Interoperability</title>
        <p>
          The C++ library is designed to be fully inter-operable with any
          other implementation of the W3C XML Digital Signature standard, such
          as the Apache XML-Security Java library.
        </p>
      </section>
    </body>
  </document>
  
  
  
  
  
  
  
  
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/programming.xml
  
  Index: programming.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  
  <document>
    <header>
      <title>Programming</title>
    </header>
    <body>
      <section>
          <title>Overview</title>
          <p>
                There are two main modes of operation for the libraries.  
Signing and
                verifying.  Verifying is the simplest operation, as it 
(generally)
                operates on a DOM &lt;Signature&gt; structure that has already 
been 
                created.
          </p>
          <p>
                Signing on the other hand can be more difficult, as there may 
be a
                requirement to create the DOM structure necessary for the 
signature
                prior to the actual signing operation.
          </p>
          <p>
                The rest of this section provides a very high level overview on 
how
                to use the library for signing and verificataion of signatures. 
 
          </p>
          <p>
                Two samples are provided :
          </p>
          <ul>
                <li><link href="programming.html#simplehmac">Simple HMAC Signing
                  </link></li>
                <li><link href="programming.html#simpledsa">Simple DSA 
Validation
                  </link></li>
          </ul>
          <p>
                The code snippets are taken directly from some of the sample 
code 
                provided in the src/samples directory in the distribution.  
More 
                information on the API can be found in the API Documentation.
          </p>
        </section>
        <section id="simplehmac">
          <title>A simple HMAC Signing example</title>
          <p>
                The first example is based on the simpleHMAC.cpp code in 
samples.  It
                creates an XML letter, the appends a dummy signature to the 
end, using
                an enveloped-signature transform.
          </p>
          <section>
                <title>Setup</title>
                <p>
                  The following code snippet initialises Xerces, Xalan and XSEC.
                  Note that the enveloped transform is implemented using an 
XPath
                  expression, so it is imperitive the Xalan libraries are 
initialised.
                </p>
  <source><![CDATA[
  int main (int argc, char **argv) {
  
      try {
          XMLPlatformUtils::Initialize();
  #ifndef XSEC_NO_XALAN
          XalanTransformer::initialize();
  #endif
          XSECPlatformUtils::Initialise();
      }
      catch (const XMLException &e) {
  
          cerr << "Error during initialisation of Xerces" << endl;
          cerr << "Error Message = : "
                     << e.getMessage() << endl;
  
      }
  
      // Create a blank Document
  
      DOMImplementation *impl = 
          
DOMImplementationRegistry::getDOMImplementation(MAKE_UNICODE_STRING("Core"));
        
      // Create a letter
      DOMDocument *doc = createLetter(impl);
      DOMElement *rootElem = doc->getDocumentElement();
  
  ]]></source>
                <p>
                  In the sample application, the call to 
<em>createLetter(impl)</em> 
                  simply creates a
                  letter DOM structure with a to and from address and some text.
                  This is done using standard DOM calls via Xerces.
                </p>
                <p>
                  Once the system is initialised and the DOM document is 
created,
                  a DSIGSignature object is created via the 
<em>XSECProvider</em>
                  interface class.  The signature object is then used to create
                  a blank signature DOM node structure which is then inserted 
at 
                  the end of the document.
                </p>
                <source><![CDATA[
      XSECProvider prov;
      DSIGSignature *sig;
      DOMElement *sigNode;
  
      try {
                
          // Create a signature object
  
          sig = prov.newSignature();
          sig->setDSIGNSPrefix("ds");
  
          // Use it to create a blank signature DOM structure from the doc
  
          sigNode = sig->createBlankSignature(doc, 
                                      CANON_C14N_COM, 
                                      SIGNATURE_HMAC, 
                                      HASH_SHA1);
  
  ]]></source>
                <p>
                  The call to <em>newSignature</em> creates a signature
                  object only.  No DOM nodes are created at this point.
                  The call to <em>setDSIGNSPrefix</em> tells the XSEC
                  library what namespace prefix to use for the signature object 
when
                  it starts to create DOM nodes (in this case "ds" will be 
used).  
                  By default, the library will use "dsig" as the prefix for the 
name 
                  space for Digital Signatures.
                </p>
                <p>
                  Finally, the call to sig->createBlankSignature sets up both 
the 
                  DOM structure and the XSEC objects for a new signature with no
                  &lt;Reference&gt; elements.  In this case, the signature will 
be
                  made using Commented C14n canonicalisation, and a HMAC-SHA1
                  signature.
                </p>
                <warning>
                  The XSECProvider class still "owns" the DSIGSignature object.
                  To delete the object, the original provider.release(sig) call
                  should be used.  Never delete a DSIGSignature object directly.
                </warning>
          </section>
          <section>
                <title>Create a Reference and Sign</title>
                <p>
                  Now that the signature object is created, the signature is 
inserted
                  into the document, and a reference is created and set for an
                  enveloping transform.
                </p>
          <source><![CDATA[
          // Insert the signature DOM nodes into the doc
  
          rootElem->appendChild(doc->createTextNode(MAKE_UNICODE_STRING("\n")));
          rootElem->appendChild(sigNode);
          rootElem->appendChild(doc->createTextNode(MAKE_UNICODE_STRING("\n")));
  
          // Create an envelope reference for the text to be signed
          DSIGReference * ref = sig->createReference("");
          ref->appendEnvelopedSignatureTransform();
  
  ]]></source>
                <p>
                  The <em>""</em> parameter to <em>createReference</em> sets the
                  URI attribute for the reference to be "" - indicating the root
                  element of the document in which the signature resides.
                  The call to <em>appendEnvelopedSignatureTransform</em> adds
                  a standard eneveloped-signature transform to the Reference 
node.
                </p>
                <p>
                  The macro MAKE_UNICODE_STRING is defined within the library
                  header files and is used to transcode local code page strings.
                </p>
                <note>
                  There is no need to insert the reference object into the DOM 
structure.
                  This is done automatically by the <em>createReference</em> 
call.
                </note>
                <p>
                  Finally we create a signing key and sign the document.
                </p>
                <source><![CDATA[
  
          // Set the HMAC Key to be the string "secret"
  
          OpenSSLCryptoKeyHMAC * hmacKey = new OpenSSLCryptoKeyHMAC();
          hmacKey->setKey((unsigned char *) "secret", strlen("secret"));
          sig->setSigningKey(hmacKey);
  
          // Add a KeyInfo element
          sig->appendKeyName("The secret key is \"secret\"");
  
          // Sign
  
          sig->sign();
      }
  
      catch (XSECException &e)
      {
          cerr << "An error occured during a signature load\n   Message: "
               << e.getMsg() << endl;
          exit(1);
                  
      }
  ]]></source>
                <p>
                  The first two code lines create an OpenSSLCryptoKeyHMAC 
object,
                  and set the key value to the string "secret".  The OpenSSL...
                  classes are the interface layer between XSEC and OpenSSL.  
More
                  information can be found in the API documentation, but the 
main
                  point of note is that the XSEC library never deals directly 
with
                  OpenSSL - it works via the XSECCrypto abstract classes which 
are
                  implemented in the OpenSSLCrypto code.  This would allow 
another
                  person to re-implement the XSECCrypto code to use any 
cryptographic
                  provider required.
                </p>
                <note>
                  Once the key is passed to the signature it is owned by the 
signature.
                  The signature object will delete the key when it is itself 
deleted,
                  or a new key is passed in.
                </note>
                <p>
                  The call to <em>sig->appendKeyName()</em> is used to append a
                  &lt;KeyName&gt; element into the &lt;KeyInfo&gt; block.  The
                  KeyInfo block was created as part of this call.
                </p> 
                <p>
                  After the call to <em>sig->sign()</em> the DOM structure has 
the
                  correct hash and signature values.  The owner program can 
write,
                  store or further manipulate the document as required.  If a 
document
                  manipulation might affect the signature (in this case almost 
anything
                  would, as we are using an enveloping transform which 
effectively
                  signs everything that is not part of the signature), then a 
further
                  call to <em>sig->sign()</em> will re-sign the changes.
                </p>
                <p>
                  The last part of the code does some work to output the new DOM
                  structure.  The output should look something like the 
following:
                </p>
                <source><![CDATA[
  <Letter>
  <ToAddress>The address of the Recipient</ToAddress>
  <FromAddress>The address of the Sender</FromAddress>
  <Text>
  To whom it may concern
  
  ...
  </Text>
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
  <ds:SignedInfo>
  <ds:CanonicalizationMethod Algorithm=
  "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
  <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
  <ds:Reference URI="">
  <ds:Transforms>
  <ds:Transform Algorithm=
  "http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
  </ds:Transforms>
  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
  <ds:DigestValue>askxS/A3BaLCjFjZ/ttU9c12kA4=</ds:DigestValue>
  </ds:Reference>
  </ds:SignedInfo>
  <ds:SignatureValue>oYEdQYG1IHzbkR1UcJ9Q5VriRPs=
  </ds:SignatureValue>
  <ds:KeyInfo>
  <ds:KeyName>The secret key is "secret"</ds:KeyName>
  </ds:KeyInfo>
  </ds:Signature>
  </Letter>
  ]]></source>
                <p>Note that the DigestValue and SignatureValue elements have 
been
                  filled in.
                </p>
          </section>
        </section>
        <section id="simpledsa">
          <title>A simple validation example</title>
          <p>
                The second example takes a pre-signed document and an associated
                certificate and verifies the embedded signature.  The document 
in
                question is a simple purchase order, and changes are made to the
                value of the order to demonstrate a signature failing 
verification.
          </p>
          <section>
                <title>Setup</title>
                <p>
                  As in the first example, Initialisation of the libraries is
                  performed, and Xerces is used to read in the document (which 
in
                  this case is stored in a string in the source code).
                </p>
                <p>
                  In order to be able to modify the contents of the document 
later
                  on, we also quickly find the string containing the value of 
the
                  purchase order.
                </p>
                <p>
                  For the sake of brevity, the code relating to parsing the 
in-memory
                  document has been removed from the snippet below.
                </p>
                <source><![CDATA[
  int main (int argc, char **argv) {
  
      try {
          XMLPlatformUtils::Initialize();
  #ifndef XSEC_NO_XALAN
          XalanTransformer::initialize();
  #endif
          XSECPlatformUtils::Initialise();
      }
      catch (const XMLException &e) {
  
          cerr << "Error during initialisation of Xerces" << endl;
          cerr << "Error Message = : "
               << DOMString(e.getMessage()) << endl;
  
      }
  
      ...
      
      Xerces is used to parse the document here
      
     
  
      DOM_Document doc = parser->getDocument();
  
      // Find the Amount node
      DOMNode *amt = doc->getDocumentElement();
  
      if (amt != NULL)
          amt = amt->getFirstChild();
  
      while (amt != NULL && 
             (amt->getNodeType() != DOMNode::ELEMENT_NODE || 
             !strEquals(amt->getNodeName(), "Amount")))
          amt = amt->getNextSibling();
  
      if (amt != NULL)
          amt = amt->getFirstChild();
  
      if (amt == NULL || amt->getNodeType() != DOMNode::TEXT_NODE) {
          cerr << "Error finding amount in purchase order" << endl;
          exit (1);
      }
  ]]></source>
          </section>
          <section>
                <title>Create the Signature and Key objects</title>
                <p>
                  Now that the document is in memory, an XSECProvider is
                  created and used to create a new DSIGSignature object.  In
                  addition, the OpenSSL interface routines are used to
                  read in a certificate and obtain the associated public
                  key.
                </p>
                <source><![CDATA[
      XSECProvider prov;
  
      DSIGSignature * sig = prov.newSignatureFromDOM(doc);
  
  
      try {
          // Use the OpenSSL interface objects to get a signing key
  
          OpenSSLCryptoX509 * x509 = new OpenSSLCryptoX509();
          x509->loadX509Base64Bin(cert, strlen(cert));
                  
          sig->load();
  ]]></source>
                <p>
                  In this case, the signature is create with the 
                  <em>newSignatureFromDOM</em> method.  This tells the library 
that
                  the signature structure (although not necessarily a signed
                  structure) already exists in the DOM nodes.  The library 
attempts
                  to find the &lt;Signature&gt; node so that the load will work.
                  (The library will throw an XSECException if it cannot find the
                  Element.)
                </p>
                <p>
                  The later call to <em>sig-&gt;load()</em> tells the library to
                  read the DOM structure and create the appropriate DSIG 
elements.
                </p>
                <p>
                  In this case an OpenSSLCryptoX509 object is also created.  It 
is
                  used to read in the <em>cert</em> string and convert to an 
X509
                  structure.  This could also be done using standard calls 
directly
                  to OpenSSL, but this is a quick shortcut.
                </p>
          </section>
          <section>
                <title>Find a key</title>
                <p>
                  As we already know the key, the following code snippet loads 
the 
                  key directly from the related X509.  However prior to doing 
this,
                  the code demonstrates
                  using the DSIGKeyInfo structures to find the key name that was
                  embedded in the certificate.  In an application, this could be
                  used to reference the correct key to be passed in.  (Maybe via
                  an XKMS call.)
                </p>
                <p>
                  the <em>safeBuffer</em> type is used extensively within the 
XSEC
                  library to safely handle variable length strings and raw 
buffers.
                  The call to <em>rawCharBuffer()</em> simply returns a (char *)
                  type pointer to the buffer within the <em>safeBuffer</em>
                </p>
                <p>
                  The call to <em>clonePublicKey()</em> returns a copy of the
                  public key embedded in the certificate.  It is owned by the 
caller,
                  so in this case it can safely be passed to the DSIGSignature 
object
                  where it will be destroyed when another key is loaded or the 
                  object is released by the XSECProvider.
                </p>
                <source><![CDATA[
          DSIGKeyInfoList * kinfList = sig->getKeyInfoList();
                  
          // See if we can find a Key Name
          safeBuffer kname;
          DSIGKeyInfo * kinf = kinfList->getFirstKeyInfo();
          while (kinf != NULL) {
              kname = kinf->getKeyName();
              if (kname.sbStrcmp("")) {
                  cout << "Key Name = " 
                       << kname.rawCharBuffer() << endl;
              }
              kinf = kinfList->getNextKeyInfo();
          }
  
          sig->setSigningKey(x509->clonePublicKey());
  ]]></source>
          </section>
          <section>
                <title>Validate the signature</title>
                <p>
                  Finally the signature is validated.  In this case, we 
validate it
                  three times.  First with the original DOM structure, then 
with the
                  price changed and finally with the price set back to the 
original
                  value.
                </p>
                <source><![CDATA[
          cout << "Amount = " << amt << " -> ";
  
          if (sig->verify()) {
              cout << "Signature Valid\n";
          }
          else {
              cout << "Incorrect Signature\n";
          }
  
          amt.setNodeValue("$0.50");
                  
          cout << "Amount = " << amt << " -> ";
  
          if (sig->verify()) {
              cout << "Signature Valid\n";
          }
          else {
              cout << "Incorrect Signature\n";
          }
  
          amt.setNodeValue("$16.50");
                  
          cout << "Amount = " << amt << " -> ";
  
          if (sig->verify()) {
              cout << "Signature Valid\n";
          }
          else {
              cout << "Incorrect Signature\n";
          }
  ]]></source>
                <p>
                  When run, the program outputs the following:
                </p>
                <source><![CDATA[
  Key Name = C=AU, ST=Vic, O=XML-Security-C Project, 
  CN=Samples Demo Certificate
  Amount = $16.50 -> Signature Valid
  Amount = $0.50 -> Incorrect Signature
  Amount = $16.50 -> Signature Valid
                  ]]></source>
          </section>
        </section>
    </body>
  </document>
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/releases.xml
  
  Index: releases.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  
  <document>
    <header>
        <title>Release Information</title>
    </header>
    <body>
        <section>
          <title>Changes</title>
          <p>
                This section describes the changes that have occurred between 
the
                various releases of the library
          </p>
          <section>
                <title>Current Release - Beta 0.10</title>
                <p>
                  The current release of the xml-security-c library is a beta 
of the
                  XML Digital Signature code, and is the first version of the 
library
                  produced within Apache's XML project.
                </p>
                <p>
                  Previous versions were created within Sourceforge as the
                  xml-security-c project at that site.
                </p>
          </section>
          <section>
                <title>Changes from 0.03-0.10</title>
                <p>
                  The following changes occurred between versions 0.03 and 0.10 
:
                </p>
                <ul>
                  <li>A <em>threadTest</em> tool, which is primarily used to 
show
                        how multiple threads can access the library under 
Windows</li>
                  <li>Windows and UNIX URI Resolvers, based on the Xerces 
resolver,
                        but which can handle HTTP re-directs</li>
                  <li>Completed a basic level of API documentation</li>
                  <li>Reviewed library to ensure usage of UTF-16 internally</li>
                  <li>Closed a number of memory-leaks caused by exceptions being
                        thrown</li>
                </ul>
          </section>
          <section>
                <title>Changes from 0.02-0.03</title>
                <p>
                  The following changes occurred between 0.02->0.03
                </p>
                <ul>
                  <li>A <em>txfmout</em> tool to output the transformed 
references</li>
                  <li>Updates to <em>templatesign</em> to support KeyInfo 
elements
                        and RSA signatures</li>
                  <li>Library support for RSA signatures</li>
                  <li>API support form manipulating KeyInfo elements</li>
                  <li>Pluggable KeyInfo Resolvers (to allow an application to 
supply
                        an object that will resolve a given KeyInfo to a 
key)</li>
                  <li>Pluggable URI resolvers</li>
                  <li>API support for creating references and 
transformations</li>
                  <li>Re-written Makefiles for *NIX</li>
                  <li>Improved API docs</li>
                  <li>Envelope Transform that no longer uses XPath transforms 
(much
                        quicker)</li>
                  <li>Uses new Xerces DOMNode objects - has made for significant
                        speed improvements</li>
                </ul>
          </section>
          <section>
                <title>Changes from 0.01-0.02</title>
                <ul>
                  <li>Signing functionality</li>
                  <li>Update C14n canonicalisation</li>
                  <li>Exclusive Canonicalisation</li>
                  <li>Basic ability to create a signature via the API (rather 
than just
                        from an XML template file</li>
                  <li>SHA-1 HMAC support</li>
                  <li>Basic Documentation of core API</li>
                  <li>A <em>templatesign</em> tool</li>
                </ul>
          </section>
        </section>
        <section>
          <title>Future Release Plans</title>
          <p>
                The current plans are to stablise the beta code and provide a 
sound
                core library for digital signing.  Now that the code is at 0.10,
                some further additions will be made to the digital signature 
support,
                and a 1.00 release will be made when digital signature support 
is
                fairly complete.
          </p>
          <p>
                XML Encryption will be added post 1.00
          </p>
          <p>
                The majority of activity from now to 1.00 will concentrate on: 
          </p>
          <ul>
                <li>Fixing bugs and memory leaks</li>
                <li>Ensure API is reasonably consistant</li>
                <li>Improvements in the API for manipulating a signature 
                  in memory</li>
                <li>Support for KeyInfo elements not currently implemented (PGP 
and
                  SPKI)</li>
                <li>Implementation of libgcrypt as a crypto provider</li>
                <li>Support for PGP/GPG signatures (using libgcrypt and 
gpgme)</li>
                <li>NetBSD/FreeBSD builds</li>
                <li>Install capability in make files</li>
          </ul>
        </section>
        <section>
          <title>Beyond a stable release</title>
          <p>A number of items are planned for after the 1.0 major release.</p>
          <ul>
                <li>XML Encryption Support</li>
                <li>A crypto interface for the Windows CAPI</li>
                <li>Implementation of a core set of encryption primitives to 
allow
                  decoupling from OpenSSL for "light" applications</li>
                <li>Improved <em>KeyInfo</em> resolver interface leading 
to...</li>
                <li>XKMS client support</li>
                <li>Bring the API in-line with JCP 105 (if appropriate)</li>
                <li>Eventually (the GRAND PLAN) an XKMS server 
implementation</li>
          </ul>
        </section>
    </body>
  </document>
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/content/xdocs/c/tools.xml
  
  Index: tools.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" 
"document-v11.dtd">
  
  <document>
    <header>
      <title>Tools</title>
    </header>
    <body>
        <section>
          <title>Provided Tools</title>
          <p>
                A number of very simple "tools" (really examples) are provided 
with
                the XML Security library.  These can be used either to provide 
examples
                of how to use the library or as simple utilities in their own 
right for
                performing canonicalisation and signature functions.
          </p>
          <p>
                The tools are :
          </p>
          <ul>
                <li><em>c14n</em> - A tool to output a Canonicalised version of 
an 
                  input document.</li>
                <li><em>checksig</em> - A tool to validate a signature in an XML
                  input document</li>
                <li><em>templatesign</em> - A tool to sign an XML document that 
already
                  has the &lt;Signature&gt; structure installed, but needs the 
references
                  hashed and the SignatureValue set.</li>
                <li><em>txfmout</em> - A tool to take an XML Signature and 
output
                  the fully transformed references to stdout or a nominated 
file</li>
                <li><em>threadTest</em> - A Windows only program that runs up a 
number
                  of threads which simultaneously sign and validate documents.  
A
                  number of documents are modified in between (to cause the 
signature
                  validation to fail).</li>
          </ul>
          <p>
                The tools can all be run with no command line arguments to see 
their
                parameters.
          </p>
          <p>
                One extra "tool" is provided - <em>xtest</em>.  This is really 
a testing
                program that exercises various capabilities of the library and 
compares
                the results with known good results.
          </p>
        </section>
    </body>
  </document>
  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:nil
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->
  
  
  
  1.1                  
xml-security/doc/site/src/documentation/resources/images/group-logo.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-security/doc/site/src/documentation/resources/images/icon.png
  
        <<Binary file>>
  
  
  1.1                  
xml-security/doc/site/src/documentation/resources/images/project-logo.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-security/doc/site/src/documentation/resources/images/vc6a.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-security/doc/site/src/documentation/resources/images/vc6b.gif
  
        <<Binary file>>
  
  

Reply via email to