17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * lib/krb5/os/gen_rname.c 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * Copyright 1991 by the Massachusetts Institute of Technology. 57c478bd9Sstevel@tonic-gate * All Rights Reserved. 67c478bd9Sstevel@tonic-gate * 77c478bd9Sstevel@tonic-gate * Export of this software from the United States of America may 87c478bd9Sstevel@tonic-gate * require a specific license from the United States Government. 97c478bd9Sstevel@tonic-gate * It is the responsibility of any person or organization contemplating 107c478bd9Sstevel@tonic-gate * export to obtain such a license before exporting. 117c478bd9Sstevel@tonic-gate * 127c478bd9Sstevel@tonic-gate * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 137c478bd9Sstevel@tonic-gate * distribute this software and its documentation for any purpose and 147c478bd9Sstevel@tonic-gate * without fee is hereby granted, provided that the above copyright 157c478bd9Sstevel@tonic-gate * notice appear in all copies and that both that copyright notice and 167c478bd9Sstevel@tonic-gate * this permission notice appear in supporting documentation, and that 177c478bd9Sstevel@tonic-gate * the name of M.I.T. not be used in advertising or publicity pertaining 187c478bd9Sstevel@tonic-gate * to distribution of the software without specific, written prior 19*159d09a2SMark Phalan * permission. Furthermore if you modify this software you must label 20*159d09a2SMark Phalan * your software as modified software and not distribute it in such a 21*159d09a2SMark Phalan * fashion that it might be confused with the original M.I.T. software. 22*159d09a2SMark Phalan * M.I.T. makes no representations about the suitability of 237c478bd9Sstevel@tonic-gate * this software for any purpose. It is provided "as is" without express 247c478bd9Sstevel@tonic-gate * or implied warranty. 257c478bd9Sstevel@tonic-gate * 267c478bd9Sstevel@tonic-gate * 277c478bd9Sstevel@tonic-gate * take a port-style address and unique string, and return 287c478bd9Sstevel@tonic-gate * a replay cache tag string. 297c478bd9Sstevel@tonic-gate */ 307c478bd9Sstevel@tonic-gate 317c478bd9Sstevel@tonic-gate #include "k5-int.h" 327c478bd9Sstevel@tonic-gate #include "os-proto.h" 337c478bd9Sstevel@tonic-gate 347c478bd9Sstevel@tonic-gate krb5_error_code 35505d05c7Sgtb krb5_gen_replay_name(krb5_context context, const krb5_address *address, const char *uniq, char **string) 367c478bd9Sstevel@tonic-gate { 377c478bd9Sstevel@tonic-gate char * tmp; 387c478bd9Sstevel@tonic-gate int i; 397c478bd9Sstevel@tonic-gate 407c478bd9Sstevel@tonic-gate if ((*string = malloc(strlen(uniq) + (address->length * 2) + 1)) == NULL) 417c478bd9Sstevel@tonic-gate return ENOMEM; 427c478bd9Sstevel@tonic-gate 437c478bd9Sstevel@tonic-gate /*LINTED*/ 447c478bd9Sstevel@tonic-gate sprintf(*string, "%s", uniq); 457c478bd9Sstevel@tonic-gate tmp = (*string) + strlen(uniq); 467c478bd9Sstevel@tonic-gate for (i = 0; i < address->length; i++) { 477c478bd9Sstevel@tonic-gate sprintf(tmp, "%.2x", address->contents[i] & 0xff); 487c478bd9Sstevel@tonic-gate tmp += 2; 497c478bd9Sstevel@tonic-gate } 507c478bd9Sstevel@tonic-gate return 0; 517c478bd9Sstevel@tonic-gate } 52