krb5 commit: Modernize default_state.c

Greg Hudson ghudson at MIT.EDU
Tue Mar 25 18:15:37 EDT 2014


https://github.com/krb5/krb5/commit/7d87754d7d4c0398c0504f2cae0937c0d005a339
commit 7d87754d7d4c0398c0504f2cae0937c0d005a339
Author: Greg Hudson <ghudson at mit.edu>
Date:   Tue Mar 25 10:52:38 2014 -0400

    Modernize default_state.c
    
    Use alloc_data() and empty_data() where appropriate.  Keep mainline
    logic to the left where possible.  Name the output parameter of
    krb5int_des_init_state with an _out suffix.  Use a professional tone
    in comments.  Partly based on a patch from Alok Menghrajani.

 src/lib/crypto/krb/crypto_int.h    |    2 +-
 src/lib/crypto/krb/default_state.c |   27 ++++++++++-----------------
 2 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/lib/crypto/krb/crypto_int.h b/src/lib/crypto/krb/crypto_int.h
index c2c6344..c054144 100644
--- a/src/lib/crypto/krb/crypto_int.h
+++ b/src/lib/crypto/krb/crypto_int.h
@@ -364,7 +364,7 @@ int krb5int_crypto_init(void);
 /* DES default state initialization handler (used by module enc providers). */
 krb5_error_code krb5int_des_init_state(const krb5_keyblock *key,
                                        krb5_keyusage keyusage,
-                                       krb5_data *new_state);
+                                       krb5_data *state_out);
 
 /* Default state cleanup handler (used by module enc providers). */
 void krb5int_default_free_state(krb5_data *state);
diff --git a/src/lib/crypto/krb/default_state.c b/src/lib/crypto/krb/default_state.c
index 1212448..c7bfe32 100644
--- a/src/lib/crypto/krb/default_state.c
+++ b/src/lib/crypto/krb/default_state.c
@@ -1,6 +1,6 @@
 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
 /*
- * Copyright (C) 2001 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2001, 2014 by the Massachusetts Institute of Technology.
  * All rights reserved.
  *
  * Export of this software from the United States of America may
@@ -34,28 +34,21 @@
 
 krb5_error_code
 krb5int_des_init_state(const krb5_keyblock *key, krb5_keyusage usage,
-                       krb5_data *new_state)
+                       krb5_data *state_out)
 {
-    new_state->length = 8;
-    new_state->data = (void *) malloc(8);
-    if (new_state->data) {
-        memset (new_state->data, 0, new_state->length);
-        /* We need to copy in the key for des-cbc-cr--ick, but that's how it works*/
-        if (key->enctype == ENCTYPE_DES_CBC_CRC) {
-            memcpy (new_state->data, key->contents, new_state->length);
-        }
-    } else {
+    if (alloc_data(state_out, 8))
         return ENOMEM;
-    }
+
+    /* des-cbc-crc uses the key as the initial ivec. */
+    if (key->enctype == ENCTYPE_DES_CBC_CRC)
+        memcpy(state_out->data, key->contents, state_out->length);
+
     return 0;
 }
 
 void
 krb5int_default_free_state(krb5_data *state)
 {
-    if (state->data) {
-        free (state->data);
-        state-> data = NULL;
-        state->length = 0;
-    }
+    free(state->data);
+    *state = empty_data();
 }


More information about the cvs-krb5 mailing list