1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
|
# Copyright (c) 2001 Simon Wilkinson (sxw@sxw.org.uk). All rights reserved.
# This module is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
package Authen::SASL::Cyrus;
use strict;
use Carp;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD);
require Exporter;
require DynaLoader;
require AutoLoader;
@ISA = qw(Exporter DynaLoader);
@EXPORT = qw(
SASL_BADAUTH
SASL_BADMAC
SASL_BADPARAM
SASL_BADPROT
SASL_BADSERV
SASL_BADVERS
SASL_BUFOVER
SASL_CB_AUTHNAME
SASL_CB_ECHOPROMPT
SASL_CB_GETOPT
SASL_CB_GETPATH
SASL_CB_GETREALM
SASL_CB_LANGUAGE
SASL_CB_LIST_END
SASL_CB_LOG
SASL_CB_NOECHOPROMPT
SASL_CB_PASS
SASL_CB_PROXY_POLICY
SASL_CB_SERVER_GETSECRET
SASL_CB_SERVER_PUTSECRET
SASL_CB_USER
SASL_CB_VERIFYFILE
SASL_CONTINUE
SASL_DISABLED
SASL_ENCRYPT
SASL_EXPIRED
SASL_FAIL
SASL_GETOPTCTX
SASL_H
SASL_INTERACT
SASL_IP_LOCAL
SASL_IP_REMOTE
SASL_LOG_ERR
SASL_LOG_INFO
SASL_LOG_WARNING
SASL_MAXOUTBUF
SASL_MECHNAMEMAX
SASL_NEWSECRET
SASL_NOAUTHZ
SASL_NOCHANGE
SASL_NOMECH
SASL_NOMEM
SASL_NOPATH
SASL_NOTDONE
SASL_NOUSER
SASL_OK
SASL_PWLOCK
SASL_REALM
SASL_SECURITY_LAYER
SASL_SEC_FORWARD_SECRECY
SASL_SEC_NOACTIVE
SASL_SEC_NOANONYMOUS
SASL_SEC_NODICTIONARY
SASL_SEC_NOPLAINTEXT
SASL_SEC_PASS_CREDENTIALS
SASL_SEC_PROPS
SASL_SET_CREATE
SASL_SET_DISABLE
SASL_SSF
SASL_SSF_EXTERNAL
SASL_TOOWEAK
SASL_TRANS
SASL_TRYAGAIN
SASL_USERNAME
SASL_VERSION_MAJOR
SASL_VERSION_MINOR
SASL_VERSION_STEP
SASL_VRFY_CONF
SASL_VRFY_OTHER
SASL_VRFY_PASSWD
SASL_VRFY_PLUGIN
SASL_WRONGMECH
);
$VERSION = '0.02';
bootstrap Authen::SASL::Cyrus $VERSION;
sub AUTOLOAD {
# This AUTOLOAD is used to 'autoload' constants from the constant()
# XS function. If a constant is not found then control is passed
# to the AUTOLOAD in AutoLoader.
my $constname;
($constname = $AUTOLOAD) =~ s/.*:://;
croak "& not defined" if $constname eq 'constant';
my $val = constant($constname, @_ ? $_[0] : 0);
if ($! != 0) {
if ($! =~ /Invalid/) {
$AutoLoader::AUTOLOAD = $AUTOLOAD;
goto &AutoLoader::AUTOLOAD;
}
else {
croak "Your vendor has not defined Authen::SASL::Generic macro $constname";
}
}
eval "sub $AUTOLOAD { $val }";
goto &$AUTOLOAD;
}
# Preloaded methods go here.
# Autoload methods go after =cut, and are processed by the autosplit program.
1;
__END__
# Below is the stub of documentation for your module. You better edit it!
=head1 NAME
Authen::SASL::Cyrus - Perl extension for Cyrus SASL library
=head1 SYNOPSIS
use Authen::SASL::Cyrus;
...
=head1 DESCRIPTION
This is a very primitive interface to the Cyrus SASL library. The
implementation is far from complete - only the minimum necessary to get
GSSAPI authentication working is there.
=head1 FUNCTIONS
=over 4
=item error()
Returns the last error code from the most recent Authen::SASL::Cyrus call.
If evaluated in a string context, will return the textual description of
the error.
=item $conn=init_connection($service, $server, $user)
Start a connection. $service is the service name (such as 'rcmd' or 'ldap'),
$server the FQDN of the server that is being connected to, and $user is the
username to connect as.
Returns the connection ID.
=item $mesg=start($conn, $mechanism)
$conn is the connection ID, $mechanism is a list of the mechanisms which are
available. $mesg is the message that should be sent to the server.
=item $mesg=respond($conn,$server_mesg)
$conn is the connection ID, $server_mesg is the message that was sent by the
server, $mesg is the data that should be sent back to the server to continue
the authentication process.
=head1 Exported constants
SASL_BADAUTH
SASL_BADMAC
SASL_BADPARAM
SASL_BADPROT
SASL_BADSERV
SASL_BADVERS
SASL_BUFOVER
SASL_CB_AUTHNAME
SASL_CB_ECHOPROMPT
SASL_CB_GETOPT
SASL_CB_GETPATH
SASL_CB_GETREALM
SASL_CB_LANGUAGE
SASL_CB_LIST_END
SASL_CB_LOG
SASL_CB_NOECHOPROMPT
SASL_CB_PASS
SASL_CB_PROXY_POLICY
SASL_CB_SERVER_GETSECRET
SASL_CB_SERVER_PUTSECRET
SASL_CB_USER
SASL_CB_VERIFYFILE
SASL_CONTINUE
SASL_DISABLED
SASL_ENCRYPT
SASL_EXPIRED
SASL_FAIL
SASL_GETOPTCTX
SASL_H
SASL_INTERACT
SASL_IP_LOCAL
SASL_IP_REMOTE
SASL_LOG_ERR
SASL_LOG_INFO
SASL_LOG_WARNING
SASL_MAXOUTBUF
SASL_MECHNAMEMAX
SASL_NEWSECRET
SASL_NOAUTHZ
SASL_NOCHANGE
SASL_NOMECH
SASL_NOMEM
SASL_NOPATH
SASL_NOTDONE
SASL_NOUSER
SASL_OK
SASL_PWLOCK
SASL_REALM
SASL_SECURITY_LAYER
SASL_SEC_FORWARD_SECRECY
SASL_SEC_NOACTIVE
SASL_SEC_NOANONYMOUS
SASL_SEC_NODICTIONARY
SASL_SEC_NOPLAINTEXT
SASL_SEC_PASS_CREDENTIALS
SASL_SEC_PROPS
SASL_SET_CREATE
SASL_SET_DISABLE
SASL_SSF
SASL_SSF_EXTERNAL
SASL_TOOWEAK
SASL_TRANS
SASL_TRYAGAIN
SASL_USERNAME
SASL_VERSION_MAJOR
SASL_VERSION_MINOR
SASL_VERSION_STEP
SASL_VRFY_CONF
SASL_VRFY_OTHER
SASL_VRFY_PASSWD
SASL_VRFY_PLUGIN
SASL_WRONGMECH
=head1 AUTHOR
Simon Wilkinson <sxw@sxw.org.uk>
=head1 BUGS
Its so primitive its untrue.
=head1 SEE ALSO
perl(1), sasl(1).
=cut
|