2003-09-29 Moritz Schulte <mo@g10code.com>
authorMoritz Schulte <mo@g10code.com>
Tue, 30 Sep 2003 20:15:16 +0000 (20:15 +0000)
committerMoritz Schulte <mo@g10code.com>
Tue, 30 Sep 2003 20:15:16 +0000 (20:15 +0000)
* libgcrypt-config.in: Fix --algorithms option.

2003-09-28  Moritz Schulte  <mo@g10code.com>

* g10lib.h: Declare: _gcry_malloc.
(GCRY_ALLOC_FLAG_SECURE): New symbol.

* global.c (_gcry_malloc): New function...
(gcry_malloc): ... use it.
(gcry_malloc_secure): Likewise.

src/g10lib.h
src/global.c
src/libgcrypt-config.in

index 91520c9..3250c5b 100644 (file)
@@ -229,4 +229,10 @@ gcry_err_code_t _gcry_pk_init (void);
 gcry_err_code_t _gcry_pk_module_lookup (int id, gcry_module_t *module);
 void _gcry_pk_module_release (gcry_module_t module);
 
 gcry_err_code_t _gcry_pk_module_lookup (int id, gcry_module_t *module);
 void _gcry_pk_module_release (gcry_module_t module);
 
+/* Memory management.  */
+
+gcry_err_code_t _gcry_malloc (size_t n, unsigned int flags, void **mem);
+
+#define GCRY_ALLOC_FLAG_SECURE (1 << 0)
+
 #endif /* G10LIB_H */
 #endif /* G10LIB_H */
index a4402b9..d7d9418 100644 (file)
@@ -377,28 +377,57 @@ gcry_set_outofcore_handler( int (*f)( void*, size_t, unsigned int ),
     outofcore_handler_value = value;
 }
 
     outofcore_handler_value = value;
 }
 
+gcry_err_code_t
+_gcry_malloc (size_t n, unsigned int flags, void **mem)
+{
+  gcry_err_code_t err = GPG_ERR_NO_ERROR;
+  void *m = NULL;
+
+  if (flags & GCRY_ALLOC_FLAG_SECURE)
+    {
+      if (alloc_secure_func)
+       m = (*alloc_secure_func) (n);
+      else
+       m = _gcry_private_malloc_secure (n);
+    }
+  else
+    {
+      if (alloc_func)
+       m = (*alloc_func) (n);
+      else
+       m = _gcry_private_malloc (n);
+    }
 
 
+  if (! m)
+    err = gpg_err_code_from_errno (ENOMEM);
+  else
+    *mem = m;
 
 
+  return err;
+}
+  
 void *
 void *
-gcry_malloc( size_t n )
+gcry_malloc (size_t n)
 {
 {
-    if( alloc_func )
-       return alloc_func( n ) ;
-    return _gcry_private_malloc( n );
+  void *mem = NULL;
+
+  _gcry_malloc (n, 0, &mem);
+
+  return mem;
 }
 
 void *
 }
 
 void *
-gcry_malloc_secure( size_t n )
+gcry_malloc_secure (size_t n)
 {
 {
-  if (no_secure_memory)
-    return gcry_malloc (n);
-  if (alloc_secure_func)
-    return alloc_secure_func (n) ;
-  return _gcry_private_malloc_secure (n);
+  void *mem = NULL;
+
+  _gcry_malloc (n, GCRY_ALLOC_FLAG_SECURE, &mem);
+
+  return mem;
 }
 
 int
 }
 
 int
-gcry_is_secure( const void *a )
+gcry_is_secure (const void *a)
 {
   if (no_secure_memory)
     return 0;
 {
   if (no_secure_memory)
     return 0;
index 07713a6..c11ff87 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh
 #!/bin/sh
-#    Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+#    Copyright (C) 1999, 2002, 2003 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
 #
 # This file is free software; as a special exception the author gives
 # unlimited permission to copy and/or distribute it, with or without
@@ -188,7 +188,7 @@ if test "$echo_version" = "yes"; then
 fi
 
 if test "$echo_algorithms" = "yes"; then
 fi
 
 if test "$echo_algorithms" = "yes"; then
-    echo "Symmetric cipher algorithms: $ciphers"
-    echo "Public-key cipher algorithms: $pubkey_ciphers"
+    echo "Symmetric cipher algorithms: $symmetric_ciphers"
+    echo "Public-key cipher algorithms: $asymmetric_ciphers"
     echo "Message digest algorithms: $digests"
 fi
     echo "Message digest algorithms: $digests"
 fi