Commit Graph

42 Commits

Author SHA1 Message Date
Tom Payne 7e3c54d1f9 [feat] Remove expensive and unmaintained zxcvbn-go strength checker (#3133)
Signed-off-by: Tom Payne <twpayne@gmail.com>
2025-04-20 20:47:26 +02:00
Dominik Schulz 1e05f6a618 [chore] Move set from internal to pkg (#3129)
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2025-04-19 20:29:24 +02:00
Dominik Schulz 7281ca8ab4 [chore] Migrate to golangci-lint v2 (#3104)
* [chore] Migrate to golangci-lint v2

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [chore] Fix more lint issues

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [chore] Fix more lint issue

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [chore] Fix more lint issues

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [chore] Add more package comments.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [chore] Fix golangci-lint config and the remaining checks

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Use Go 1.24

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix container builds

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix more failing tests

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix test failure

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix another len assertion

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Move location tests

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix most remaining lint issues

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Only run XDG specific tests on linux

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Attempt to address on source of flaky failures

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2025-04-17 08:05:43 +02:00
Dominik Schulz 9b72a1c76c Improve test coverage (#3077)
* [chore] Add more tests

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix most tests

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix remaining tests

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix lint issues.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix more lint issues.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix more lint issues.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* [fix] Fix the final lint issue.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2025-03-04 13:01:01 +01:00
Eng Zer Jun 7ac2990a9a [CLEANUP] Replace experimental maps and slices with stdlib (#2993)
The experimental functions are now available in the standard library
in Go 1.23 [1].

[1]: https://go.dev/doc/go1.23#new-unique-package

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2024-11-06 20:23:08 +01:00
AnomalRoil 4c2caf3e9b [FEATURE] Allow for non-interactive age setup (#2970)
* [FEATURE] Allow for non-interactive age setup

Also updates Go to Go 1.23.2 and get rid of min and max functions

Signed-off-by: Yolan Romailler <AnomalRoil@users.noreply.github.com>

* [n/a] also renaming clear for Windows

Signed-off-by: Yolan Romailler <AnomalRoil@users.noreply.github.com>

* [n/a] bumping our GHA to Go 1.23

Signed-off-by: Yolan Romailler <AnomalRoil@users.noreply.github.com>

* [n/a] make our harden runner softer

Signed-off-by: Yolan Romailler <AnomalRoil@users.noreply.github.com>

* [n/a] make our harden runner accept go.dev

Signed-off-by: Yolan Romailler <AnomalRoil@users.noreply.github.com>

* [n/a] applying code review changes

Signed-off-by: Yolan Romailler <AnomalRoil@users.noreply.github.com>

---------

Signed-off-by: Yolan Romailler <AnomalRoil@users.noreply.github.com>
2024-10-14 19:32:26 +02:00
Dominik Schulz d6669e15e5 chore: Switch to static list of linters (#2882)
* chore: Switch to static list of linters

The old approach was prone to random CI failures when a golangci-lint
was updated and did enable new linters. This approach means we will have
to update the include list from time to time but won't get random CI
failures.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* fix: Update enabled linters to be compatible with GHA

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2024-06-10 13:54:49 +02:00
Dominik Schulz 5e8545bbf0 [bugfix] Do not report findings with severity none in audit summary (#2843)
We were accidentially also reporting findings with a severity of none
as a finding in the summary. Since we report a none finding for every
secret that doesn't have a real finding this made us report all secrets.

Fixes #2835

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2024-03-28 09:06:40 +01:00
Ludovic Fernandez b8f0ff8ff2 [chore]: linting (#2840)
Signed-off-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2024-03-25 19:32:57 +01:00
Dominik Schulz 34567d93ee [bugfix] Bring back audit summary (#2820)
* [bugfix] Bring back audit summary

This PR brings back the audit summary view and displays only that by
default. This restores the old behaviour before we refactored the
audit implementation. The new view is still available with the
new --full flag.

Fixes #2816

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix tests.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix integration test

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2024-03-13 14:26:06 +01:00
Dominik Schulz 056204539f [feat] Add .gopass-audit-ignore support to ignore secrets from audits (#2822)
* [feat] Add .gopass-audit-ignore support to ignore secrets from audits

This PR adds a new exclude file that is used during gopass audit to
ignore entries from auditing. The file itself is using RE2 syntax.

Fixes #2806

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Add some documentation

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2024-03-13 14:12:38 +01:00
Yolan Romailler d56639fcd7 [CLEANUP] Migration of options to more appropriate sections (#2681)
* [CLEANUP] Moving options to the correct config section

This adds an easy migration path to our config handling, which should
allow us to migrate option names around much more easily in the future.

Any system level config or env variables options are not migrated.

This also fixes a bug in our test code, where the root mount path was
not properly set in our config, because we used "path:" instead of
"path=" to set it.

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [DOCUMENTATION] Document legacy options and their migration path

This also makes sure that legacy options aren't used in the code anymore using the docs test and its regexp

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [n/a] Removing weird spaces from changelog

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [DOCUMENTATION] Reformatting our Markdown tables properly

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [TESTING] Patching a timezone bug in tests

This is a fun one where if your Timezone isn't UTC and you are past midnight but it's not past midnight UTC, the tests would fail because you're not using the right date to validate it.

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [n/a] Fix a typo and use the correct Env variables in the doc about the custom Env variables

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [BREAKING] Custom Env options moved from GOPASS_CONFIG_CONFIG_KEY_i to GOPASS_CONFIG_KEY_i

As discussed in #2617, this actually reflects the way GIT_CONFIG works.

It also fixes a potential Panic in our codebase when IsSet was called
without any Preset config on a non-existing key.

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [CLEANUP] Patching all of the new linter complaints

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [CLEANUP] Use Go1.21 everywhere

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [n/a] Increase our Golangci timeout

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

* [n/a] code review comment and extra regression test

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>

---------

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>
2023-11-03 18:40:58 +01:00
guangwu acc80494c9 chore: remove refs to deprecated io/ioutil (#2609)
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-07-29 01:08:46 +02:00
Dominik Schulz 4b7be8f212 Fix tests and roll over updater key (#2532)
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2023-02-05 12:24:03 +01:00
Dominik Schulz ef2627601b Catch nil pointer
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2023-01-07 21:28:47 +01:00
Dominik Schulz 58774b62e5 Improve gopass audit HTML output (#2508)
* Improve gopass audit HTML output

RELEASE_NOTES=[ENHANCEMENT] Add nicer gopass audit HTML output

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix output test

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2023-01-07 08:09:43 +01:00
Dominik Schulz 932d7a1d54 Rewrite gopass audit (#2506)
* Start new auditor

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Add new files

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Rewrite gopass audit

Fixes #2504

RELEASE_NOTES=[ENHANCEMENT] Rewrite gopass audit. Add HTML and CSV
exports.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix tests

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Add template flag

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2023-01-03 21:03:42 +01:00
Dominik Schulz 858664f2ff Add audit.concurrency and debug logging (#2498)
See #1017

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2022-12-28 17:17:07 +01:00
Dominik Schulz 16c071a780 Enable golangci-lint on push and pr (#2158)
Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2022-03-24 21:58:53 +01:00
Dominik Schulz 5eceae1f86 Try gocritic (#2169)
RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2022-03-17 21:07:55 +01:00
Dominik Schulz 117db90478 Update deps (#2168)
Ran 'make upgrade' (includes gofumpt).

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2022-03-17 20:55:53 +01:00
Dominik Schulz 0eff31a8ce Enable additional golangci-lint godot checks (#2077) 2021-12-29 22:47:53 +01:00
Dominik Schulz d419b36aa5 Add --expiry flag to gopass audit (#2067)
This commit adds a new expiry flag to the gopass audit command to (only) check for the age of the secret.

Caveats:
- it can only check when the secret was last touched, not when the password was changed
- when this flag is set it will only check the age. The benefit here is that it's very fast since it doesn't need to decrypt anything. This makes this suitable to be run frequently. Even in the background.

RELEASE_NOTES=[ENHANCEMENT] Add gopass audit --expiry

Fixes #1914

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-12-28 22:56:52 +01:00
Dominik Schulz 5cae32a6f5 Cleanup backend/crypto/gpg/cli (#2069)
Fixes #1880

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-12-28 22:45:08 +01:00
Yolan Romailler 3d3c7d5b77 GCI-ing imports (#2072)
Running gci in order to make sure we have properly deterministic imports

RELEASE_NOTES=n/a

Signed-off-by: Yolan Romailler <anomalroil@users.noreply.github.com>
2021-12-28 13:59:31 +01:00
Dominik Schulz 110c20e261 [Go 1.18] Introduce type parameters (#2034)
This commit replaces some overly complex constructs with type
parameters.

Fixes #2030

RELEASE_NOTES=[ENHANCEMENT] Generics

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-12-21 10:52:42 +01:00
Dominik Schulz 5f641484ba Add documentation (#2036)
RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-11-13 21:24:32 +01:00
Dominik Schulz 906557c145 Add bytes option to the progress bar (#1958)
This commit adds the option to format the progress bar numbers as human
readable bytes.

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-07-04 13:14:17 +02:00
Dominik Schulz 08b7d56d65 Add suffix f to formating out methods (#1794)
This commit renames the existing out methods that expect
a format string to include the common f suffix and introduces
new out methods without this suffix that don't accept a
format string or variadic arguments.

Fixes #1793

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-02-15 19:38:58 +01:00
Dominik Schulz 74ea14c323 Remove colored output (#1743)
This confuses some terminals.

Also: fix setup.go condition and validate git setup.

Fixes #1464
Fixes #1467

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-01-21 10:32:25 +01:00
Dominik Schulz a0f6005276 Remove references to internal packages (#1708)
This should cut all remaining ties and allow binaries in cmd/ to be
moved out.

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-01-14 07:59:36 +01:00
Dominik Schulz ff349772ac Reduce dependencies on internal packages (#1707)
This PR moves some packages from internal to pkg to increase the
independence of binaries in cmd/ from internal packages further.

RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-01-13 18:21:09 +01:00
Dominik Schulz ddc223262e Remove MIME secrets (#1665)
RELEASE_NOTES=[CLEANUP] Remove MIME

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2021-01-02 12:47:58 +01:00
Dominik Schulz a3b0ae7be0 Improve age/ondisk (#1442)
RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-07-06 19:11:20 +02:00
Dominik Schulz 54798389cd Add zxcvbn password strength checker (#1421)
RELEASE_NOTES=[ENHANCEMENT] Add zxcvbn password strength checker

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-06-17 14:21:08 +02:00
Dominik Schulz 745200baf8 Add custom branded progress bar (#1422)
RELEASE_NOTES=[ENHANCEMENT] New progress bar

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-06-16 23:29:11 +02:00
Dominik Schulz d6c62d869e Add more tests and subtests (#1418)
RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-06-13 23:08:07 +02:00
Dominik Schulz dccfbeb011 Introduce typed MIME Secrets (#1415)
This commit introduces a new MIME-based secrets format that will
eventually replace any existing secret format.

Fixes #1310

RELEASE_NOTES=[BREAKING] New secrets format.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-06-11 16:46:05 +02:00
Dominik Schulz 8817c389d6 Ignore binary secrets during audit (#1398)
Fixes #991

RELEASE_NOTES=[ENHANCEMENT] Ignore binary secrets for audit

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-05-29 22:13:01 +02:00
Dominik Schulz 6dfbc7712a Make audit report old password (#1397)
RELEASE_NOTES=[ENHANCEMENT] Make audit report passwords not changed
since 3 Months.

Fixes #928 

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-05-29 21:37:00 +02:00
Dominik Schulz 0cfa536d28 Add debug package (#1396)
This commit adds a new debug package to gopass.
It is heavily inspired by github.com/restic/restic/internal/debug
and adapted for the gopass use case.

This change allows to further trim down the source code since the
new package doesn't propagate the debug flag in the context anymore.
As such we can now omit passing ctx in most places.

In order to ensure we don't accidentially keep passing ununsed
parameters we also introduce unparam to check for extra arguments.

RELEASE_NOTES=[ENHANCEMENT] New Debug package

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-05-29 13:47:35 +02:00
Dominik Schulz 5977752c7c Unexport more internal packages (#1380)
RELEASE_NOTES=n/a

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-05-22 21:38:08 +02:00