Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Authen-SASL for
openSUSE:Factory checked in at 2026-02-12 17:25:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Authen-SASL (Old)
and /work/SRC/openSUSE:Factory/.perl-Authen-SASL.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Authen-SASL"
Thu Feb 12 17:25:46 2026 rev:32 rq:1332515 version:2.200.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Authen-SASL/perl-Authen-SASL.changes
2025-08-25 20:37:28.198512079 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Authen-SASL.new.1977/perl-Authen-SASL.changes
2026-02-12 17:26:21.532724433 +0100
@@ -1,0 +2,12 @@
+Thu Jan 29 06:01:08 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 2.200.0 (2.2000)
+ see /usr/share/doc/packages/perl-Authen-SASL/Changes
+
+ 2.2000 2026-01-28
+ [Added]
+ - Documentation for the security layer
+ [Fixed]
+ - Several public functions missing from the API documentation
+
+-------------------------------------------------------------------
Old:
----
Authen-SASL-2.1900.tar.gz
New:
----
Authen-SASL-2.2000.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Authen-SASL.spec ++++++
--- /var/tmp/diff_new_pack.lFEX2c/_old 2026-02-12 17:26:22.052746494 +0100
+++ /var/tmp/diff_new_pack.lFEX2c/_new 2026-02-12 17:26:22.052746494 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-Authen-SASL
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,10 +18,10 @@
%define cpan_name Authen-SASL
Name: perl-Authen-SASL
-Version: 2.190.0
+Version: 2.200.0
Release: 0
-# 2.1900 -> normalize -> 2.190.0
-%define cpan_version 2.1900
+# 2.2000 -> normalize -> 2.200.0
+%define cpan_version 2.2000
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: SASL Authentication framework
URL: https://metacpan.org/release/%{cpan_name}
++++++ Authen-SASL-2.1900.tar.gz -> Authen-SASL-2.2000.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/Changes
new/Authen-SASL-2.2000/Changes
--- old/Authen-SASL-2.1900/Changes 2025-08-05 15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/Changes 2026-01-28 23:00:00.000000000 +0100
@@ -1,4 +1,10 @@
+2.2000 2026-01-28
+ [Added]
+ - Documentation for the security layer
+ [Fixed]
+ - Several public functions missing from the API documentation
+
2.1900 2025-08-05
[Fixed]
- CVE-2025-40918 (Insecure source of randomness),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/LICENSE
new/Authen-SASL-2.2000/LICENSE
--- old/Authen-SASL-2.1900/LICENSE 2025-08-05 15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/LICENSE 2026-01-28 23:00:00.000000000 +0100
@@ -1,4 +1,4 @@
-This software is copyright (c) 2025 by Graham Barr <[email protected]>.
+This software is copyright (c) 2026 by Graham Barr <[email protected]>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2025 by Graham Barr <[email protected]>.
+This software is Copyright (c) 2026 by Graham Barr <[email protected]>.
This is free software, licensed under:
@@ -272,7 +272,7 @@
--- The Perl Artistic License 1.0 ---
-This software is Copyright (c) 2025 by Graham Barr <[email protected]>.
+This software is Copyright (c) 2026 by Graham Barr <[email protected]>.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/MANIFEST
new/Authen-SASL-2.2000/MANIFEST
--- old/Authen-SASL-2.1900/MANIFEST 2025-08-05 15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/MANIFEST 2026-01-28 23:00:00.000000000 +0100
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest
v6.033.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.037
Changes
LICENSE
MANIFEST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/META.json
new/Authen-SASL-2.2000/META.json
--- old/Authen-SASL-2.1900/META.json 2025-08-05 15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/META.json 2026-01-28 23:00:00.000000000 +0100
@@ -5,7 +5,7 @@
"Erik Huelsmann <[email protected]>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 6.033, CPAN::Meta::Converter version
2.150010",
+ "generated_by" : "Dist::Zilla version 6.037, CPAN::Meta::Converter version
2.150010",
"license" : [
"perl_5"
],
@@ -48,58 +48,58 @@
"provides" : {
"Authen::SASL" : {
"file" : "lib/Authen/SASL.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::CRAM_MD5" : {
"file" : "lib/Authen/SASL/CRAM_MD5.pm",
- "version" : "2.1900",
+ "version" : "2.2000",
"x_deprecated" : 1
},
"Authen::SASL::EXTERNAL" : {
"file" : "lib/Authen/SASL/EXTERNAL.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl" : {
"file" : "lib/Authen/SASL/Perl.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl::ANONYMOUS" : {
"file" : "lib/Authen/SASL/Perl/ANONYMOUS.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl::CRAM_MD5" : {
"file" : "lib/Authen/SASL/Perl/CRAM_MD5.pm",
- "version" : "2.1900",
+ "version" : "2.2000",
"x_deprecated" : 1
},
"Authen::SASL::Perl::DIGEST_MD5" : {
"file" : "lib/Authen/SASL/Perl/DIGEST_MD5.pm",
- "version" : "2.1900",
+ "version" : "2.2000",
"x_deprecated" : 1
},
"Authen::SASL::Perl::EXTERNAL" : {
"file" : "lib/Authen/SASL/Perl/EXTERNAL.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl::GSSAPI" : {
"file" : "lib/Authen/SASL/Perl/GSSAPI.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl::LOGIN" : {
"file" : "lib/Authen/SASL/Perl/LOGIN.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl::OAUTHBEARER" : {
"file" : "lib/Authen/SASL/Perl/OAUTHBEARER.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl::PLAIN" : {
"file" : "lib/Authen/SASL/Perl/PLAIN.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
},
"Authen::SASL::Perl::XOAUTH2" : {
"file" : "lib/Authen/SASL/Perl/XOAUTH2.pm",
- "version" : "2.1900"
+ "version" : "2.2000"
}
},
"release_status" : "stable",
@@ -114,7 +114,7 @@
"web" : "https://github.com/perl-authen-sasl/perl-authen-sasl/"
}
},
- "version" : "2.1900",
+ "version" : "2.2000",
"x_contributors" : [
"Aditya Garg <[email protected]>",
"Chris Ridd <[email protected]>",
@@ -130,7 +130,7 @@
"openstrike <[email protected]>"
],
"x_generated_by_perl" : "v5.38.2",
- "x_serialization_backend" : "Cpanel::JSON::XS version 4.39",
+ "x_serialization_backend" : "Cpanel::JSON::XS version 4.40",
"x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/META.yml
new/Authen-SASL-2.2000/META.yml
--- old/Authen-SASL-2.1900/META.yml 2025-08-05 15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/META.yml 2026-01-28 23:00:00.000000000 +0100
@@ -11,7 +11,7 @@
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.033, CPAN::Meta::Converter version
2.150010'
+generated_by: 'Dist::Zilla version 6.037, CPAN::Meta::Converter version
2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -20,46 +20,46 @@
provides:
Authen::SASL:
file: lib/Authen/SASL.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::CRAM_MD5:
file: lib/Authen/SASL/CRAM_MD5.pm
- version: '2.1900'
+ version: '2.2000'
x_deprecated: 1
Authen::SASL::EXTERNAL:
file: lib/Authen/SASL/EXTERNAL.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl:
file: lib/Authen/SASL/Perl.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl::ANONYMOUS:
file: lib/Authen/SASL/Perl/ANONYMOUS.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl::CRAM_MD5:
file: lib/Authen/SASL/Perl/CRAM_MD5.pm
- version: '2.1900'
+ version: '2.2000'
x_deprecated: 1
Authen::SASL::Perl::DIGEST_MD5:
file: lib/Authen/SASL/Perl/DIGEST_MD5.pm
- version: '2.1900'
+ version: '2.2000'
x_deprecated: 1
Authen::SASL::Perl::EXTERNAL:
file: lib/Authen/SASL/Perl/EXTERNAL.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl::GSSAPI:
file: lib/Authen/SASL/Perl/GSSAPI.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl::LOGIN:
file: lib/Authen/SASL/Perl/LOGIN.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl::OAUTHBEARER:
file: lib/Authen/SASL/Perl/OAUTHBEARER.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl::PLAIN:
file: lib/Authen/SASL/Perl/PLAIN.pm
- version: '2.1900'
+ version: '2.2000'
Authen::SASL::Perl::XOAUTH2:
file: lib/Authen/SASL/Perl/XOAUTH2.pm
- version: '2.1900'
+ version: '2.2000'
recommends:
GSSAPI: '0'
requires:
@@ -70,7 +70,7 @@
bugtracker: https://github.com/perl-authen-sasl/perl-authen-sasl/issues
homepage: https://github.com/perl-authen-sasl/perl-authen-sasl/
repository: git://github.com/perl-authen-sasl/perl-authen-sasl.git
-version: '2.1900'
+version: '2.2000'
x_contributors:
- 'Aditya Garg <[email protected]>'
- 'Chris Ridd <[email protected]>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/Makefile.PL
new/Authen-SASL-2.2000/Makefile.PL
--- old/Authen-SASL-2.1900/Makefile.PL 2025-08-05 15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/Makefile.PL 2026-01-28 23:00:00.000000000 +0100
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker
v6.033.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker
v6.037
use strict;
use warnings;
@@ -26,7 +26,7 @@
"Test::Pod" => 0,
"Test::Pod::Coverage" => 0
},
- "VERSION" => "2.1900",
+ "VERSION" => "2.2000",
"test" => {
"TESTS" => "t/*.t t/negotiations/*.t t/server/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/dist.ini
new/Authen-SASL-2.2000/dist.ini
--- old/Authen-SASL-2.1900/dist.ini 2025-08-05 15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/dist.ini 2026-01-28 23:00:00.000000000 +0100
@@ -1,6 +1,6 @@
name = Authen-SASL
abstract = SASL Authentication framework
-version = 2.1900
+version = 2.2000
author = Graham Barr <[email protected]>
author = Erik Huelsmann <[email protected]>
copyright_holder = Graham Barr <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/CRAM_MD5.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/CRAM_MD5.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/CRAM_MD5.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/CRAM_MD5.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::CRAM_MD5 2.1900;
+package Authen::SASL::CRAM_MD5 2.2000;
use strict;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/EXTERNAL.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/EXTERNAL.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/EXTERNAL.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/EXTERNAL.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::EXTERNAL 2.1900;
+package Authen::SASL::EXTERNAL 2.2000;
use strict;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/ANONYMOUS.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/ANONYMOUS.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/ANONYMOUS.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/ANONYMOUS.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::Perl::ANONYMOUS 2.1900;
+package Authen::SASL::Perl::ANONYMOUS 2.2000;
use strict;
use warnings;
@@ -40,7 +40,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/CRAM_MD5.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/CRAM_MD5.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/CRAM_MD5.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/CRAM_MD5.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::Perl::CRAM_MD5 2.1900;
+package Authen::SASL::Perl::CRAM_MD5 2.2000;
use strict;
use warnings;
@@ -53,7 +53,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/DIGEST_MD5.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/DIGEST_MD5.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/DIGEST_MD5.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/DIGEST_MD5.pm 2026-01-28
23:00:00.000000000 +0100
@@ -5,7 +5,7 @@
# See http://www.ietf.org/rfc/rfc2831.txt for details
-package Authen::SASL::Perl::DIGEST_MD5 2.1900;
+package Authen::SASL::Perl::DIGEST_MD5 2.2000;
use strict;
use warnings;
@@ -756,7 +756,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/EXTERNAL.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/EXTERNAL.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/EXTERNAL.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/EXTERNAL.pm 2026-01-28
23:00:00.000000000 +0100
@@ -3,7 +3,7 @@
# is free software; you can redistribute it and/or modify it under the
# same terms as Perl itself.
-package Authen::SASL::Perl::EXTERNAL 2.1900;
+package Authen::SASL::Perl::EXTERNAL 2.2000;
use strict;
use warnings;
@@ -45,7 +45,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/GSSAPI.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/GSSAPI.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/GSSAPI.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/GSSAPI.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# All rights reserved. This program is free software; you can redistribute
# it and/or modify it under the same terms as Perl itself.
-package Authen::SASL::Perl::GSSAPI 2.1900;
+package Authen::SASL::Perl::GSSAPI 2.2000;
use strict;
use warnings;
@@ -228,7 +228,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/LOGIN.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/LOGIN.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/LOGIN.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/LOGIN.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::Perl::LOGIN 2.1900;
+package Authen::SASL::Perl::LOGIN 2.2000;
use strict;
use warnings;
@@ -137,7 +137,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/OAUTHBEARER.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/OAUTHBEARER.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/OAUTHBEARER.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/OAUTHBEARER.pm 2026-01-28
23:00:00.000000000 +0100
@@ -4,9 +4,10 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::Perl::OAUTHBEARER 2.1900;
+package Authen::SASL::Perl::OAUTHBEARER 2.2000;
use strict;
+use warnings;
use vars qw(@ISA);
use JSON::PP;
@@ -38,13 +39,24 @@
# * gs2-authzid `a=" {User} "`
#
# The second part are key value pairs containing host, port and auth as
- # described in RFC7628.
+ # described in RFC7628. Host and port are optional and can be omitted.
#
# https://datatracker.ietf.org/doc/html/rfc5801
# https://datatracker.ietf.org/doc/html/rfc7628
my $username = $self->_call('user');
+ my $host = $self->_call('host');
+ my $port = $self->_call('port');
my $token = $self->_call('pass'); # OAuth 2.0 access token
- my $auth_string = "n,a=$username,\001auth=Bearer $token\001\001";
+ my $auth_string;
+ if (defined $host && defined $port) {
+ $auth_string =
"n,a=$username,\001host=$host\001port=$port\001auth=Bearer $token\001\001";
+ } elsif (defined $host) {
+ $auth_string = "n,a=$username,\001host=$host\001auth=Bearer
$token\001\001";
+ } elsif (defined $port) {
+ $auth_string = "n,a=$username,\001port=$port\001auth=Bearer
$token\001\001";
+ } else {
+ $auth_string = "n,a=$username,\001auth=Bearer $token\001\001";
+ }
return $auth_string;
}
@@ -69,7 +81,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
@@ -79,6 +91,8 @@
mechanism => 'OAUTHBEARER',
callback => {
user => $user,
+ host => $hostname, #optional
+ port => $port, #optional
pass => $access_token
},
);
@@ -100,6 +114,14 @@
The username to be used for authentication.
+=item host
+
+The hostname to which the client will connect to. It is optional and can be
omitted.
+
+=item port
+
+The destination port that the client will connect to. It should be a decimal
positive integer string without leading zeros. It is optional and can be
omitted.
+
=item pass
The OAuth 2.0 access token to be used for authentication.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/PLAIN.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/PLAIN.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/PLAIN.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/PLAIN.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::Perl::PLAIN 2.1900;
+package Authen::SASL::Perl::PLAIN 2.2000;
use strict;
use warnings;
@@ -104,7 +104,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/XOAUTH2.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/XOAUTH2.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl/XOAUTH2.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl/XOAUTH2.pm 2026-01-28
23:00:00.000000000 +0100
@@ -4,9 +4,10 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::Perl::XOAUTH2 2.1900;
+package Authen::SASL::Perl::XOAUTH2 2.2000;
use strict;
+use warnings;
use vars qw(@ISA);
use JSON::PP;
@@ -57,7 +58,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl.pm
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl.pm 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl.pm 2026-01-28
23:00:00.000000000 +0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL::Perl 2.1900;
+package Authen::SASL::Perl 2.2000;
use strict;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL/Perl.pod
new/Authen-SASL-2.2000/lib/Authen/SASL/Perl.pod
--- old/Authen-SASL-2.1900/lib/Authen/SASL/Perl.pod 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL/Perl.pod 2026-01-28
23:00:00.000000000 +0100
@@ -10,7 +10,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL.pm
new/Authen-SASL-2.2000/lib/Authen/SASL.pm
--- old/Authen-SASL-2.1900/lib/Authen/SASL.pm 2025-08-05 15:22:13.000000000
+0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL.pm 2026-01-28 23:00:00.000000000
+0100
@@ -2,7 +2,7 @@
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
-package Authen::SASL 2.1900;
+package Authen::SASL 2.2000;
use strict;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/lib/Authen/SASL.pod
new/Authen-SASL-2.2000/lib/Authen/SASL.pod
--- old/Authen-SASL-2.1900/lib/Authen/SASL.pod 2025-08-05 15:22:13.000000000
+0200
+++ new/Authen-SASL-2.2000/lib/Authen/SASL.pod 2026-01-28 23:00:00.000000000
+0100
@@ -4,7 +4,7 @@
=head1 VERSION
-version 2.1900
+version 2.2000
=head1 SYNOPSIS
@@ -137,6 +137,29 @@
=head1 The Connection Class
+The connection class matches the capabilities of the client with those of
+the server; eg., for a client:
+
+ my $sasl->mechanisms( $mechlist );
+ my $conn = $sasl->client_new( 'smtp', 'smtp.examlpe.com', 'noplaintext
noanonymous' );
+ my $challenge = $conn->client_start
+ or die "Authentication failure:" . $conn->error;
+
+ # optionally set connection properties
+
+ while ($conn->need_step) {
+ $sock->send( $challenge )
+ or die "I/O error: $!";
+ my $response = $sock->read()
+ or die "I/O error: $!";
+ $challenge = $conn->client_step( $response );
+ die $conn->error if $conn->error;
+ }
+ if (not $conn->success()) {
+ die "Authentication failed";
+ }
+
+
=over 4
=item server_start ( CHALLENGE )
@@ -224,9 +247,73 @@
=back
+=head1 The Security Layer
+
+In addition to negotiating authentication, SASL is also capable of
+negotiating a security layer: encryption for connections that do not
+use eg. TLS for encryption. This is supported by the C<DIGEST-MD5> and
+C<GSSAPI> mechanisms, of which only GSSAPI isn't deprecated.
+
+ # optionally set connection parameters
+ $conn->property( minssf => 56 );
+ $conn->property( maxssf => 0xFFFF );
+ $conn->property( maxbuf => 0x10000 );
+ # in case of TLS:
+ $conn->property( externalssf => $tls_key_strength_in_bits );
+
+When authentication completes, the C<ssf> property indicates whether
+a security layer has been negotiated or not:
+
+ my $with_sec_layer = defined $conn->property( 'ssf' )
+ and $conn->property( 'ssf' ) > 0;
+
+
+=over 4
+
+=item encode
+
+ my $len = length( $payload );
+ my $idx = 0;
+ my $bufsize = $conn->property( 'maxbuf' );
+ while ($len > 0) {
+ my $encrypted = $conn->encode( substr( $payload, $idx, $bufsize ), $len );
+ my $output = pack('N', length($encrypted)) . $encrypted;
+ $fh->write( $output, length( $output ) );
+ $idx += $bufsize;
+ $len -= $bufsize;
+ }
+
+Encodes C<$payload>. The maximum size of the data being encoded should be taken
+from C<< $conn->property( 'maxbuf' ) >>. Payloads longer than C<maxbuf> need to
+be split across multiple encoded blocks.
+
+=item decode
+
+ my $buf = '';
+ $fh->read( $buf, 4 );
+ my $encrypted = '';
+ my $len = unpack('N', $buf );
+ $fh->read( $encrypted, $len );
+ my $payload = $conn->decode( $encrypted, $len );
+
+Decodes C<$encrypted>. The encrypted block is preseded by a 4-byte unsigned
+integer in network byte order (C<'N'>). A block of that many bytes must be
+read from the stream and fed to the C<decode> function.
+
+=item securesocket
+
+ my $sec_sock_handle = $conn->securesocket( $sock );
+
+Wraps the C<$sock> handle creating a file handle which encrypts written
+data and decrypts data being read. Wrapping a non-blocking file handle
+will fail to work correctly.
+
+=back
+
=head1 SEE ALSO
-L<Authen::SASL::Perl>, L<Authen::SASL::XS>, L<Authen::SASL::Cyrus>
+L<Authen::SASL::Perl>, L<Authen::SASL::XS>, L<Authen::SASL::Cyrus>,
+L<Authen::SASL::SCRAM>, L<Authen::SASL::Perl::NTLM>
=head1 MAINTAINER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Authen-SASL-2.1900/t/author-pod-syntax.t
new/Authen-SASL-2.2000/t/author-pod-syntax.t
--- old/Authen-SASL-2.1900/t/author-pod-syntax.t 2025-08-05
15:22:13.000000000 +0200
+++ new/Authen-SASL-2.2000/t/author-pod-syntax.t 2026-01-28
23:00:00.000000000 +0100
@@ -7,7 +7,7 @@
}
}
-# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests
use strict; use warnings;
use Test::More;
use Test::Pod 1.41;
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.lFEX2c/_old 2026-02-12 17:26:22.248754809 +0100
+++ /var/tmp/diff_new_pack.lFEX2c/_new 2026-02-12 17:26:22.252754979 +0100
@@ -1,6 +1,6 @@
-mtime: 1755894506
-commit: 2033caf2d6e537b57cbe0d4f115797febf24fb86f7b3824a083e757a8a4a9324
+mtime: 1769666469
+commit: d168cafaead8dd496f94f9d9340d2f3c2f8430bf4a688f2feebe7f2a8f4e6e76
url: https://src.opensuse.org/perl/perl-Authen-SASL.git
-revision: 2033caf2d6e537b57cbe0d4f115797febf24fb86f7b3824a083e757a8a4a9324
+revision: d168cafaead8dd496f94f9d9340d2f3c2f8430bf4a688f2feebe7f2a8f4e6e76
projectscmsync: https://src.opensuse.org/perl/_ObsPrj
++++++ build.specials.obscpio ++++++
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2026-02-08 21:42:45.000000000 +0100
@@ -0,0 +1 @@
+.osc