About to release 1.2
authorWerner Koch <wk@gnupg.org>
Thu, 15 Apr 2004 09:00:22 +0000 (09:00 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 15 Apr 2004 09:00:22 +0000 (09:00 +0000)
14 files changed:
ChangeLog
NEWS
README
configure.ac
src/ChangeLog
src/Manifest [new file with mode: 0644]
src/ath-pth.c [deleted file]
src/ath-pthread.c [deleted file]
src/gcrypt.h
src/global.c
src/misc.c
src/missing-string.c
src/secmem.c
src/string.c [deleted file]

index 611e86c..dab1ecc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-04-15  Werner Koch  <wk@gnupg.org>
+
+       Released 1.2.0.
+       
+       * configure.ac: Set LT to C12/A1/R1.
+
 2004-04-06  Werner Koch  <wk@gnupg.org>
 
        * config.guess, config.sub, ltmain.sh: Updated to those from
@@ -948,7 +954,8 @@ Fri Feb 13 19:43:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
        * Makefile.am: Likewise
 
        
- Copyright 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003,
+          2004 Free Software Foundation, Inc.
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without
diff --git a/NEWS b/NEWS
index 9deb177..f5d3f1d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,7 @@
-Noteworthy changes in version 1.
--------------------------------------------------
+Noteworthy changes in version 1.2.0 (2004-04-15)
+------------------------------------------------
+
+ * First stable release.
 
 
 Noteworthy changes in version 1.1.94 (2004-03-29)
@@ -379,7 +381,7 @@ Noteworthy changes in version 1.1.3 (2001-05-31)
     into into libgcrypt and GnuPG.
 
 
-Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without
diff --git a/README b/README
index 276ed77..423b7de 100644 (file)
--- a/README
+++ b/README
@@ -1,10 +1,6 @@
                    libgcrypt - The GNU crypto library
                   ------------------------------------
-                           Version 1.1.94
-
-    THIS IS A PRE-RELEASE FOR THE FIRST STABLE VERSION 1.2.0, TO BE
-    RELEASED RSN.
-
+                           Version 1.2.0
 
     Copyright 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
 
     installed correctly before Libgcrypt is to be built.
 
 
-    CVS
-    ---
-
-    If you are using the CVS version, make sure that you have the
-    latest GNU build tools installed and run ./autogen.sh before
-    trying to build the library.  Instead of running autogen.sh,
-    something like `autoreconf -i --symlink' can be used to prepare
-    the tree for building as well.
-
-    You also need to enable maintainer mode at configure time with the
-    `--enable-maintainer-mode' configure switch; without this switch,
-    the documentation can not be build, since the file `version.texi',
-    which is needed for building the documentation, will only be
-    generated, if maintainer mode is enabled.
-
-
     Mailing List
     ------------
 
                      option to disable the use of version scripts.
                      Note, that you should never ever use an
                      undocumented symbol or one which is prefixed with
-                     an underscore.
+                     an underscore. 
 
      --enable-ciphers=list
      --enable-pubkey-ciphers=list
                     data types.  With these switches it is possible
                      to select exactly those algorithm modules, which
                     should be built.
+
+    Contact
+    -------
+
+    See the file AUTHORS.
+
index a55988e..15194b9 100644 (file)
@@ -27,7 +27,7 @@ min_automake_version="1.7.6"
 # but remove a "-cvs" prefix right *before* a release and append it
 # soon later.
 
-AC_INIT(libgcrypt, 1.1.95-cvs, bug-libgcrypt@gnupg.org)
+AC_INIT(libgcrypt, 1.2.0, bug-libgcrypt@gnupg.org)
 
 # LT Version numbers, remember to change them just *before* a release.
 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
@@ -35,7 +35,7 @@ AC_INIT(libgcrypt, 1.1.95-cvs, bug-libgcrypt@gnupg.org)
 #   (No interfaces changed:                   REVISION++)
 LIBGCRYPT_LT_CURRENT=12
 LIBGCRYPT_LT_AGE=1
-LIBGCRYPT_LT_REVISION=0
+LIBGCRYPT_LT_REVISION=1
 
 # If the API is changed in an incompatible way: increment the next counter.
 LIBGCRYPT_CONFIG_API_VERSION=1
@@ -823,5 +823,3 @@ fi
 # Give some feedback
 echo   "                Configured for: $PRINTABLE_OS_NAME ($target)"
 echo
-
-
index 78bfefb..6d39fe3 100644 (file)
@@ -1,3 +1,16 @@
+2004-04-15  Werner Koch  <wk@gnupg.org>
+
+       * secmem.c (_gcry_secmem_malloc_internal): Removed old extra info
+       error output.
+       (_gcry_secmem_term): Use wipememory2 here.
+
+       * misc.c (_gcry_burn_stack): Use wipememory to avoid optimizations.
+
+       * string.c: Removed.  Was never used.
+       * global.c (gcry_strdup): Replaced by the version from string.c
+       (gcry_xstrdup): Rewritten.
+       * gcrypt.h: Removed duplicate prototype for gcry_strdup.
+
 2004-03-29  Werner Koch  <wk@gnupg.org>
 
        * secmem.c (_gcry_secmem_realloc): Fixed double unlock; bug
diff --git a/src/Manifest b/src/Manifest
new file mode 100644 (file)
index 0000000..acf86ce
--- /dev/null
@@ -0,0 +1,56 @@
+# Manifest - checksums of the src directory
+# Copyright 2004 Free Software Foundation, Inc.
+#
+# This file is part of Libgcrypt.
+#
+# Libgcrypt is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser general Public License as
+# published by the Free Software Foundation; either version 2.1 of
+# the License, or (at your option) any later version.
+#
+# Libgcrypt is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+# Checksums for all source files in this directory. Format is
+# filename, blanks, base-64 part of an OpenPGP detached signature
+# without the header lines.  Blank lines and lines beginning with a
+# hash mark are ignored.  A tool to process this file is available by
+# cvs -d :pserver:anoncvs@cvs.gnupg.org:/cvs/wk co misc-scripts/manifest-tool
+#
+# The special entry "$names$" holds a signature over all sorted
+# filenames excluding itself.
+
+gcrypt.h iQCVAwUAQH5RsTEAnp832S/7AQK7xgP+Kc3NY9lipZkaAMrnHDkQVLdHYwTbZWuGOYdTLp8Xy7Auh9wtWV9hrWVUqs+kxDzT/2iF6XkO3WT3rf/PmQ/Q0TIGfOyjE3c/qvB/jVippaxoGda3tnGpODytdI3XPhfPS0Ss8nDzfCStPBGAEq0OVU7imnExrFzhRXt+Gljr0o0==Yagz
+
+ath.c iQCVAwUAQH5E+DEAnp832S/7AQKFpgP+KSZHtVcnh9FFggIyHKbALUljW2FXauasZvFyN8Sk/mIMgKxyXFOG1THBAUzWLaKWIEWU+WkYU7uThqBtpnEImM5AenWzbQuJjftPC3gVHO8yjjmBWD4zmJj28htoKDoa/xDsoqumrHxae3FYcaCWtYGVjM/Pbl+OMRMOFAhp0ho==lQZ3
+ath.h iQCVAwUAQH5FODEAnp832S/7AQKiuQQAg4K+KOAn1LWBZN32MAhms4FeZKoce0fAuZW7BpyY4cCxIVgxqrtUC90CDykw8XegFfOyyYrgd0NmaMVdY7HZDncNOvIPxpgFQPCZrycsMOoAtoVwjK704RDeNo3zmeyxTKeDH+3M1J7JmLiafaEdSbOC8flX/W0icaV0Ol4dmBc==Ll6w
+
+cipher.h iQCVAwUAQH5FUzEAnp832S/7AQJKLgP9GSSk9f7EINIRqSQH1XKX+dYzt3phDHdqFTUGIfYNh7YzGdy0drvgFhG4k15nqDouKRuFVM/hKY3ZVY7JccmKXKGAH6+ZYShoG6LMFfIGgDX8zne0dNxc72PLfns3fVxNn/RlHmHBkrQ+ppjR9HnSthFmOqzbQaW1BKmc3Z2x5GU==lIeW
+g10lib.h iQCVAwUAQH5FejEAnp832S/7AQJ75wP/ZjOybwRix5eoXdfVeXPjoPygejzpYJJdMUGN3Y5UtkfBu9mPREsKfvZ6tH+Evjx+3xfeAb4bU/k2mRMp0tiWnk2koToS08vI9uxnioKQr9oulZH6r28S+NLSgMQuEGN1JNUky6RQ9TTNRndeTjKKSrEjZ7V6bv+rb8A1bYCKChs==P5mk
+mpi.h iQCVAwUAQH5FwzEAnp832S/7AQJJ4wP9E3jVkcO9M0YtSBHIbjG3hDWKWXzi86AlUh51qiE8/2XP0FfjA4TosyvmicZs7j48HitAByr9tHOSxnbeo7NBf17ICwAo6Eqty+wKDg+eyLeEGUy7VpVK3RJRQAA4H+kl3S2l3YMTKf3WJlbc7qkWSXZspdy5c9sAxeodCKrAubU==oALf
+
+global.c iQCVAwUAQH5HFzEAnp832S/7AQJc+QQAvi53ZkMCzLnVULHvhI6W+EX537zi9n8cplYguvIJqUhAZrP68yGAIyqyCONbZVDyB7wqeXdUMLzMk7W8fg+xuk5JSDpppAQf2m/bdQyze6XVqJso682eYBM8+b9z/IVEvLaFwhZcOKO1bcXudBlBCcJgVDpupfTtAWgPnewil9Q==Xwy1
+misc.c iQCVAwUAQH5IIjEAnp832S/7AQKNJAQAkEpyY3fCG7tvADJFAW9xA7DEQwLCa8YmiUhHvrEsWOI4YgvS7LUbWWc7VqK+ryORvXLKRAVieznbnHAuy0TKtqdnmA/kUmiurS0ah5SWqR/iuAeJtt0RGsmZaZ6oa2m4PZ2Y2GCHSTZqcclvwsetS9eq5AipxHxYFUltu5wGZNI==twM2
+missing-string.c iQCVAwUAQH5JfjEAnp832S/7AQI3ZQQAg55eEJbGQQHyBEJGxvt/FXpQiXcoDit3ZHzvdaQn/NUgdLjCHiWVzhyCXACGivLWMNModDaSaZk073NXxVkWfPcX9vkF//Wugwzidd5P3Bfu5k35o+Xxz82fsk5KuFGGq1mBUZ07xUYQ8KkKkhADUkr0QiQAuypp079Yq0uUC7Q==zvKn
+module.c iQCVAwUAQH5JvjEAnp832S/7AQKlMgQAjZYTXMpWb5kHxCMXzRi069Ku/4/xnWsD+S0dje1LiKzCnRpwTTxARzc/y10Y8OcygkMuR4unEaWedO+9syjjty3fBCcue/j7YlLitq5EC9UE4o23poWvWCuX9Tadm2DK5qf4p7smMJ22O22cLTYTVCyAoYTQ2xC8ajzBsBRkX80==yRRD
+secmem.c iQCVAwUAQH5LLDEAnp832S/7AQKtFwQAwY2wBr6WJC1cwqp/1DQoKzHx9C3plONxbZMazwR7VMI83NUbBAbv1mcxpeZWXmb2dRrnsR1VBbNPDSbJLN5T6czLQ2nIb6mnq9u8Ip4SAa+GCWfDV4AUtAJ4hN/yvWo8iEKu+KD5iJ6xJh31NdXjt5yk6vnk46SA6R4FkHdIEXc==UKVr
+secmem.h iQCVAwUAQH5LTDEAnp832S/7AQIsJwQAkZUu4hvmh9NXCLNm98+tGZFzWYvZO/NffC2wdPE8Q/OTa/m3g+oBbEhaV1ze3oY4t1F/p7ZHFx5CsIp4zVjyPkxlni8AAVMUOQr/LopyxouHn2OjKO+dVqecWQf01+nPWjklbL2FZ3mQ99k2qeWZlVSkz0nm8u39F3v7z3OTCss==AJqE
+sexp.c iQCVAwUAQH5LojEAnp832S/7AQKCTQQArlrj1KGwR2x93fcyN3M0iXuGkBq5R9KNu+1Bq04G4SLlpZ1RRY0OjV3L9To1BHTd01lXlO8MNz7NpRxWlG1Sw5FohbBlhWZQRcW8GdAawJPcfIY2Y8Ek6Yx8quZKbk9uD3bcBmStmg0P+TIA0nr20bmtfB3uX2KQVHQqWZQT5qU==P8FE
+stdmem.c iQCVAwUAQH5LzjEAnp832S/7AQLOUAP9FU16itXBBrkfRDGmhUjAOeEEKdd+brQ3XdT8xoLvP/IH/6U1Kq3ampP2/xcL4kwVdz2rw6NRzP7jlL/yM3tW722lSS/JPJkH+2+qUkcb0fYNoql/WYPMYp1/Mzu6ttXnjag1cQGlKIyYAD+G6h3FtpLwQy0hEJopnF9+Ovd8U7A==CkiZ
+stdmem.h iQCVAwUAQH5L8jEAnp832S/7AQIH0wP+Lyqh0tj++s2L79Tmf/gqgCK+HLMxTddcewF3XbsYf9T5FmLez1gz6Ggti4Ss9VjozOA3ti3trCiA/YNRmV9AYw4zLUPm+MsjJuveL/AgB9HdoD2v+RfJm0WwgSKiysp+8iyjg3Plopmhba4cGuOP5MJ3CWTqYwPmJVscUKC6g38==02MN
+
+types.h iQCVAwUAQH5MKTEAnp832S/7AQLqTAP6A3mUMD5MMkBkebq4bRY6Bq0KsgdKfZ8TLhc2o87gFay8YD0Uom3YJNG2LF/rAIct2ih4jYJaIb5dRfJ0KJoPi2ETd462J8OFCL4fjq9TaSjB2pXcB+kWoxzPasGNg2Ukk0dQ6lvF1tSYrtt32PVI7q/UaPsjTylgRmzLfX/VxrU==OMu3
+
+
+# Configuration
+Makefile.am iQCVAwUAQH5MVjEAnp832S/7AQLSqgQA0u5TwgzAYUcX0FU3Dq6eKNltYCYst+jmnZN3UDvfJsjFKn8q9CUjiHj6ompxqvmmxIqhn1gyRiGfNDpo0qzXEeU1Va2pD1CZhH3lQKs98o8d2x9PfqbBRx21ZeWM3rYxN1s/lOId1wB6VoPmwxhRRAjWZpFk+wQPh3TbFg/I/h8==nWfl
+libgcrypt.m4 iQCVAwUAQH5MbTEAnp832S/7AQJ1uAQA1C6xI7qXiKVtUeXawhPytAldosrzcXmqz34xi7JklQqw83d68WtWHFMBEUa7MKfi4WCbuQb7FjGUvMRw5z/T9ez7CoDekHc63+cIIZLQ23weUK8GaA1uQLoD0scmT41J5RkBlJbH7ck1zRd3d04o75rWNEUNit6KBvrQ4Pd8oQ8==uMgB
+libgcrypt.vers iQCVAwUAQH5MjTEAnp832S/7AQKCdQQAotG6Z3zdcePI0V33YY2sh91uYkLBNhQw+PzyE3BRRAVhMGLOBD1nSWJHJvE3eyCVOqFY0ZmvpVex51Fa0D/TwsJOO4RVxf1L9bbAncu9OuEXaGXKytLZp54TliDTAWGDq0lvtx1TvDDgtM8TbbaXvMbjfQ4wXBxdLvaenFCTlR4==kgHq
+
+$names$ iQCVAwUAQH5MpDEAnp832S/7AQIG1QP/QiCgxf8ubVqeTBLP2tPaG4g93EL+denqQzgR2tArBJ/L8p2DuGztt1j8PKgoEiWDnwEPbePvrt1mojGZAKtF0NWiwsS1xAOo4EJj9hzMSXIiSNaR8709UgPmtejPKChUsR0y0NKs38WUwbwP23qVCP+97Bxziqhcnv+GG7s0+rs==Dc+u
diff --git a/src/ath-pth.c b/src/ath-pth.c
deleted file mode 100644 (file)
index b3c9dab..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/* ath-pth.c - Pth module for self-adapting thread-safeness library
-   Copyright (C) 2002, 2003 g10 Code GmbH
-
-   This file is part of Libgcrypt.
-   Libgcrypt is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of
-   the License, or (at your option) any later version.
-   Libgcrypt is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-   You should have received a copy of the GNU Lesser General Public
-   License along with Libgcrypt; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include <pth.h>
-
-#include "ath.h"
-
-
-/* The lock we take while checking for lazy lock initialization.  */
-static pth_mutex_t check_init_lock = PTH_MUTEX_INIT;
-
-/* Initialize the mutex *PRIV.  If JUST_CHECK is true, only do this if
-   it is not already initialized.  */
-static int
-mutex_pth_init (ath_mutex_t *priv, int just_check)
-{
-  int err = 0;
-
-  if (just_check)
-    pth_mutex_acquire (&check_init_lock, 0, NULL);
-  if (!*priv || !just_check)
-    {
-      pth_mutex_t *lock = malloc (sizeof (pth_mutex_t));
-      if (!lock)
-       err = ENOMEM;
-      if (!err)
-       {
-         err = pth_mutex_init (lock);
-         if (err == FALSE)
-           err = errno;
-         else
-           err = 0;
-
-         if (err)
-           free (lock);
-         else
-           *priv = (ath_mutex_t) lock;
-       }
-    }
-  if (just_check)
-    pth_mutex_release (&check_init_lock);
-  return err;
-}
-
-
-void
-ath_init (void)
-{
-  /* Nothing to do.  */
-}
-
-
-int
-ath_mutex_init (ath_mutex_t *lock)
-{
-  return mutex_pth_init (lock, 0);
-}
-
-
-int
-ath_mutex_destroy (ath_mutex_t *lock)
-{
-  int err = mutex_pth_init (lock, 1);
-  if (!err)
-    {
-      /* GNU Pth has no destructor function.  */
-      free (*lock);
-    }
-  return err;
-}
-
-
-int
-ath_mutex_lock (ath_mutex_t *lock)
-{
-  int ret = mutex_pth_init (lock, 1);
-  if (ret)
-    return ret;
-
-  ret = pth_mutex_acquire ((pth_mutex_t *) *lock, 0, NULL);
-  return ret == FALSE ? errno : 0;
-}
-
-
-int
-ath_mutex_unlock (ath_mutex_t *lock)
-{
-  int ret = mutex_pth_init (lock, 1);
-  if (ret)
-    return ret;
-
-  ret = pth_mutex_release ((pth_mutex_t *) *lock);
-  return ret == FALSE ? errno : 0;
-}
-
-
-ssize_t
-ath_read (int fd, void *buf, size_t nbytes)
-{
-  return pth_read (fd, buf, nbytes);
-}
-
-
-ssize_t
-ath_write (int fd, const void *buf, size_t nbytes)
-{
-  return pth_write (fd, buf, nbytes);
-}
-
-
-ssize_t
-ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
-           struct timeval *timeout)
-{
-  return pth_select (nfd, rset, wset, eset, timeout);
-}
-
-ssize_t
-ath_waitpid (pid_t pid, int *status, int options)
-{
-  return pth_waitpid (pid, status, options);
-}
-
-
-int
-ath_accept (int s, struct sockaddr *addr, socklen_t *length_ptr)
-{
-  return pth_accept (s, addr, length_ptr);
-}
-
-
-int
-ath_connect (int s, struct sockaddr *addr, socklen_t length)
-{
-  return pth_connect (s, addr, length);
-}
-
-int
-ath_sendmsg (int s, const struct msghdr *msg, int flags)
-{
-  /* FIXME: GNU Pth is missing pth_sendmsg.  */
-  return sendmsg (s, msg, flags);
-}
-
-
-int
-ath_recvmsg (int s, struct msghdr *msg, int flags)
-{
-  /* FIXME: GNU Pth is missing pth_recvmsg.  */
-  return recvmsg (s, msg, flags);
-}
-
diff --git a/src/ath-pthread.c b/src/ath-pthread.c
deleted file mode 100644 (file)
index b076fc9..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/* ath-pthread.c - PThread module for self-adapting thread-safeness library
-   Copyright (C) 2002 g10 Code GmbH
-
-   This file is part of Libgcrypt.
-   Libgcrypt is free software; you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of
-   the License, or (at your option) any later version.
-   Libgcrypt is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-   You should have received a copy of the GNU Lesser General Public
-   License along with Libgcrypt; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <errno.h>
-#include <unistd.h>
-#ifdef HAVE_SYS_SELECT_H
-# include <sys/select.h>
-#else
-# include <sys/time.h>
-#endif
-#include <sys/types.h>
-#include <sys/wait.h>
-
-#include <pthread.h>
-
-#include "ath.h"
-
-
-/* The lock we take while checking for lazy lock initialization.  */
-static pthread_mutex_t check_init_lock = PTHREAD_MUTEX_INITIALIZER;
-
-/* Initialize the mutex *PRIV.  If JUST_CHECK is true, only do this if
-   it is not already initialized.  */
-static int
-mutex_pthread_init (ath_mutex_t *priv, int just_check)
-{
-  int err = 0;
-
-  if (just_check)
-    pthread_mutex_lock (&check_init_lock);
-  if (!*priv || !just_check)
-    {
-      pthread_mutex_t *lock = malloc (sizeof (pthread_mutex_t));
-      if (!lock)
-       err = ENOMEM;
-      if (!err)
-       {
-         err = pthread_mutex_init (lock, NULL);
-         if (err)
-           free (lock);
-         else
-           *priv = (ath_mutex_t) lock;
-       }
-    }
-  if (just_check)
-    pthread_mutex_unlock (&check_init_lock);
-  return err;
-}
-
-
-void
-ath_init (void)
-{
-  /* Nothing to do.  */
-}
-
-
-int
-ath_mutex_init (ath_mutex_t *lock)
-{
-  return mutex_pthread_init (lock, 0);
-}
-
-
-int
-ath_mutex_destroy (ath_mutex_t *lock)
-{
-  int err = mutex_pthread_init (lock, 1);
-  if (!err)
-    {
-      err = pthread_mutex_destroy ((pthread_mutex_t *) *lock);
-      free (*lock);
-    }
-  return err;
-}
-
-
-int
-ath_mutex_lock (ath_mutex_t *lock)
-{
-  int ret = mutex_pthread_init (lock, 1);
-  if (ret)
-    return ret;
-
-  return pthread_mutex_lock ((pthread_mutex_t *) *lock);
-}
-
-
-int
-ath_mutex_unlock (ath_mutex_t *lock)
-{
-  int ret = mutex_pthread_init (lock, 1);
-  if (ret)
-    return ret;
-
-  return pthread_mutex_unlock ((pthread_mutex_t *) *lock);
-}
-
-
-ssize_t
-ath_read (int fd, void *buf, size_t nbytes)
-{
-  return read (fd, buf, nbytes);
-}
-
-
-ssize_t
-ath_write (int fd, const void *buf, size_t nbytes)
-{
-  return write (fd, buf, nbytes);
-}
-
-
-ssize_t
-ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
-           struct timeval *timeout)
-{
-  return select (nfd, rset, wset, eset, timeout);
-}
-
-ssize_t
-ath_waitpid (pid_t pid, int *status, int options)
-{
-  return waitpid (pid, status, options);
-}
-
-
-int
-ath_accept (int s, struct sockaddr *addr, socklen_t *length_ptr)
-{
-  return accept (s, addr, length_ptr);
-}
-
-
-int
-ath_connect (int s, struct sockaddr *addr, socklen_t length)
-{
-  return connect (s, addr, length);
-}
-
-int
-ath_sendmsg (int s, const struct msghdr *msg, int flags)
-{
-  return sendmsg (s, msg, flags);
-}
-
-
-int
-ath_recvmsg (int s, struct msghdr *msg, int flags)
-{
-  return recvmsg (s, msg, flags);
-}
index e0da89f..49ac53f 100644 (file)
@@ -40,13 +40,13 @@ extern "C" {
 #endif
 #endif
 
-/* The version of this header should match the one of the library It
+/* The version of this header should match the one of the library. It
    should not be used by a program because gcry_check_version() should
    return the same version.  The purpose of this macro is to let
    autoconf (using the AM_PATH_GCRYPT macro) check that this header
    matches the installed library.  Note: Do not edit the next line as
    configure may fix the string here.  */
-#define GCRYPT_VERSION "1.1.95-cvs"
+#define GCRYPT_VERSION "1.2.0"
 
 /* Internal: We can't use the convenience macros for the multi
    precision integer functions when building this library. */
@@ -77,7 +77,7 @@ extern "C" {
 #define _GCRY_GCC_ATTR_MALLOC  __attribute__ ((__malloc__))
 #endif
 
-#endif
+#endif /*__GNUC__*/
 
 #ifndef _GCRY_GCC_ATTR_DEPRECATED
 #define _GCRY_GCC_ATTR_DEPRECATED
@@ -128,7 +128,7 @@ gcry_err_source (gcry_error_t err)
 
 /* Return a pointer to a string containing a description of the error
    code in the error value ERR.  */
-const char * gcry_strerror (gcry_error_t err);
+const char *gcry_strerror (gcry_error_t err);
 
 /* Return a pointer to a string containing a description of the error
    source in the error value ERR.  */
@@ -1248,7 +1248,7 @@ gcry_error_t gcry_md_setkey (gcry_md_hd_t hd, const void *key, size_t keylen);
    version of the gcry_md_write function. */
 #define gcry_md_putc(h,c)  \
             do {                                          \
-                gcry_md_hd_t h__ = (h);                       \
+                gcry_md_hd_t h__ = (h);                   \
                 if( (h__)->bufpos == (h__)->bufsize )     \
                     gcry_md_write( (h__), NULL, 0 );      \
                 (h__)->buf[(h__)->bufpos++] = (c) & 0xff; \
@@ -1485,12 +1485,6 @@ void  gcry_free (void *a);
 /* Return true if A is allocated in "secure" memory. */
 int gcry_is_secure (const void *a) _GCRY_GCC_ATTR_PURE;
 
-/* Create and return a copy of the null-terminated string STRING.  If
-   it is contained in secure memory, the copy will be contained in
-   secure memory as well.  In an out-of-memory condition, NULL is
-   returned.  */
-char *gcry_strdup (const char *string);
-
 /* Include support for Libgcrypt modules.  */
 #include <gcrypt-module.h>
 
index 162e845..9e7165b 100644 (file)
@@ -1,5 +1,6 @@
 /* global.c  - global control functions
- * Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *               2004  Free Software Foundation, Inc.
  *
  * This file is part of Libgcrypt.
  *
@@ -159,13 +160,6 @@ gcry_control (enum gcry_ctl_cmds cmd, ...)
   va_start (arg_ptr, cmd);
   switch (cmd)
     {
-#if 0
-    case GCRYCTL_NO_MEM_IS_FATAL:
-      break;
-    case GCRYCTL_SET_FATAL_FNC:
-      break;
-#endif
-
     case GCRYCTL_ENABLE_M_GUARD:
       _gcry_private_enable_m_guard ();
       break;
@@ -463,13 +457,13 @@ gcry_realloc (void *a, size_t n)
 void
 gcry_free( void *p )
 {
-    if( !p )
-       return;
+  if( !p )
+    return;
 
-    if( free_func )
-       free_func( p );
-    else
-       _gcry_private_free( p );
+  if (free_func)
+    free_func (p);
+  else
+    _gcry_private_free (p);
 }
 
 void *
@@ -513,13 +507,27 @@ gcry_calloc_secure (size_t n, size_t m)
 }
 
 
+/* Create and return a copy of the null-terminated string STRING.  If
+   it is contained in secure memory, the copy will be contained in
+   secure memory as well.  In an out-of-memory condition, NULL is
+   returned.  */
 char *
-gcry_strdup( const char *string )
+gcry_strdup (const char *string)
 {
-    void *p = gcry_malloc( strlen(string)+1 );
-    if (p)
-      strcpy (p, string);
-    return p;
+  char *string_cp = NULL;
+  size_t string_n = 0;
+
+  string_n = strlen (string);
+
+  if (gcry_is_secure (string))
+    string_cp = gcry_malloc_secure (string_n + 1);
+  else
+    string_cp = gcry_malloc (string_n + 1);
+  
+  if (string_cp)
+    strcpy (string_cp, string);
+
+  return string_cp;
 }
 
 
@@ -583,11 +591,25 @@ gcry_xcalloc_secure( size_t n, size_t m )
 }
 
 char *
-gcry_xstrdup( const char *string )
+gcry_xstrdup (const char *string)
 {
-    void *p = gcry_xmalloc( strlen(string)+1 );
-    strcpy( p, string );
-    return p;
+  char *p;
+
+  while ( !(p = gcry_strdup (string)) ) 
+    {
+      size_t n = strlen (string);
+      int is_sec = !!gcry_is_secure (string);
+
+      if (!outofcore_handler
+          || !outofcore_handler (outofcore_handler_value, n, is_sec) ) 
+        {
+          _gcry_fatal_error (gpg_err_code_from_errno (errno),
+                             is_sec? _("out of core in secure memory"):NULL);
+       }
+    }
+
+  strcpy( p, string );
+  return p;
 }
 
 
index 94987cf..6b630e6 100644 (file)
@@ -66,14 +66,14 @@ write2stderr( const char *s )
     write( 2, s, strlen(s) );
 }
 
-/****************
+/*
  * This function is called for fatal errors.  A caller might want to
- * set his own handler becuase this function simply calls abort().
+ * set his own handler because this function simply calls abort().
  */
 void
 _gcry_fatal_error (int rc, const char *text)
 {
-  if (! text) /* get a default text */
+  if ( !text ) /* get a default text */
     text = gpg_strerror (rc);
 
   if (fatal_error_handler)
@@ -234,7 +234,7 @@ _gcry_burn_stack (int bytes)
 {
     char buf[64];
     
-    memset (buf, 0, sizeof buf);
+    wipememory (buf, sizeof buf);
     bytes -= sizeof buf;
     if (bytes > 0)
         _gcry_burn_stack (bytes);
index b648d29..80ff052 100644 (file)
@@ -1,5 +1,6 @@
 /* missing-string.c - missing string utilities
- * Copyright (C) 1994, 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+ * Copyright (C) 1994, 1998, 1999, 2000, 2001, 
+ *               2003 Free Software Foundation, Inc.
  *
  * This file is part of Libgcrypt.
  *
index 544326e..163bf20 100644 (file)
@@ -477,8 +477,7 @@ _gcry_secmem_malloc_internal (size_t size)
   if (!pool_okay)
     {
       log_info (_
-               ("operation is not possible without initialized secure memory\n"));
-      log_info (_("(you may have used the wrong program for this task)\n"));
+       ("operation is not possible without initialized secure memory\n"));
       exit (2);
     }
   if (show_warning && !suspend_warning)
@@ -487,7 +486,7 @@ _gcry_secmem_malloc_internal (size_t size)
       print_warn ();
     }
 
-  /* blocks are always a multiple of 32 */
+  /* Blocks are always a multiple of 32. */
   size = ((size + 31) / 32) * 32;
 
   mb = mb_get_new ((memblock_t *) pool, size);
@@ -612,10 +611,10 @@ _gcry_secmem_term ()
   if (!pool_okay)
     return;
 
-  memset (pool, 0xff, pool_size);
-  memset (pool, 0xaa, pool_size);
-  memset (pool, 0x55, pool_size);
-  memset (pool, 0x00, pool_size);
+  wipememory2 (pool, 0xff, pool_size);
+  wipememory2 (pool, 0xaa, pool_size);
+  wipememory2 (pool, 0x55, pool_size);
+  wipememory2 (pool, 0x00, pool_size);
 #if HAVE_MMAP
   if (pool_is_mmapped)
     munmap (pool, pool_size);
diff --git a/src/string.c b/src/string.c
deleted file mode 100644 (file)
index 9a5158e..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* string.c - String functions
-   Copyright (C) 2003, Free Software Foundation, Inc.
-
-   This file is part of Libgcrypt.
-  
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-   USA.  */
-
-#include <stdlib.h>
-
-#include <config.h>
-#include "g10lib.h"
-
-/* Create and return a copy of the null-terminated string STRING.  If
-   it is contained in secure memory, the copy will be contained in
-   secure memory as well.  In an out-of-memory condition, NULL is
-   returned.  */
-char *
-gcry_strdup (const char *string)
-{
-  char *string_cp = NULL;
-  size_t string_n = 0;
-
-  string_n = strlen (string);
-
-  if (gcry_is_secure (string))
-    string_cp = gcry_malloc_secure (string_n + 1);
-  else
-    string_cp = gcry_malloc (string_n + 1);
-  
-  if (string_cp)
-    memcpy (string_cp, string, string_n + 1);
-
-  return string_cp;
-}