]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Changed PolarSSL crypto backend to support v0.99-pre5
authorAdriaan de Jong <adriaan@adriaan-VirtualBox.(none)>
Sat, 2 Jul 2011 12:28:17 +0000 (14:28 +0200)
committerDavid Sommerseth <davids@redhat.com>
Sat, 22 Oct 2011 12:35:16 +0000 (14:35 +0200)
Signed-off-by: Adriaan de Jong <dejong@fox-it.com>
Acked-by: James Yonan <james@openvpn.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
Signed-off-by: David Sommerseth <davids@redhat.com>
crypto_polarssl.c

index 59aade8cb23974fa4f6c7ee054664186bcd62042..9c3647808f0f601eeb9d0d1802f916496c4bcece 100644 (file)
@@ -216,7 +216,7 @@ key_des_check (uint8_t *key, int key_len, int ndc)
          msg (D_CRYPT_ERRORS, "CRYPTO INFO: check_key_DES: insufficient key material");
          goto err;
        }
-      if (0 != des_key_check_weak(key))
+      if (0 == des_key_check_weak(key))
        {
          msg (D_CRYPT_ERRORS, "CRYPTO INFO: check_key_DES: weak key detected");
          goto err;
@@ -391,12 +391,25 @@ int cipher_ctx_reset (cipher_context_t *ctx, uint8_t *iv_buf)
 int cipher_ctx_update (cipher_context_t *ctx, uint8_t *dst, int *dst_len,
     uint8_t *src, int src_len)
 {
-  return 0 == cipher_update(ctx, src, src_len, dst, dst_len);
+  int retval = 0;
+  size_t s_dst_len = *dst_len;
+
+  retval = cipher_update(ctx, src, (size_t)src_len, dst, &s_dst_len);
+
+  *dst_len = s_dst_len;
+
+  return 0 == retval;
 }
 
 int cipher_ctx_final (cipher_context_t *ctx, uint8_t *dst, int *dst_len)
 {
-  return 0 == cipher_finish(ctx, dst, dst_len);
+  int retval = 0;
+  size_t s_dst_len = *dst_len;
+
+  retval = cipher_finish(ctx, dst, &s_dst_len);
+  *dst_len = s_dst_len;
+
+  return 0 == retval;
 }
 
 void
@@ -472,13 +485,13 @@ md_ctx_init (md_context_t *ctx, const md_info_t *kt)
 
   CLEAR(*ctx);
 
-  ASSERT(0 == md_starts(kt, ctx));
+  ASSERT(0 == md_init_ctx(ctx, kt));
+  ASSERT(0 == md_starts(ctx));
 }
 
 void
 md_ctx_cleanup(md_context_t *ctx)
 {
-  ASSERT(0 == md_free_ctx(ctx));
 }
 
 int
@@ -499,6 +512,7 @@ void
 md_ctx_final (md_context_t *ctx, uint8_t *dst)
 {
   ASSERT(0 == md_finish(ctx, dst));
+  ASSERT(0 == md_free_ctx(ctx));
 }
 
 
@@ -522,7 +536,8 @@ hmac_ctx_init (md_context_t *ctx, const uint8_t *key, int key_len, const md_info
 
   CLEAR(*ctx);
 
-  ASSERT(0 == md_hmac_starts(kt, ctx, key, key_len));
+  ASSERT(0 == md_init_ctx(ctx, kt));
+  ASSERT(0 == md_hmac_starts(ctx, key, key_len));
 
   if (prefix)
     msg (D_HANDSHAKE,