diff options
author | Theodore Tso <tytso@mit.edu> | 1990-12-19 14:48:17 +0000 |
---|---|---|
committer | Theodore Tso <tytso@mit.edu> | 1990-12-19 14:48:17 +0000 |
commit | ecde072b0ba687c1a18116073556bedbec581e58 (patch) | |
tree | 5ed4d86afcf6b5986922a093c87503bc7a09ce77 /src/lib/krb5/krb/copy_athctr.c | |
parent | 896ab6d57448eb804042fedd1a9b6f58a53a2e51 (diff) | |
download | krb5-ecde072b0ba687c1a18116073556bedbec581e58.tar.gz krb5-ecde072b0ba687c1a18116073556bedbec581e58.tar.xz krb5-ecde072b0ba687c1a18116073556bedbec581e58.zip |
Initial revision
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1571 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/copy_athctr.c')
-rw-r--r-- | src/lib/krb5/krb/copy_athctr.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/copy_athctr.c b/src/lib/krb5/krb/copy_athctr.c new file mode 100644 index 0000000000..5f30ac4af4 --- /dev/null +++ b/src/lib/krb5/krb/copy_athctr.c @@ -0,0 +1,64 @@ +/* + * $Source$ + * $Author$ + * + * Copyright 1990 by the Massachusetts Institute of Technology. + * + * For copying and distribution information, please see the file + * <krb5/copyright.h>. + * + * krb5_copy_authenticator() + */ + +#if !defined(lint) && !defined(SABER) +static char rcsid_copy_authenticator_c[] = +"$Id$"; +#endif /* !lint & !SABER */ + +#include <krb5/copyright.h> +#include <krb5/krb5.h> + +#include <krb5/ext-proto.h> + +krb5_error_code +krb5_copy_authenticator(authfrom, authto) +const krb5_authenticator *authfrom; +krb5_authenticator **authto; +{ + krb5_error_code retval; + krb5_authenticator *tempto; + + if (!(tempto = (krb5_authenticator *)malloc(sizeof(*tempto)))) + return ENOMEM; + *tempto = *authfrom; + + if (retval = krb5_copy_principal(authfrom->client, &tempto->client)) { + xfree(tempto); + return retval; + } + + if (retval = krb5_copy_checksum(authfrom->checksum, &tempto->checksum)) { + krb5_free_principal(tempto->client); + xfree(tempto); + return retval; + } + + if (!(tempto->subkey = + (krb5_keyblock *)malloc(sizeof(*tempto->subkey)))) { + krb5_free_checksum(tempto->checksum); + krb5_free_principal(tempto->client); + xfree(tempto); + return ENOMEM; + } + if (retval = krb5_copy_keyblock(authfrom->subkey, + tempto->subkey)) { + xfree(tempto->subkey); + krb5_free_checksum(tempto->checksum); + krb5_free_principal(tempto->client); + xfree(tempto); + return retval; + } + + *authto = tempto; + return 0; +} |