r1558 - in packages/libauthen-krb5-perl/trunk: . debian

Russ Allbery rra-guest at costa.debian.org
Sat Dec 3 18:07:31 UTC 2005


Author: rra-guest
Date: 2005-12-03 18:07:30 +0000 (Sat, 03 Dec 2005)
New Revision: 1558

Modified:
   packages/libauthen-krb5-perl/trunk/COPYRIGHT
   packages/libauthen-krb5-perl/trunk/Changes
   packages/libauthen-krb5-perl/trunk/Krb5.pm
   packages/libauthen-krb5-perl/trunk/Krb5.xs
   packages/libauthen-krb5-perl/trunk/debian/changelog
   packages/libauthen-krb5-perl/trunk/typemap
Log:
* New upstream release.
  - Add keyblock accessor functions to allow use of the session key.

Modified: packages/libauthen-krb5-perl/trunk/COPYRIGHT
===================================================================
--- packages/libauthen-krb5-perl/trunk/COPYRIGHT	2005-12-03 18:05:19 UTC (rev 1557)
+++ packages/libauthen-krb5-perl/trunk/COPYRIGHT	2005-12-03 18:07:30 UTC (rev 1558)
@@ -1,3 +1,3 @@
-Copyright (c) 2000-2005 Jeff Horwitz (jeff at smashing.org).  All rights reserved.
+Copyright (c) 2000-2004 Jeff Horwitz (jeff at smashing.org).  All rights reserved.
 This module is free software; you can redistribute it and/or modify it under
 the same terms as Perl itself.

Modified: packages/libauthen-krb5-perl/trunk/Changes
===================================================================
--- packages/libauthen-krb5-perl/trunk/Changes	2005-12-03 18:05:19 UTC (rev 1557)
+++ packages/libauthen-krb5-perl/trunk/Changes	2005-12-03 18:07:30 UTC (rev 1558)
@@ -1,6 +1,9 @@
 Revision history for Perl extension Krb5.
 
+1.5	Fix broken compile for Authen::Krb5::Keytab::get_name()
+
 1.4	Added methods for manipulating keytabs (ajk at iu.edu)
+	Added keyblock accessor functions to allow use of the session key.
 
 1.3	Added get_in_tkt_with_keytab() function (jorgen at greytower.net)
 

Modified: packages/libauthen-krb5-perl/trunk/Krb5.pm
===================================================================
--- packages/libauthen-krb5-perl/trunk/Krb5.pm	2005-12-03 18:05:19 UTC (rev 1557)
+++ packages/libauthen-krb5-perl/trunk/Krb5.pm	2005-12-03 18:07:30 UTC (rev 1558)
@@ -52,7 +52,7 @@
 	KRB5_NT_UNKNOWN
 	KRB5_TGS_NAME
 );
-$VERSION = '1.4';
+$VERSION = '1.5';
 
 sub KRB5_TGS_NAME() { return "krbtgt"; }
 
@@ -284,6 +284,8 @@
 
 =head2 CLASSES & METHODS
 
+=over 4
+
 =item Authen::Krb5::Principal
 
 Kerberos 5 princpal object.
@@ -330,6 +332,30 @@
 
 =back
 
+=item Authen::Krb5::KeyBlock
+
+Kerberos 5 keyblock object.
+
+=over 4
+
+=item o enctype()
+
+Returns the encryption type ID.
+
+=item o enctype_string()
+
+Returns a text description of the encryption type.
+
+=item o length()
+
+Returns the length of the session key.
+
+=item o contents()
+
+Returns the actual contents of the keyblock (the session key).
+
+=back
+
 =item Authen::Krb5::AuthContext
 
 Kerberos 5 auth_context object.
@@ -356,6 +382,10 @@
 Sets the replay cache for auth_context.  'rc' is a Authen::Krb5::Rcache object
 generated by get_server_rcache.
 
+=item o getkey()
+
+Retrieves the session key as an Authen::Krb5::KeyBlock object.
+
 =back
 
 =item Authen::Krb5::Ticket

Modified: packages/libauthen-krb5-perl/trunk/Krb5.xs
===================================================================
--- packages/libauthen-krb5-perl/trunk/Krb5.xs	2005-12-03 18:05:19 UTC (rev 1557)
+++ packages/libauthen-krb5-perl/trunk/Krb5.xs	2005-12-03 18:07:30 UTC (rev 1558)
@@ -29,6 +29,7 @@
 typedef krb5_keyblock		*Authen__Krb5__Keyblock;
 typedef krb5_keytab_entry	*Authen__Krb5__KeytabEntry;
 typedef krb5_kt_cursor          *Authen__Krb5__KeytabCursor;
+typedef krb5_keyblock		*Authen__Krb5__KeyBlock;
 
 static krb5_context context = 0;
 static krb5_error_code err;
@@ -648,6 +649,60 @@
 		freed((SV *)cc);
 	}
 
+MODULE = Authen::Krb5	PACKAGE = Authen::Krb5::KeyBlock
+
+int
+length(kb)
+	Authen::Krb5::KeyBlock kb
+
+	CODE:
+	RETVAL = kb->length;
+
+	OUTPUT:
+	RETVAL
+
+void
+contents(kb)
+	Authen::Krb5::KeyBlock kb
+
+	PPCODE:
+	/* sv_2mortal here causes 'Attempt to free unreferenced scalar' later */
+	XPUSHs(newSVpvn((char*)(kb->contents), kb->length));
+
+int
+enctype(kb)
+	Authen::Krb5::KeyBlock kb
+
+	CODE:
+	RETVAL = (int)kb->enctype;
+
+	OUTPUT:
+	RETVAL
+
+void
+enctype_string(kb)
+	Authen::Krb5::KeyBlock kb
+
+	PREINIT:
+	char buf[256];
+
+	PPCODE:
+	err = krb5_enctype_to_string(kb->enctype, buf, 255);
+	if (err) {
+		XSRETURN_UNDEF;
+	}
+	XPUSHs(newSVpv(buf, 0));
+
+void
+DESTROY(kb)
+	Authen::Krb5::KeyBlock kb
+
+	CODE:
+	if (kb && should_free((SV *)kb)) {
+		krb5_free_keyblock(context,kb);
+		freed((SV *)kb);
+	}
+
 MODULE = Authen::Krb5	PACKAGE = Authen::Krb5::AuthContext
 
 Authen::Krb5::AuthContext
@@ -752,6 +807,21 @@
 	if (err) XSRETURN_UNDEF;
 	XSRETURN_YES;
 
+Authen::Krb5::KeyBlock
+getkey(auth_context)
+	Authen::Krb5::AuthContext auth_context;
+
+	PREINIT:
+	SV *sv;
+
+	CODE:
+	err = krb5_auth_con_getkey(context, auth_context, &RETVAL);
+	if (err) XSRETURN_UNDEF;
+	can_free((SV *)RETVAL);
+
+	OUTPUT:
+	RETVAL
+
 void
 DESTROY(auth_context)
 	Authen::Krb5::AuthContext auth_context;
@@ -929,18 +999,23 @@
 	OUTPUT:
 	RETVAL
         
-char *
+SV *
 get_name(keytab)
         Authen::Krb5::Keytab keytab
 
+        PREINIT:
+        char name[MAX_KEYTAB_NAME_LEN+1];
+
         CODE:
-        char name[BUFSIZ];
-        err = krb5_kt_get_name(context, keytab, name, sizeof name - 1);
+        err = krb5_kt_get_name(context, keytab, name, MAX_KEYTAB_NAME_LEN);
 	if (err)
                 XSRETURN_UNDEF;
-        name[sizeof name - 1] = '\0';
-	ST(0) = sv_2mortal(newSVpv(name, 0));
+	RETVAL = sv_2mortal(newSVpv(name, 0));
+        can_free((SV *)RETVAL);
 
+        OUTPUT:
+        RETVAL
+
 Authen::Krb5::KeytabEntry
 next_entry(keytab, cursor)
         krb5_kt_cursor *cursor

Modified: packages/libauthen-krb5-perl/trunk/debian/changelog
===================================================================
--- packages/libauthen-krb5-perl/trunk/debian/changelog	2005-12-03 18:05:19 UTC (rev 1557)
+++ packages/libauthen-krb5-perl/trunk/debian/changelog	2005-12-03 18:07:30 UTC (rev 1558)
@@ -1,3 +1,10 @@
+libauthen-krb5-perl (1.5-1) unstable; urgency=low
+
+  * New upstream release.
+    - Add keyblock accessor functions to allow use of the session key.
+
+ --
+
 libauthen-krb5-perl (1.4-5) unstable; urgency=low
 
   * Make init_ets a no-op, since krb5_init_ets was a private symbol,

Modified: packages/libauthen-krb5-perl/trunk/typemap
===================================================================
--- packages/libauthen-krb5-perl/trunk/typemap	2005-12-03 18:05:19 UTC (rev 1557)
+++ packages/libauthen-krb5-perl/trunk/typemap	2005-12-03 18:07:30 UTC (rev 1558)
@@ -18,6 +18,7 @@
 Authen::Krb5::Address		T_PTROBJ_NU
 Authen::Krb5::Keyblock		T_PTROBJ_NU
 Authen::Krb5::KeytabEntry	T_PTROBJ_NU
+Authen::Krb5::KeyBlock		T_PTROBJ_NU
 
 struct in_addr *	T_PTROBJ_NU
 krb5_error_code		T_INT




More information about the Pkg-perl-cvs-commits mailing list