1 /* $Id: authsaslclientplain.c,v 1.2 2004/10/21 00:10:49 mrsam Exp $ */
4 ** Copyright 2000 Double Precision, Inc. See COPYING for
5 ** distribution information.
8 #include "courier_auth_config.h"
9 #include "courierauthsasl.h"
10 #include "authsaslclient.h"
17 int authsaslclient_plain(const struct authsaslclientinfo
*info
)
21 const char *userid
, *password
;
22 size_t userid_l
, password_l
;
24 userid
=info
->userid
? info
->userid
:"";
25 password
=info
->password
? info
->password
:"";
27 userid_l
=strlen(userid
);
28 password_l
=strlen(password
);
30 q
=malloc(userid_l
+password_l
+2);
35 return (AUTHSASL_ERROR
);
39 memcpy(q
+2+userid_l
, password
, password_l
);
41 r
=authsasl_tobase64(q
, userid_l
+password_l
+2);
47 return (AUTHSASL_ERROR
);
50 i
=(*info
->plain_conv_func
)("PLAIN", r
, info
->conv_func_arg
);