gsasl-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS gsasl/tests


From: gsasl-commit
Subject: CVS gsasl/tests
Date: Thu, 14 Oct 2004 21:18:19 +0200

Update of /home/cvs/gsasl/tests
In directory dopio:/tmp/cvs-serv3327

Modified Files:
        Makefile.am digest-md5.c md5file.c 
Added Files:
        gssapi.key gssapi.tkt old-gssapi.c 
Log Message:
Add.

--- /home/cvs/gsasl/tests/Makefile.am   2004/10/14 17:20:38     1.27
+++ /home/cvs/gsasl/tests/Makefile.am   2004/10/14 19:18:19     1.28
@@ -27,10 +27,15 @@
 noinst_LTLIBRARIES = libutils.la
 libutils_la_SOURCES = utils.h utils.c
 
-TESTS_ENVIRONMENT = THREADSAFETY_FILES=$(top_srcdir)/lib/*/*.c
+TESTS_ENVIRONMENT = SHISHI_KEYS=$(srcdir)/gssapi.key \
+       SHISHI_TICKETS=$(srcdir)/gssapi.tkt \
+       SHISHI_CONFIG=ignore-this-warning \
+       SHISHI_HOME=ignore-this-warning \
+       SHISHI_USER=ignore-this-warning \
+       THREADSAFETY_FILES=$(top_srcdir)/lib/*/*.c
 
 ctests = simple cram-md5 digest-md5 md5file \
-       old-cram-md5
+       old-cram-md5 old-gssapi
 
 TESTS = threadsafety $(ctests) 
 check_PROGRAMS = $(ctests)
--- /home/cvs/gsasl/tests/digest-md5.c  2004/09/23 23:53:44     1.3
+++ /home/cvs/gsasl/tests/digest-md5.c  2004/10/14 19:18:19     1.4
@@ -140,7 +140,8 @@
       res = gsasl_step (server, NULL, 0, &s1, &s1len);
       if (res != GSASL_NEEDS_MORE)
        {
-         fail ("gsasl_step(1) failed (%d):\n%s\n", res, gsasl_strerror (res));
+         fail ("gsasl_step(1) failed (%d):\n%s\n", res,
+               gsasl_strerror (res));
          return;
        }
 
@@ -153,7 +154,8 @@
       free (s1);
       if (res != GSASL_NEEDS_MORE)
        {
-         fail ("gsasl_step(2) failed (%d):\n%s\n", res, gsasl_strerror (res));
+         fail ("gsasl_step(2) failed (%d):\n%s\n", res,
+               gsasl_strerror (res));
          return;
        }
 
@@ -166,7 +168,8 @@
       free (s2);
       if (res != GSASL_NEEDS_MORE)
        {
-         fail ("gsasl_step(3) failed (%d):\n%s\n", res, gsasl_strerror (res));
+         fail ("gsasl_step(3) failed (%d):\n%s\n", res,
+               gsasl_strerror (res));
          return;
        }
 
@@ -179,7 +182,8 @@
       free (s1);
       if (res != GSASL_OK)
        {
-         fail ("gsasl_step(4) failed (%d):\n%s\n", res, gsasl_strerror (res));
+         fail ("gsasl_step(4) failed (%d):\n%s\n", res,
+               gsasl_strerror (res));
          return;
        }
 
@@ -192,7 +196,8 @@
       free (s2);
       if (res != GSASL_OK)
        {
-         fail ("gsasl_step(5) failed (%d):\n%s\n", res, gsasl_strerror (res));
+         fail ("gsasl_step(5) failed (%d):\n%s\n", res,
+               gsasl_strerror (res));
          return;
        }
 
--- /home/cvs/gsasl/tests/md5file.c     2004/09/29 01:45:53     1.1
+++ /home/cvs/gsasl/tests/md5file.c     2004/10/14 19:18:19     1.2
@@ -55,7 +55,8 @@
     success ("user-found OK\n");
   else
     fail ("user-found FAIL (%d): %s\n", res, gsasl_strerror (res));
-  if (keylen != strlen (BILL_PASSWD) || memcmp (key, BILL_PASSWD, keylen) != 0)
+  if (keylen != strlen (BILL_PASSWD)
+      || memcmp (key, BILL_PASSWD, keylen) != 0)
     fail ("user-password FAIL (%d): %.*s\n", keylen, keylen, key);
   else
     success ("user-password OK\n");

--- /home/cvs/gsasl/tests/gssapi.key    2004/10/14 19:18:19     NONE
+++ /home/cvs/gsasl/tests/gssapi.key    2004/10/14 19:18:19     1.1
-----BEGIN SHISHI KEY-----
Keytype: 3 (des-cbc-md5)
Principal: host/latte.josefsson.org
Realm: JOSEFSSON.ORG

s3WXrcITWPE=
-----END SHISHI KEY-----
--- /home/cvs/gsasl/tests/gssapi.tkt    2004/10/14 19:18:19     NONE
+++ /home/cvs/gsasl/tests/gssapi.tkt    2004/10/14 19:18:19     1.1
name:NULL  type:SEQUENCE
  name:pvno  type:INTEGER  value:0x05
  name:msg-type  type:INTEGER  value:0x0b
  name:crealm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
  name:cname  type:SEQUENCE
    name:name-type  type:INTEGER  value:0x00
    name:name-string  type:SEQ_OF
      name:NULL  type:GENERALSTRING
      name:?1  type:GENERALSTRING  value:6a6173
  name:ticket  type:SEQUENCE
    name:tkt-vno  type:INTEGER  value:0x05
    name:realm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
    name:sname  type:SEQUENCE
      name:name-type  type:INTEGER  value:0x01
      name:name-string  type:SEQ_OF
        name:NULL  type:GENERALSTRING
        name:?1  type:GENERALSTRING  value:6b7262746774
        name:?2  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
    name:enc-part  type:SEQUENCE
      name:etype  type:INTEGER  value:0x03
      name:cipher  type:OCT_STR  
value:2cfc45fc973b8a8f8dc9dbdba1e5b7fc6d1c6d7929abb91ddac6c6dc5a96eafdbf38d24b2e4e8847215b2d47c771310b6f2ccf6ad4d2a961d37f466810c6f66941e776bdfeaa712a78b346de634efb3e524c36877bf9e393c615f052cf6dadd256304894b93a77d891a7fa738c636146c35fa379b7c4bc9fbde7224bd45d992ab9c5ac3c041419872beaec83c6fa1e95
  name:enc-part  type:SEQUENCE
    name:etype  type:INTEGER  value:0x03
    name:cipher  type:OCT_STR  
value:db294db40293d895918c50032d1666b0e0eb2408202a9282d68173af833a32a412ceb91a51f29aadc2913de2b01e779b1dd85528151653646b14c4be2b93a2fccc906011a024a975153acc9b6be255093d5ce7912c651bf4cb04b041e60f04d00b6364b4023b3284f436ef1eeaa7aae15d77ce643daff4e764433c1af43c4591d23e2945d0b27b9709e3c79629484c1e9aefba783570dff7848e6c1b3f861de74a89250fbd125ab2
-----BEGIN SHISHI KDC-REP-----
a4IBzjCCAcqgAwIBBaEDAgELow8bDUpPU0VGU1NPTi5PUkekEDAOoAMCAQChBzAF
GwNqYXOlgeFhgd4wgdugAwIBBaEPGw1KT1NFRlNTT04uT1JHoiIwIKADAgEBoRkw
FxsGa3JidGd0Gw1KT1NFRlNTT04uT1JHo4GeMIGboAMCAQOigZMEgZAs/EX8lzuK
j43J29uh5bf8bRxteSmruR3axsbcWpbq/b840ksuTohHIVstR8dxMQtvLM9q1NKp
YdN/RmgQxvZpQed2vf6qcSp4s0beY077PlJMNod7+eOTxhXwUs9trdJWMEiUuTp3
2JGn+nOMY2FGw1+jebfEvJ+95yJL1F2ZKrnFrDwEFBmHK+rsg8b6HpWmgbYwgbOg
AwIBA6KBqwSBqNspTbQCk9iVkYxQAy0WZrDg6yQIICqSgtaBc6+DOjKkEs65GlHy
mq3CkT3isB53mx3YVSgVFlNkaxTEviuTovzMkGARoCSpdRU6zJtr4lUJPVznkSxl
G/TLBLBB5g8E0AtjZLQCOzKE9DbvHuqnquFdd85kPa/052RDPBr0PEWR0j4pRdCy
e5cJ48eWKUhMHprvung1cN/3hI5sGz+GHedKiSUPvRJasg==
-----END SHISHI KDC-REP-----
name:NULL  type:SEQUENCE
  name:key  type:SEQUENCE
    name:keytype  type:INTEGER  value:0x03
    name:keyvalue  type:OCT_STR  value:d63e808cfe7f643d
  name:last-req  type:SEQ_OF
    name:NULL  type:SEQUENCE
      name:lr-type  type:INTEGER
      name:lr-value  type:TIME
  name:nonce  type:INTEGER  value:0x0c418523
  name:flags  type:BIT_STR  value(32):00400000
  name:authtime  type:TIME  value:20040711155558Z
  name:endtime  type:TIME  value:20240711155558Z
  name:srealm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
  name:sname  type:SEQUENCE
    name:name-type  type:INTEGER  value:0x01
    name:name-string  type:SEQ_OF
      name:NULL  type:GENERALSTRING
      name:?1  type:GENERALSTRING  value:6b7262746774
      name:?2  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
-----BEGIN SHISHI EncKDCRepPart-----
eYGIMIGFoBMwEaADAgEDoQoECNY+gIz+f2Q9oQIwAKIGAgQMQYUjpAcDBQAAQAAA
pREYDzIwMDQwNzExMTU1NTU4WqcRGA8yMDI0MDcxMTE1NTU1OFqpDxsNSk9TRUZT
U09OLk9SR6oiMCCgAwIBAaEZMBcbBmtyYnRndBsNSk9TRUZTU09OLk9SRw==
-----END SHISHI EncKDCRepPart-----
name:NULL  type:SEQUENCE
  name:tkt-vno  type:INTEGER  value:0x05
  name:realm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
  name:sname  type:SEQUENCE
    name:name-type  type:INTEGER  value:0x01
    name:name-string  type:SEQ_OF
      name:NULL  type:GENERALSTRING
      name:?1  type:GENERALSTRING  value:6b7262746774
      name:?2  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
  name:enc-part  type:SEQUENCE
    name:etype  type:INTEGER  value:0x03
    name:cipher  type:OCT_STR  
value:2cfc45fc973b8a8f8dc9dbdba1e5b7fc6d1c6d7929abb91ddac6c6dc5a96eafdbf38d24b2e4e8847215b2d47c771310b6f2ccf6ad4d2a961d37f466810c6f66941e776bdfeaa712a78b346de634efb3e524c36877bf9e393c615f052cf6dadd256304894b93a77d891a7fa738c636146c35fa379b7c4bc9fbde7224bd45d992ab9c5ac3c041419872beaec83c6fa1e95
-----BEGIN SHISHI Ticket-----
YYHeMIHboAMCAQWhDxsNSk9TRUZTU09OLk9SR6IiMCCgAwIBAaEZMBcbBmtyYnRn
dBsNSk9TRUZTU09OLk9SR6OBnjCBm6ADAgEDooGTBIGQLPxF/Jc7io+NydvboeW3
/G0cbXkpq7kd2sbG3FqW6v2/ONJLLk6IRyFbLUfHcTELbyzPatTSqWHTf0ZoEMb2
aUHndr3+qnEqeLNG3mNO+z5STDaHe/njk8YV8FLPba3SVjBIlLk6d9iRp/pzjGNh
RsNfo3m3xLyfveciS9RdmSq5xaw8BBQZhyvq7IPG+h6V
-----END SHISHI Ticket-----


name:NULL  type:SEQUENCE
  name:pvno  type:INTEGER  value:0x05
  name:msg-type  type:INTEGER  value:0x0d
  name:crealm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
  name:cname  type:SEQUENCE
    name:name-type  type:INTEGER  value:0x00
    name:name-string  type:SEQ_OF
      name:NULL  type:GENERALSTRING
      name:?1  type:GENERALSTRING  value:6a6173
  name:ticket  type:SEQUENCE
    name:tkt-vno  type:INTEGER  value:0x05
    name:realm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
    name:sname  type:SEQUENCE
      name:name-type  type:INTEGER  value:0x01
      name:name-string  type:SEQ_OF
        name:NULL  type:GENERALSTRING
        name:?1  type:GENERALSTRING  value:686f7374
        name:?2  type:GENERALSTRING  
value:6c617474652e6a6f73656673736f6e2e6f7267
    name:enc-part  type:SEQUENCE
      name:etype  type:INTEGER  value:0x03
      name:cipher  type:OCT_STR  
value:80f8af4800aecb22c4852cc25cad377332375c7365f4eca15a99c1c13ff785be023e7d0315bd53d2937541aada9b672c62b1df632d33cb85de83e7e7efa2f0fa6551dcab98ac0a910fdb916ea816554fb9aed666133a58984be22d37da46d98252b883a0acee17d8c98c097428866a0906a1dc70c1909eb511618fdadf8c435c39ec154a564a1a2b7508051c663ca8a5
  name:enc-part  type:SEQUENCE
    name:etype  type:INTEGER  value:0x03
    name:cipher  type:OCT_STR  
value:87359dbbdd34da11cc17e22e1edb181f14be09749c81af24bb00c0ebe4ae9132449e710a4c455b28f48509ca01ef3ff883c7d9da57bca4e37959e45c1e3fca2355236c3edc87233d30577d5d79f5395d29133c44cac7e5af077d0f40c4e8ab1134c86dad8ebc7251e8178e3f8df4eb3ae00760889716ff4443a40d1ba5995d3a48bea574f41a019fc8467a944f3c700233a6fe42e42057b6e4419cd173e483c8cf3119c39e064cda
-----BEGIN SHISHI KDC-REP-----
bYIB0jCCAc6gAwIBBaEDAgENow8bDUpPU0VGU1NPTi5PUkekEDAOoAMCAQChBzAF
GwNqYXOlgeVhgeIwgd+gAwIBBaEPGw1KT1NFRlNTT04uT1JHoiYwJKADAgEBoR0w
GxsEaG9zdBsTbGF0dGUuam9zZWZzc29uLm9yZ6OBnjCBm6ADAgEDooGTBIGQgPiv
SACuyyLEhSzCXK03czI3XHNl9OyhWpnBwT/3hb4CPn0DFb1T0pN1Qaram2csYrHf
Yy0zy4Xeg+fn76Lw+mVR3KuYrAqRD9uRbqgWVU+5rtZmEzpYmEviLTfaRtmCUriD
oKzuF9jJjAl0KIZqCQah3HDBkJ61EWGP2t+MQ1w57BVKVkoaK3UIBRxmPKilpoG2
MIGzoAMCAQOigasEgaiHNZ273TTaEcwX4i4e2xgfFL4JdJyBryS7AMDr5K6RMkSe
cQpMRVso9IUJygHvP/iDx9naV7yk43lZ5FweP8ojVSNsPtyHIz0wV31defU5XSkT
PETKx+WvB30PQMToqxE0yG2tjrxyUegXjj+N9Os64AdgiJcW/0RDpA0bpZldOki+
pXT0GgGfyEZ6lE88cAIzpv5C5CBXtuRBnNFz5IPIzzEZw54GTNo=
-----END SHISHI KDC-REP-----
name:NULL  type:SEQUENCE
  name:key  type:SEQUENCE
    name:keytype  type:INTEGER  value:0x03
    name:keyvalue  type:OCT_STR  value:37705d1c54a84683
  name:last-req  type:SEQ_OF
    name:NULL  type:SEQUENCE
      name:lr-type  type:INTEGER
      name:lr-value  type:TIME
  name:nonce  type:INTEGER  value:0x22cc41a9
  name:flags  type:BIT_STR  value(32):00000000
  name:authtime  type:TIME  value:20040711155559Z
  name:endtime  type:TIME  value:20240711155558Z
  name:srealm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
  name:sname  type:SEQUENCE
    name:name-type  type:INTEGER  value:0x01
    name:name-string  type:SEQ_OF
      name:NULL  type:GENERALSTRING
      name:?1  type:GENERALSTRING  value:686f7374
      name:?2  type:GENERALSTRING  value:6c617474652e6a6f73656673736f6e2e6f7267
-----BEGIN SHISHI EncKDCRepPart-----
eYGMMIGJoBMwEaADAgEDoQoECDdwXRxUqEaDoQIwAKIGAgQizEGppAcDBQAAAAAA
pREYDzIwMDQwNzExMTU1NTU5WqcRGA8yMDI0MDcxMTE1NTU1OFqpDxsNSk9TRUZT
U09OLk9SR6omMCSgAwIBAaEdMBsbBGhvc3QbE2xhdHRlLmpvc2Vmc3Nvbi5vcmc=

-----END SHISHI EncKDCRepPart-----
name:NULL  type:SEQUENCE
  name:tkt-vno  type:INTEGER  value:0x05
  name:realm  type:GENERALSTRING  value:4a4f53454653534f4e2e4f5247
  name:sname  type:SEQUENCE
    name:name-type  type:INTEGER  value:0x01
    name:name-string  type:SEQ_OF
      name:NULL  type:GENERALSTRING
      name:?1  type:GENERALSTRING  value:686f7374
      name:?2  type:GENERALSTRING  value:6c617474652e6a6f73656673736f6e2e6f7267
  name:enc-part  type:SEQUENCE
    name:etype  type:INTEGER  value:0x03
    name:cipher  type:OCT_STR  
value:80f8af4800aecb22c4852cc25cad377332375c7365f4eca15a99c1c13ff785be023e7d0315bd53d2937541aada9b672c62b1df632d33cb85de83e7e7efa2f0fa6551dcab98ac0a910fdb916ea816554fb9aed666133a58984be22d37da46d98252b883a0acee17d8c98c097428866a0906a1dc70c1909eb511618fdadf8c435c39ec154a564a1a2b7508051c663ca8a5
-----BEGIN SHISHI Ticket-----
YYHiMIHfoAMCAQWhDxsNSk9TRUZTU09OLk9SR6ImMCSgAwIBAaEdMBsbBGhvc3Qb
E2xhdHRlLmpvc2Vmc3Nvbi5vcmejgZ4wgZugAwIBA6KBkwSBkID4r0gArssixIUs
wlytN3MyN1xzZfTsoVqZwcE/94W+Aj59AxW9U9KTdUGq2ptnLGKx32MtM8uF3oPn
5++i8PplUdyrmKwKkQ/bkW6oFlVPua7WZhM6WJhL4i032kbZglK4g6Cs7hfYyYwJ
dCiGagkGodxwwZCetRFhj9rfjENcOewVSlZKGit1CAUcZjyopQ==
-----END SHISHI Ticket-----


--- /home/cvs/gsasl/tests/old-gssapi.c  2004/10/14 19:18:19     NONE
+++ /home/cvs/gsasl/tests/old-gssapi.c  2004/10/14 19:18:19     1.1
/* old-gssapi.c --- Test the GSSAPI mechanism, using old callback API.
 * Copyright (C) 2002, 2003, 2004  Simon Josefsson
 *
 * This file is part of GNU SASL.
 *
 * GNU SASL is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * GNU SASL is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with GNU SASL; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>

#include "utils.h"

#define SERVICE "host"
#define HOST "latte.josefsson.org"

#define PASSWORD "Open, Sesame"
#define USERNAME "Ali Baba"
/* "Ali " "\xC2\xAD" "Bab" "\xC2\xAA" */
/* "Al\xC2\xAA""dd\xC2\xAD""in\xC2\xAE" */

static int
server_cb_retrieve (Gsasl_session_ctx * xctx,
                    const char *authentication_id,
                    const char *authorization_id,
                    const char *realm, char *key, size_t * keylen)
{
  size_t needlen = strlen (PASSWORD);

  if (key && *keylen < needlen)
    return GSASL_TOO_SMALL_BUFFER;

  *keylen = needlen;
  if (key)
    memcpy (key, PASSWORD, *keylen);

  return GSASL_OK;
}

static int
server_cb_service (Gsasl_session_ctx * ctx,
                   char *srv, size_t * srvlen, char *host, size_t * hostlen)
{
  size_t srvneedlen = strlen (SERVICE);
  size_t hostneedlen = strlen (HOST);

  if (srv && *srvlen < srvneedlen)
    return GSASL_TOO_SMALL_BUFFER;

  if (host && *hostlen < hostneedlen)
    return GSASL_TOO_SMALL_BUFFER;

  *srvlen = srvneedlen;
  if (srv)
    memcpy (srv, SERVICE, *srvlen);

  *hostlen = hostneedlen;
  if (host)
    memcpy (host, HOST, *hostlen);

  return GSASL_OK;
}

static int
server_cb_gssapi (Gsasl_session_ctx * ctx,
                  const char *client_name, const char *authentication_id)
{
  char *data;

  if (client_name)
    printf ("GSSAPI user: %s\n", client_name);

  if (authentication_id)
    printf ("Authentication ID: %s\n", authentication_id);

  data = readline ("Admit user? (y/n) ");

  if (*data == 'y' || *data == 'Y')
    return GSASL_OK;
  else
    return GSASL_AUTHENTICATION_ERROR;
}

static int
client_cb_authentication_id (Gsasl_session_ctx * xctx,
                             char *out, size_t * outlen)
{
  size_t needlen = strlen (USERNAME);

  if (out && *outlen < needlen)
    return GSASL_TOO_SMALL_BUFFER;

  *outlen = needlen;
  if (out)
    memcpy (out, USERNAME, *outlen);

  return GSASL_OK;
}

static int
client_cb_password (Gsasl_session_ctx * xctx, char *out, size_t * outlen)
{
  size_t needlen = strlen (PASSWORD);

  if (out && *outlen < needlen)
    return GSASL_TOO_SMALL_BUFFER;

  *outlen = needlen;
  if (out)
    memcpy (out, PASSWORD, *outlen);

  return GSASL_OK;
}

static int
client_cb_service (Gsasl_session_ctx * ctx,
                   char *srv, size_t * srvlen,
                   char *host, size_t * hostlen,
                   char *srvname, size_t * srvnamelen)
{
  size_t srvneedlen = strlen (SERVICE);
  size_t hostneedlen = strlen (HOST);

  if (srv && srvlen && *srvlen < srvneedlen)
    return GSASL_TOO_SMALL_BUFFER;

  if (host && hostlen && *hostlen < hostneedlen)
    return GSASL_TOO_SMALL_BUFFER;

  if (srvlen)
    {
      *srvlen = srvneedlen;
      if (srv)
        memcpy (srv, SERVICE, *srvlen);
    }

  if (hostlen)
    {
      *hostlen = hostneedlen;
      if (host)
        memcpy (host, HOST, hostneedlen);
    }

  if (srvnamelen)
    *srvnamelen = 0;

  return GSASL_OK;
}

void
doit (void)
{
  Gsasl_ctx *ctx = NULL;
  Gsasl_session_ctx *server = NULL, *client = NULL;
  char *s1 = NULL, *s2 = NULL;
  size_t i;
  int res;

  res = gsasl_init (&ctx);
  if (res != GSASL_OK)
    {
      fail ("gsasl_init() failed (%d):\n%s\n", res, gsasl_strerror (res));
      return;
    }

  gsasl_server_callback_retrieve_set (ctx, server_cb_retrieve);
  gsasl_server_callback_service_set (ctx, server_cb_service);
  gsasl_server_callback_gssapi_set (ctx, server_cb_gssapi);

  gsasl_client_callback_authentication_id_set (ctx,
                                               client_cb_authentication_id);
  gsasl_client_callback_password_set (ctx, client_cb_password);
  gsasl_client_callback_service_set (ctx, client_cb_service);

  for (i = 0; i < 5; i++)
    {
      res = gsasl_server_start (ctx, "GSSAPI", &server);
      if (res != GSASL_OK)
        {
          fail ("gsasl_init() failed (%d):\n%s\n", res, gsasl_strerror (res));
          return;
        }
      res = gsasl_client_start (ctx, "GSSAPI", &client);
      if (res != GSASL_OK)
        {
          fail ("gsasl_init() failed (%d):\n%s\n", res, gsasl_strerror (res));
          return;
        }

      do
        {
          res = gsasl_step64 (server, s1, &s2);
          if (s1)
            free (s1);
          if (res != GSASL_OK && res != GSASL_NEEDS_MORE)
            {
              fail ("gsasl_step64 (1) failed (%d):\n%s\n", res,
                    gsasl_strerror (res));
              return;

[36 lines skipped]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]