aboutsummaryrefslogtreecommitdiff
path: root/grub-core/lib/libgcrypt_wrap
diff options
context:
space:
mode:
authorFathi Boudra <fathi.boudra@linaro.org>2013-03-30 17:41:03 +0200
committerFathi Boudra <fathi.boudra@linaro.org>2013-03-30 17:41:03 +0200
commitf4243e63fd6e9588757edb1cca3cc3d88bc22faf (patch)
treeb843d8471cf68b3975b6f740615769c54da3220b /grub-core/lib/libgcrypt_wrap
parent3dd5a70c47fe95276537f8ca544d52b135e879bf (diff)
Imported Upstream version 2.00+bzr4617+20130130upstream/2.00+bzr4617+20130130
Diffstat (limited to 'grub-core/lib/libgcrypt_wrap')
-rw-r--r--grub-core/lib/libgcrypt_wrap/cipher_wrap.h58
-rw-r--r--grub-core/lib/libgcrypt_wrap/mem.c133
2 files changed, 143 insertions, 48 deletions
diff --git a/grub-core/lib/libgcrypt_wrap/cipher_wrap.h b/grub-core/lib/libgcrypt_wrap/cipher_wrap.h
index 70c0fb4..f537d50 100644
--- a/grub-core/lib/libgcrypt_wrap/cipher_wrap.h
+++ b/grub-core/lib/libgcrypt_wrap/cipher_wrap.h
@@ -25,56 +25,19 @@
#include <grub/dl.h>
#include <grub/crypto.h>
-#undef WORDS_BIGENDIAN
-
-#ifdef GRUB_CPU_WORDS_BIGENDIAN
-#define WORDS_BIGENDIAN 1
-#endif
+#include <sys/types.h>
#undef __GNU_LIBRARY__
#define __GNU_LIBRARY__ 1
-#define DIM ARRAY_SIZE
-
-typedef grub_uint64_t u64;
-typedef grub_uint32_t u32;
-typedef grub_uint16_t u16;
-typedef grub_uint8_t byte;
-typedef grub_size_t size_t;
-
#define U64_C(c) (c ## ULL)
-#define _gcry_burn_stack grub_burn_stack
-#define log_error(fmt, args...) grub_dprintf ("crypto", fmt, ## args)
-
-
#define PUBKEY_FLAG_NO_BLINDING (1 << 0)
#define CIPHER_INFO_NO_WEAK_KEY 1
#define HAVE_U64_TYPEDEF 1
-typedef union {
- int a;
- short b;
- char c[1];
- long d;
-#ifdef HAVE_U64_TYPEDEF
- u64 e;
-#endif
- float f;
- double g;
-} PROPERLY_ALIGNED_TYPE;
-
-#define gcry_assert(x) grub_assert_real(GRUB_FILE, __LINE__, x)
-
-static inline void
-grub_assert_real (const char *file, int line, int cond)
-{
- if (!cond)
- grub_fatal ("Assertion failed at %s:%d\n", file, line);
-}
-
/* Selftests are in separate modules. */
static inline char *
selftest (void)
@@ -90,11 +53,6 @@ fips_mode (void)
#ifdef GRUB_UTIL
#pragma GCC diagnostic ignored "-Wshadow"
-static inline void *
-memcpy (void *dest, const void *src, grub_size_t n)
-{
- return grub_memcpy (dest, src, n);
-}
static inline void *
memset (void *s, int c, grub_size_t n)
@@ -102,13 +60,17 @@ memset (void *s, int c, grub_size_t n)
return grub_memset (s, c, n);
}
-static inline int
-memcmp (const void *s1, const void *s2, grub_size_t n)
-{
- return grub_memcmp (s1, s2, n);
-}
#pragma GCC diagnostic error "-Wshadow"
#endif
+#define DBG_CIPHER 0
+
+#include <string.h>
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#include <grub/gcrypt/g10lib.h>
+#include <grub/gcrypt/gcrypt.h>
+
+#define gcry_mpi_mod _gcry_mpi_mod
+
#endif
diff --git a/grub-core/lib/libgcrypt_wrap/mem.c b/grub-core/lib/libgcrypt_wrap/mem.c
new file mode 100644
index 0000000..94f9d65
--- /dev/null
+++ b/grub-core/lib/libgcrypt_wrap/mem.c
@@ -0,0 +1,133 @@
+#include <grub/gcrypt/gcrypt.h>
+#include <grub/gcrypt/gpg-error.h>
+#include <grub/term.h>
+#include <grub/crypto.h>
+#include <grub/dl.h>
+#include <grub/env.h>
+
+GRUB_MOD_LICENSE ("GPLv3+");
+
+void *
+gcry_malloc (size_t n)
+{
+ return grub_malloc (n);
+}
+
+void *
+gcry_malloc_secure (size_t n)
+{
+ return grub_malloc (n);
+}
+
+void
+gcry_free (void *a)
+{
+ grub_free (a);
+}
+
+int
+gcry_is_secure (const void *a __attribute__ ((unused)))
+{
+ return 0;
+}
+
+/* FIXME: implement "exit". */
+void *
+gcry_xcalloc (size_t n, size_t m)
+{
+ void *ret;
+ ret = grub_zalloc (n * m);
+ if (!ret)
+ grub_fatal ("gcry_xcalloc failed");
+ return ret;
+}
+
+void *
+gcry_xmalloc_secure (size_t n)
+{
+ void *ret;
+ ret = grub_malloc (n);
+ if (!ret)
+ grub_fatal ("gcry_xmalloc failed");
+ return ret;
+}
+
+void *
+gcry_xcalloc_secure (size_t n, size_t m)
+{
+ void *ret;
+ ret = grub_zalloc (n * m);
+ if (!ret)
+ grub_fatal ("gcry_xcalloc failed");
+ return ret;
+}
+
+void *
+gcry_xmalloc (size_t n)
+{
+ void *ret;
+ ret = grub_malloc (n);
+ if (!ret)
+ grub_fatal ("gcry_xmalloc failed");
+ return ret;
+}
+
+void *
+gcry_xrealloc (void *a, size_t n)
+{
+ void *ret;
+ ret = grub_realloc (a, n);
+ if (!ret)
+ grub_fatal ("gcry_xrealloc failed");
+ return ret;
+}
+
+void
+_gcry_check_heap (const void *a __attribute__ ((unused)))
+{
+
+}
+
+void _gcry_log_printf (const char *fmt, ...)
+{
+ va_list args;
+ const char *debug = grub_env_get ("debug");
+
+ if (! debug)
+ return;
+
+ if (grub_strword (debug, "all") || grub_strword (debug, "gcrypt"))
+ {
+ grub_printf ("gcrypt: ");
+ va_start (args, fmt);
+ grub_vprintf (fmt, args);
+ va_end (args);
+ grub_refresh ();
+ }
+}
+
+void _gcry_log_bug (const char *fmt, ...)
+{
+ va_list args;
+
+ grub_printf ("gcrypt bug: ");
+ va_start (args, fmt);
+ grub_vprintf (fmt, args);
+ va_end (args);
+ grub_refresh ();
+ grub_abort ();
+}
+
+gcry_err_code_t
+gpg_error_from_syserror (void)
+{
+ switch (grub_errno)
+ {
+ case GRUB_ERR_NONE:
+ return GPG_ERR_NO_ERROR;
+ case GRUB_ERR_OUT_OF_MEMORY:
+ return GPG_ERR_OUT_OF_MEMORY;
+ default:
+ return GPG_ERR_GENERAL;
+ }
+}