diff options
author | Adriaan de Jong <adriaan@adriaan-VirtualBox.(none)> | 2011-07-02 14:28:17 +0200 |
---|---|---|
committer | David Sommerseth <davids@redhat.com> | 2011-10-22 14:35:16 +0200 |
commit | be0a08d452f7fafde507361c76d8724f047cfb3f (patch) | |
tree | bbc51bcccbfdb8437d5225e57b0e305bc28be43f /crypto_polarssl.c | |
parent | 7ce40d9931ab9f16c83b282eb0f2ba1ebefd7079 (diff) | |
download | openvpn-be0a08d452f7fafde507361c76d8724f047cfb3f.tar.gz openvpn-be0a08d452f7fafde507361c76d8724f047cfb3f.tar.xz openvpn-be0a08d452f7fafde507361c76d8724f047cfb3f.zip |
Changed PolarSSL crypto backend to support v0.99-pre5
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>
Diffstat (limited to 'crypto_polarssl.c')
-rw-r--r-- | crypto_polarssl.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/crypto_polarssl.c b/crypto_polarssl.c index 59aade8..9c36478 100644 --- a/crypto_polarssl.c +++ b/crypto_polarssl.c @@ -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, |