From e871433921738948dd58368aa5ae4e7bd2270b86 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sat, 12 Jul 1997 15:14:09 +0000 Subject: [PATCH] try `rd_safe' and `rd_priv' git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2199 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/test/tcp_server.c | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/appl/test/tcp_server.c b/appl/test/tcp_server.c index 131142ac4..fa715e1c1 100644 --- a/appl/test/tcp_server.c +++ b/appl/test/tcp_server.c @@ -21,6 +21,9 @@ proto (int sock, const char *service) krb5_ticket *ticket; char *name; char hostname[MAXHOSTNAMELEN]; + krb5_data packet; + krb5_data data; + u_int32_t len, net_len; addrlen = sizeof(local); if (getsockname (sock, (struct sockaddr *)&local, &addrlen) < 0 @@ -92,6 +95,51 @@ proto (int sock, const char *service) printf ("User is `%s'\n", name); free (name); + krb5_data_zero (&data); + krb5_data_zero (&packet); + + if (krb5_net_read (context, sock, &net_len, 4) != 4) + err (1, "krb5_net_read"); + + len = ntohl(net_len); + + krb5_data_alloc (&packet, len); + + if (krb5_net_read (context, sock, packet.data, len) != len) + err (1, "krb5_net_read"); + + status = krb5_rd_safe (context, + auth_context, + &packet, + &data, + NULL); + if (status) + errx (1, "krb5_rd_safe: %s", + krb5_get_err_text(context, status)); + + printf ("safe packet: %.*s\n", data.length, data.data); + + if (krb5_net_read (context, sock, &net_len, 4) != 4) + err (1, "krb5_net_read"); + + len = ntohl(net_len); + + krb5_data_alloc (&packet, len); + + if (krb5_net_read (context, sock, packet.data, len) != len) + err (1, "krb5_net_read"); + + status = krb5_rd_priv (context, + auth_context, + &packet, + &data, + NULL); + if (status) + errx (1, "krb5_rd_priv: %s", + krb5_get_err_text(context, status)); + + printf ("priv packet: %.*s\n", data.length, data.data); + return 0; }