summaryrefslogtreecommitdiffstats
path: root/src/appl/gss-sample
diff options
context:
space:
mode:
authorPaul Park <pjpark@mit.edu>1995-08-29 18:44:47 +0000
committerPaul Park <pjpark@mit.edu>1995-08-29 18:44:47 +0000
commit8b963d1d04f22b92c15ab14b3f8b81625a306f1c (patch)
tree2593100ccfc0c51a91de000dd7bf4f74ad23faf2 /src/appl/gss-sample
parentcf72ab9817052829ac622b2487cc864cea8f858b (diff)
downloadkrb5-8b963d1d04f22b92c15ab14b3f8b81625a306f1c.tar.gz
krb5-8b963d1d04f22b92c15ab14b3f8b81625a306f1c.tar.xz
krb5-8b963d1d04f22b92c15ab14b3f8b81625a306f1c.zip
Use new gss_{im,ex}port_sec_context
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6630 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl/gss-sample')
-rw-r--r--src/appl/gss-sample/ChangeLog4
-rw-r--r--src/appl/gss-sample/gss-client.c21
-rw-r--r--src/appl/gss-sample/gss-server.c21
3 files changed, 44 insertions, 2 deletions
diff --git a/src/appl/gss-sample/ChangeLog b/src/appl/gss-sample/ChangeLog
index bb2ec0d8b4..189914dc8e 100644
--- a/src/appl/gss-sample/ChangeLog
+++ b/src/appl/gss-sample/ChangeLog
@@ -1,4 +1,8 @@
+Tue Aug 29 13:24:50 EDT 1995 Paul Park (pjpark@mit.edu)
+ * gss-{client,server}.c - Test gss_{ex,im}port_sec_context().
+
+
Fri Jul 7 15:41:47 EDT 1995 Paul Park (pjpark@mit.edu)
* Makefile.in - Remove all explicit library handling.
* configure.in - Add KRB5_LIBRARIES.
diff --git a/src/appl/gss-sample/gss-client.c b/src/appl/gss-sample/gss-client.c
index da95f8449f..c57678610e 100644
--- a/src/appl/gss-sample/gss-client.c
+++ b/src/appl/gss-sample/gss-client.c
@@ -110,7 +110,7 @@ int call_server(host, port, service_name, msg)
char *msg;
{
gss_ctx_id_t context;
- gss_buffer_desc in_buf, out_buf;
+ gss_buffer_desc in_buf, out_buf, context_token;
int s, state;
OM_uint32 maj_stat, min_stat;
@@ -122,6 +122,25 @@ int call_server(host, port, service_name, msg)
if (client_establish_context(s, service_name, &context) < 0)
return -1;
+ /*
+ * Attempt to save and then restore the context.
+ */
+ maj_stat = gss_export_sec_context(&min_stat,
+ &context,
+ &context_token);
+ if (maj_stat != GSS_S_COMPLETE) {
+ display_status("exporting context", maj_stat, min_stat);
+ return -1;
+ }
+ maj_stat = gss_import_sec_context(&min_stat,
+ &context_token,
+ &context);
+ if (maj_stat != GSS_S_COMPLETE) {
+ display_status("importing context", maj_stat, min_stat);
+ return -1;
+ }
+ (void) gss_release_buffer(&min_stat, &context_token);
+
/* Seal the message */
in_buf.value = msg;
in_buf.length = strlen(msg) + 1;
diff --git a/src/appl/gss-sample/gss-server.c b/src/appl/gss-sample/gss-server.c
index b90bd37fe2..e401445789 100644
--- a/src/appl/gss-sample/gss-server.c
+++ b/src/appl/gss-sample/gss-server.c
@@ -180,7 +180,7 @@ int sign_server(s, service_name)
char *service_name;
{
gss_cred_id_t server_creds;
- gss_buffer_desc client_name, xmit_buf, msg_buf;
+ gss_buffer_desc client_name, xmit_buf, msg_buf, context_token;
gss_ctx_id_t context;
OM_uint32 maj_stat, min_stat;
int s2;
@@ -209,6 +209,25 @@ int sign_server(s, service_name)
client_name.value, ctime(&now));
(void) gss_release_buffer(&min_stat, &client_name);
+ /*
+ * Attempt to save and then restore the context.
+ */
+ maj_stat = gss_export_sec_context(&min_stat,
+ &context,
+ &context_token);
+ if (maj_stat != GSS_S_COMPLETE) {
+ display_status("exporting context", maj_stat, min_stat);
+ break;
+ }
+ maj_stat = gss_import_sec_context(&min_stat,
+ &context_token,
+ &context);
+ if (maj_stat != GSS_S_COMPLETE) {
+ display_status("importing context", maj_stat, min_stat);
+ break;
+ }
+ (void) gss_release_buffer(&min_stat, &context_token);
+
/* Receive the sealed message token */
if (recv_token(s2, &xmit_buf) < 0)
break;