Typo: only return error if unrecognise bag type.
[openssl.git] / crypto / mem_sec.c
index 0b2f1fda77428ef36139d09a874366ca8c2d854f..196c2457ad806828c6b5fbf18db6581397a08a7b 100644 (file)
 #include <openssl/crypto.h>
 #include <e_os.h>
 
+#include <string.h>
+
 #if defined(OPENSSL_SYS_LINUX) || defined(OPENSSL_SYS_UNIX)
 # define IMPLEMENTED
 # include <stdlib.h>
-# include <string.h>
 # include <assert.h>
 # include <unistd.h>
 # include <sys/types.h>
@@ -89,7 +90,7 @@ int CRYPTO_secure_malloc_initialized()
 #endif /* IMPLEMENTED */
 }
 
-void *CRYPTO_secure_malloc(int num, const char *file, int line)
+void *CRYPTO_secure_malloc(size_t num, const char *file, int line)
 {
 #ifdef IMPLEMENTED
     void *ret;
@@ -110,6 +111,15 @@ void *CRYPTO_secure_malloc(int num, const char *file, int line)
 #endif /* IMPLEMENTED */
 }
 
+void *CRYPTO_secure_zalloc(size_t num, const char *file, int line)
+{
+    void *ret = CRYPTO_secure_malloc(num, file, line);
+
+    if (ret != NULL)
+        memset(ret, 0, num);
+    return ret;
+}
+
 void CRYPTO_secure_free(void *ptr)
 {
 #ifdef IMPLEMENTED
@@ -148,6 +158,28 @@ int CRYPTO_secure_allocated(const void *ptr)
 #endif /* IMPLEMENTED */
 }
 
+size_t CRYPTO_secure_used()
+{
+#ifdef IMPLEMENTED
+    return secure_mem_used;
+#else
+    return 0;
+#endif /* IMPLEMENTED */
+}
+
+size_t CRYPTO_secure_actual_size(void *ptr)
+{
+#ifdef IMPLEMENTED
+    size_t actual_size;
+
+    LOCK();
+    actual_size = sh_actual_size(ptr);
+    UNLOCK();
+    return actual_size;
+#else
+    return 0;
+#endif
+}
 /* END OF PAGE ...
 
    ... START OF PAGE */