You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by du...@apache.org on 2008/01/09 10:42:50 UTC
svn commit: r610322 - in /webservices/axis2/trunk/c: ./ tools/md5/
tools/md5/include/ tools/md5/src/ tools/md5/test/ tools/md5/test/unit/
util/include/ util/src/ util/test/util/
Author: dushshantha
Date: Wed Jan 9 01:42:48 2008
New Revision: 610322
URL: http://svn.apache.org/viewvc?rev=610322&view=rev
Log:
applied the patch for AXIS2C-887 888 and 892. Thanks Senaka fpr the patch.
Added:
webservices/axis2/trunk/c/tools/md5/
webservices/axis2/trunk/c/tools/md5/AUTHORS
webservices/axis2/trunk/c/tools/md5/COPYING
webservices/axis2/trunk/c/tools/md5/ChangeLog
webservices/axis2/trunk/c/tools/md5/INSTALL
webservices/axis2/trunk/c/tools/md5/LICENSE
webservices/axis2/trunk/c/tools/md5/Makefile.am
webservices/axis2/trunk/c/tools/md5/NEWS
webservices/axis2/trunk/c/tools/md5/README
webservices/axis2/trunk/c/tools/md5/autogen.sh (with props)
webservices/axis2/trunk/c/tools/md5/build.sh
webservices/axis2/trunk/c/tools/md5/configure.ac
webservices/axis2/trunk/c/tools/md5/include/
webservices/axis2/trunk/c/tools/md5/src/
webservices/axis2/trunk/c/tools/md5/src/Makefile.am
webservices/axis2/trunk/c/tools/md5/src/md5.c
webservices/axis2/trunk/c/tools/md5/test/
webservices/axis2/trunk/c/tools/md5/test/Makefile.am
webservices/axis2/trunk/c/tools/md5/test/unit/
webservices/axis2/trunk/c/util/include/axutil_digest_calc.h
webservices/axis2/trunk/c/util/include/axutil_md5.h
webservices/axis2/trunk/c/util/src/digest_calc.c
webservices/axis2/trunk/c/util/src/md5.c
webservices/axis2/trunk/c/util/test/util/test_md5.c
webservices/axis2/trunk/c/util/test/util/test_md5.h
Modified:
webservices/axis2/trunk/c/Makefile.am
webservices/axis2/trunk/c/configure.ac
webservices/axis2/trunk/c/util/src/Makefile.am
webservices/axis2/trunk/c/util/test/util/Makefile.am
webservices/axis2/trunk/c/util/test/util/test_util.c
Modified: webservices/axis2/trunk/c/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/Makefile.am?rev=610322&r1=610321&r2=610322&view=diff
==============================================================================
--- webservices/axis2/trunk/c/Makefile.am (original)
+++ webservices/axis2/trunk/c/Makefile.am Wed Jan 9 01:42:48 2008
@@ -8,7 +8,7 @@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = axis2c.pc
-SUBDIRS = util $(GUTHTHILA_DIR) axiom neethi src $(TESTDIR) include ides tools/tcpmon
+SUBDIRS = util $(GUTHTHILA_DIR) axiom neethi src $(TESTDIR) include ides tools/tcpmon tools/md5
include_HEADERS=$(top_builddir)/include/*.h
data_DATA= samples/server/axis2.xml README \
INSTALL CREDITS COPYING NEWS NOTICE
Modified: webservices/axis2/trunk/c/configure.ac
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/configure.ac?rev=610322&r1=610321&r2=610322&view=diff
==============================================================================
--- webservices/axis2/trunk/c/configure.ac (original)
+++ webservices/axis2/trunk/c/configure.ac Wed Jan 9 01:42:48 2008
@@ -414,6 +414,8 @@
test/core/transport/http/Makefile \
tools/tcpmon/Makefile \
tools/tcpmon/src/Makefile \
+ tools/md5/Makefile \
+ tools/md5/src/Makefile \
ides/Makefile \
include/Makefile \
axis2c.pc
Added: webservices/axis2/trunk/c/tools/md5/AUTHORS
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/AUTHORS?rev=610322&view=auto
==============================================================================
(empty)
Added: webservices/axis2/trunk/c/tools/md5/COPYING
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/COPYING?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/COPYING (added)
+++ webservices/axis2/trunk/c/tools/md5/COPYING Wed Jan 9 01:42:48 2008
@@ -0,0 +1,203 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
Added: webservices/axis2/trunk/c/tools/md5/ChangeLog
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/ChangeLog?rev=610322&view=auto
==============================================================================
(empty)
Added: webservices/axis2/trunk/c/tools/md5/INSTALL
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/INSTALL?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/INSTALL (added)
+++ webservices/axis2/trunk/c/tools/md5/INSTALL Wed Jan 9 01:42:48 2008
@@ -0,0 +1,14 @@
+Getting Axis2/C md5 Source Working on Linux
+==============================================
+Build the source
+This can be done using the following command sequence:
+ ./configure
+ make
+ make install
+ use './configure --help' for options
+
+NOTE: If you don't provide a --prefix configure option, it will by default
+install into /usr/local/md5 directory.
+
+
+
Added: webservices/axis2/trunk/c/tools/md5/LICENSE
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/LICENSE?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/LICENSE (added)
+++ webservices/axis2/trunk/c/tools/md5/LICENSE Wed Jan 9 01:42:48 2008
@@ -0,0 +1,203 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
Added: webservices/axis2/trunk/c/tools/md5/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/Makefile.am?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/md5/Makefile.am Wed Jan 9 01:42:48 2008
@@ -0,0 +1,4 @@
+SUBDIRS = src
+includedir=$(prefix)/include/axis2-1.2
+data_DATA= INSTALL README AUTHORS NEWS LICENSE COPYING
+EXTRA_DIST=LICENSE
Added: webservices/axis2/trunk/c/tools/md5/NEWS
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/NEWS?rev=610322&view=auto
==============================================================================
(empty)
Added: webservices/axis2/trunk/c/tools/md5/README
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/README?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/README (added)
+++ webservices/axis2/trunk/c/tools/md5/README Wed Jan 9 01:42:48 2008
@@ -0,0 +1,21 @@
+ Axis2C MD5 Generator
+ ======================
+
+What is it?
+-----------
+
+Axis2 MD5 project is aimed at generating md5 checksums for files. It works only in command line interface.
+
+How to run the MD5 Generator?
+-----------------------------
+
+Run the file called md5 with the File Name.
+For instruction run md5 -h
+
+
+Installation
+------------
+
+Please see the file called INSTALL.
+
+
Added: webservices/axis2/trunk/c/tools/md5/autogen.sh
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/autogen.sh?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/autogen.sh (added)
+++ webservices/axis2/trunk/c/tools/md5/autogen.sh Wed Jan 9 01:42:48 2008
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+echo -n 'Running libtoolize...'
+if [ `uname -s` = Darwin ]
+then
+ LIBTOOLIZE=glibtoolize
+else
+ LIBTOOLIZE=libtoolize
+fi
+
+if $LIBTOOLIZE --force > /dev/null 2>&1; then
+ echo 'done.'
+else
+ echo 'failed.'
+ exit 1
+fi
+
+echo -n 'Running aclocal...'
+if aclocal > /dev/null 2>&1; then
+ echo 'done.'
+else
+ echo 'failed.'
+ exit 1
+fi
+
+echo -n 'Running autoheader...'
+if autoheader > /dev/null 2>&1; then
+ echo 'done.'
+else
+ echo 'failed.'
+ exit 1
+fi
+
+echo -n 'Running autoconf...'
+if autoconf > /dev/null 2>&1; then
+ echo 'done.'
+else
+ echo 'failed.'
+ exit 1
+fi
+
+echo -n 'Running automake...'
+if automake --add-missing > /dev/null 2>&1; then
+ echo 'done.'
+else
+ echo 'failed.'
+ exit 1
+fi
+
+echo 'done'
Propchange: webservices/axis2/trunk/c/tools/md5/autogen.sh
------------------------------------------------------------------------------
svn:executable = *
Added: webservices/axis2/trunk/c/tools/md5/build.sh
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/build.sh?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/build.sh (added)
+++ webservices/axis2/trunk/c/tools/md5/build.sh Wed Jan 9 01:42:48 2008
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+./autogen.sh
+
+if test -z ${AXIS2C_HOME}
+then
+ AXIS2C_HOME=`pwd`/../deploy
+fi
+
+export AXIS2C_HOME
+
+./configure --prefix=${AXIS2C_HOME} --enable-tests=no
+make
Added: webservices/axis2/trunk/c/tools/md5/configure.ac
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/configure.ac?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/configure.ac (added)
+++ webservices/axis2/trunk/c/tools/md5/configure.ac Wed Jan 9 01:42:48 2008
@@ -0,0 +1,111 @@
+dnl run autogen.sh to generate the configure script.
+
+AC_PREREQ(2.59)
+
+AC_INIT(md5-src, 0.96)
+AC_CANONICAL_SYSTEM
+AM_CONFIG_HEADER(config.h)
+AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
+AC_PREFIX_DEFAULT(/usr/local/md5)
+
+dnl Checks for programs.
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_CPP
+AC_PROG_LIBTOOL
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+
+
+CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE -g"
+if test "$GCC" = "yes"; then
+ CFLAGS="$CFLAGS -ansi -Wall -Wno-implicit-function-declaration"
+fi
+
+LDFLAGS="$LDFLAGS -lpthread"
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS([stdio.h stdlib.h string.h])
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+
+dnl Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([memmove])
+
+AC_CHECK_LIB(z, inflate)
+dnl AC_CHECK_LIB(cutest, CuTestInit)
+
+AC_MSG_CHECKING(whether to build libxml2 xml parser library)
+AC_ARG_ENABLE(libxml2, [ --enable-libxml2 build libxml2 xml parser library wrapper. default=yes],
+[ case "${enableval}" in
+ no)
+ AC_MSG_RESULT(no)
+ WRAPPER_DIR=""
+ ;;
+ *)
+ AC_MSG_RESULT(yes)
+ WRAPPER_DIR="libxml2"
+
+ ;;
+ esac ],
+ AC_MSG_RESULT(yes)
+ WRAPPER_DIR="libxml2"
+)
+
+AC_MSG_CHECKING(whether to build guththila xml parser library)
+AC_ARG_ENABLE(guththila, [ --enable-guththila build guththila xml parser library wrapper. default=no],
+[ case "${enableval}" in
+ no)
+ AC_MSG_RESULT(no)
+ ;;
+ *)
+ AC_MSG_RESULT(yes)
+ WRAPPER_DIR="guththila"
+ if test -d $srcdir/guththila; then
+ AC_CONFIG_SUBDIRS(guththila)
+ fi
+
+ GUTHTHILA_DIR="guththila"
+ ;;
+ esac ],
+ AC_MSG_RESULT(no)
+)
+
+
+AC_MSG_CHECKING(whether to build tests)
+AC_ARG_ENABLE(tests,
+[ --enable-tests build tests. default=no],
+[ case "${enableval}" in
+ no)
+ AC_MSG_RESULT(no)
+ TESTDIR=""
+ ;;
+ *)
+ AC_MSG_RESULT(yes)
+ TESTDIR="test"
+
+ ;;
+ esac ],
+ AC_MSG_RESULT(no)
+ TESTDIR=""
+)
+
+
+UTILINC=$axis2_utilinc
+
+AC_SUBST(UTILINC)
+AC_SUBST(TESTDIR)
+AC_SUBST(WRAPPER_DIR)
+
+CFLAGS="$CFLAGS"
+
+AC_CONFIG_FILES([Makefile \
+ src/Makefile \
+ ])
+
+AC_OUTPUT
Added: webservices/axis2/trunk/c/tools/md5/src/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/src/Makefile.am?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/src/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/md5/src/Makefile.am Wed Jan 9 01:42:48 2008
@@ -0,0 +1,14 @@
+prgbindir=$(prefix)/bin/tools
+
+prgbin_PROGRAMS = md5
+
+md5_SOURCES = md5.c
+
+md5_LDADD = \
+ ../../../util/src/libaxutil.la
+
+INCLUDES = -I$(top_builddir)/include \
+ -I ../../../util/include \
+ -I ../../../include \
+ -I ../include
+
Added: webservices/axis2/trunk/c/tools/md5/src/md5.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/src/md5.c?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/src/md5.c (added)
+++ webservices/axis2/trunk/c/tools/md5/src/md5.c Wed Jan 9 01:42:48 2008
@@ -0,0 +1,80 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <axutil_string.h>
+#include <axutil_md5.h>
+
+static void md5_file (char *filename, const axutil_env_t * env)
+{
+ FILE * file;
+ axutil_md5_ctx_t * context;
+ int len, i;
+ unsigned char buffer[1024], digest[16];
+
+ if ((file = fopen (filename, "rb")) == NULL)
+ {
+ printf ("%s can't be opened\n", filename);
+ }
+ else
+ {
+ context = axutil_md5_ctx_create(env);
+ while ((len = fread (buffer, 1, 1024, file)) != 0)
+ {
+ axutil_md5_update(context, env, buffer, len);
+ }
+ axutil_md5_final(context, env, digest);
+ axutil_md5_ctx_free(context, env);
+ fclose (file);
+ printf ("MD5 (%s) = ", filename);
+ for (i = 0; i < 16; i++)
+ {
+ printf ("%02x", digest[i]);
+ }
+ printf ("\n");
+ }
+}
+
+int
+main(
+ int argc,
+ char **argv)
+{
+ const axutil_env_t *env = NULL;
+
+ env = axutil_env_create_all("md5.log", AXIS2_LOG_LEVEL_DEBUG);
+ if (argc > 1)
+ {
+ if (axutil_strcmp(argv[1], "-h") == 0)
+ {
+ printf("Usage : %s [file_name]\n", argv[0]);
+ printf("use -h for help\n");
+ return 0;
+ }
+ else
+ {
+ md5_file(argv[1], env);
+ }
+ }
+ if (env)
+ {
+ axutil_env_free((axutil_env_t *) env);
+ env = NULL;
+ }
+ return 0;
+}
Added: webservices/axis2/trunk/c/tools/md5/test/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/md5/test/Makefile.am?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/tools/md5/test/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/md5/test/Makefile.am Wed Jan 9 01:42:48 2008
@@ -0,0 +1 @@
+SUBDIRS = unit
Added: webservices/axis2/trunk/c/util/include/axutil_digest_calc.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axutil_digest_calc.h?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/util/include/axutil_digest_calc.h (added)
+++ webservices/axis2/trunk/c/util/include/axutil_digest_calc.h Wed Jan 9 01:42:48 2008
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXUTIL_DIGEST_CALC_H
+#define AXUTIL_DIGEST_CALC_H
+
+/**
+ * @file axutil_digest_calc.h
+ * @brief implements the calculations of H(A1), H(A2),
+ * request-digest and response-digest for Axis2 based on rfc2617.
+ */
+
+#include <axutil_utils_defines.h>
+#include <axutil_env.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /**
+ * @defgroup axis2_util utilities
+ * @ingroup axis2
+ * @{
+ * @}
+ */
+
+ /**
+ * @defgroup axutil_digest_calc digest_calc
+ * @ingroup axis2_util
+ * @{
+ */
+
+ #define AXIS2_DIGEST_HASH_LEN 16
+ #define AXIS2_DIGEST_HASH_HEX_LEN 32
+
+ typedef unsigned char axutil_digest_hash_t[AXIS2_DIGEST_HASH_LEN];
+ typedef unsigned char axutil_digest_hash_hex_t[AXIS2_DIGEST_HASH_HEX_LEN + 1];
+
+ /**
+ * calculate H(A1) as per HTTP Digest spec
+ * @param env, pointer to env struct
+ * @param algorithm, algorithm
+ * @param user_name, user name
+ * @param realm, reaalm
+ * @param password, password
+ * @param nonce, nonce from server
+ * @param cnonce, client nonce
+ * @param session_key, H(A1)
+ * @return AXIS2_SUCCESS on success or AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axutil_digest_calc_get_h_a1(
+ const axutil_env_t * env,
+ char * algorithm,
+ char * user_name,
+ char * realm,
+ char * password,
+ char * nonce,
+ char * cnonce,
+ axutil_digest_hash_hex_t session_key);
+
+ /**
+ * calculate request-digest/response-digest as per HTTP Digest spec
+ * @param env, pointer to env struct
+ * @param h_a1, H(A1)
+ * @param nonce, nonce from server
+ * @param cnonce, client nonce
+ * @param qop, qop-value: "", "auth", "auth-int"
+ * @param method, method from the request
+ * @param digest_uri, requested URL
+ * @param h_entry, H(entity body) if qop="auth-int"
+ * @param response, request-digest or response-digest
+ * @return AXIS2_SUCCESS on success or AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axutil_digest_calc_get_response(
+ const axutil_env_t * env,
+ axutil_digest_hash_hex_t h_a1,
+ char * nonce,
+ char * nonce_count,
+ char * cnonce,
+ char * qop,
+ char * method,
+ char * digest_uri,
+ axutil_digest_hash_hex_t h_entity,
+ axutil_digest_hash_hex_t response);
+
+ /** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_DIGEST_CALC_H */
Added: webservices/axis2/trunk/c/util/include/axutil_md5.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axutil_md5.h?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/util/include/axutil_md5.h (added)
+++ webservices/axis2/trunk/c/util/include/axutil_md5.h Wed Jan 9 01:42:48 2008
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXUTIL_MD5_H
+#define AXUTIL_MD5_H
+
+/**
+ * @file axutil_md5.h
+ * @brief MD5 Implementation for Axis2 based on rfc1321.
+ */
+
+#include <axutil_utils_defines.h>
+#include <axutil_env.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /**
+ * @defgroup axis2_util utilities
+ * @ingroup axis2
+ * @{
+ * @}
+ */
+
+ /**
+ * @defgroup axutil_md5 md5
+ * @ingroup axis2_util
+ * @{
+ */
+
+ /** The MD5 digest size */
+ #define AXIS2_MD5_DIGESTSIZE 16
+
+ typedef struct axutil_md5_ctx
+ {
+ /** state (ABCD) */
+ unsigned int state[4];
+ /** number of bits, modulo 2^64 (lsb first) */
+ unsigned int count[2];
+ /** input buffer */
+ unsigned char buffer[64];
+ }
+ axutil_md5_ctx_t;
+
+ /**
+ * Creates md5_ctx struct, which is used for the MD5 message-digest
+ * operation. Initialization of the struct is done during the creation
+ * process.
+ * @param env, pointer to the env struct.
+ * @return pointer to md5_ctx struct created.
+ */
+ AXIS2_EXTERN axutil_md5_ctx_t *AXIS2_CALL
+ axutil_md5_ctx_create(
+ const axutil_env_t * env);
+
+ /**
+ * Frees the md5_ctx struct
+ * @param md5_ctx, pointer to struct to free.
+ * @param env, pointer to the env struct.
+ */
+ AXIS2_EXTERN void AXIS2_CALL
+ axutil_md5_ctx_free(
+ axutil_md5_ctx_t * md5_ctx,
+ const axutil_env_t * env);
+
+ /**
+ * MD5 block update operation. Continue an MD5 message-digest operation,
+ * processing another message block, and updating the context.
+ * @param context The MD5 content to update.
+ * @param env, pointer to the env struct.
+ * @param input_str next message block to update
+ * @param inputLen The length of the next message block
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axutil_md5_update(
+ axutil_md5_ctx_t *context,
+ const axutil_env_t * env,
+ const void *input_str,
+ size_t inputLen);
+
+ /**
+ * MD5 finalization. Ends an MD5 message-digest operation, writing the
+ * message digest and zeroing the context.
+ * @param digest The final MD5 digest.
+ * @param env, pointer to the env struct.
+ * @param context The MD5 content we are finalizing.
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axutil_md5_final(
+ axutil_md5_ctx_t *context,
+ const axutil_env_t * env,
+ unsigned char digest[AXIS2_MD5_DIGESTSIZE]);
+
+ /**
+ * MD5 in one step.
+ * @param env, pointer to the env struct.
+ * @param digest The final MD5 digest.
+ * @param input_str The message block to use.
+ * @param inputLen The length of the message block.
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axutil_md5(
+ const axutil_env_t * env,
+ unsigned char digest[AXIS2_MD5_DIGESTSIZE],
+ const void *input_str,
+ size_t inputLen);
+
+ /** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_MD5_H */
Modified: webservices/axis2/trunk/c/util/src/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/Makefile.am?rev=610322&r1=610321&r2=610322&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/util/src/Makefile.am Wed Jan 9 01:42:48 2008
@@ -35,7 +35,8 @@
rand.c \
date_time_util.c \
version.c \
- duration.c
+ duration.c \
+ md5.c
libaxutil_la_LIBADD = $(top_builddir)/src/platforms/unix/libaxis2_unix.la \
@ZLIBLIBS@
Added: webservices/axis2/trunk/c/util/src/digest_calc.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/digest_calc.c?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/util/src/digest_calc.c (added)
+++ webservices/axis2/trunk/c/util/src/digest_calc.c Wed Jan 9 01:42:48 2008
@@ -0,0 +1,145 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <axutil_string.h>
+#include <axutil_md5.h>
+#include <axutil_digest_calc.h>
+
+void AXIS2_CALL convert_to_hex(
+ axutil_digest_hash_t bin,
+ axutil_digest_hash_hex_t hex);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axutil_digest_calc_get_h_a1(
+ const axutil_env_t * env,
+ char * algorithm,
+ char * user_name,
+ char * realm,
+ char * password,
+ char * nonce,
+ char * cnonce,
+ axutil_digest_hash_hex_t session_key)
+{
+ axutil_md5_ctx_t * ctx;
+ axutil_digest_hash_t ha1;
+
+ ctx = axutil_md5_ctx_create(env);
+ if (!ctx)
+ return AXIS2_FAILURE;
+ axutil_md5_update(ctx, env, user_name, strlen(user_name));
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, realm, strlen(realm));
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, password, strlen(password));
+ axutil_md5_final(ctx, env, ha1);
+ axutil_md5_ctx_free(ctx, env);
+ if (axutil_strcasecmp(algorithm, "md5-sess") == 0)
+ {
+ ctx = axutil_md5_ctx_create(env);
+ if (!ctx)
+ return AXIS2_FAILURE;
+ axutil_md5_update(ctx, env, ha1, AXIS2_DIGEST_HASH_LEN);
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, nonce, strlen(nonce));
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, cnonce, strlen(cnonce));
+ axutil_md5_final(ctx, env, ha1);
+ axutil_md5_ctx_free(ctx, env);
+ }
+ convert_to_hex(ha1, session_key);
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axutil_digest_calc_get_response(
+ const axutil_env_t * env,
+ axutil_digest_hash_hex_t h_a1,
+ char * nonce,
+ char * nonce_count,
+ char * cnonce,
+ char * qop,
+ char * method,
+ char * digest_uri,
+ axutil_digest_hash_hex_t h_entity,
+ axutil_digest_hash_hex_t response)
+{
+ axutil_md5_ctx_t * ctx;
+ axutil_digest_hash_t ha2;
+ axutil_digest_hash_t resp_hash;
+ axutil_digest_hash_hex_t ha2_hex;
+
+ ctx = axutil_md5_ctx_create(env);
+ if (!ctx)
+ return AXIS2_FAILURE;
+ axutil_md5_update(ctx, env, method, strlen(method));
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, digest_uri, strlen(digest_uri));
+ if (axutil_strcasecmp(qop, "auth-int") == 0)
+ {
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, h_entity, AXIS2_DIGEST_HASH_HEX_LEN);
+ };
+ axutil_md5_final(ctx, env, ha2);
+ axutil_md5_ctx_free(ctx, env);
+ convert_to_hex(ha2, ha2_hex);
+
+ ctx = axutil_md5_ctx_create(env);
+ if (!ctx)
+ return AXIS2_FAILURE;
+ axutil_md5_update(ctx, env, h_a1, AXIS2_DIGEST_HASH_HEX_LEN);
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, nonce, strlen(nonce));
+ axutil_md5_update(ctx, env, ":", 1);
+ if (*qop)
+ {
+ axutil_md5_update(ctx, env, nonce_count, strlen(nonce_count));
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, cnonce, strlen(cnonce));
+ axutil_md5_update(ctx, env, ":", 1);
+ axutil_md5_update(ctx, env, qop, strlen(qop));
+ axutil_md5_update(ctx, env, ":", 1);
+ };
+ axutil_md5_update(ctx, env, ha2_hex, AXIS2_DIGEST_HASH_HEX_LEN);
+ axutil_md5_final(ctx, env, resp_hash);
+ axutil_md5_ctx_free(ctx, env);
+ convert_to_hex(resp_hash, response);
+ return AXIS2_SUCCESS;
+}
+
+void AXIS2_CALL convert_to_hex(
+ axutil_digest_hash_t bin,
+ axutil_digest_hash_hex_t hex)
+{
+ unsigned short i;
+ unsigned char j;
+
+ for (i = 0; i < AXIS2_DIGEST_HASH_LEN; i++)
+ {
+ j = (bin[i] >> 4) & 0xf;
+ if (j <= 9)
+ hex[i*2] = (j + '0');
+ else
+ hex[i*2] = (j + 'a' - 10);
+ j = bin[i] & 0xf;
+ if (j <= 9)
+ hex[i*2+1] = (j + '0');
+ else
+ hex[i*2+1] = (j + 'a' - 10);
+ }
+ hex[AXIS2_DIGEST_HASH_HEX_LEN] = '\0';
+}
Added: webservices/axis2/trunk/c/util/src/md5.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/md5.c?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/util/src/md5.c (added)
+++ webservices/axis2/trunk/c/util/src/md5.c Wed Jan 9 01:42:48 2008
@@ -0,0 +1,353 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <axutil_md5.h>
+#include <axutil_error_default.h>
+#include <axutil_string.h>
+
+#define S11 7
+#define S12 12
+#define S13 17
+#define S14 22
+#define S21 5
+#define S22 9
+#define S23 14
+#define S24 20
+#define S31 4
+#define S32 11
+#define S33 16
+#define S34 23
+#define S41 6
+#define S42 10
+#define S43 15
+#define S44 21
+
+static void AXIS2_CALL md5_transform(
+ unsigned int state[4],
+ const unsigned char block[64]);
+
+static void AXIS2_CALL encode(
+ unsigned char *output,
+ const unsigned int *input,
+ unsigned int len);
+
+static void AXIS2_CALL decode(
+ unsigned int *output,
+ const unsigned char *input,
+ unsigned int len);
+
+static unsigned char PADDING[64] =
+{
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+/* F, G, H and I are basic MD5 functions.
+ */
+#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
+#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define I(x, y, z) ((y) ^ ((x) | (~z)))
+
+/* ROTATE_LEFT rotates x left n bits.
+ */
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
+
+/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
+ * Rotation is separate from addition to prevent recomputation.
+ */
+#define FF(a, b, c, d, x, s, ac) { \
+ (a) += F ((b), (c), (d)) + (x) + (unsigned int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+#define GG(a, b, c, d, x, s, ac) { \
+ (a) += G ((b), (c), (d)) + (x) + (unsigned int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+#define HH(a, b, c, d, x, s, ac) { \
+ (a) += H ((b), (c), (d)) + (x) + (unsigned int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+#define II(a, b, c, d, x, s, ac) { \
+ (a) += I ((b), (c), (d)) + (x) + (unsigned int)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+
+AXIS2_EXTERN axutil_md5_ctx_t *AXIS2_CALL
+axutil_md5_ctx_create(
+ const axutil_env_t * env)
+{
+ axutil_md5_ctx_t *context;
+ AXIS2_ENV_CHECK(env, NULL);
+
+ context = (axutil_md5_ctx_t *) AXIS2_MALLOC(env->allocator, sizeof(axutil_md5_ctx_t));
+ if (!context)
+ {
+ return NULL;
+ }
+ context->count[0] = context->count[1] = 0;
+
+ /* Load magic initialization constants. */
+ context->state[0] = 0x67452301;
+ context->state[1] = 0xefcdab89;
+ context->state[2] = 0x98badcfe;
+ context->state[3] = 0x10325476;
+ return context;
+}
+
+AXIS2_EXTERN void AXIS2_CALL
+axutil_md5_ctx_free(
+ axutil_md5_ctx_t * md5_ctx,
+ const axutil_env_t * env)
+{
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ if (md5_ctx)
+ {
+ AXIS2_FREE(env->allocator, md5_ctx);
+ }
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axutil_md5_update(
+ axutil_md5_ctx_t *context,
+ const axutil_env_t * env,
+ const void *input_str,
+ size_t inputLen)
+{
+ const unsigned char *input = input_str;
+ unsigned int i, idx, partLen;
+ AXIS2_ENV_CHECK(env, AXIS2_FALSE);
+
+ /* Compute number of bytes mod 64 */
+ idx = (unsigned int)((context->count[0] >> 3) & 0x3F);
+
+ /* Update number of bits */
+ if ((context->count[0] += ((unsigned int)inputLen << 3))
+ < ((unsigned int)inputLen << 3))
+ context->count[1]++;
+ context->count[1] += (unsigned int)inputLen >> 29;
+
+ partLen = 64 - idx;
+
+ /* Transform as many times as possible. */
+ if (inputLen >= partLen) {
+ memcpy(&context->buffer[idx], input, partLen);
+ md5_transform(context->state, context->buffer);
+
+ for (i = partLen; i + 63 < inputLen; i += 64)
+ md5_transform(context->state, &input[i]);
+
+ idx = 0;
+ }
+ else
+ i = 0;
+
+ /* Buffer remaining input */
+ memcpy(&context->buffer[idx], &input[i], inputLen - i);
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axutil_md5_final(
+ axutil_md5_ctx_t *context,
+ const axutil_env_t * env,
+ unsigned char digest[AXIS2_MD5_DIGESTSIZE])
+{
+ unsigned char bits[8];
+ unsigned int idx, padLen;
+ AXIS2_ENV_CHECK(env, AXIS2_FALSE);
+
+ /* Save number of bits */
+ encode(bits, context->count, 8);
+
+ /* Pad out to 56 mod 64. */
+ idx = (unsigned int)((context->count[0] >> 3) & 0x3f);
+ padLen = (idx < 56) ? (56 - idx) : (120 - idx);
+ axutil_md5_update(context, env, PADDING, padLen);
+
+ /* Append length (before padding) */
+ axutil_md5_update(context, env, bits, 8);
+
+ /* Store state in digest */
+ encode(digest, context->state, AXIS2_MD5_DIGESTSIZE);
+
+ /* Zeroize sensitive information. */
+ memset(context, 0, sizeof(*context));
+
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axutil_md5(
+ const axutil_env_t * env,
+ unsigned char digest[AXIS2_MD5_DIGESTSIZE],
+ const void *input_str,
+ size_t inputLen)
+{
+ const unsigned char *input = input_str;
+ axutil_md5_ctx_t * ctx;
+ axis2_status_t rv;
+ AXIS2_ENV_CHECK(env, AXIS2_FALSE);
+
+ ctx = axutil_md5_ctx_create(env);
+ if (!ctx)
+ return AXIS2_FAILURE;
+
+ rv = axutil_md5_update(ctx, env, input, inputLen);
+ if (rv != AXIS2_SUCCESS)
+ return rv;
+
+ rv = axutil_md5_final(ctx, env, digest);
+ axutil_md5_ctx_free(ctx, env);
+ return rv;
+}
+
+/* MD5 basic transformation. Transforms state based on block. */
+static void AXIS2_CALL md5_transform(
+ unsigned int state[4],
+ const unsigned char block[64])
+{
+ unsigned int a = state[0], b = state[1], c = state[2], d = state[3],
+ x[AXIS2_MD5_DIGESTSIZE];
+
+ decode(x, block, 64);
+
+ /* Round 1 */
+ FF(a, b, c, d, x[0], S11, 0xd76aa478); /* 1 */
+ FF(d, a, b, c, x[1], S12, 0xe8c7b756); /* 2 */
+ FF(c, d, a, b, x[2], S13, 0x242070db); /* 3 */
+ FF(b, c, d, a, x[3], S14, 0xc1bdceee); /* 4 */
+ FF(a, b, c, d, x[4], S11, 0xf57c0faf); /* 5 */
+ FF(d, a, b, c, x[5], S12, 0x4787c62a); /* 6 */
+ FF(c, d, a, b, x[6], S13, 0xa8304613); /* 7 */
+ FF(b, c, d, a, x[7], S14, 0xfd469501); /* 8 */
+ FF(a, b, c, d, x[8], S11, 0x698098d8); /* 9 */
+ FF(d, a, b, c, x[9], S12, 0x8b44f7af); /* 10 */
+ FF(c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
+ FF(b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
+ FF(a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
+ FF(d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
+ FF(c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
+ FF(b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
+
+ /* Round 2 */
+ GG(a, b, c, d, x[1], S21, 0xf61e2562); /* 17 */
+ GG(d, a, b, c, x[6], S22, 0xc040b340); /* 18 */
+ GG(c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
+ GG(b, c, d, a, x[0], S24, 0xe9b6c7aa); /* 20 */
+ GG(a, b, c, d, x[5], S21, 0xd62f105d); /* 21 */
+ GG(d, a, b, c, x[10], S22, 0x2441453); /* 22 */
+ GG(c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
+ GG(b, c, d, a, x[4], S24, 0xe7d3fbc8); /* 24 */
+ GG(a, b, c, d, x[9], S21, 0x21e1cde6); /* 25 */
+ GG(d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
+ GG(c, d, a, b, x[3], S23, 0xf4d50d87); /* 27 */
+ GG(b, c, d, a, x[8], S24, 0x455a14ed); /* 28 */
+ GG(a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
+ GG(d, a, b, c, x[2], S22, 0xfcefa3f8); /* 30 */
+ GG(c, d, a, b, x[7], S23, 0x676f02d9); /* 31 */
+ GG(b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
+
+ /* Round 3 */
+ HH(a, b, c, d, x[5], S31, 0xfffa3942); /* 33 */
+ HH(d, a, b, c, x[8], S32, 0x8771f681); /* 34 */
+ HH(c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
+ HH(b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
+ HH(a, b, c, d, x[1], S31, 0xa4beea44); /* 37 */
+ HH(d, a, b, c, x[4], S32, 0x4bdecfa9); /* 38 */
+ HH(c, d, a, b, x[7], S33, 0xf6bb4b60); /* 39 */
+ HH(b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
+ HH(a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
+ HH(d, a, b, c, x[0], S32, 0xeaa127fa); /* 42 */
+ HH(c, d, a, b, x[3], S33, 0xd4ef3085); /* 43 */
+ HH(b, c, d, a, x[6], S34, 0x4881d05); /* 44 */
+ HH(a, b, c, d, x[9], S31, 0xd9d4d039); /* 45 */
+ HH(d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
+ HH(c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
+ HH(b, c, d, a, x[2], S34, 0xc4ac5665); /* 48 */
+
+ /* Round 4 */
+ II(a, b, c, d, x[0], S41, 0xf4292244); /* 49 */
+ II(d, a, b, c, x[7], S42, 0x432aff97); /* 50 */
+ II(c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
+ II(b, c, d, a, x[5], S44, 0xfc93a039); /* 52 */
+ II(a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
+ II(d, a, b, c, x[3], S42, 0x8f0ccc92); /* 54 */
+ II(c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
+ II(b, c, d, a, x[1], S44, 0x85845dd1); /* 56 */
+ II(a, b, c, d, x[8], S41, 0x6fa87e4f); /* 57 */
+ II(d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
+ II(c, d, a, b, x[6], S43, 0xa3014314); /* 59 */
+ II(b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
+ II(a, b, c, d, x[4], S41, 0xf7537e82); /* 61 */
+ II(d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
+ II(c, d, a, b, x[2], S43, 0x2ad7d2bb); /* 63 */
+ II(b, c, d, a, x[9], S44, 0xeb86d391); /* 64 */
+
+ state[0] += a;
+ state[1] += b;
+ state[2] += c;
+ state[3] += d;
+
+ /* Zeroize sensitive information. */
+ memset(x, 0, sizeof(x));
+}
+
+/* encodes input (unsigned int) into output (unsigned char). Assumes len is
+ * a multiple of 4.
+ */
+static void AXIS2_CALL encode(
+ unsigned char *output,
+ const unsigned int *input,
+ unsigned int len)
+{
+ unsigned int i, j;
+ unsigned int k;
+
+ for (i = 0, j = 0; j < len; i++, j += 4) {
+ k = input[i];
+ output[j] = (unsigned char)(k & 0xff);
+ output[j + 1] = (unsigned char)((k >> 8) & 0xff);
+ output[j + 2] = (unsigned char)((k >> 16) & 0xff);
+ output[j + 3] = (unsigned char)((k >> 24) & 0xff);
+ }
+}
+
+/* decodes input (unsigned char) into output (unsigned int). Assumes len is
+ * a multiple of 4.
+ */
+static void AXIS2_CALL decode(
+ unsigned int *output,
+ const unsigned char *input,
+ unsigned int len)
+{
+ unsigned int i, j;
+
+ for (i = 0, j = 0; j < len; i++, j += 4)
+ output[i] = ((unsigned int)input[j]) |
+ (((unsigned int)input[j + 1]) << 8) |
+ (((unsigned int)input[j + 2]) << 16) |
+ (((unsigned int)input[j + 3]) << 24);
+}
Modified: webservices/axis2/trunk/c/util/test/util/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/test/util/Makefile.am?rev=610322&r1=610321&r2=610322&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/test/util/Makefile.am (original)
+++ webservices/axis2/trunk/c/util/test/util/Makefile.am Wed Jan 9 01:42:48 2008
@@ -1,10 +1,11 @@
TESTS = test_thread
noinst_PROGRAMS = test_util test_thread
noinst_HEADERS = test_log.h \
- test_thread.h
+ test_thread.h \
+ test_md5.h
check_PROGRAMS = test_util test_thread
SUBDIRS =
-test_util_SOURCES = test_util.c test_log.c test_string.c
+test_util_SOURCES = test_util.c test_log.c test_string.c test_md5.c
test_thread_SOURCES = test_thread.c
test_util_LDADD = \
Added: webservices/axis2/trunk/c/util/test/util/test_md5.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/test/util/test_md5.c?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/util/test/util/test_md5.c (added)
+++ webservices/axis2/trunk/c/util/test/util/test_md5.c Wed Jan 9 01:42:48 2008
@@ -0,0 +1,55 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <test_md5.h>
+#include <stdio.h>
+#include <axutil_string.h>
+#include <axutil_md5.h>
+
+/* Digests a string and prints the result.
+ */
+static void MDString (char * string, const axutil_env_t * env)
+{
+ axutil_md5_ctx_t * context;
+ unsigned char digest[16];
+ unsigned int i;
+ unsigned int len = axutil_strlen(string);
+
+ context = axutil_md5_ctx_create(env);
+ axutil_md5_update(context, env, string, len);
+ axutil_md5_final(context, env, digest);
+ axutil_md5_ctx_free(context, env);
+
+ printf ("MD%d (\"%s\") = ", 5, string);
+ for (i = 0; i < 16; i++)
+ printf ("%02x", digest[i]);
+ printf ("\n");
+}
+
+void test_md5(const axutil_env_t *env)
+{
+ printf ("\nMD5 test suite:\n");
+ printf ("test confirmation: Rivest, R., \"The MD5 Message-Digest Algorithm\", RFC 1321, April 1992.\n");
+ MDString ("", env);
+ MDString ("a", env);
+ MDString ("abc", env);
+ MDString ("message digest", env);
+ MDString ("abcdefghijklmnopqrstuvwxyz", env);
+ MDString ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", env);
+ MDString ("12345678901234567890123456789012345678901234567890123456789012345678901234567890", env);
+}
Added: webservices/axis2/trunk/c/util/test/util/test_md5.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/test/util/test_md5.h?rev=610322&view=auto
==============================================================================
--- webservices/axis2/trunk/c/util/test/util/test_md5.h (added)
+++ webservices/axis2/trunk/c/util/test/util/test_md5.h Wed Jan 9 01:42:48 2008
@@ -0,0 +1,27 @@
+
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#ifndef _TEST_MD5_H_
+#define _TEST_MD5_H_
+
+#include <axutil_env.h>
+
+void test_md5(
+ const axutil_env_t * env);
+
+#endif /* _TEST_MD5_H_ */
Modified: webservices/axis2/trunk/c/util/test/util/test_util.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/test/util/test_util.c?rev=610322&r1=610321&r2=610322&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/test/util/test_util.c (original)
+++ webservices/axis2/trunk/c/util/test/util/test_util.c Wed Jan 9 01:42:48 2008
@@ -283,6 +283,7 @@
test_file_diff(env);
test_array_list(env);
test_uuid_gen(env);
+ test_md5(env);
run_test_log();
run_test_string(env);
test_axutil_dir_handler_list_service_or_module_dirs();
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org