Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package age for openSUSE:Factory checked in 
at 2024-12-20 23:11:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/age (Old)
 and      /work/SRC/openSUSE:Factory/.age.new.1881 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "age"

Fri Dec 20 23:11:29 2024 rev:5 rq:1232179 version:1.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/age/age.changes  2024-08-30 13:32:58.423950481 
+0200
+++ /work/SRC/openSUSE:Factory/.age.new.1881/age.changes        2024-12-20 
23:12:27.069001358 +0100
@@ -1,0 +2,11 @@
+Wed Dec 18 17:31:35 UTC 2024 - Martin Hauke <[email protected]>
+
+- Update to version 1.2.1
+  * This release fixes a security vulnerability that could allow
+    an attacker to execute an arbitrary binary under certain
+    conditions.
+    See: 
https://github.com/FiloSottile/age/security/advisories/GHSA-32gq-x56h-299c
+  * Plugin names may now only contain alphanumeric characters or
+    the four special characters +-._.
+
+-------------------------------------------------------------------

Old:
----
  age-1.2.0.tar.gz

New:
----
  age-1.2.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ age.spec ++++++
--- /var/tmp/diff_new_pack.rQwzAD/_old  2024-12-20 23:12:27.677026432 +0100
+++ /var/tmp/diff_new_pack.rQwzAD/_new  2024-12-20 23:12:27.677026432 +0100
@@ -2,7 +2,7 @@
 # spec file for package age
 #
 # Copyright (c) 2024 SUSE LLC
-# Copyright (c) 2021, Martin Hauke <[email protected]>
+# Copyright (c) 2021-2024, Martin Hauke <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 
 Name:           age
-Version:        1.2.0
+Version:        1.2.1
 Release:        0
 Summary:        A file encryption tool
 License:        BSD-3-Clause

++++++ _service ++++++
--- /var/tmp/diff_new_pack.rQwzAD/_old  2024-12-20 23:12:27.709027752 +0100
+++ /var/tmp/diff_new_pack.rQwzAD/_new  2024-12-20 23:12:27.713027917 +0100
@@ -1,8 +1,8 @@
 <services>
-  <service mode="disabled" name="set_version">
+  <service name="set_version" mode="disabled">
     <param name="basename">age</param>
   </service>
-  <service name="go_modules" mode="disabled">
+  <service name="go_modules" mode="manual">
   </service>
 </services>
 

++++++ age-1.2.0.tar.gz -> age-1.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/age-1.2.0/README.md new/age-1.2.1/README.md
--- old/age-1.2.0/README.md     2024-06-16 16:01:06.000000000 +0200
+++ new/age-1.2.1/README.md     2024-12-18 16:01:18.000000000 +0100
@@ -157,6 +157,39 @@
 
 Help from new packagers is very welcome.
 
+### Verifying the release signatures
+
+If you download the pre-built binaries, you can check their
+[Sigsum](https://www.sigsum.org) proofs, which are like signatures with extra
+transparency: you can cryptographically verify that every proof is logged in a
+public append-only log, so you can hold the age project accountable for every
+binary release we ever produced. This is similar to what the [Go Checksum
+Database](https://go.dev/blog/module-mirror-launch) provides.
+
+```
+cat << EOF > age-sigsum-key.pub
+ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIM1WpnEswJLPzvXJDiswowy48U+G+G1kmgwUE2eaRHZG
+ssh-ed25519 
AAAAC3NzaC1lZDI1NTE5AAAAIAz2WM5CyPLqiNjk7CLl4roDXwKhQ0QExXLebukZEZFS
+EOF
+cat << EOF > sigsum-trust-policy.txt
+log 154f49976b59ff09a123675f58cb3e346e0455753c3c3b15d465dcb4f6512b0b 
https://poc.sigsum.org/jellyfish
+witness poc.sigsum.org/nisse 
1c25f8a44c635457e2e391d1efbca7d4c2951a0aef06225a881e46b98962ac6c
+witness rgdd.se/poc-witness  
28c92a5a3a054d317c86fc2eeb6a7ab2054d6217100d0be67ded5b74323c5806
+group  demo-quorum-rule all poc.sigsum.org/nisse rgdd.se/poc-witness
+quorum demo-quorum-rule
+EOF
+
+curl -JLO "https://dl.filippo.io/age/v1.2.0?for=darwin/arm64";
+curl -JLO "https://dl.filippo.io/age/v1.2.0?for=darwin/arm64&proof";
+
+go install sigsum.org/sigsum-go/cmd/[email protected]
+sigsum-verify -k age-sigsum-key.pub -p sigsum-trust-policy.txt \
+    age-v1.2.0-darwin-arm64.tar.gz.proof < age-v1.2.0-darwin-arm64.tar.gz
+```
+
+You can learn more about what's happening above in the [Sigsum
+docs](https://www.sigsum.org/getting-started/).
+
 ## Usage
 
 For the full documentation, read [the age(1) man 
page](https://filippo.io/age/age.1).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/age-1.2.0/cmd/age/testdata/plugin.txt 
new/age-1.2.1/cmd/age/testdata/plugin.txt
--- old/age-1.2.0/cmd/age/testdata/plugin.txt   2024-06-16 16:01:06.000000000 
+0200
+++ new/age-1.2.1/cmd/age/testdata/plugin.txt   2024-12-18 16:01:18.000000000 
+0100
@@ -10,6 +10,15 @@
 cmp stdout input
 ! stderr .
 
+# check that path separators are rejected
+chmod 755 age-plugin-pwn/pwn
+mkdir $TMPDIR/age-plugin-pwn
+cp age-plugin-pwn/pwn $TMPDIR/age-plugin-pwn/pwn
+! age -r age1pwn/pwn19gt89dfz input
+! age -d -i pwn-identity.txt test.age
+! age -d -j pwn/pwn test.age
+! exists pwn
+
 -- input --
 test
 -- key.txt --
@@ -18,3 +27,8 @@
 
age1test10pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8
 
s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7rc0pu8s7qj6rl8p
 -- long-key.txt --
 
AGE-PLUGIN-TEST-10PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8
 
S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7RC0PU8S7Q5U8SUD
+-- pwn-identity.txt --
+AGE-PLUGIN-PWN/PWN-19GYK4WLY
+-- age-plugin-pwn/pwn --
+#!/bin/sh
+touch "$WORK/pwn"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/age-1.2.0/cmd/age-keygen/keygen.go 
new/age-1.2.1/cmd/age-keygen/keygen.go
--- old/age-1.2.0/cmd/age-keygen/keygen.go      2024-06-16 16:01:06.000000000 
+0200
+++ new/age-1.2.1/cmd/age-keygen/keygen.go      2024-12-18 16:01:18.000000000 
+0100
@@ -158,5 +158,5 @@
 }
 
 func warning(msg string) {
-       log.Printf("age-keygen: warning: " + msg)
+       log.Printf("age-keygen: warning: %s", msg)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/age-1.2.0/internal/format/format.go 
new/age-1.2.1/internal/format/format.go
--- old/age-1.2.0/internal/format/format.go     2024-06-16 16:01:06.000000000 
+0200
+++ new/age-1.2.1/internal/format/format.go     2024-12-18 16:01:18.000000000 
+0100
@@ -201,7 +201,7 @@
                b, err := DecodeString(strings.TrimSuffix(string(line), "\n"))
                if err != nil {
                        if bytes.HasPrefix(line, footerPrefix) || 
bytes.HasPrefix(line, stanzaPrefix) {
-                               return nil, fmt.Errorf("malformed body line %q: 
stanza ended without a short line\nNote: this might be a file encrypted with an 
old beta version of age or rage. Use age v1.0.0-beta6 or rage to decrypt it.", 
line)
+                               return nil, fmt.Errorf("malformed body line %q: 
stanza ended without a short line\nnote: this might be a file encrypted with an 
old beta version of age or rage; use age v1.0.0-beta6 or rage to decrypt it", 
line)
                        }
                        return nil, errorf("malformed body line %q: %v", line, 
err)
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/age-1.2.0/internal/stream/stream.go 
new/age-1.2.1/internal/stream/stream.go
--- old/age-1.2.0/internal/stream/stream.go     2024-06-16 16:01:06.000000000 
+0200
+++ new/age-1.2.1/internal/stream/stream.go     2024-12-18 16:01:18.000000000 
+0100
@@ -12,7 +12,6 @@
        "io"
 
        "golang.org/x/crypto/chacha20poly1305"
-       "golang.org/x/crypto/poly1305"
 )
 
 const ChunkSize = 64 * 1024
@@ -29,7 +28,7 @@
 }
 
 const (
-       encChunkSize  = ChunkSize + poly1305.TagSize
+       encChunkSize  = ChunkSize + chacha20poly1305.Overhead
        lastChunkFlag = 0x01
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/age-1.2.0/plugin/client.go 
new/age-1.2.1/plugin/client.go
--- old/age-1.2.0/plugin/client.go      2024-06-16 16:01:06.000000000 +0200
+++ new/age-1.2.1/plugin/client.go      2024-12-18 16:01:18.000000000 +0100
@@ -9,13 +9,13 @@
 
 import (
        "bufio"
-       "bytes"
        "fmt"
        "io"
        "math/rand"
        "os"
        "path/filepath"
        "strconv"
+       "strings"
        "time"
 
        exec "golang.org/x/sys/execabs"
@@ -179,6 +179,9 @@
 
 func NewIdentityWithoutData(name string, ui *ClientUI) (*Identity, error) {
        s := EncodeIdentity(name, nil)
+       if s == "" {
+               return nil, fmt.Errorf("invalid plugin name: %q", name)
+       }
        return &Identity{
                name: name, encoding: s, ui: ui,
        }, nil
@@ -382,7 +385,6 @@
        cmd       *exec.Cmd
        io.Reader // stdout
        io.Writer // stdin
-       stderr    bytes.Buffer
        close     func()
 }
 
@@ -392,6 +394,8 @@
        path := "age-plugin-" + name
        if testOnlyPluginPath != "" {
                path = filepath.Join(testOnlyPluginPath, path)
+       } else if strings.ContainsRune(name, os.PathSeparator) {
+               return nil, fmt.Errorf("invalid plugin name: %q", name)
        }
        cmd := exec.Command(path, "--age-plugin="+protocol)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/age-1.2.0/plugin/encode.go 
new/age-1.2.1/plugin/encode.go
--- old/age-1.2.0/plugin/encode.go      2024-06-16 16:01:06.000000000 +0200
+++ new/age-1.2.1/plugin/encode.go      2024-12-18 16:01:18.000000000 +0100
@@ -14,6 +14,9 @@
 // EncodeIdentity encodes a plugin identity string for a plugin with the given
 // name. If the name is invalid, it returns an empty string.
 func EncodeIdentity(name string, data []byte) string {
+       if !validPluginName(name) {
+               return ""
+       }
        s, _ := bech32.Encode("AGE-PLUGIN-"+strings.ToUpper(name)+"-", data)
        return s
 }
@@ -30,12 +33,18 @@
        }
        name = strings.TrimSuffix(strings.TrimPrefix(hrp, "AGE-PLUGIN-"), "-")
        name = strings.ToLower(name)
+       if !validPluginName(name) {
+               return "", nil, fmt.Errorf("invalid plugin name: %q", name)
+       }
        return name, data, nil
 }
 
 // EncodeRecipient encodes a plugin recipient string for a plugin with the 
given
 // name. If the name is invalid, it returns an empty string.
 func EncodeRecipient(name string, data []byte) string {
+       if !validPluginName(name) {
+               return ""
+       }
        s, _ := bech32.Encode("age1"+strings.ToLower(name), data)
        return s
 }
@@ -51,5 +60,21 @@
                return "", nil, fmt.Errorf("not a plugin recipient: %v", err)
        }
        name = strings.TrimPrefix(hrp, "age1")
+       if !validPluginName(name) {
+               return "", nil, fmt.Errorf("invalid plugin name: %q", name)
+       }
        return name, data, nil
 }
+
+func validPluginName(name string) bool {
+       if name == "" {
+               return false
+       }
+       allowed := 
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-._"
+       for _, r := range name {
+               if !strings.ContainsRune(allowed, r) {
+                       return false
+               }
+       }
+       return true
+}

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/golang.org/x/crypto/poly1305/poly1305_compat.go 
new/vendor/golang.org/x/crypto/poly1305/poly1305_compat.go
--- old/vendor/golang.org/x/crypto/poly1305/poly1305_compat.go  2024-07-08 
13:08:39.979525795 +0200
+++ new/vendor/golang.org/x/crypto/poly1305/poly1305_compat.go  1970-01-01 
01:00:00.000000000 +0100
@@ -1,91 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package poly1305 implements Poly1305 one-time message authentication code as
-// specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
-//
-// Poly1305 is a fast, one-time authentication function. It is infeasible for 
an
-// attacker to generate an authenticator for a message without the key. 
However, a
-// key must only be used for a single message. Authenticating two different
-// messages with the same key allows an attacker to forge authenticators for 
other
-// messages with the same key.
-//
-// Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES 
was
-// used with a fixed key in order to generate one-time keys from an nonce.
-// However, in this package AES isn't used and the one-time key is specified
-// directly.
-//
-// Deprecated: Poly1305 as implemented by this package is a cryptographic
-// building block that is not safe for general purpose use.
-// For encryption, use the full ChaCha20-Poly1305 construction implemented by
-// golang.org/x/crypto/chacha20poly1305. For authentication, use a general
-// purpose MAC such as HMAC implemented by crypto/hmac.
-package poly1305 // import "golang.org/x/crypto/poly1305"
-
-import "golang.org/x/crypto/internal/poly1305"
-
-// TagSize is the size, in bytes, of a poly1305 authenticator.
-//
-// For use with golang.org/x/crypto/chacha20poly1305, chacha20poly1305.Overhead
-// can be used instead.
-const TagSize = 16
-
-// Sum generates an authenticator for msg using a one-time key and puts the
-// 16-byte result into out. Authenticating two different messages with the same
-// key allows an attacker to forge messages at will.
-func Sum(out *[16]byte, m []byte, key *[32]byte) {
-       poly1305.Sum(out, m, key)
-}
-
-// Verify returns true if mac is a valid authenticator for m with the given 
key.
-func Verify(mac *[16]byte, m []byte, key *[32]byte) bool {
-       return poly1305.Verify(mac, m, key)
-}
-
-// New returns a new MAC computing an authentication
-// tag of all data written to it with the given key.
-// This allows writing the message progressively instead
-// of passing it as a single slice. Common users should use
-// the Sum function instead.
-//
-// The key must be unique for each message, as authenticating
-// two different messages with the same key allows an attacker
-// to forge messages at will.
-func New(key *[32]byte) *MAC {
-       return &MAC{mac: poly1305.New(key)}
-}
-
-// MAC is an io.Writer computing an authentication tag
-// of the data written to it.
-//
-// MAC cannot be used like common hash.Hash implementations,
-// because using a poly1305 key twice breaks its security.
-// Therefore writing data to a running MAC after calling
-// Sum or Verify causes it to panic.
-type MAC struct {
-       mac *poly1305.MAC
-}
-
-// Size returns the number of bytes Sum will return.
-func (h *MAC) Size() int { return TagSize }
-
-// Write adds more data to the running message authentication code.
-// It never returns an error.
-//
-// It must not be called after the first call of Sum or Verify.
-func (h *MAC) Write(p []byte) (n int, err error) {
-       return h.mac.Write(p)
-}
-
-// Sum computes the authenticator of all data written to the
-// message authentication code.
-func (h *MAC) Sum(b []byte) []byte {
-       return h.mac.Sum(b)
-}
-
-// Verify returns whether the authenticator of all data written to
-// the message authentication code matches the expected value.
-func (h *MAC) Verify(expected []byte) bool {
-       return h.mac.Verify(expected)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2024-07-08 13:08:40.096194898 +0200
+++ new/vendor/modules.txt      2024-12-18 18:31:04.000000000 +0100
@@ -29,7 +29,6 @@
 golang.org/x/crypto/internal/alias
 golang.org/x/crypto/internal/poly1305
 golang.org/x/crypto/pbkdf2
-golang.org/x/crypto/poly1305
 golang.org/x/crypto/scrypt
 golang.org/x/crypto/ssh
 golang.org/x/crypto/ssh/internal/bcrypt_pbkdf

Reply via email to