Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sops for openSUSE:Factory checked in 
at 2026-03-18 16:51:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sops (Old)
 and      /work/SRC/openSUSE:Factory/.sops.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sops"

Wed Mar 18 16:51:01 2026 rev:16 rq:1340838 version:3.12.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/sops/sops.changes        2026-02-25 
21:21:59.986393319 +0100
+++ /work/SRC/openSUSE:Factory/.sops.new.8177/sops.changes      2026-03-18 
16:52:46.602695167 +0100
@@ -1,0 +2,28 @@
+Wed Mar 18 07:05:38 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 3.12.2:
+  * Set version to 3.12.2.
+  * Add 3.12.2 changelog entry.
+  * Revert "Merge pull request #1697 from onjen/fix-1142"
+  * build(deps): Bump tempfile in /functional-tests in the rust
+    group
+  * build(deps): Bump the ci group with 4 updates
+  * Delete temporary file on termination.
+  * At least on Linux, you need to press Enter.
+  * Refactor loop.
+  * Uniformly check file before encrypting.
+  * build(deps): Bump the ci group with 4 updates
+  * fix: handle mac only encrypted flag in global
+  * build(deps): Bump github.com/docker/cli
+  * build(deps): Bump tempfile in /functional-tests in the rust
+    group
+  * build(deps): Bump the ci group with 4 updates
+  * build(deps): Bump go.opentelemetry.io/otel/sdk from 1.39.0 to
+    1.40.0
+  * build(deps): Bump github.com/cloudflare/circl from 1.6.1 to
+    1.6.3
+  * build(deps): Bump the ci group with 2 updates
+  * build(deps): Bump the go group with 6 updates
+  * Rearrange CI steps; disable setup-go's caching.
+
+-------------------------------------------------------------------

Old:
----
  sops-3.12.1.obscpio

New:
----
  sops-3.12.2.obscpio

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

Other differences:
------------------
++++++ sops.spec ++++++
--- /var/tmp/diff_new_pack.QNOA2x/_old  2026-03-18 16:52:48.974794228 +0100
+++ /var/tmp/diff_new_pack.QNOA2x/_new  2026-03-18 16:52:48.990794896 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           sops
-Version:        3.12.1
+Version:        3.12.2
 Release:        0
 Summary:        Simple and flexible tool for managing secrets
 License:        MPL-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.QNOA2x/_old  2026-03-18 16:52:49.346809763 +0100
+++ /var/tmp/diff_new_pack.QNOA2x/_new  2026-03-18 16:52:49.390811601 +0100
@@ -3,7 +3,7 @@
    <param name="url">https://github.com/mozilla/sops</param>
    <param name="scm">git</param>
    <param name="exclude">.git</param>
-   <param name="revision">v3.12.1</param>
+   <param name="revision">v3.12.2</param>
    <param name="versionformat">@PARENT_TAG@</param>
    <param name="versionrewrite-pattern">v(.*)</param>
    <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.QNOA2x/_old  2026-03-18 16:52:49.630821624 +0100
+++ /var/tmp/diff_new_pack.QNOA2x/_new  2026-03-18 16:52:49.662822960 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/mozilla/sops</param>
-              <param 
name="changesrevision">af0168d8d5c5aade4dc5ec0d1bfc03e2fdd5635b</param></service></servicedata>
+              <param 
name="changesrevision">4f2cc164d406bec9d279d865d09976811ed35002</param></service></servicedata>
 (No newline at EOF)
 

++++++ sops-3.12.1.obscpio -> sops-3.12.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/CHANGELOG.md new/sops-3.12.2/CHANGELOG.md
--- old/sops-3.12.1/CHANGELOG.md        2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/CHANGELOG.md        2026-03-18 06:38:25.000000000 +0100
@@ -1,5 +1,36 @@
 # Changelog
 
+## 3.12.2
+
+Improvements:
+
+* Dependency updates ([#2085](https://github.com/getsops/sops/pull/2085),
+  [#2087](https://github.com/getsops/sops/pull/2087), 
[#2089](https://github.com/getsops/sops/pull/2089),
+  [#2095](https://github.com/getsops/sops/pull/2095)).
+
+Bugfixes:
+
+* GCP: Revert the fix introduced in 3.12.0 that sets quota project to API
+  project in GCP KMS. This change unintentionally resulted in requiring
+  more permissions for GCP users. The original issue will be addressed in
+  another way in a future release 
([#2099](https://github.com/getsops/sops/pull/2099)).
+* Ensure to delete temporary file and directory when editing in more
+  situations, like when user presses Ctrl+C or SOPS receives a SIGTERM
+  ([#2104](https://github.com/getsops/sops/pull/2104)).
+* Fix message that you need to enter (and not any key) after SOPS rejects
+  an edited file ([#2098](https://github.com/getsops/sops/pull/2098)).
+* Reject files with ``sops`` keys when editing files 
([#2098](https://github.com/getsops/sops/pull/2098)).
+* Fix handling of ``--mac-only-encrypted`` option in subcommands 
([#2100](https://github.com/getsops/sops/pull/2100)).
+
+Project changes:
+
+* CI dependency updates ([#2084](https://github.com/getsops/sops/pull/2084),
+  [#2091](https://github.com/getsops/sops/pull/2091), 
[#2101](https://github.com/getsops/sops/pull/2101),
+  [#2106](https://github.com/getsops/sops/pull/2106)).
+* Rust dependency updates for functional tests 
([#2090](https://github.com/getsops/sops/pull/2090),
+  [#2105](https://github.com/getsops/sops/pull/2105)).
+* Improve CI workflows ([#2081](https://github.com/getsops/sops/pull/2081)).
+
 ## 3.12.1
 
 This is a re-release of 3.12.0 with no code changes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/cmd/sops/edit.go 
new/sops-3.12.2/cmd/sops/edit.go
--- old/sops-3.12.1/cmd/sops/edit.go    2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/cmd/sops/edit.go    2026-03-18 06:38:25.000000000 +0100
@@ -3,12 +3,15 @@
 import (
        "bufio"
        "bytes"
+       "context"
        "crypto/sha256"
        "fmt"
        "io"
        "os"
+       "os/signal"
        "path/filepath"
        "strings"
+       "syscall"
 
        "github.com/getsops/sops/v3"
        "github.com/getsops/sops/v3/cmd/sops/codes"
@@ -39,6 +42,7 @@
        TmpFileName    string
        OriginalHash   []byte
        InputStore     sops.Store
+       OutputStore    common.Store
        ShowMasterKeys bool
        Tree           *sops.Tree
 }
@@ -95,6 +99,24 @@
        return editTree(opts, tree, dataKey)
 }
 
+type cancelError struct{}
+
+func (err *cancelError) Error() string {
+       return "User canceled operation"
+}
+
+type editTreeResult struct {
+       value []byte
+       err   error
+}
+
+func createError(err error) editTreeResult {
+       return editTreeResult{
+               value: nil,
+               err:   err,
+       }
+}
+
 func editTree(opts editOpts, tree *sops.Tree, dataKey []byte) ([]byte, error) {
        // Create temporary file for editing
        tmpdir, err := os.MkdirTemp("", "")
@@ -116,25 +138,50 @@
 
        tmpfileName := tmpfile.Name()
 
+       // Catch when the user presses Ctrl+C, or kills SOPS.
+       ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, 
syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL)
+       defer stop()
+
+       result := make(chan editTreeResult, 1)
+
+       // This goroutine handles signals that exit SOPS, that usually lead to 
termination
+       // before editTree() can clean up the temporary directory and file.
+       go func() {
+               <-ctx.Done()
+               result <- createError(&cancelError{})
+       }()
+
+       // This goroutine handles regular execution of editing.
+       go func() {
+               result <- editTreeImpl(tmpfile, tmpfileName, opts, tree, 
dataKey)
+       }()
+
+       // Wait until the first result shows up (either an exit is requested, 
or editTreeImpl returns).
+       res := <-result
+       return res.value, res.err
+}
+
+func editTreeImpl(tmpfile *os.File, tmpfileName string, opts editOpts, tree 
*sops.Tree, dataKey []byte) editTreeResult {
        // Write to temporary file
        var out []byte
+       var err error
        if opts.ShowMasterKeys {
                out, err = opts.OutputStore.EmitEncryptedFile(*tree)
        } else {
                out, err = opts.OutputStore.EmitPlainFile(tree.Branches)
        }
        if err != nil {
-               return nil, common.NewExitError(fmt.Sprintf("Could not marshal 
tree: %s", err), codes.ErrorDumpingTree)
+               return createError(common.NewExitError(fmt.Sprintf("Could not 
marshal tree: %s", err), codes.ErrorDumpingTree))
        }
        _, err = tmpfile.Write(out)
        if err != nil {
-               return nil, common.NewExitError(fmt.Sprintf("Could not write 
output file: %s", err), codes.CouldNotWriteOutputFile)
+               return createError(common.NewExitError(fmt.Sprintf("Could not 
write output file: %s", err), codes.CouldNotWriteOutputFile))
        }
 
        // Compute file hash to detect if the file has been edited
        origHash, err := hashFile(tmpfileName)
        if err != nil {
-               return nil, common.NewExitError(fmt.Sprintf("Could not hash 
file: %s", err), codes.CouldNotReadInputFile)
+               return createError(common.NewExitError(fmt.Sprintf("Could not 
hash file: %s", err), codes.CouldNotReadInputFile))
        }
 
        // Close the temporary file, so that an editor can open it.
@@ -142,15 +189,19 @@
        // open a file on Windows due to the Go standard library not opening
        // files with shared delete access.
        if err := tmpfile.Close(); err != nil {
-               return nil, err
+               return createError(err)
        }
 
        // Let the user edit the file
        err = runEditorUntilOk(runEditorUntilOkOpts{
-               InputStore: opts.InputStore, OriginalHash: origHash, 
TmpFileName: tmpfileName,
-               ShowMasterKeys: opts.ShowMasterKeys, Tree: tree})
+               InputStore:     opts.InputStore,
+               OutputStore:    opts.OutputStore,
+               OriginalHash:   origHash,
+               TmpFileName:    tmpfileName,
+               ShowMasterKeys: opts.ShowMasterKeys,
+               Tree:           tree})
        if err != nil {
-               return nil, err
+               return createError(err)
        }
 
        // Encrypt the file
@@ -158,15 +209,24 @@
                DataKey: dataKey, Tree: tree, Cipher: opts.Cipher,
        })
        if err != nil {
-               return nil, err
+               return createError(err)
        }
 
        // Output the file
        encryptedFile, err := opts.OutputStore.EmitEncryptedFile(*tree)
        if err != nil {
-               return nil, common.NewExitError(fmt.Sprintf("Could not marshal 
tree: %s", err), codes.ErrorDumpingTree)
+               return createError(common.NewExitError(fmt.Sprintf("Could not 
marshal tree: %s", err), codes.ErrorDumpingTree))
+       }
+       return editTreeResult{
+               value: encryptedFile,
+               err:   nil,
        }
-       return encryptedFile, nil
+}
+
+const pressKeyMsg = "Press enter to return to the editor, or Ctrl+C to exit."
+
+func waitForKeyPress() {
+       bufio.NewReader(os.Stdin).ReadByte()
 }
 
 func runEditorUntilOk(opts runEditorUntilOkOpts) error {
@@ -191,10 +251,8 @@
                        log.WithField(
                                "error",
                                err,
-                       ).Errorf("Could not load tree, probably due to invalid 
" +
-                               "syntax. Press a key to return to the editor, 
or Ctrl+C to " +
-                               "exit.")
-                       bufio.NewReader(os.Stdin).ReadByte()
+                       ).Errorf("Could not load tree, probably due to invalid 
syntax. " + pressKeyMsg)
+                       waitForKeyPress()
                        continue
                }
                if opts.ShowMasterKeys {
@@ -205,14 +263,22 @@
                                log.WithField(
                                        "error",
                                        err,
-                               ).Errorf("SOPS metadata is invalid. Press a key 
to " +
-                                       "return to the editor, or Ctrl+C to 
exit.")
-                               bufio.NewReader(os.Stdin).ReadByte()
+                               ).Errorf("SOPS metadata is invalid. " + 
pressKeyMsg)
+                               waitForKeyPress()
                                continue
                        }
                        // Replace the whole tree, because otherwise 
newBranches would
                        // contain the SOPS metadata
                        opts.Tree = &t
+               } else {
+                       if userErr, _ := 
validateFileForEncryption(opts.OutputStore, newBranches); userErr != nil {
+                               log.WithField(
+                                       "error",
+                                       userErr.UserError(),
+                               ).Errorf("Tree not valid for encryption. " + 
pressKeyMsg)
+                               waitForKeyPress()
+                               continue
+                       }
                }
                opts.Tree.Branches = newBranches
                needVersionUpdated, err := 
version.AIsNewerThanB(version.Version, opts.Tree.Metadata.Version)
@@ -223,10 +289,8 @@
                        opts.Tree.Metadata.Version = version.Version
                }
                if opts.Tree.Metadata.MasterKeyCount() == 0 {
-                       log.Error("No master keys were provided, so sops can't 
" +
-                               "encrypt the file. Press a key to return to the 
editor, or " +
-                               "Ctrl+C to exit.")
-                       bufio.NewReader(os.Stdin).ReadByte()
+                       log.Error("No master keys were provided, so sops can't 
encrypt the file. " + pressKeyMsg)
+                       waitForKeyPress()
                        continue
                }
                break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/cmd/sops/encrypt.go 
new/sops-3.12.2/cmd/sops/encrypt.go
--- old/sops-3.12.1/cmd/sops/encrypt.go 2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/cmd/sops/encrypt.go 2026-03-18 06:38:25.000000000 +0100
@@ -52,15 +52,28 @@
                "encrypt files that already contain such an entry.\n\n" +
                "If this is an unencrypted file, rename the '" + 
stores.SopsMetadataKey + "' entry.\n\n" +
                "If this is an encrypted file and you want to edit it, use the 
" +
-               "editor mode, for example: `sops my_file.yaml`"
+               "editor mode, for example: `sops edit my_file.yaml`"
        return wordwrap.WrapString(message, 75)
 }
 
-func ensureNoMetadata(opts encryptOpts, branch sops.TreeBranch) error {
-       if opts.OutputStore.HasSopsTopLevelKey(branch) {
-               return &fileAlreadyEncryptedError{}
+type needAtLeastOneDocument struct{}
+
+func (err *needAtLeastOneDocument) Error() string {
+       return "Empty file"
+}
+
+func (err *needAtLeastOneDocument) UserError() string {
+       return "File cannot be completely empty, it must contain at least one 
document"
+}
+
+func validateFileForEncryption(outputStore sops.Store, branches 
[]sops.TreeBranch) (sops.UserError, int) {
+       if len(branches) < 1 {
+               return &needAtLeastOneDocument{}, codes.NeedAtLeastOneDocument
+       }
+       if outputStore.HasSopsTopLevelKey(branches[0]) {
+               return &fileAlreadyEncryptedError{}, codes.FileAlreadyEncrypted
        }
-       return nil
+       return nil, 0
 }
 
 func metadataFromEncryptionConfig(config encryptConfig) sops.Metadata {
@@ -96,11 +109,8 @@
        if err != nil {
                return nil, common.NewExitError(fmt.Sprintf("Error 
unmarshalling file: %s", err), codes.CouldNotReadInputFile)
        }
-       if len(branches) < 1 {
-               return nil, common.NewExitError("File cannot be completely 
empty, it must contain at least one document", codes.NeedAtLeastOneDocument)
-       }
-       if err := ensureNoMetadata(opts, branches[0]); err != nil {
-               return nil, common.NewExitError(err, codes.FileAlreadyEncrypted)
+       if err, code := validateFileForEncryption(opts.OutputStore, branches); 
err != nil {
+               return nil, common.NewExitError(err, code)
        }
        path, err := filepath.Abs(opts.InputPath)
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/cmd/sops/main.go 
new/sops-3.12.2/cmd/sops/main.go
--- old/sops-3.12.1/cmd/sops/main.go    2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/cmd/sops/main.go    2026-03-18 06:38:25.000000000 +0100
@@ -2116,7 +2116,7 @@
        unencryptedRegex := c.String("unencrypted-regex")
        encryptedCommentRegex := c.String("encrypted-comment-regex")
        unencryptedCommentRegex := c.String("unencrypted-comment-regex")
-       macOnlyEncrypted := c.Bool("mac-only-encrypted")
+       macOnlyEncrypted := c.GlobalBool("mac-only-encrypted")
        var err error
        if optionalConfig == nil {
                optionalConfig, err = loadConfig(c, fileName, nil)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/cmd/sops/set.go 
new/sops-3.12.2/cmd/sops/set.go
--- old/sops-3.12.1/cmd/sops/set.go     2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/cmd/sops/set.go     2026-03-18 06:38:25.000000000 +0100
@@ -51,6 +51,10 @@
        var changed bool
        tree.Branches[0], changed = tree.Branches[0].Set(opts.TreePath, 
opts.Value)
 
+       if err, code := validateFileForEncryption(opts.OutputStore, 
tree.Branches); err != nil {
+               return nil, false, common.NewExitError(err, code)
+       }
+
        err = common.EncryptTree(common.EncryptTreeOpts{
                DataKey: dataKey, Tree: tree, Cipher: opts.Cipher,
        })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/functional-tests/Cargo.lock 
new/sops-3.12.2/functional-tests/Cargo.lock
--- old/sops-3.12.1/functional-tests/Cargo.lock 2026-02-22 08:18:33.000000000 
+0100
+++ new/sops-3.12.2/functional-tests/Cargo.lock 2026-03-18 06:38:25.000000000 
+0100
@@ -90,15 +90,15 @@
 
 [[package]]
 name = "libc"
-version = "0.2.178"
+version = "0.2.182"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
+checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.11.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
+checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
 
 [[package]]
 name = "memchr"
@@ -132,9 +132,9 @@
 
 [[package]]
 name = "rustix"
-version = "1.1.3"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
+checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
 dependencies = [
  "bitflags",
  "errno",
@@ -217,9 +217,9 @@
 
 [[package]]
 name = "tempfile"
-version = "3.25.0"
+version = "3.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1"
+checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
 dependencies = [
  "fastrand",
  "getrandom",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/functional-tests/Cargo.toml 
new/sops-3.12.2/functional-tests/Cargo.toml
--- old/sops-3.12.1/functional-tests/Cargo.toml 2026-02-22 08:18:33.000000000 
+0100
+++ new/sops-3.12.2/functional-tests/Cargo.toml 2026-03-18 06:38:25.000000000 
+0100
@@ -5,7 +5,7 @@
 authors = ["Adrian Utrilla <[email protected]>"]
 
 [dependencies]
-tempfile = "3.25.0"
+tempfile = "3.27.0"
 serde = "1.0"
 serde_json = "1.0.149"
 serde_yaml = "0.9.34"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/gcpkms/keysource.go 
new/sops-3.12.2/gcpkms/keysource.go
--- old/sops-3.12.1/gcpkms/keysource.go 2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/gcpkms/keysource.go 2026-03-18 06:38:25.000000000 +0100
@@ -280,14 +280,13 @@
 // It returns an error if the ResourceID is invalid, or if the setup of the
 // client fails.
 func (key *MasterKey) newKMSClient(ctx context.Context) 
(*kms.KeyManagementClient, error) {
-       re := 
regexp.MustCompile(`^projects/(?P<project>[^/]+)/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$`)
+       re := 
regexp.MustCompile(`^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$`)
        matches := re.FindStringSubmatch(key.ResourceID)
        if matches == nil {
                return nil, fmt.Errorf("no valid resource ID found in %q", 
key.ResourceID)
        }
 
        var opts []option.ClientOption
-       opts = append(opts, option.WithQuotaProject(matches[1]))
        switch {
        case key.tokenSource != nil:
                opts = append(opts, option.WithTokenSource(key.tokenSource))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/go.mod new/sops-3.12.2/go.mod
--- old/sops-3.12.1/go.mod      2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/go.mod      2026-03-18 06:38:25.000000000 +0100
@@ -3,7 +3,7 @@
 go 1.24.0
 
 require (
-       cloud.google.com/go/kms v1.25.0
+       cloud.google.com/go/kms v1.26.0
        cloud.google.com/go/storage v1.60.0
        filippo.io/age v1.3.1
        github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0
@@ -11,10 +11,10 @@
        github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.4.0
        github.com/ProtonMail/go-crypto v1.3.0
        github.com/aws/aws-sdk-go-v2 v1.41.1
-       github.com/aws/aws-sdk-go-v2/config v1.32.7
-       github.com/aws/aws-sdk-go-v2/credentials v1.19.7
-       github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.0
-       github.com/aws/aws-sdk-go-v2/service/kms v1.49.5
+       github.com/aws/aws-sdk-go-v2/config v1.32.9
+       github.com/aws/aws-sdk-go-v2/credentials v1.19.9
+       github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.2
+       github.com/aws/aws-sdk-go-v2/service/kms v1.50.0
        github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0
        github.com/aws/aws-sdk-go-v2/service/sts v1.41.6
        github.com/blang/semver v3.5.1+incompatible
@@ -40,7 +40,7 @@
        golang.org/x/oauth2 v0.35.0
        golang.org/x/sys v0.41.0
        golang.org/x/term v0.40.0
-       google.golang.org/api v0.266.0
+       google.golang.org/api v0.267.0
        google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260203192932-546029d2fa20
        google.golang.org/grpc v1.79.1
        google.golang.org/protobuf v1.36.11
@@ -79,19 +79,21 @@
        github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17 // 
indirect
        github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17 // 
indirect
        github.com/aws/aws-sdk-go-v2/service/signin v1.0.5 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.30.9 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.30.10 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.14 // indirect
        github.com/aws/smithy-go v1.24.0 // indirect
        github.com/cenkalti/backoff/v4 v4.3.0 // indirect
        github.com/cespare/xxhash/v2 v2.3.0 // indirect
-       github.com/cloudflare/circl v1.6.1 // indirect
+       github.com/cloudflare/circl v1.6.3 // indirect
        github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 // indirect
        github.com/containerd/continuity v0.4.5 // indirect
+       github.com/containerd/errdefs v1.0.0 // indirect
+       github.com/containerd/errdefs/pkg v0.3.0 // indirect
        github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
        github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // 
indirect
-       github.com/docker/cli v28.0.4+incompatible // indirect
-       github.com/docker/docker v28.0.4+incompatible // indirect
-       github.com/docker/go-connections v0.5.0 // indirect
+       github.com/distribution/reference v0.6.0 // indirect
+       github.com/docker/cli v29.2.0+incompatible // indirect
+       github.com/docker/go-connections v0.6.0 // indirect
        github.com/docker/go-units v0.5.0 // indirect
        github.com/envoyproxy/go-control-plane/envoy v1.36.0 // indirect
        github.com/envoyproxy/protoc-gen-validate v1.3.0 // indirect
@@ -101,7 +103,6 @@
        github.com/go-logr/stdr v1.2.2 // indirect
        github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
        github.com/goccy/go-yaml v1.9.8 // indirect
-       github.com/gogo/protobuf v1.3.2 // indirect
        github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
        github.com/google/s2a-go v0.1.9 // indirect
        github.com/google/uuid v1.6.0 // indirect
@@ -121,6 +122,8 @@
        github.com/mattn/go-isatty v0.0.20 // indirect
        github.com/mitchellh/mapstructure v1.5.0 // indirect
        github.com/moby/docker-image-spec v1.3.1 // indirect
+       github.com/moby/moby/api v1.53.0 // indirect
+       github.com/moby/moby/client v0.2.2 // indirect
        github.com/moby/sys/user v0.3.0 // indirect
        github.com/moby/term v0.5.2 // indirect
        github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // 
indirect
@@ -143,11 +146,11 @@
        go.opentelemetry.io/contrib/detectors/gcp v1.39.0 // indirect
        
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.63.0 // indirect
        go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 
// indirect
-       go.opentelemetry.io/otel v1.39.0 // indirect
-       go.opentelemetry.io/otel/metric v1.39.0 // indirect
-       go.opentelemetry.io/otel/sdk v1.39.0 // indirect
-       go.opentelemetry.io/otel/sdk/metric v1.39.0 // indirect
-       go.opentelemetry.io/otel/trace v1.39.0 // indirect
+       go.opentelemetry.io/otel v1.40.0 // indirect
+       go.opentelemetry.io/otel/metric v1.40.0 // indirect
+       go.opentelemetry.io/otel/sdk v1.40.0 // indirect
+       go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect
+       go.opentelemetry.io/otel/trace v1.40.0 // indirect
        golang.org/x/sync v0.19.0 // indirect
        golang.org/x/text v0.34.0 // indirect
        golang.org/x/time v0.14.0 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/go.sum new/sops-3.12.2/go.sum
--- old/sops-3.12.1/go.sum      2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/go.sum      2026-03-18 06:38:25.000000000 +0100
@@ -13,8 +13,8 @@
 cloud.google.com/go/compute/metadata v0.9.0/go.mod 
h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
 cloud.google.com/go/iam v1.5.3 h1:+vMINPiDF2ognBJ97ABAYYwRgsaqxPbQDlMnbHMjolc=
 cloud.google.com/go/iam v1.5.3/go.mod 
h1:MR3v9oLkZCTlaqljW6Eb2d3HGDGK5/bDv93jhfISFvU=
-cloud.google.com/go/kms v1.25.0 h1:gVqvGGUmz0nYCmtoxWmdc1wli2L1apgP8U4fghPGSbQ=
-cloud.google.com/go/kms v1.25.0/go.mod 
h1:XIdHkzfj0bUO3E+LvwPg+oc7s58/Ns8Nd8Sdtljihbk=
+cloud.google.com/go/kms v1.26.0 h1:cK9mN2cf+9V63D3H1f6koxTatWy39aTI/hCjz1I+adU=
+cloud.google.com/go/kms v1.26.0/go.mod 
h1:pHKOdFJm63hxBsiPkYtowZPltu9dW0MWvBa6IA4HM58=
 cloud.google.com/go/logging v1.13.1 
h1:O7LvmO0kGLaHY/gq8cV7T0dyp6zJhYAOtZPX4TF3QtY=
 cloud.google.com/go/logging v1.13.1/go.mod 
h1:XAQkfkMBxQRjQek96WLPNze7vsOmay9H5PqfsNYDqvw=
 cloud.google.com/go/longrunning v0.8.0 
h1:LiKK77J3bx5gDLi4SMViHixjD2ohlkwBi+mKA7EhfW8=
@@ -71,14 +71,14 @@
 github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod 
h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0=
 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 
h1:489krEF9xIGkOaaX3CE/Be2uWjiXrkCH6gUX+bZA/BU=
 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4/go.mod 
h1:IOAPF6oT9KCsceNTvvYMNHy0+kMF8akOjeDvPENWxp4=
-github.com/aws/aws-sdk-go-v2/config v1.32.7 
h1:vxUyWGUwmkQ2g19n7JY/9YL8MfAIl7bTesIUykECXmY=
-github.com/aws/aws-sdk-go-v2/config v1.32.7/go.mod 
h1:2/Qm5vKUU/r7Y+zUk/Ptt2MDAEKAfUtKc1+3U1Mo3oY=
-github.com/aws/aws-sdk-go-v2/credentials v1.19.7 
h1:tHK47VqqtJxOymRrNtUXN5SP/zUTvZKeLx4tH6PGQc8=
-github.com/aws/aws-sdk-go-v2/credentials v1.19.7/go.mod 
h1:qOZk8sPDrxhf+4Wf4oT2urYJrYt3RejHSzgAquYeppw=
+github.com/aws/aws-sdk-go-v2/config v1.32.9 
h1:ktda/mtAydeObvJXlHzyGpK1xcsLaP16zfUPDGoW90A=
+github.com/aws/aws-sdk-go-v2/config v1.32.9/go.mod 
h1:U+fCQ+9QKsLW786BCfEjYRj34VVTbPdsLP3CHSYXMOI=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.9 
h1:sWvTKsyrMlJGEuj/WgrwilpoJ6Xa1+KhIpGdzw7mMU8=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.9/go.mod 
h1:+J44MBhmfVY/lETFiKI+klz0Vym2aCmIjqgClMmW82w=
 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17 
h1:I0GyV8wiYrP8XpA70g1HBcQO1JlQxCMTW9npl5UbDHY=
 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.17/go.mod 
h1:tyw7BOl5bBe/oqvoIeECFJjMdzXoa/dfVz3QQ5lgHGA=
-github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.0 
h1:MpkX8EjkwuvyuX9B7+Zgk5M4URb2WQ84Y6jM81n5imw=
-github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.0/go.mod 
h1:4V9Pv5sFfMPWQF0Q0zYN6BlV/504dFGaTeogallRqQw=
+github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.2 
h1:1i1SUOTLk0TbMh7+eJYxgv1r1f47BfR69LL6yaELoI0=
+github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.2/go.mod 
h1:bo7DhmS/OyVeAJTC768nEk92YKWskqJ4gn0gB5e59qQ=
 github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 
h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U=
 github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod 
h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ=
 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 
h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik=
@@ -95,16 +95,16 @@
 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.17/go.mod 
h1:F2xxQ9TZz5gDWsclCtPQscGpP0VUOc8RqgFM3vDENmU=
 github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17 
h1:bGeHBsGZx0Dvu/eJC0Lh9adJa3M1xREcndxLNZlve2U=
 github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.17/go.mod 
h1:dcW24lbU0CzHusTE8LLHhRLI42ejmINN8Lcr22bwh/g=
-github.com/aws/aws-sdk-go-v2/service/kms v1.49.5 
h1:DKibav4XF66XSeaXcrn9GlWGHos6D/vJ4r7jsK7z5CE=
-github.com/aws/aws-sdk-go-v2/service/kms v1.49.5/go.mod 
h1:1SdcmEGUEQE1mrU2sIgeHtcMSxHuybhPvuEPANzIDfI=
+github.com/aws/aws-sdk-go-v2/service/kms v1.50.0 
h1:XSvRJBoDObL6Sn4cRmvH9wqjxjL7wf1ZDolUEyP7hw4=
+github.com/aws/aws-sdk-go-v2/service/kms v1.50.0/go.mod 
h1:1SdcmEGUEQE1mrU2sIgeHtcMSxHuybhPvuEPANzIDfI=
 github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0 
h1:oeu8VPlOre74lBA/PMhxa5vewaMIMmILM+RraSyB8KA=
 github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0/go.mod 
h1:5jggDlZ2CLQhwJBiZJb4vfk4f0GxWdEDruWKEJ1xOdo=
 github.com/aws/aws-sdk-go-v2/service/signin v1.0.5 
h1:VrhDvQib/i0lxvr3zqlUwLwJP4fpmpyD9wYG1vfSu+Y=
 github.com/aws/aws-sdk-go-v2/service/signin v1.0.5/go.mod 
h1:k029+U8SY30/3/ras4G/Fnv/b88N4mAfliNn08Dem4M=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.9 
h1:v6EiMvhEYBoHABfbGB4alOYmCIrcgyPPiBE1wZAEbqk=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.9/go.mod 
h1:yifAsgBxgJWn3ggx70A3urX2AN49Y5sJTD1UQFlfqBw=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13 
h1:gd84Omyu9JLriJVCbGApcLzVR3XtmC4ZDPcAI6Ftvds=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.13/go.mod 
h1:sTGThjphYE4Ohw8vJiRStAcu3rbjtXRsdNB0TvZ5wwo=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.10 
h1:+VTRawC4iVY58pS/lzpo0lnoa/SYNGF4/B/3/U5ro8Y=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.10/go.mod 
h1:yifAsgBxgJWn3ggx70A3urX2AN49Y5sJTD1UQFlfqBw=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.14 
h1:0jbJeuEHlwKJ9PfXtpSFc4MF+WIWORdhN1n30ITZGFM=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.14/go.mod 
h1:sTGThjphYE4Ohw8vJiRStAcu3rbjtXRsdNB0TvZ5wwo=
 github.com/aws/aws-sdk-go-v2/service/sts v1.41.6 
h1:5fFjR/ToSOzB2OQ/XqWpZBmNvmP/pJ1jOWYlFDJTjRQ=
 github.com/aws/aws-sdk-go-v2/service/sts v1.41.6/go.mod 
h1:qgFDZQSD/Kys7nJnVqYlWKnh0SSdMjAi0uSwON4wgYQ=
 github.com/aws/smithy-go v1.24.0 
h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk=
@@ -117,27 +117,31 @@
 github.com/cespare/xxhash/v2 v2.3.0 
h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
 github.com/cespare/xxhash/v2 v2.3.0/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cloudflare/circl v1.6.1 
h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0=
-github.com/cloudflare/circl v1.6.1/go.mod 
h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
+github.com/cloudflare/circl v1.6.3 
h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8=
+github.com/cloudflare/circl v1.6.3/go.mod 
h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4=
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod 
h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
 github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 
h1:6xNmx7iTtyBRev0+D/Tv1FZd4SCg8axKApyNyRsAt/w=
 github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5/go.mod 
h1:KdCmV+x/BuvyMxRnYBlmVaq4OLiKW6iRQfvC62cvdkI=
 github.com/containerd/continuity v0.4.5 
h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4=
 github.com/containerd/continuity v0.4.5/go.mod 
h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
+github.com/containerd/errdefs v1.0.0 
h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
+github.com/containerd/errdefs v1.0.0/go.mod 
h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
+github.com/containerd/errdefs/pkg v0.3.0 
h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE=
+github.com/containerd/errdefs/pkg v0.3.0/go.mod 
h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk=
 github.com/cpuguy83/go-md2man/v2 v2.0.7 
h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo=
 github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod 
h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
-github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
-github.com/creack/pty v1.1.18/go.mod 
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
+github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s=
+github.com/creack/pty v1.1.24/go.mod 
h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc 
h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/docker/cli v28.0.4+incompatible 
h1:pBJSJeNd9QeIWPjRcV91RVJihd/TXB77q1ef64XEu4A=
-github.com/docker/cli v28.0.4+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/docker v28.0.4+incompatible 
h1:JNNkBctYKurkw6FrHfKqY0nKIDf5nrbxjVBtS+cdcok=
-github.com/docker/docker v28.0.4+incompatible/go.mod 
h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/go-connections v0.5.0 
h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
-github.com/docker/go-connections v0.5.0/go.mod 
h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=
+github.com/distribution/reference v0.6.0 
h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
+github.com/distribution/reference v0.6.0/go.mod 
h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
+github.com/docker/cli v29.2.0+incompatible 
h1:9oBd9+YM7rxjZLfyMGxjraKBKE4/nVyvVfN4qNl9XRM=
+github.com/docker/cli v29.2.0+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/go-connections v0.6.0 
h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94=
+github.com/docker/go-connections v0.6.0/go.mod 
h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE=
 github.com/docker/go-units v0.5.0 
h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
 github.com/docker/go-units v0.5.0/go.mod 
h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod 
h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -180,8 +184,6 @@
 github.com/go-viper/mapstructure/v2 v2.4.0/go.mod 
h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
 github.com/goccy/go-yaml v1.9.8 h1:5gMyLUeU1/6zl+WFfR1hN7D2kf+1/eRGa7DFtToiBvQ=
 github.com/goccy/go-yaml v1.9.8/go.mod 
h1:JubOolP3gh0HpiBc4BLRD4YmjEjHAmIIB2aaXKkTfoE=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod 
h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt/v5 v5.3.0 
h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
 github.com/golang-jwt/jwt/v5 v5.3.0/go.mod 
h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod 
h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -249,8 +251,6 @@
 github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12/go.mod 
h1:TBzl5BIHNXfS9+C35ZyJaklL7mLDbgUkcgXzSLa8Tk0=
 github.com/keybase/go-keychain v0.0.1 
h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU=
 github.com/keybase/go-keychain v0.0.1/go.mod 
h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k=
-github.com/kisielk/errcheck v1.5.0/go.mod 
h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod 
h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/klauspost/compress v1.13.6/go.mod 
h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pretty v0.3.1/go.mod 
h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -276,6 +276,10 @@
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/moby/docker-image-spec v1.3.1 
h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
 github.com/moby/docker-image-spec v1.3.1/go.mod 
h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
+github.com/moby/moby/api v1.53.0 
h1:PihqG1ncw4W+8mZs69jlwGXdaYBeb5brF6BL7mPIS/w=
+github.com/moby/moby/api v1.53.0/go.mod 
h1:8mb+ReTlisw4pS6BRzCMts5M49W5M7bKt1cJy/YbAqc=
+github.com/moby/moby/client v0.2.2 
h1:Pt4hRMCAIlyjL3cr8M5TrXCwKzguebPAc2do2ur7dEM=
+github.com/moby/moby/client v0.2.2/go.mod 
h1:2EkIPVNCqR05CMIzL1mfA07t0HvVUUOl85pasRz/GmQ=
 github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo=
 github.com/moby/sys/user v0.3.0/go.mod 
h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs=
 github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ=
@@ -342,8 +346,6 @@
 github.com/xeipuuv/gojsonschema v1.2.0 
h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
 github.com/xeipuuv/gojsonschema v1.2.0/go.mod 
h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
 github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod 
h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
-github.com/yuin/goldmark v1.1.27/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod 
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 go.mongodb.org/mongo-driver v1.13.1 
h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk=
 go.mongodb.org/mongo-driver v1.13.1/go.mod 
h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo=
@@ -355,22 +357,21 @@
 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 
h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod 
h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q=
-go.opentelemetry.io/otel v1.39.0 
h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
-go.opentelemetry.io/otel v1.39.0/go.mod 
h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
+go.opentelemetry.io/otel v1.40.0 
h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms=
+go.opentelemetry.io/otel v1.40.0/go.mod 
h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g=
 go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0 
h1:5gn2urDL/FBnK8OkCfD1j3/ER79rUuTYmCvlXBKeYL8=
 go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0/go.mod 
h1:0fBG6ZJxhqByfFZDwSwpZGzJU671HkwpWaNe2t4VUPI=
-go.opentelemetry.io/otel/metric v1.39.0 
h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
-go.opentelemetry.io/otel/metric v1.39.0/go.mod 
h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
-go.opentelemetry.io/otel/sdk v1.39.0 
h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
-go.opentelemetry.io/otel/sdk v1.39.0/go.mod 
h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
-go.opentelemetry.io/otel/sdk/metric v1.39.0 
h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
-go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod 
h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
-go.opentelemetry.io/otel/trace v1.39.0 
h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
-go.opentelemetry.io/otel/trace v1.39.0/go.mod 
h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
+go.opentelemetry.io/otel/metric v1.40.0 
h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g=
+go.opentelemetry.io/otel/metric v1.40.0/go.mod 
h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc=
+go.opentelemetry.io/otel/sdk v1.40.0 
h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8=
+go.opentelemetry.io/otel/sdk v1.40.0/go.mod 
h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE=
+go.opentelemetry.io/otel/sdk/metric v1.40.0 
h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw=
+go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod 
h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg=
+go.opentelemetry.io/otel/trace v1.40.0 
h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw=
+go.opentelemetry.io/otel/trace v1.40.0/go.mod 
h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA=
 go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
 go.yaml.in/yaml/v3 v3.0.4/go.mod 
h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
@@ -381,8 +382,6 @@
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod 
h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod 
h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
 golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod 
h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -390,9 +389,7 @@
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod 
h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod 
h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod 
h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
@@ -404,8 +401,6 @@
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
 golang.org/x/sync v0.19.0/go.mod 
h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
@@ -447,18 +442,15 @@
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod 
h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod 
h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod 
h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod 
h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 
h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
 gonum.org/v1/gonum v0.16.0/go.mod 
h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.266.0 h1:hco+oNCf9y7DmLeAtHJi/uBAY7n/7XC9mZPxu1ROiyk=
-google.golang.org/api v0.266.0/go.mod 
h1:Jzc0+ZfLnyvXma3UtaTl023TdhZu6OMBP9tJ+0EmFD0=
+google.golang.org/api v0.267.0 h1:w+vfWPMPYeRs8qH1aYYsFX68jMls5acWl/jocfLomwE=
+google.golang.org/api v0.267.0/go.mod 
h1:Jzc0+ZfLnyvXma3UtaTl023TdhZu6OMBP9tJ+0EmFD0=
 google.golang.org/appengine v1.1.0/go.mod 
h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod 
h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod 
h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
@@ -494,7 +486,9 @@
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod 
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
-gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
+gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
+gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod 
h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk=
+pgregory.net/rapid v1.2.0/go.mod 
h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sops-3.12.1/version/version.go 
new/sops-3.12.2/version/version.go
--- old/sops-3.12.1/version/version.go  2026-02-22 08:18:33.000000000 +0100
+++ new/sops-3.12.2/version/version.go  2026-03-18 06:38:25.000000000 +0100
@@ -12,7 +12,7 @@
 )
 
 // Version represents the value of the current semantic version.
-var Version = "3.12.1"
+var Version = "3.12.2"
 
 // PrintVersion prints the current version of sops. If the flag
 // `--disable-version-check` is set or if the environment variable

++++++ sops.obsinfo ++++++
--- /var/tmp/diff_new_pack.QNOA2x/_old  2026-03-18 16:52:51.006879090 +0100
+++ /var/tmp/diff_new_pack.QNOA2x/_new  2026-03-18 16:52:51.046880760 +0100
@@ -1,5 +1,5 @@
 name: sops
-version: 3.12.1
-mtime: 1771744713
-commit: af0168d8d5c5aade4dc5ec0d1bfc03e2fdd5635b
+version: 3.12.2
+mtime: 1773812305
+commit: 4f2cc164d406bec9d279d865d09976811ed35002
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/sops/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.sops.new.8177/vendor.tar.gz differ: char 16, line 1

Reply via email to