├── .gitlab-ci.yml
├── .gitlab
├── ci
│ ├── check-potfiles.sh
│ ├── junit-report.sh
│ ├── meson-junit-report.py
│ ├── run-tests.sh
│ └── style-check.sh
└── issue_templates
│ ├── Bug.md
│ └── Feature.md
├── COPYING
├── COPYING-DOCS
├── COPYING.LIB
├── NEWS
├── README.md
├── THANKS
├── build-aux
├── gpg_check.py
└── org.gnome.Seahorse.Devel.json
├── common
├── actions.vala
├── add-keyserver-dialog.vala
├── app-settings.vala
├── backend.vala
├── catalog.vala
├── config.vapi
├── datepicker.vala
├── deletable.vala
├── delete-operation.vala
├── export-operation.vala
├── exportable.vala
├── interaction.vala
├── item.vala
├── keyserver-dropdown.vala
├── lockable.vala
├── meson.build
├── panel-window.ui
├── panel-window.vala
├── panel.vala
├── passphrase-prompt.ui
├── passphrase-prompt.vala
├── pgp-settings.vala
├── place-sorter.vala
├── place.vala
├── prefs-keyservers.vala
├── qr-code-dialog.ui
├── qr-code-dialog.vala
├── seahorse-add-keyserver.ui
├── seahorse-prefs-keyservers.ui
├── server-category.vala
├── types.vala
├── util.vala
├── validity.vala
└── viewable.vala
├── data
├── gtk
│ └── help-overlay.ui
├── icons
│ ├── hicolor
│ │ ├── 22x22
│ │ │ ├── apps
│ │ │ │ ├── seahorse-key-personal.png
│ │ │ │ ├── seahorse-key-ssh.png
│ │ │ │ └── seahorse-key.png
│ │ │ └── status
│ │ │ │ ├── seahorse-sign-bad.png
│ │ │ │ ├── seahorse-sign-ok.png
│ │ │ │ └── seahorse-sign.png
│ │ ├── 48x48
│ │ │ ├── apps
│ │ │ │ ├── seahorse-key-personal.png
│ │ │ │ ├── seahorse-key-ssh.png
│ │ │ │ └── seahorse-key.png
│ │ │ └── status
│ │ │ │ ├── seahorse-sign-bad.png
│ │ │ │ ├── seahorse-sign-ok.png
│ │ │ │ ├── seahorse-sign-unknown.png
│ │ │ │ └── seahorse-sign.png
│ │ ├── scalable
│ │ │ └── apps
│ │ │ │ ├── org.gnome.Seahorse.Devel.svg
│ │ │ │ └── org.gnome.Seahorse.svg
│ │ └── symbolic
│ │ │ └── apps
│ │ │ └── org.gnome.Seahorse-symbolic.svg
│ ├── meson.build
│ ├── scalable
│ │ └── actions
│ │ │ ├── key-item-symbolic.svg
│ │ │ ├── qr-code-symbolic.svg
│ │ │ └── secret-item-symbolic.svg
│ └── svg
│ │ ├── seahorse-key-22.svg
│ │ ├── seahorse-key-48.svg
│ │ ├── seahorse-key-personal-22.svg
│ │ ├── seahorse-key-personal-48.svg
│ │ ├── seahorse-key-ssh-22.svg
│ │ ├── seahorse-key-ssh-48.svg
│ │ ├── seahorse-sign-22.svg
│ │ ├── seahorse-sign-48.svg
│ │ ├── seahorse-sign-bad-22.svg
│ │ ├── seahorse-sign-bad-48.svg
│ │ ├── seahorse-sign-ok-22.svg
│ │ ├── seahorse-sign-ok-48.svg
│ │ └── seahorse-sign-unknown-48.svg
├── meson.build
├── org.gnome.Seahorse.desktop.in.in
├── org.gnome.Seahorse.metainfo.xml.in.in
├── org.gnome.Seahorse.service.in
├── org.gnome.seahorse.gschema.xml
├── org.gnome.seahorse.manager.gschema.xml
├── org.gnome.seahorse.window.gschema.xml
├── screenshot-default.png
├── seahorse-search-provider.ini
├── seahorse.gresource.xml
├── seahorse.xml
└── style.css
├── gkr
├── add-item-dialog.ui
├── add-item-dialog.vala
├── add-keyring-dialog.ui
├── add-keyring-dialog.vala
├── gkr-backend.vala
├── gkr-dialogs.vala
├── gkr-item-delete-operation.vala
├── gkr-item-info.vala
├── gkr-item-panel.ui
├── gkr-item-panel.vala
├── gkr-item.vala
├── gkr-keyring-delete-operation.vala
├── gkr-keyring-panel.ui
├── gkr-keyring-panel.vala
├── gkr-keyring-permission.vala
├── gkr-keyring.vala
├── gkr-module.vala
└── meson.build
├── help
├── C
│ ├── about-certificate-key.page.stub
│ ├── about-diff-private-public.page
│ ├── about-pgp.page
│ ├── about-ssh.page
│ ├── concepts.page
│ ├── glossary.page
│ ├── index.page
│ ├── introduction.page
│ ├── key-servers-add.page
│ ├── keyring-change-default.page
│ ├── keyring-create.page
│ ├── keyring-lock.page
│ ├── keyring-unlock.page
│ ├── keyring-update-password.page
│ ├── keyring.page
│ ├── legal.xml
│ ├── media
│ │ ├── dialog-password-symbolic.svg
│ │ └── org.gnome.Seahorse.svg
│ ├── misc-key-backup.page
│ ├── misc-key-fingerprint.page
│ ├── passwords-stored-create.page
│ ├── passwords-view.page
│ ├── pgp-create.page
│ ├── pgp-delete.page
│ ├── pgp-expiration-change.page
│ ├── pgp-expired.page
│ ├── pgp-export.page
│ ├── pgp-import.page
│ ├── pgp-photoid.page
│ ├── pgp-publish.page
│ ├── pgp-retrieve-remote.page
│ ├── pgp-sign.page
│ ├── pgp-subkeys.page
│ ├── pgp-sync.page
│ ├── pgp-userid-add.page
│ ├── pgp-userid-primary.page
│ ├── pgp-userid-remove.page
│ ├── pgp-userid.page
│ ├── ssh-connect-remote.page
│ ├── ssh-create-vs-setup.page
│ ├── ssh-create.page
│ ├── ssh-export.page
│ ├── ssh-import.page
│ ├── subkeys-add.page
│ ├── subkeys-examine.page
│ └── subkeys-revoke.page
├── ChangeLog
├── LINGUAS
├── ca
│ └── ca.po
├── cs
│ └── cs.po
├── da
│ └── da.po
├── de
│ └── de.po
├── el
│ └── el.po
├── es
│ └── es.po
├── eu
│ └── eu.po
├── fr
│ └── fr.po
├── gl
│ └── gl.po
├── hu
│ └── hu.po
├── id
│ └── id.po
├── meson.build
├── pl
│ └── pl.po
├── pt_BR
│ └── pt_BR.po
├── ru
│ └── ru.po
├── sv
│ └── sv.po
└── uk
│ └── uk.po
├── libseahorse
├── meson.build
├── seahorse-progress.c
├── seahorse-progress.h
├── seahorse-progress.ui
├── seahorse-util.c
└── seahorse-util.h
├── meson.build
├── meson.options
├── pgp
├── meson.build
├── seahorse-discovery.c
├── seahorse-discovery.h
├── seahorse-gpg-op.c
├── seahorse-gpg-op.h
├── seahorse-gpgme-add-subkey.c
├── seahorse-gpgme-add-subkey.h
├── seahorse-gpgme-add-subkey.ui
├── seahorse-gpgme-add-uid.c
├── seahorse-gpgme-add-uid.h
├── seahorse-gpgme-add-uid.ui
├── seahorse-gpgme-data.c
├── seahorse-gpgme-data.h
├── seahorse-gpgme-dialogs.h
├── seahorse-gpgme-expires-dialog.c
├── seahorse-gpgme-expires-dialog.h
├── seahorse-gpgme-expires-dialog.ui
├── seahorse-gpgme-generate-dialog.c
├── seahorse-gpgme-generate-dialog.h
├── seahorse-gpgme-generate-dialog.ui
├── seahorse-gpgme-key-delete-operation.c
├── seahorse-gpgme-key-delete-operation.h
├── seahorse-gpgme-key-export-operation.c
├── seahorse-gpgme-key-export-operation.h
├── seahorse-gpgme-key-gen-type.c
├── seahorse-gpgme-key-gen-type.h
├── seahorse-gpgme-key-op.c
├── seahorse-gpgme-key-op.h
├── seahorse-gpgme-key-parms.c
├── seahorse-gpgme-key-parms.h
├── seahorse-gpgme-key.c
├── seahorse-gpgme-key.h
├── seahorse-gpgme-keyring-panel.c
├── seahorse-gpgme-keyring-panel.h
├── seahorse-gpgme-keyring-panel.ui
├── seahorse-gpgme-keyring.c
├── seahorse-gpgme-keyring.h
├── seahorse-gpgme-photo.c
├── seahorse-gpgme-photo.h
├── seahorse-gpgme-photos.c
├── seahorse-gpgme-revoke-dialog.c
├── seahorse-gpgme-revoke-dialog.h
├── seahorse-gpgme-revoke-dialog.ui
├── seahorse-gpgme-sign-dialog.c
├── seahorse-gpgme-sign-dialog.h
├── seahorse-gpgme-sign-dialog.ui
├── seahorse-gpgme-subkey-delete-operation.c
├── seahorse-gpgme-subkey-delete-operation.h
├── seahorse-gpgme-subkey.c
├── seahorse-gpgme-subkey.h
├── seahorse-gpgme-uid-delete-operation.c
├── seahorse-gpgme-uid-delete-operation.h
├── seahorse-gpgme-uid.c
├── seahorse-gpgme-uid.h
├── seahorse-gpgme.c
├── seahorse-gpgme.h
├── seahorse-hkp-source.c
├── seahorse-hkp-source.h
├── seahorse-keyserver-search.c
├── seahorse-keyserver-search.h
├── seahorse-keyserver-search.ui
├── seahorse-keyserver-sync.c
├── seahorse-keyserver-sync.h
├── seahorse-keyserver-sync.ui
├── seahorse-ldap-source.c
├── seahorse-ldap-source.h
├── seahorse-pgp-actions.c
├── seahorse-pgp-actions.h
├── seahorse-pgp-backend.c
├── seahorse-pgp-backend.h
├── seahorse-pgp-dialogs.h
├── seahorse-pgp-key-algorithm.c
├── seahorse-pgp-key-algorithm.h
├── seahorse-pgp-key-panel.c
├── seahorse-pgp-key-panel.h
├── seahorse-pgp-key-panel.ui
├── seahorse-pgp-key.c
├── seahorse-pgp-key.h
├── seahorse-pgp-keysets.c
├── seahorse-pgp-keysets.h
├── seahorse-pgp-photo.c
├── seahorse-pgp-photo.h
├── seahorse-pgp-photos-widget.c
├── seahorse-pgp-photos-widget.h
├── seahorse-pgp-photos-widget.ui
├── seahorse-pgp-signature.c
├── seahorse-pgp-signature.h
├── seahorse-pgp-subkey-list-box-row.ui
├── seahorse-pgp-subkey-list-box.c
├── seahorse-pgp-subkey-list-box.h
├── seahorse-pgp-subkey-usage.c
├── seahorse-pgp-subkey-usage.h
├── seahorse-pgp-subkey.c
├── seahorse-pgp-subkey.h
├── seahorse-pgp-types.h
├── seahorse-pgp-uid-list-box-row.ui
├── seahorse-pgp-uid-list-box.c
├── seahorse-pgp-uid-list-box.h
├── seahorse-pgp-uid.c
├── seahorse-pgp-uid.h
├── seahorse-server-source.c
├── seahorse-server-source.h
├── seahorse-transfer.c
├── seahorse-transfer.h
├── seahorse-unknown-source.c
├── seahorse-unknown-source.h
├── seahorse-unknown.c
├── seahorse-unknown.h
├── seahorse-xloadimage.c
├── test-gpgme-backend.c
├── test-hkp-source.c
└── test-ldap-source.c
├── pkcs11
├── certificate-der-export-operation.vala
├── meson.build
├── pkcs11-cert-key-pair-panel.ui
├── pkcs11-cert-key-pair-panel.vala
├── pkcs11-cert-key-pair.vala
├── pkcs11-certificate-widget.ui
├── pkcs11-certificate-widget.vala
├── pkcs11-certificate.vala
├── pkcs11-delete-operation.vala
├── pkcs11-generate.ui
├── pkcs11-generate.vala
├── pkcs11-module.vala
├── pkcs11-private-key-widget.ui
├── pkcs11-private-key-widget.vala
├── pkcs11-private-key.vala
├── pkcs11-request-certificate-dialog.ui
├── pkcs11-request-certificate-dialog.vala
├── pkcs11-token-filter.vala
├── pkcs11-token-panel.ui
├── pkcs11-token-panel.vala
├── pkcs11-token.vala
├── seahorse-pkcs11-backend.c
└── seahorse-pkcs11-backend.h
├── po
├── ChangeLog
├── LINGUAS
├── POTFILES.in
├── POTFILES.skip
├── ab.po
├── ar.po
├── as.po
├── ast.po
├── az.po
├── be.po
├── be@latin.po
├── bg.po
├── bn.po
├── bn_IN.po
├── br.po
├── bs.po
├── ca.po
├── ca@valencia.po
├── cs.po
├── cy.po
├── da.po
├── de.po
├── dz.po
├── el.po
├── en@shaw.po
├── en_CA.po
├── en_GB.po
├── eo.po
├── es.po
├── et.po
├── eu.po
├── fa.po
├── fi.po
├── fr.po
├── fur.po
├── ga.po
├── gd.po
├── gl.po
├── gu.po
├── he.po
├── hi.po
├── hr.po
├── hu.po
├── id.po
├── ie.po
├── is.po
├── it.po
├── ja.po
├── ka.po
├── kk.po
├── kn.po
├── ko.po
├── ku.po
├── lt.po
├── lv.po
├── mai.po
├── meson.build
├── mk.po
├── ml.po
├── mr.po
├── ms.po
├── nb.po
├── ne.po
├── nl.po
├── nn.po
├── oc.po
├── or.po
├── pa.po
├── pl.po
├── pt.po
├── pt_BR.po
├── ro.po
├── ru.po
├── rw.po
├── si.po
├── sk.po
├── sl.po
├── sq.po
├── sr.po
├── sr@latin.po
├── sv.po
├── ta.po
├── te.po
├── tg.po
├── th.po
├── tr.po
├── ug.po
├── uk.po
├── uz.po
├── vi.po
├── zh_CN.po
├── zh_HK.po
└── zh_TW.po
├── seahorse.doap
├── src
├── application.vala
├── import-dialog.ui
├── import-dialog.vala
├── key-manager-filter.vala
├── key-manager-item-row.ui
├── key-manager-item-row.vala
├── key-manager.vala
├── main.vala
├── meson.build
├── org.gnome.ShellSearchProvider2.xml
├── prefs-dialog.vala
├── seahorse-change-passphrase.ui
├── seahorse-key-manager-widgets.ui
├── seahorse-key-manager.ui
├── search-provider.vala
└── sidebar.vala
├── ssh
├── actions.vala
├── algorithm.vala
├── backend.vala
├── errors.vala
├── generate-key-dialog.ui
├── generate-key-dialog.vala
├── key-data.vala
├── key-delete-operation.vala
├── key-export-operation.vala
├── key-length-chooser.vala
├── key-panel.ui
├── key-panel.vala
├── key.vala
├── meson.build
├── operation.vala
├── seahorse-ssh-askpass.vala
├── source.vala
├── ssh.vala
├── test-key-parse.vala
├── upload-remote-dialog.ui
└── upload-remote-dialog.vala
└── vapi
├── libqrencode.vapi
├── pkcs11.vapi
└── pwquality.vapi
/.gitlab-ci.yml:
--------------------------------------------------------------------------------
1 | include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
2 |
3 | variables:
4 | BUNDLE: 'seahorse.flatpak'
5 | GIT_SUBMODULE_STRATEGY: recursive
6 |
7 | stages:
8 | - review
9 | - test
10 | - deploy
11 |
12 | style-check:
13 | stage: review
14 | script:
15 | - ./.gitlab/ci/style-check.sh
16 | artifacts:
17 | expire_in: 1 week
18 | name: "style-check-junit-report"
19 | when: always
20 | reports:
21 | junit: style-check-junit-report.xml
22 | paths:
23 | - "style-check-junit-report.xml"
24 |
25 | check-potfiles:
26 | stage: review
27 | script:
28 | - ./.gitlab/ci/check-potfiles.sh
29 |
30 | flatpak:
31 | variables:
32 | MANIFEST_PATH: 'build-aux/org.gnome.Seahorse.Devel.json'
33 | FLATPAK_MODULE: "seahorse"
34 | RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
35 | APP_ID: "org.gnome.Seahorse.Devel"
36 | extends: .flatpak
37 |
38 | nightly:
39 | extends: '.publish_nightly'
40 | dependencies: ['flatpak']
41 | needs: ['flatpak']
42 |
--------------------------------------------------------------------------------
/.gitlab/ci/check-potfiles.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # find source files that contain gettext keywords
4 | vala_files="$(grep -lR '\(gettext\|[^I_)]_\)(' ./**/*.vala | sed 's/^.\///')"
5 | # Be careful with C files, sice we don't want to include the Vala-generated ones
6 | c_srcdirs="libseahorse pgp pkcs11"
7 | c_files="$(grep -lR --include='*.c' '\(gettext\|[^I_)]_\)(' $c_srcdirs)"
8 |
9 | # find ui files that contain translatable string
10 | ui_files="$(grep -lRi --include='*.ui' 'translatable="[ty1]' ./**/*.ui | sed 's/^.\///')"
11 |
12 | files="$vala_files $c_files $ui_files"
13 |
14 | # filter out excluded files
15 | if [ -f po/POTFILES.skip ]; then
16 | files="$(for f in $files; do ! grep -q "^$f$" po/POTFILES.skip && echo "$f"; done)"
17 | fi
18 |
19 | # Test 1: find all files that are missing from POTFILES.in
20 | missing="$(for f in $files; do ! grep -q "^$f$" po/POTFILES.in && echo "$f"; done)"
21 | if [ ${#missing} -ne 0 ]; then
22 | echo >&2 "The following files are missing from po/POTFILES.in:"
23 | for f in "${missing[@]}"; do
24 | echo " $f" >&2
25 | done
26 | echo >&2
27 | exit 1
28 | fi
29 |
30 | # Test 2: find all Vala files that miss a corresponding .c file in POTFILES.skip
31 | vala_c_files="$(for f in $vala_files; do echo "${f%.vala}.c"; done)"
32 | vala_c_files_missing="$(for f in "${vala_c_files[@]}"; do ! grep -q "^$f$" po/POTFILES.skip && echo "$f"; done)"
33 | if [ ${#vala_c_files_missing} -ne 0 ]; then
34 | echo >&2 "The following files are missing from po/POTFILES.skip:"
35 | for f in "${vala_c_files_missing[@]}"; do
36 | echo " $f" >&2
37 | done
38 | echo >&2
39 | exit 1
40 | fi
41 |
42 | # Test 3: find all files that are mentioned in POTFILES.in that don't exist
43 | readarray -t potfiles_in_items < <(grep -v "^#" po/POTFILES.in)
44 | potfiles_in_nonexistent="$(for f in "${potfiles_in_items[@]}"; do [[ -f "$f" ]] || echo "$f"; done)"
45 | if [ ${#potfiles_in_nonexistent} -ne 0 ]; then
46 | echo >&2 "The following files are referenced in po/POTFILES.in, but don't exist:"
47 | echo >&2 ""
48 | for f in "${potfiles_in_nonexistent[@]}"; do
49 | echo "$f" >&2
50 | done
51 | echo >&2
52 | exit 1
53 | fi
54 |
--------------------------------------------------------------------------------
/.gitlab/ci/run-tests.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set +e
4 |
5 | xvfb-run -a -s "-screen 0 1024x768x24" \
6 | flatpak build app \
7 | meson test -C _build
8 |
9 | exit_code=$?
10 |
11 | python3 .gitlab-ci/meson-junit-report.py \
12 | --project-name=seahorse \
13 | --job-id "${CI_JOB_NAME}" \
14 | --output "_build/${CI_JOB_NAME}-report.xml" \
15 | _build/meson-logs/testlog.json
16 |
17 | exit $exit_code
18 |
--------------------------------------------------------------------------------
/.gitlab/ci/style-check.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #
3 | # style-check.sh: Performs some basic style checks
4 |
5 | # Source the JUnit helpers
6 | scriptdir="$(dirname "$BASH_SOURCE")"
7 | source "$scriptdir/junit-report.sh"
8 |
9 | TESTNAME="No trailing whitespace"
10 | source_dirs="common data gkr libseahorse pgp pkcs11 src ssh"
11 | trailing_ws_occurrences="$(grep -nRI '[[:blank:]]$' $source_dirs)"
12 | if [[ -z "$trailing_ws_occurrences" ]]; then
13 | append_passed_test_case "$TESTNAME"
14 | else
15 | append_failed_test_case "$TESTNAME" \
16 | $'Please remove the trailing whitespace at the following places:\n\n'"$trailing_ws_occurrences"
17 | fi
18 |
19 |
20 | generate_junit_report "$CI_JOB_NAME-junit-report.xml" "$CI_JOB_NAME"
21 | check_junit_report "$CI_JOB_NAME-junit-report.xml"
22 |
--------------------------------------------------------------------------------
/.gitlab/issue_templates/Bug.md:
--------------------------------------------------------------------------------
1 |
5 |
6 | # Affected version
7 | - Passwords and Keys (Seahorse) version:
8 | - Application provider: distribution / built from git / flatpak
9 | - Related info:
10 |
11 |
12 | # Steps to reproduce
13 |
16 | 1.
17 | 2.
18 | 3.
19 |
20 | # Current behavior
21 |
22 |
23 |
24 | # Expected behavior
25 |
26 |
27 |
28 | # Additional information
29 |
35 |
36 |
37 |
38 | /label ~"1. Bug"
39 |
--------------------------------------------------------------------------------
/.gitlab/issue_templates/Feature.md:
--------------------------------------------------------------------------------
1 | ### Use cases
2 |
4 |
5 |
6 | ### Desired behavior
7 |
8 |
9 |
10 | ### Benefits of the solution
11 |
12 |
13 |
14 | ### Possible drawbacks
15 |
20 |
21 |
22 | /label ~"1. Feature"
23 |
--------------------------------------------------------------------------------
/COPYING-DOCS:
--------------------------------------------------------------------------------
1 | This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Seahorse
2 | ========
3 | Seahorse is a graphical interface for managing and using encryption keys.
4 | Currently it supports PGP keys (using GPG/GPGME) and SSH keys. Its goal is to
5 | provide an easy to use key management tool, along with an easy to use interface
6 | for encryption operations.
7 |
8 | Building
9 | --------
10 | You can build and install Seahorse using [Meson]:
11 |
12 | ```sh
13 | meson setup _build
14 | meson compile -C _build
15 | meson install -C _build
16 | ```
17 |
18 | Contributing
19 | ------------
20 | You can browse the code, issues and more at Seahorse's [GitLab repository].
21 |
22 | If you find a bug in Seahorse, please file an issue on the [issue tracker].
23 | Please try to add reproducible steps and the relevant version of Seahorse.
24 |
25 | If you want to contribute functionality or bug fixes, please open a Merge
26 | Request (MR). For more info on how to do this, see GitLab's [help pages on
27 | MR's].
28 |
29 | If Seahorse is not translated in your language or you believe that the
30 | current translation has errors, you can join one of the various translation
31 | teams in GNOME. Translators do not commit directly to Git, but are advised to
32 | use our separate translation infrastructure instead. More info can be found at
33 | the [translation project wiki page].
34 |
35 | More information
36 | ----------------
37 | Seahorse has its own web page on https://wiki.gnome.org/Apps/Seahorse.
38 |
39 | To discuss issues with developers and other users, you can go to [GNOME's
40 | Discourse instance] and use the "seahorse" tag, or join [#gnome-seahorse] on
41 | irc.libera.chat.
42 |
43 | License
44 | -------
45 | Seahorse is released under the GPL. See [COPYING] for more info.
46 |
47 |
48 | [GNOME]: https://www.gnome.org
49 | [Meson]: http://mesonbuild.com
50 | [GitLab repository]: https://gitlab.gnome.org/GNOME/seahorse
51 | [help pages on MR's]: https://docs.gitlab.com/ee/gitlab-basics/add-merge-request.html
52 | [issue tracker]: https://gitlab.gnome.org/GNOME/seahorse/issues
53 | [translation project wiki page]: https://wiki.gnome.org/TranslationProject/
54 | [GNOME's Discourse instance]: https://discourse.gnome.org
55 | [#seahorse]: irc://irc.libera.chat/gnome-seahorse
56 | [COPYING]: https://gitlab.gnome.org/GNOME/seahorse/COPYING
57 |
--------------------------------------------------------------------------------
/THANKS:
--------------------------------------------------------------------------------
1 | Contributors:
2 |
3 | Jose Carlos Garcia Sogo for bug fixes, spanish, translation,
4 | overall assistance, and letting me manage seahorse(2)
5 |
6 | Jean Schurger for rpms and the new icon
7 |
8 | Erich Schubert for testing, bug fixes,
9 | and initial german translation
10 |
11 | Yanko Kaneti for bug fixes and a spec file
12 |
13 | Adam Schreiber for contributions and patches
14 |
15 | Albrecht Dreß the initial GPGME upgrade patch
16 |
17 | Fernando Herrera for the Nautilus 2.10 support
18 |
19 | Gnome translation & doc teams, especially Jordi Mallach
20 | for package help
21 |
22 | seahorse(1) authors:
23 |
24 | Jose Carlos Garcia Sogo, Anthony Mulcahy, Steffen Zahn, Stef Walter
25 |
26 | GnuPG, GPGME, and GPA teams, specifically Miguel Coca, Marcus Brinkmann,
27 | and Werner Koch, for their assistance and hard work.
28 |
--------------------------------------------------------------------------------
/common/actions.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU Lesser General Public License as
9 | * published by the Free Software Foundation; either version 2.1 of
10 | * the License, or (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful, but
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with this program; if not, see .
19 | */
20 |
21 | public class Seahorse.ActionGroup : SimpleActionGroup {
22 |
23 | public string prefix { get; construct set; }
24 |
25 | public Catalog catalog { owned get; set; }
26 |
27 | public virtual void set_actions_for_selected_objects(List objects) {
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/common/app-settings.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2018 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see .
18 | */
19 |
20 | public class Seahorse.AppSettings : GLib.Settings {
21 |
22 | [CCode (array_null_terminated = true, array_length = false)]
23 | public string[] last_search_servers {
24 | owned get { return get_strv("last-search-servers"); }
25 | set { set_strv("last-search-servers", value); }
26 | }
27 |
28 | public string last_search_text {
29 | owned get { return get_string("last-search-text"); }
30 | set { set_string("last-search-text", value); }
31 | }
32 |
33 | public bool server_auto_publish {
34 | get { return get_boolean("server-auto-publish"); }
35 | set { set_boolean("server-auto-publish", value); }
36 | }
37 |
38 | public bool server_auto_retrieve {
39 | get { return get_boolean("server-auto-retrieve"); }
40 | set { set_boolean("server-auto-retrieve", value); }
41 | }
42 |
43 | public string server_publish_to {
44 | owned get { return get_string("server-publish-to"); }
45 | set {
46 | if (this.server_publish_to == value)
47 | return;
48 | set_string("server-publish-to", value);
49 | }
50 | }
51 |
52 | public AppSettings() {
53 | GLib.Object(schema_id: "org.gnome.seahorse");
54 | }
55 |
56 | private static AppSettings? _instance = null;
57 | public static AppSettings instance() {
58 | if (_instance == null)
59 | _instance = new AppSettings();
60 | return _instance;
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/common/backend.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see .
17 | */
18 |
19 | public interface Seahorse.Backend : GLib.ListModel {
20 |
21 | public abstract string name { get; }
22 | public abstract string label { get; }
23 | public abstract string description { get; }
24 | public abstract ActionGroup actions { owned get; }
25 | public abstract bool loaded { get; }
26 |
27 | public abstract Place? lookup_place(string uri);
28 |
29 | private static GLib.ListStore backends;
30 |
31 | public void register() {
32 | if (backends == null)
33 | backends = new GLib.ListStore(typeof(Backend));
34 | backends.append(this);
35 | }
36 |
37 | public static GLib.ListModel get_registered() {
38 | if (backends == null)
39 | backends = new GLib.ListStore(typeof(Backend));
40 | return backends;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/common/deletable.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2004,2005 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | * Copyright (C) 2012 Stefan Walter
7 | *
8 | * This program is free software; you can redistribute it and/or modify
9 | * it under the terms of the GNU General Public License as published by
10 | * the Free Software Foundation; either version 2 of the License, or
11 | * (at your option) any later version.
12 | *
13 | * This program is distributed in the hope that it will be useful,
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 | * See the GNU General Public License for more details.
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program; if not, see .
19 | */
20 |
21 | /**
22 | * An interface for items that can be deleted (note however that specific
23 | * instances might not be, so use the deletable property).
24 | *
25 | * To actually delete the object, you'll have to call create_delete_operation()
26 | * which can then take care of it (possibly with others).
27 | */
28 | public interface Seahorse.Deletable : GLib.Object {
29 |
30 | /** Returns whether this object is actually deletable */
31 | public abstract bool deletable { get; }
32 |
33 | public static bool can_delete(GLib.Object object) {
34 | if (object is Deletable)
35 | return ((Deletable) object).deletable;
36 | return false;
37 | }
38 |
39 | /**
40 | * Creates a {@link DeleteOperation} that will perform the actual deletion
41 | * of this object.
42 | */
43 | public abstract DeleteOperation create_delete_operation();
44 | }
45 |
--------------------------------------------------------------------------------
/common/export-operation.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | * Copyright (C) 2012 Stefan Walter
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see .
18 | *
19 | * Author: Stef Walter
20 | */
21 |
22 | public abstract class Seahorse.ExportOperation : GLib.Object {
23 |
24 | public GLib.OutputStream output { get; set; }
25 |
26 | public abstract async bool execute(Cancellable? cancellable = null)
27 | throws GLib.Error;
28 |
29 | /**
30 | * A helper method to set the output stream to a file picked interactively
31 | * by the user.
32 | *
33 | * Note that this function may return false without throwing an error, in
34 | * case the user didn't pick any file.
35 | */
36 | public async bool prompt_for_file(Gtk.Window? parent,
37 | Cancellable? cancellable = null)
38 | throws GLib.Error {
39 | // Ask the usr to pick the file
40 | var dialog = create_file_dialog(parent);
41 | var file = yield dialog.save(parent, cancellable);
42 | if (file == null)
43 | return false;
44 |
45 | // Create the output stream for it
46 | this.output = yield file.create_async(FileCreateFlags.NONE,
47 | Priority.DEFAULT,
48 | cancellable);
49 | return true;
50 | }
51 |
52 | /**
53 | * Creates a {@link Gtk.FileDialog} that can be used to select a file to
54 | * export to.
55 | */
56 | protected abstract Gtk.FileDialog create_file_dialog(Gtk.Window? parent);
57 | }
58 |
--------------------------------------------------------------------------------
/common/exportable.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2004,2005 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | * Copyright (C) 2012 Stefan Walter
7 | * Copyright (C) 2023 Niels De Graef
8 | *
9 | * This program is free software; you can redistribute it and/or modify
10 | * it under the terms of the GNU General Public License as published by
11 | * the Free Software Foundation; either version 2 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * This program is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 | * See the GNU General Public License for more details.
18 | * You should have received a copy of the GNU General Public License
19 | * along with this program; if not, see .
20 | */
21 |
22 | /**
23 | * An interface for items that can be exported.
24 | *
25 | * To actually export the object, you'll have to call create_export_operation()
26 | * which can then take care of it (possibly exporting it with other items at
27 | * the same time).
28 | */
29 | public interface Seahorse.Exportable : GLib.Object {
30 |
31 | /** Returns whether this object is actually exportable */
32 | public abstract bool exportable { get; }
33 |
34 | /** Helper to know if a given object is exportable */
35 | public static bool can_export(GLib.Object object) {
36 | if (object is Exportable)
37 | return ((Exportable)object).exportable;
38 | return false;
39 | }
40 |
41 | /**
42 | * Creates a {@link ExportOperation} that will do the actual export of this
43 | * file.
44 | */
45 | public abstract ExportOperation create_export_operation()
46 | requires (this.exportable);
47 | }
48 |
--------------------------------------------------------------------------------
/common/item.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | * Copyright (C) 2017 Niels De Graef
7 | *
8 | * This program is free software; you can redistribute it and/or modify
9 | * it under the terms of the GNU Lesser General Public License as
10 | * published by the Free Software Foundation; either version 2.1 of
11 | * the License, or (at your option) any later version.
12 | *
13 | * This program is distributed in the hope that it will be useful, but
14 | * WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 | * Lesser General Public License for more details.
17 | *
18 | * You should have received a copy of the GNU Lesser General Public
19 | * License along with this program; if not, see
20 | * .
21 | */
22 |
23 | /**
24 | * The base interface for passwords/keys and others that are handled by Seahorse.
25 | */
26 | public interface Seahorse.Item : GLib.Object, Seahorse.Viewable {
27 |
28 | /** The place this item originates from, or null if none/unknown */
29 | public abstract Place? place { owned get; set; }
30 |
31 | /** Icon for this Object */
32 | public abstract GLib.Icon? icon { get; }
33 |
34 | /** A displayable label */
35 | public abstract string title { get; }
36 |
37 | /** If available, can be used to display a bit more info with the title */
38 | public abstract string? subtitle { owned get; }
39 |
40 | /** A generic description of the type of item */
41 | public abstract string description { get; }
42 |
43 | /** How this item is used */
44 | public abstract Usage usage { get; }
45 |
46 | /** This item's flags */
47 | public abstract Flags item_flags { get; }
48 | }
49 |
--------------------------------------------------------------------------------
/common/lockable.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2004,2005 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see .
18 | */
19 |
20 | public interface Seahorse.Lockable : GLib.Object {
21 | public abstract bool lockable { get; }
22 | public abstract bool unlockable { get; }
23 |
24 | public abstract async bool lock(GLib.TlsInteraction? interaction,
25 | GLib.Cancellable? cancellable) throws GLib.Error;
26 |
27 | public abstract async bool unlock(GLib.TlsInteraction? interaction,
28 | GLib.Cancellable? cancellable) throws GLib.Error;
29 |
30 | public static bool can_lock(GLib.Object object) {
31 | if (object is Lockable)
32 | return ((Lockable)object).lockable;
33 | return false;
34 | }
35 |
36 | public static bool can_unlock(GLib.Object object) {
37 | if (object is Lockable)
38 | return ((Lockable)object).unlockable;
39 | return false;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/common/meson.build:
--------------------------------------------------------------------------------
1 | common_sources = files(
2 | 'actions.vala',
3 | 'add-keyserver-dialog.vala',
4 | 'app-settings.vala',
5 | 'backend.vala',
6 | 'catalog.vala',
7 | 'datepicker.vala',
8 | 'deletable.vala',
9 | 'delete-operation.vala',
10 | 'exportable.vala',
11 | 'export-operation.vala',
12 | 'interaction.vala',
13 | 'item.vala',
14 | 'lockable.vala',
15 | 'panel.vala',
16 | 'panel-window.vala',
17 | 'passphrase-prompt.vala',
18 | 'pgp-settings.vala',
19 | 'place.vala',
20 | 'place-sorter.vala',
21 | 'server-category.vala',
22 | 'types.vala',
23 | 'util.vala',
24 | 'validity.vala',
25 | 'viewable.vala',
26 | 'qr-code-dialog.vala',
27 | )
28 |
29 | common_deps = [
30 | glib_deps,
31 | gtk4_dep,
32 | gcr4_dep,
33 | libadwaita_dep,
34 | libqrencode_dep,
35 | config,
36 | ]
37 |
38 | common_vala_args = [
39 | '--gresources', resources_xml,
40 | '--use-header',
41 | ]
42 |
43 | common_c_args = [
44 | vala_workaround_cflags,
45 | ]
46 |
47 | if get_option('keyservers-support')
48 | common_sources += ['keyserver-dropdown.vala', 'prefs-keyservers.vala']
49 | common_vala_args += [ '-D', 'WITH_KEYSERVER' ]
50 | endif
51 |
52 | common_lib = static_library('common',
53 | common_sources,
54 | dependencies: common_deps,
55 | c_args: common_c_args,
56 | vala_args: common_vala_args,
57 | vala_header: 'seahorse-common.h',
58 | )
59 |
60 | common_dep = declare_dependency(
61 | link_with: common_lib,
62 | include_directories: include_directories('.'),
63 | dependencies: common_deps,
64 | )
65 |
--------------------------------------------------------------------------------
/common/panel-window.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 400
5 | 500
6 |
9 |
10 |
11 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | never
43 | True
44 |
45 |
46 | 18
47 | 30
48 | 30
49 | 30
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/common/panel-window.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2023 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see .
17 | *
18 | * Author: Niels De Graef
19 | */
20 |
21 | /**
22 | * Basically a window that wraps a {@link Seahorse.Panel}
23 | */
24 | [GtkTemplate (ui = "/org/gnome/Seahorse/panel-window.ui")]
25 | public class Seahorse.PanelWindow : Adw.Window {
26 |
27 | [GtkChild] private unowned Adw.HeaderBar header;
28 | [GtkChild] private unowned Adw.WindowTitle window_title;
29 |
30 | [GtkChild] private unowned Adw.ToastOverlay toast_overlay;
31 | [GtkChild] private unowned Adw.Clamp clamp;
32 |
33 | public PanelWindow(Seahorse.Panel panel,
34 | Gtk.Window? parent = null) {
35 | GLib.Object(transient_for: parent);
36 |
37 | this.clamp.child = panel;
38 |
39 | // Create header
40 | panel.bind_property("title",
41 | this.window_title, "title",
42 | BindingFlags.SYNC_CREATE);
43 | panel.bind_property("subtitle",
44 | this.window_title, "subtitle",
45 | BindingFlags.SYNC_CREATE);
46 |
47 | if (panel.menu != null) {
48 | var menu_button = new Gtk.MenuButton();
49 | menu_button.icon_name = "open-menu-symbolic";
50 | menu_button.menu_model = panel.menu;
51 | this.header.pack_start(menu_button);
52 | }
53 |
54 | insert_action_group("panel", panel.actions);
55 |
56 | panel.notification.connect(on_panel_notification);
57 | }
58 |
59 | private void on_panel_notification(Seahorse.Panel panel, Adw.Toast toast) {
60 | this.toast_overlay.add_toast(toast);
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/common/passphrase-prompt.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | submit
5 | cancel
6 |
7 | _Cancel
8 | _Submit
9 |
10 |
11 |
12 | 24
13 | vertical
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Confirm:
23 | 0
24 | True
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | True
36 |
37 |
38 |
39 |
40 | False
41 | The passwords don't match
42 | 0
43 | True
44 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/common/place-sorter.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2023 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see .
18 | */
19 |
20 | public class Seahorse.PlaceSorter : Gtk.Sorter {
21 |
22 | public override Gtk.SorterOrder get_order() {
23 | return Gtk.SorterOrder.PARTIAL;
24 | }
25 |
26 | public override Gtk.Ordering compare(GLib.Object? item1, GLib.Object? item2) {
27 | unowned var obj1 = (Seahorse.Item) item1;
28 | unowned var obj2 = (Seahorse.Item) item2;
29 |
30 | var place1 = obj1.place;
31 | var place2 = obj2.place;
32 |
33 | if (place1 == place2)
34 | return Gtk.Ordering.EQUAL;
35 |
36 | return Gtk.Ordering.from_cmpfunc(strcmp(place1.uri, place2.uri));
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/common/qr-code-dialog.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 400
5 | 550
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | True
16 |
17 |
18 |
19 |
20 |
21 | 24
22 | vertical
23 | 32
24 | 32
25 | 32
26 | 32
27 |
28 |
29 |
30 | center
31 | 200
32 | True
33 | QR Code
34 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/common/types.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see .
17 | */
18 |
19 | namespace Seahorse {
20 |
21 | /* Again, never change these values */
22 | public enum Usage {
23 | NONE = 0,
24 | SYMMETRIC_KEY = 1,
25 | PUBLIC_KEY = 2,
26 | PRIVATE_KEY = 3,
27 | CREDENTIALS = 4,
28 | IDENTITY = 5,
29 | OTHER = 10
30 | }
31 |
32 | [Flags]
33 | public enum Flags {
34 | [CCode (cname = "SEAHORSE_FLAG_NONE")]
35 | NONE = 0,
36 |
37 | [CCode (cname = "SEAHORSE_FLAG_IS_VALID")]
38 | IS_VALID = 0x00000001,
39 |
40 | [CCode (cname = "SEAHORSE_FLAG_CAN_ENCRYPT")]
41 | CAN_ENCRYPT = 0x00000002,
42 |
43 | [CCode (cname = "SEAHORSE_FLAG_CAN_SIGN")]
44 | CAN_SIGN = 0x00000004,
45 |
46 | [CCode (cname = "SEAHORSE_FLAG_CAN_CERTIFY")]
47 | CAN_CERTIFY = 0x00000008,
48 |
49 | [CCode (cname = "SEAHORSE_FLAG_CAN_AUTHENTICATE")]
50 | CAN_AUTHENTICATE = 0x00000010,
51 |
52 | [CCode (cname = "SEAHORSE_FLAG_EXPIRED")]
53 | EXPIRED = 0x00000100,
54 |
55 | [CCode (cname = "SEAHORSE_FLAG_REVOKED")]
56 | REVOKED = 0x00000200,
57 |
58 | [CCode (cname = "SEAHORSE_FLAG_DISABLED")]
59 | DISABLED = 0x00000400,
60 |
61 | [CCode (cname = "SEAHORSE_FLAG_TRUSTED")]
62 | TRUSTED = 0x00001000,
63 |
64 | [CCode (cname = "SEAHORSE_FLAG_PERSONAL")]
65 | PERSONAL = 0x00002000,
66 | }
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/common/util.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2003 Jacob Perkins
5 | * Copyright (C) 2004-2005 Stefan Walter
6 | * Copyright (C) 2011 Collabora Ltd.
7 | * Copyright (C) 2020 Niels De Graef
8 | *
9 | * This program is free software; you can redistribute it and/or modify
10 | * it under the terms of the GNU General Public License as published by
11 | * the Free Software Foundation; either version 2 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * This program is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 | * See the GNU General Public License for more details.
18 | * You should have received a copy of the GNU General Public License
19 | * along with this program; if not, see .
20 | */
21 |
22 | namespace Seahorse.Util {
23 |
24 | public void show_error (Gtk.Widget? parent,
25 | string? heading,
26 | string? message) {
27 |
28 | if (message == null)
29 | message = "";
30 |
31 | Gtk.Window? window = null;
32 | if (parent != null && !(parent is Gtk.Window)) {
33 | window = parent.get_root() as Gtk.Window;
34 | }
35 |
36 | var dialog = new Adw.AlertDialog(heading, message);
37 | dialog.add_response("close", _("_Close"));
38 | dialog.default_response = "close";
39 | dialog.present(parent);
40 | }
41 |
42 | public void toggle_action (GLib.SimpleAction action,
43 | GLib.Variant? variant,
44 | void* user_data) {
45 | var old_state = action.get_state();
46 | var new_state = new GLib.Variant.boolean(!old_state.get_boolean());
47 | action.change_state(new_state);
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/common/validity.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2003 Jacob Perkins
5 | * Copyright (C) 2017 Niels De Graef
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see
18 | * .
19 | */
20 |
21 | public enum Seahorse.Validity {
22 | REVOKED = -3,
23 | DISABLED = -2,
24 | NEVER = -1,
25 | UNKNOWN = 0,
26 | MARGINAL = 1,
27 | FULL = 5,
28 | ULTIMATE = 10;
29 |
30 | /**
31 | * @return A string describing the validity.
32 | */
33 | public unowned string? get_string () {
34 | switch (this) {
35 | case Seahorse.Validity.UNKNOWN:
36 | return C_("Validity", "Unknown");
37 | case Seahorse.Validity.NEVER:
38 | return C_("Validity", "Never");
39 | case Seahorse.Validity.MARGINAL:
40 | return C_("Validity", "Marginal");
41 | case Seahorse.Validity.FULL:
42 | return C_("Validity", "Full");
43 | case Seahorse.Validity.ULTIMATE:
44 | return C_("Validity", "Ultimate");
45 | case Seahorse.Validity.DISABLED:
46 | return C_("Validity", "Disabled");
47 | case Seahorse.Validity.REVOKED:
48 | return C_("Validity", "Revoked");
49 | default:
50 | return null;
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/common/viewable.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | * Copyright (C) 2012 Stefan Walter
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see .
18 | *
19 | * Author: Stef Walter
20 | */
21 |
22 | public interface Seahorse.Viewable : GLib.Object {
23 |
24 | /**
25 | * Creates a Panel widget that can be used in a PanelWindow, or in another
26 | * widget (such as an import dialog).
27 | */
28 | public abstract Seahorse.Panel create_panel();
29 |
30 | /** Presents this item to the user */
31 | public virtual void view(Gtk.Window? parent = null) {
32 | Gtk.Window? window = get_data("viewable-window");
33 | if (window == null) {
34 | var panel = create_panel();
35 | window = new PanelWindow(panel, parent);
36 |
37 | set_data("viewable-window", window);
38 | window.close_request.connect((w) => {
39 | set_data_full("viewable-window", null, null);
40 | return false;
41 | });
42 | }
43 |
44 | window.present();
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/data/icons/hicolor/22x22/apps/seahorse-key-personal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/22x22/apps/seahorse-key-personal.png
--------------------------------------------------------------------------------
/data/icons/hicolor/22x22/apps/seahorse-key-ssh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/22x22/apps/seahorse-key-ssh.png
--------------------------------------------------------------------------------
/data/icons/hicolor/22x22/apps/seahorse-key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/22x22/apps/seahorse-key.png
--------------------------------------------------------------------------------
/data/icons/hicolor/22x22/status/seahorse-sign-bad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/22x22/status/seahorse-sign-bad.png
--------------------------------------------------------------------------------
/data/icons/hicolor/22x22/status/seahorse-sign-ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/22x22/status/seahorse-sign-ok.png
--------------------------------------------------------------------------------
/data/icons/hicolor/22x22/status/seahorse-sign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/22x22/status/seahorse-sign.png
--------------------------------------------------------------------------------
/data/icons/hicolor/48x48/apps/seahorse-key-personal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/48x48/apps/seahorse-key-personal.png
--------------------------------------------------------------------------------
/data/icons/hicolor/48x48/apps/seahorse-key-ssh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/48x48/apps/seahorse-key-ssh.png
--------------------------------------------------------------------------------
/data/icons/hicolor/48x48/apps/seahorse-key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/48x48/apps/seahorse-key.png
--------------------------------------------------------------------------------
/data/icons/hicolor/48x48/status/seahorse-sign-bad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/48x48/status/seahorse-sign-bad.png
--------------------------------------------------------------------------------
/data/icons/hicolor/48x48/status/seahorse-sign-ok.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/48x48/status/seahorse-sign-ok.png
--------------------------------------------------------------------------------
/data/icons/hicolor/48x48/status/seahorse-sign-unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/48x48/status/seahorse-sign-unknown.png
--------------------------------------------------------------------------------
/data/icons/hicolor/48x48/status/seahorse-sign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/icons/hicolor/48x48/status/seahorse-sign.png
--------------------------------------------------------------------------------
/data/icons/meson.build:
--------------------------------------------------------------------------------
1 | icons_install_dir = get_option('datadir') / 'icons'
2 |
3 | # special case for symbolic
4 | icon_subfolder = 'hicolor' / 'symbolic' / 'apps'
5 | install_data(icon_subfolder / 'org.gnome.Seahorse-symbolic.svg',
6 | rename: '@0@-symbolic.svg'.format(application_id),
7 | install_dir: icons_install_dir / icon_subfolder,
8 | )
9 | icon_subfolder = 'hicolor' / 'scalable' / 'apps'
10 | install_data(icon_subfolder / '@0@.svg'.format(application_id),
11 | install_dir: icons_install_dir / icon_subfolder,
12 | )
13 |
14 | # private icons
15 | private_icons_install_dir = get_option('datadir') / meson.project_name() / 'icons'
16 |
17 | foreach size: [ 22, 48 ]
18 | icon_size_str = '@0@x@0@'.format(size)
19 |
20 | # ..../apps
21 | icon_subfolder = 'hicolor' / icon_size_str / 'apps'
22 | foreach private_icon: [ 'key', 'key-personal', 'key-ssh' ]
23 | install_data(
24 | icon_subfolder / 'seahorse-@0@.png'.format(private_icon),
25 | install_dir: private_icons_install_dir / icon_subfolder,
26 | )
27 | endforeach
28 |
29 | # ..../status
30 | icon_subfolder = 'hicolor' / icon_size_str / 'status'
31 |
32 | foreach private_icon: [ 'sign', 'sign-bad', 'sign-ok' ]
33 | install_data(
34 | icon_subfolder / 'seahorse-@0@.png'.format(private_icon),
35 | install_dir: private_icons_install_dir / icon_subfolder,
36 | )
37 | endforeach
38 | endforeach
39 |
40 | # Only has a 48x48 version somehow
41 | icon_subfolder = 'hicolor' / '48x48' / 'status'
42 | install_data(
43 | icon_subfolder / 'seahorse-sign-unknown.png',
44 | install_dir: private_icons_install_dir / icon_subfolder,
45 | )
46 |
--------------------------------------------------------------------------------
/data/icons/scalable/actions/key-item-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/data/icons/scalable/actions/qr-code-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/data/icons/scalable/actions/secret-item-symbolic.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/data/org.gnome.Seahorse.desktop.in.in:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Name=Passwords and Keys
3 | Comment=Manage your passwords and encryption keys
4 | # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
5 | Keywords=keyring;encryption;security;sign;ssh;gpg;pgp;seahorse;
6 | Exec=seahorse %u
7 | Terminal=false
8 | Type=Application
9 | # Translators: Do NOT translate or transliterate this text (this is an icon file name)!
10 | Icon=@icon@
11 | Categories=GNOME;GTK;Security;Utility;DesktopSettings;X-XFCE-SettingsDialog;
12 | MimeType=application/pgp-keys;application/x-ssh-key;application/pkcs12;application/pkcs12+pem;application/pkcs7-mime;application/pkcs7-mime+pem;application/pkcs8;application/pkcs8+pem;application/pkix-cert;application/pkix-cert+pem;application/pkix-crl;application/pkix-crl+pem;application/x-pem-file;application/x-pem-key;application/x-pkcs12;application/x-pkcs7-certificates;application/x-x509-ca-cert;application/x-x509-user-cert;application/pkcs10;application/pkcs10+pem;application/x-spkac;application/x-spkac+base64;
13 | StartupNotify=true
14 | DBusActivatable=true
15 | X-Purism-FormFactor=Workstation;Mobile;
16 |
--------------------------------------------------------------------------------
/data/org.gnome.Seahorse.service.in:
--------------------------------------------------------------------------------
1 | [D-BUS Service]
2 | Name=@application_id@
3 | Exec=@bindir@/seahorse --gapplication-service
4 |
--------------------------------------------------------------------------------
/data/org.gnome.seahorse.gschema.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | false
5 | Auto retrieve keys
6 | Whether or not keys should be automatically retrieved from key servers.
7 |
8 |
9 | false
10 | Auto publish keys
11 | Whether or not modified keys should be automatically published.
12 |
13 |
14 | ''
15 | Publish keys to this key server
16 | The key server to publish PGP keys to. Or empty to suppress publishing of PGP keys.
17 |
18 |
19 | ''
20 | Last key server search pattern
21 | The last search pattern searched for against a key server.
22 |
23 |
24 | []
25 | Last key servers used
26 | The last key server a search was performed against or empty for all key servers.
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/data/org.gnome.seahorse.manager.gschema.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | true
5 | Show keyrings sidebar
6 | Show keyrings sidebar in Seahorse.
7 |
8 |
9 | "personal"
10 | Which items to show
11 | Filter which items to show. If empty, show all items, if
12 | “personal” show personal keys, if “trusted” show trusted.
13 |
14 |
15 | 148
16 | Width of the side pane
17 | The default width of the side pane.
18 |
19 |
20 | ["secret-service://login"]
21 | The keyrings chosen
22 | The URIs of the keyrings chosen in the sidebar.
23 |
24 |
25 |
26 |
27 |
28 | 'name'
29 | The column to sort the Seahorse keys by
30 | Specify the column to sort the Seahorse key manager main window by. Columns are: “name”, “id”, “validity”, “expires”, “trust”, and “type”. Put a “-” in front of the column name to sort in descending order.
31 |
32 |
33 | false
34 | Show validity column
35 | No longer in use.
36 |
37 |
38 | false
39 | Show expiry column
40 | No longer in use.
41 |
42 |
43 | false
44 | Show trust column
45 | No longer in use.
46 |
47 |
48 | false
49 | Show type column
50 | No longer in use.
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/data/org.gnome.seahorse.window.gschema.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 | Width of the window
6 | Width (in pixels) of the window.
7 |
8 |
9 | -1
10 | Height of the window
11 | Height (in pixels) of the window.
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/data/screenshot-default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GNOME/seahorse/72c01236f3f1121aba89328d4ee72d75b162ceb1/data/screenshot-default.png
--------------------------------------------------------------------------------
/data/seahorse-search-provider.ini:
--------------------------------------------------------------------------------
1 | [Shell Search Provider]
2 | DesktopId=org.gnome.Seahorse.desktop
3 | BusName=org.gnome.Seahorse
4 | ObjectPath=/org/gnome/Seahorse
5 | Version=2
6 |
--------------------------------------------------------------------------------
/data/style.css:
--------------------------------------------------------------------------------
1 | .seahorse-sidebar-item-header {
2 | margin-top: 6px;
3 | font-weight: bold;
4 | }
5 |
6 | .seahorse-sidebar-item {
7 | margin: 0 3px 0 12px;
8 | }
9 |
10 | .seahorse-sidebar-item > label {
11 | margin: 3px 0 3px 0;
12 | }
13 |
14 | .seahorse-sidebar-item > button {
15 | padding: 0;
16 | margin: 0;
17 | }
18 |
19 | .seahorse-item-listbox {
20 | min-width: 400px;
21 | }
22 |
23 | .seahorse-item-listbox-row {
24 | margin: 12px;
25 | }
26 |
27 | .seahorse-item-listbox-row image {
28 | margin: 6px 18px 6px 6px;
29 | }
30 |
31 | .seahorse-item-listbox-row > .seahorse-item-listbox-row-description {
32 | font-size: small;
33 | }
34 |
35 | .new-item-list {
36 | }
37 |
38 | .new-item-list label {
39 | font-weight: normal;
40 | }
41 |
42 | .seahorse-qr-code-dialog-qr-image {
43 | background: #fff;
44 | padding: 12px;
45 | }
46 |
47 | .pane-separator {
48 | border-width: 1px 1px 0 0;
49 | border-style: solid;
50 | border-color: shade (@theme_bg_color, 0.66);
51 | }
52 |
53 | /* Used to provide a little cutout around an overlayed circular button */
54 | .seahorse-cutout-button {
55 | background-color: var(--window-bg-color);
56 | color: var(--window-fg-color);
57 | border-radius: 9999px;
58 | padding: 2px;
59 | }
60 |
61 | .pgp-subkey-usage-label {
62 | border: 1px solid shade(@theme_bg_color, 0.9);
63 | background-color: shade(@theme_bg_color, .95);
64 | padding-left: 3px;
65 | padding-right: 3px;
66 | border-radius: 4px;
67 | }
68 |
69 | :selected .pgp-subkey-usage-label {
70 | background-color: shade(@theme_selected_bg_color, .95);
71 | }
72 |
73 | levelbar .strength-weak {
74 | background-color: #cc0000;
75 | border-color: #cc0000;
76 | }
77 |
78 | levelbar .strength-low {
79 | background-color: #f5ce00;
80 | border-color: #f5ce00;
81 | }
82 |
83 | levelbar .strength-medium,
84 | levelbar .strength-good,
85 | levelbar .strength-high {
86 | background-color: #73d216;
87 | border-color: #73d216;
88 | }
89 |
--------------------------------------------------------------------------------
/gkr/gkr-item-delete-operation.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2006 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | * Copyright (C) 2020 Niels De Graef
7 | *
8 | * This program is free software; you can redistribute it and/or modify
9 | * it under the terms of the GNU General Public License as published by
10 | * the Free Software Foundation; either version 2 of the License, or
11 | * (at your option) any later version.
12 | *
13 | * This program is distributed in the hope that it will be useful,
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 | * See the GNU General Public License for more details.
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program; if not, see .
19 | */
20 |
21 | public class Seahorse.Gkr.ItemDeleteOperation : DeleteOperation {
22 |
23 | public ItemDeleteOperation(Gkr.Item item) {
24 | add_item(item);
25 | }
26 |
27 | public void add_item(Gkr.Item item) {
28 | if (contains(item))
29 | return;
30 | this.items.add(item);
31 | }
32 |
33 | public override async bool execute(Cancellable? cancellable = null) throws GLib.Error {
34 | debug("Deleting %u passwords", this.items.length);
35 | foreach (unowned var deletable in this.items) {
36 | var item = (Gkr.Item) deletable;
37 | yield item.delete(cancellable);
38 | }
39 | return true;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/gkr/gkr-keyring-delete-operation.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU Lesser General Public License as
9 | * published by the Free Software Foundation; either version 2.1 of
10 | * the License, or (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful, but
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with this program; if not, see .
19 | */
20 |
21 | public class Seahorse.Gkr.KeyringDeleteOperation : DeleteOperation {
22 |
23 | public KeyringDeleteOperation(Keyring keyring) {
24 | add_keyring(keyring);
25 | }
26 |
27 | protected override Adw.AlertDialog create_confirm_dialog() {
28 | var dialog = base.create_confirm_dialog();
29 | dialog.body = _("All items in the keyring will also be permanently deleted!");
30 | return dialog;
31 | }
32 |
33 | public void add_keyring(Gkr.Keyring keyring) {
34 | if (contains(keyring))
35 | return;
36 | this.items.add(keyring);
37 | }
38 |
39 | public override async bool execute(Cancellable? cancellable) throws GLib.Error {
40 | debug("Deleting %u keyrings", this.items.length);
41 | foreach (unowned var item in this.items) {
42 | var keyring = (Gkr.Keyring) item;
43 | yield keyring.delete(cancellable);
44 | }
45 | return true;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/gkr/gkr-keyring-panel.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
18 |
19 | Keyring Properties
20 | action_menu
21 |
24 |
25 |
26 |
27 | vertical
28 | 24
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | Name
37 |
40 |
41 |
42 |
43 |
44 | Created on
45 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | center
55 | Keyring is unlocked
56 | Keyring is locked
57 |
58 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/gkr/gkr-keyring-permission.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2018 Anukul Sangwan
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see .
17 | */
18 |
19 | public class Seahorse.Gkr.KeyringPermission : GLib.Permission {
20 |
21 | private Keyring keyring;
22 |
23 | public KeyringPermission(Keyring keyring) {
24 | this.keyring = keyring;
25 | refresh();
26 | }
27 |
28 | private void disable() {
29 | this.impl_update(false, false, false);
30 | }
31 |
32 | private void refresh() {
33 | this.impl_update(!this.keyring.locked, Lockable.can_unlock(this.keyring), Lockable.can_lock(this.keyring));
34 | }
35 |
36 | public override async bool acquire_async(GLib.Cancellable? cancellable = null) throws GLib.Error {
37 | disable();
38 | yield this.keyring.unlock(null, null);
39 | refresh();
40 | return true;
41 | }
42 |
43 | public override async bool release_async(GLib.Cancellable? cancellable = null) throws GLib.Error {
44 | disable();
45 | yield this.keyring.lock(null, null);
46 | refresh();
47 | return true;
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/gkr/gkr-module.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2013 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see .
17 | *
18 | * Author: Stef Walter
19 | */
20 |
21 | namespace Seahorse {
22 | namespace Gkr {
23 |
24 | public const string NAME = "gkr";
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/gkr/meson.build:
--------------------------------------------------------------------------------
1 | gkr_sources = files(
2 | 'add-item-dialog.vala',
3 | 'add-keyring-dialog.vala',
4 | 'gkr-backend.vala',
5 | 'gkr-dialogs.vala',
6 | 'gkr-item-delete-operation.vala',
7 | 'gkr-item-info.vala',
8 | 'gkr-item-panel.vala',
9 | 'gkr-item.vala',
10 | 'gkr-keyring-delete-operation.vala',
11 | 'gkr-keyring-panel.vala',
12 | 'gkr-keyring-permission.vala',
13 | 'gkr-keyring.vala',
14 | 'gkr-module.vala',
15 | )
16 |
17 | gkr_dependencies = [
18 | glib_deps,
19 | gtk4_dep,
20 | gcr4_dep,
21 | libsecret,
22 | libpwquality,
23 | common_dep,
24 | ]
25 |
26 | gkr_vala_args = [
27 | '--gresources', resources_xml,
28 | ]
29 |
30 | gkr_c_args = [
31 | vala_workaround_cflags,
32 | ]
33 |
34 | gkr_lib = static_library('seahorse-gkr',
35 | gkr_sources,
36 | vala_args: gkr_vala_args,
37 | c_args: gkr_c_args,
38 | dependencies: gkr_dependencies,
39 | )
40 |
41 | gkr_dep = declare_dependency(
42 | link_with: gkr_lib,
43 | include_directories: include_directories('.'),
44 | )
45 |
--------------------------------------------------------------------------------
/help/C/about-certificate-key.page.stub:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Jim Campbell
15 | jwcampbell@gmail.com
16 | 2013
17 |
18 |
19 | Do my keys require a certificate?
20 |
21 |
22 | What is a certificate?
23 |
24 |
In the sidebar, you can see a section called Certificates listed alongside your PGP and Secure Shell keys.
25 | . . .
26 |
27 |
31 |
32 |
--------------------------------------------------------------------------------
/help/C/about-diff-private-public.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Jim Campbell
15 | jwcampbell@gmail.com
16 | 2013
17 |
18 |
19 | A public key is used to encrypt communication. A private key is
20 | used to decrypt it.
21 |
22 |
23 | Public Key vs Private Key
24 |
25 |
Although Public Keys and Private Keys are both referred
26 | to as keys, it helps to think of them a bit differently. Try to
27 | think of a Public Key as being like a padlock, and a
28 | Private Key as being like a key that unlocks the padlock.
29 |
30 |
31 | An Example: Sending a Secret Message in a Box
32 |
33 |
Let's use an example to see how this works. Imagine that you want your
34 | friend to send you a secret message in a box. You could give your friend a
35 | box and a padlock, but only you would have the key that unlocks the
36 | padlock.
37 |
38 |
Your friend could put their message in the box, lock the padlock, and
39 | then send you the locked box in the mail. When you receive it, you would use
40 | your key to unlock the box.
41 |
42 |
This is similar to how a Public Key and a Private Key
43 | work. Like the padlock, you can freely give out your Public Key.
44 | This will make it easy for anyone to securely encrypt, or lock, a message
45 | that they want to send to you.
46 |
47 |
On the other hand, a Private Key is like the key that allows you
48 | to decrypt, or unlock, the padlock. Because the Private Key is used
49 | to decrypt secure messages, you will want to keep your Private Key
50 | safe.
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/help/C/about-pgp.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Aruna Sankaranarayanan
16 | aruna.evam@gmail.com
17 | 2013
18 |
19 |
20 | PGP keys are used to sign and encrypt emails and files.
21 |
22 |
23 | What is a PGP key?
24 |
25 |
A PGP key is a public encryption key. A PGP key can be used to sign and
26 | encrypt emails and files. When you create a PGP key, a keypair having a
27 | public key and a private key is generated. You can share the public key with
28 | anyone who wishes to send you encrypted messages or files, but the private
29 | key must be known only to you and used to decrypt received messages.
30 |
31 |
32 | Encrypt and sign data using PGP keys
33 |
34 |
Passwords and Keys is a key management application. Though it
35 | cannot be used to encrypt or sign files and messages, you can use it to
36 | sign trustworthy keys.
37 |
38 |
To secure your communication, you can use email clients like
39 | Evolution that provide
40 | encryption
41 | and signing services.
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/help/C/about-ssh.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Jim Campbell
14 | jwcampbell@gmail.com
15 | 2013
16 |
17 |
18 | SSH keys are used to login to a remote computer, once a secure
19 | connection has been established.
20 |
21 |
22 | What is a Secure Shell key?
23 |
24 |
A Secure Shell key, often just called an SSH key,
25 | helps you create a secure connection over an unsecured network.
26 |
27 |
28 | An SSH key actually consists of two parts:
29 |
A public key, which is widely available.
30 |
A private key, which is kept secret. The private key is used
31 | to unlock messages encrypted with a corresponding public key.
32 |
33 |
34 |
The advantage of using an SSH key to create a connection between
35 | computers is that only the Public key needs to be sent over
36 | the network. Transmissions encrypted with a Public key can only be
37 | decoded by unlocking them with the corresponding Private key and a
38 | password. Because only the public key is sent over the network, the key's
39 | password is kept secret.
40 |
41 |
42 |
--------------------------------------------------------------------------------
/help/C/concepts.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Jim Campbell
15 | jcampbell@gnome.org
16 | 2014
17 |
18 |
19 | Learn terms and concepts that are relevant to managing passwords and
20 | keys.
21 |
22 |
23 | Key Concepts and Terms
24 |
25 |
26 |
--------------------------------------------------------------------------------
/help/C/index.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 | Passwords and Keys
8 | Passwords and Keys
9 | Passwords and Keys
10 |
11 |
12 |
13 |
14 | Jim Campbell
15 | jwcampbell@gmail.com
16 | 2013
17 |
18 |
19 | Aruna Sankaranarayanan
20 | aruna.evam@gmail.com
21 | 2013
22 |
23 |
24 | Ekaterina Gerasimova
25 | kittykat3756@gmail.com
26 | 2013
27 |
28 |
29 |
30 |
31 | Use Passwords and Keys to remember your passwords, and to create and manage PGP and SSH keys.
32 |
33 |
34 |
35 |
36 | Passwords and Keys
37 |
38 |
39 |
40 | SSH Keys
41 |
42 |
43 |
44 |
45 | PGP keys
46 |
47 |
48 |
49 |
50 | Stored passwords and password keyrings
51 |
52 |
53 |
54 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/help/C/introduction.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Jim Campbell
16 | jwcampbell@gmail.com
17 | 2013
18 |
19 |
20 |
21 | Aruna Sankaranarayanan
22 | aruna.evam@gmail.com
23 | 2013
24 |
25 |
26 | Use Passwords and Keys to create and manage PGP and SSH
27 | keys and to save passwords that are difficult to remember.
28 |
29 |
30 | Introduction
31 |
32 |
Welcome to the Passwords and Keys help guide.
33 | Passwords and Keys creates and stores security tokens, helping to
34 | keep your information secure on your computer, and secure when you send
35 | information over a network.
36 |
Using Passwords and Keys, you can:
37 |
38 |
39 |
40 |
Copy and save passwords
41 | that are difficult to remember. To group related passwords,
42 | create keyrings.
When you
25 | add a new password, it is
26 | normally added to the default keyring. If you want to add it to a different
27 | keyring, you can choose another one while adding the new password, but you
28 | can also change the default keyring. The default keyring is normally the
29 | Login keyring.
30 |
31 |
32 | To change the default keyring:
33 |
34 |
Select your choice for the default keyring from the list of
35 | keyrings under Passwords on the left side panel.
36 |
37 |
38 |
Right click on the selected keyring and select Set as
39 | default.
40 |
41 |
42 |
43 |
44 |
Passwords to some GNOME applications are stored automatically by
45 | Passwords and Keys in the Login keyring because it is
46 | the default keyring. When you change the default keyring, any new passwords
47 | created for GNOME applications will be stored in the new default keyring
48 | while GNOME application passwords created before the change will remain in
49 | the Login keyring.
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/help/C/keyring-lock.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Aruna Sankaranarayanan
16 | aruna.evam@gmail.com
17 | 2013
18 |
19 |
20 | Lock and password protect your password keyrings to control access to
21 | the passwords stored in them.
22 |
23 |
24 | Lock your keyrings
25 |
26 |
To safe-keep your passwords, store them in a password-protected keyring.
27 | When a password-protected keyring is locked, the passwords in it are kept
28 | hidden till someone unlocks the keyring
29 | with the correct password.
30 |
31 |
32 |
You can choose to protect your keyring with a password while
33 | creating it.
34 |
35 |
36 |
37 | To lock your password keyring:
38 |
39 |
From the list of keyrings under Passwords on the left side
40 | panel, select the keyring to be locked.
41 |
42 |
43 |
Right click on the selected keyring and select Lock, or
44 | click on the small picture of an opened lock next to the name of the
45 | password keyring.
A keyring may often be
25 | locked to protect the passwords
26 | it contains, similar to locking important things safely inside a trunk.
27 | In order to look at your passwords, you must unlock the keyring first.
28 |
29 |
30 | To unlock your keyring:
31 |
32 |
Select the keyring to be unlocked from the panel on your left. It is
33 | listed under Passwords.
34 |
35 |
36 |
Right click on the selected keyring and select Unlock from
37 | the menu, or alternatively, click the small picture of a closed lock next
38 | to the keyring name to unlock the keyring.
39 |
40 |
41 |
If the keyring is password-protected, you will be prompted for a
42 | password to unlock the keyring. Enter the correct password in the
43 | Password field and press Unlock to
44 | finish.
45 |
46 |
47 |
48 |
49 |
You can choose to password-protect your keyrings while
50 | creating them.
The password to unlock your keyring can
28 | be updated at any time.
29 |
30 |
31 | To update the password for a password keyring:
32 |
33 |
Select the password keyring from the list, under
34 | Passwords, on the left side panel.
35 |
36 |
37 |
Right click on the selected password keyring and select
38 | Change Password.
39 |
40 |
41 |
Type your old password to authenticate yourself and press
42 | Continue.
43 |
44 |
45 |
In the new dialog, type your new password, retype it to confirm the
46 | new password and press the Continue button to
47 | finish.
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/help/C/keyring.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Jim Campbell
16 | jwcampbell@gmail.com
17 | 2013
18 |
19 |
20 | Aruna Sankaranarayanan
21 | aruna.evam@gmail.com
22 | 2013
23 |
24 |
25 | Ekaterina Gerasimova
26 | kittykat3756@gmail.com
27 | 2013
28 |
29 |
30 | A keyring is used to group related passwords and keys.
31 |
32 |
33 | What is a keyring?
34 |
35 |
Much like a keyring in real life allows you to keep certain sets of keys
36 | together, a keyring in Passwords and Keys allows you to keep
37 | passwords and keys in separate groups.
38 |
39 |
When you open Passwords and Keys for the first time, you will
40 | see keys and password grouped together. In the Login keyring, you
41 | may find stored passwords for GNOME applications such as Web,
42 | Online Accounts etc. The Login keyring is the default
43 | keyring in Passwords and keys.
It is always advisable to save a copy of your keys on an external memory
32 | device like a USB drive. The device should then be kept locked or stored
33 | somewhere safe. This way you will always have a copy of the key if your
34 | computer breaks or if the data on your computer is corrupted in some way.
Passwords and Keys automatically stores passwords for certain
26 | GNOME applications in the Login keyring. Additionally, you can
27 | store any other password you want to remember.
28 |
29 |
30 | To create a new stored password:
31 |
32 |
Press the + button in the top-left corner of the window.
33 |
34 |
35 |
Select Password from the list.
36 |
37 |
38 |
Select the password keyring in which you want to store your password
39 | from the Keyring menu.
40 |
41 |
42 |
You can add additional information about the password in the
43 | Description field, like the date of creation, or the name of
44 | the application it protects, etc.
45 |
46 |
47 |
Type the password in the Password field. You can tick the
48 | Show password checkbox if you want to see the
49 | password text while typing it out.
50 |
51 |
52 |
Press the Add button to finish.
53 |
54 |
55 |
56 |
57 |
The default keyring is displayed as the first choice in the
58 | Keyring drop down menu. You can
59 | change the default
60 | keyring.
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/help/C/pgp-expiration-change.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Aruna Sankaranarayanan
15 | aruna.evam@gmail.com
16 | 2013
17 |
18 |
19 | Advance or postpone the expiration date of your keys.
20 |
21 |
22 | Change the expiration date of your keys
23 |
24 |
If your PGP key has expired but you wish to continue its use, you can
25 | change its expiry date. You can also change the expiration settings to have a
26 | key expire on an earlier date.
27 |
28 |
29 | To change the expiration date of a PGP key:
30 |
31 |
Select the PGP key from the list.
32 |
33 |
34 |
Right click on the selected key and select Properties.
35 |
36 |
37 |
In the new dialog, select the Details tab.
38 |
39 |
40 |
41 |
42 |
To change the expiration date of the master key, press the small
43 | button with the picture of a calendar next to Expires, on
44 | the right side of the dialog. You can then select the new expiration
45 | date from the calendar.
46 |
47 |
48 |
To change the expiration date of a
49 | subkey, expand the Subkeys
50 | panel and select the subkey from the list. Press the
51 | Expire button on the left of the panel and
52 | select the new expiration date.
53 |
54 |
55 |
56 |
57 |
58 |
59 |
If you are changing the expiration date of a key that has been
60 | published, you must synchronize the key with
61 | the key server after making the desired changes.
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/help/C/pgp-expired.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Aruna Sankaranarayanan
16 | aruna.evam@gmail.com
17 | 2013
18 |
19 |
20 | Can I still use it? Can expiration dates be changed?
21 |
22 |
23 | What happens if my key expires?
24 |
25 |
When your key expires, it becomes invalid. This means:
26 |
27 |
28 |
29 |
It can no longer be used to encrypt and decrypt messages.
30 |
31 |
32 |
It cannot sign other keys or receive signatures from other
33 | keys.
34 |
35 |
36 |
37 |
Depending on how long you want your key to be valid, you can
38 | set an expiration date for
39 | it. By default, Passwords and Keys sets all keys to be valid
40 | forever. That is, the keys never expire.
41 |
42 |
The expiration date on a key can be
43 | changed anytime, even after
44 | the key has expired. However, if you want to stop using the expired key, you
45 | should delete or
46 | revoke it.
47 |
48 |
49 |
If you have any messages encrypted with an expired key, you must change
50 | the expiration date on the key to decrypt such messages before deleting or
51 | revoking it.
If you have received a key file by email, you might want to import it into
32 | Passwords and Keys. In most cases, Passwords and Keys
33 | automatically imports PGP keys from your computer. You can also manually
34 | import a particular key, if it has not been imported already.
35 |
36 |
37 | How do I manually import a key?
38 |
39 |
Press the + button in the top-left corner of the window.
40 |
41 |
42 |
Select Import from file… from the list.
43 |
44 |
45 |
In the new dialog, select the key you wish to import. PGP keys end
46 | with pgp or asc, GPG keys end with
47 | gpg.
48 |
49 |
50 |
Click Open.
51 |
52 |
53 |
54 |
Once imported, the PGP and GPG keys are listed under
55 | GnuPG keys.
56 |
57 |
58 |
--------------------------------------------------------------------------------
/help/C/pgp-userid-primary.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Aruna Sankaranarayanan
15 | aruna.evam@gmail.com
16 | 2013
17 |
18 |
19 | Change your default user ID
20 |
21 |
22 | What is a primary user ID?
23 |
24 |
When you have multiple user IDs, one of the user IDs is made the primary
25 | user ID. Passwords and Keys will attach the primary user ID by
26 | default with your key information, while encrypting or signing, unless you
27 | explicitly choose another user ID instead.
28 |
29 |
30 | To change the primary user ID in a PGP key:
31 |
32 |
Select the GnuPG keys keyring from the left side panel.
33 |
34 |
35 |
Select the Personal PGP key from the list.
36 |
37 |
38 |
Right click on the selected key and select
39 | Properties
40 | Names and Signatures.
41 |
42 |
43 |
Select the new primary user ID from the list and click
44 | Primary.
45 |
46 |
47 |
48 |
The user ID will move to the top of the Names and Signatures
49 | list to become your primary user ID.
50 |
51 |
52 |
Sync your keys after changing your primary user ID to update the remote
53 | copies of your key.
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/help/C/pgp-userid-remove.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Aruna Sankaranarayanan
16 | aruna.evam@gmail.com
17 | 2013
18 |
19 |
20 | Remove extra user IDs
21 |
22 |
23 | Detach a user ID from a key
24 |
25 |
While it is essential that all keys have at least one user ID, you can
26 | remove any additional user IDs that you have attached to the key.
27 |
28 |
29 | To remove a user ID from a PGP key:
30 |
31 |
Select the GnuPG keys keyring from the left side panel.
32 |
33 |
34 |
Select the Personal PGP key from the list.
35 |
36 |
37 |
Right click on the selected key and choose
38 | Properties
39 | Names and Signatures.
40 |
41 |
42 |
Select the user ID you want to remove and click
43 | Delete.
44 |
45 |
46 |
47 |
48 |
Synchronize your keys after detaching the
49 | user ID to update the changes on the remote copy of the key.
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/help/C/pgp-userid.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Aruna Sankaranarayanan
15 | aruna.evam@gmail.com
16 | 2013
17 |
18 |
19 | Create keys with good user IDs and learn to add and remove user
20 | IDs.
21 |
22 |
23 | What is a user ID?
24 |
25 |
When you create a key, you provide details, like your name, email and a
26 | key description. This information together constitutes a user ID. A good user
27 | ID helps people to recognize your key when they are trying to
28 | retrieve or
29 | import it. It is important to fill in
30 | authentic information while creating your user ID.
31 |
32 |
33 | Add, remove user IDs
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/help/C/ssh-connect-remote.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Jim Campbell
15 | jcampbell@gnome.org
16 |
17 |
18 |
19 | Aruna Sankaranarayanan
20 | aruna.evam@gmail.com
21 |
22 |
23 | Use SSH keys to log in to another computer without entering a
24 | password.
25 |
26 |
27 | Connect to other computers
28 |
29 |
You can use Passwords and Keys to install your SSH key onto a
30 | remote computer that can run an SSH server. You can also
31 | set up your SSH key for
32 | remote login while creating the key.
33 |
34 |
35 |
36 |
Right click on the SSH key and select Configure Key
37 | for Secure Shell….
38 |
39 |
40 |
In the dialog window that opens, enter the Server address
41 | that you normally use to log in to the remote computer via SSH, and press
42 | Set Up.
43 |
44 |
45 |
The program will now attempt to connect to the specified
46 | Server address with the entered Login Name. If
47 | there are any problems in accessing the remote computer, a pop-up
48 | window will appear that explains the problem, and you can try again.
49 | Make sure that you have a network connection and that the remote
50 | computer is on and accessible.
51 |
52 |
53 |
If connection to the remote computer was successful, a dialog box will
54 | appear which asks for the Password you use to log in to the
55 | remote computer. Enter your password, then press
56 | OK.
57 |
58 |
59 |
60 |
You should now be able to log in to the remote computer via SSH without a
61 | password.
62 |
63 |
64 |
--------------------------------------------------------------------------------
/help/C/ssh-create-vs-setup.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Jim Campbell
15 | jwcampbell@gmail.com
16 |
17 |
18 | How do I create a new SSH key and set it up?
19 |
20 |
21 | SSH key creation and setup
22 |
23 |
If you have received a key file by email, you might want to import it into
31 | Passwords and Keys. In most cases, Passwords and Keys
32 | automatically imports SSH keys from the ~/.ssh directory on your
33 | computer. You can also manually import keys into
34 | Passwords and Keys.
35 |
36 |
37 | How do I manually import a key?
38 |
39 |
Press the + button in the top-left corner of the window.
40 |
41 |
42 |
Select Import from file… from the list.
43 |
44 |
45 |
In the new dialog, select the key you wish to
46 | import. Public SSH keys end with pub.
47 |
48 |
49 |
Click Open.
50 |
51 |
52 |
53 |
Imported keys are automatically grouped according to their type. So,
54 | SSH keys are listed in the OpenSSH keys
55 | section.
You can add extra subkeys to the same master key. You have to choose the
26 | right subkey each time you want to encrypt or sign when you do this.
27 |
28 |
29 | To add extra subkeys to a PGP key:
30 |
31 |
Select GnuPG keys from the left side panel.
32 |
33 |
34 |
Select the Personal PGP key from the list.
35 |
36 |
37 |
Right click on the selected key and select
38 | PropertiesDetails.
39 |
40 |
41 |
If the Subkeys panel is not expanded, expand it.
42 |
43 |
44 |
Click the Add button to add a new
45 | subkey.
46 |
47 |
48 |
Choose the right properties for your key by selecting the
49 | appropriate Key Type, Key Length and
50 | Expiration Date and click OK.
51 |
52 |
53 |
54 |
55 |
Always ensure that your subkey expires before your master key since a
56 | subkey is useless when its master key has expired.
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/help/C/subkeys-examine.page:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | Aruna Sankaranarayanan
16 | aruna.evam@gmail.com
17 | 2013
18 |
19 |
20 | See all the subkeys listed under a PGP key.
21 |
22 |
23 | Where are my subkeys listed?
24 |
25 |
You can check the contents of a keypair to see the properties of a
26 | subkey.
27 |
28 |
29 | To see all the subkeys in a PGP key:
30 |
31 |
Select the GnuPG keys from the left side panel.
32 |
33 |
34 |
Select the Personal PGP key.
35 |
36 |
37 |
Right click on the key chosen in the previous step and select
38 | PropertiesDetails.
39 |
40 |
41 |
If the Subkeys panel is not expanded, expand it.
42 |
43 |
44 |
All the subkeys for the selected PGP key will be listed in the
45 | panel.
46 |
47 |
48 |
49 |
50 |
While signing another key, Passwords and Keys automatically
51 | chooses the master key for signing, when you select a GnuPG keys
52 | keypair to sign with.
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/help/LINGUAS:
--------------------------------------------------------------------------------
1 | ca
2 | cs
3 | da
4 | de
5 | el
6 | es
7 | eu
8 | fr
9 | gl
10 | hu
11 | id
12 | pl
13 | pt_BR
14 | ru
15 | sv
16 | uk
17 |
--------------------------------------------------------------------------------
/help/meson.build:
--------------------------------------------------------------------------------
1 | help_pages = [
2 | 'about-diff-private-public.page',
3 | 'about-pgp.page',
4 | 'about-ssh.page',
5 | 'concepts.page',
6 | 'glossary.page',
7 | 'index.page',
8 | 'introduction.page',
9 | 'key-servers-add.page',
10 | 'keyring-change-default.page',
11 | 'keyring-create.page',
12 | 'keyring-lock.page',
13 | 'keyring-unlock.page',
14 | 'keyring-update-password.page',
15 | 'keyring.page',
16 | 'legal.xml',
17 | 'misc-key-backup.page',
18 | 'misc-key-fingerprint.page',
19 | 'passwords-stored-create.page',
20 | 'passwords-view.page',
21 | 'pgp-create.page',
22 | 'pgp-delete.page',
23 | 'pgp-expiration-change.page',
24 | 'pgp-expired.page',
25 | 'pgp-export.page',
26 | 'pgp-import.page',
27 | 'pgp-photoid.page',
28 | 'pgp-publish.page',
29 | 'pgp-retrieve-remote.page',
30 | 'pgp-sign.page',
31 | 'pgp-subkeys.page',
32 | 'pgp-sync.page',
33 | 'pgp-userid-add.page',
34 | 'pgp-userid-primary.page',
35 | 'pgp-userid-remove.page',
36 | 'pgp-userid.page',
37 | 'ssh-connect-remote.page',
38 | 'ssh-create.page',
39 | 'ssh-export.page',
40 | 'ssh-import.page',
41 | 'subkeys-add.page',
42 | 'subkeys-examine.page',
43 | 'subkeys-revoke.page',
44 | ]
45 |
46 | help_media = [
47 | 'media/dialog-password-symbolic.svg',
48 | 'media/org.gnome.Seahorse.svg',
49 | ]
50 |
51 | gnome.yelp(meson.project_name(),
52 | sources: help_pages,
53 | media: help_media,
54 | )
55 |
--------------------------------------------------------------------------------
/libseahorse/meson.build:
--------------------------------------------------------------------------------
1 | libseahorse_sources = files(
2 | 'seahorse-progress.c',
3 | 'seahorse-util.c',
4 | )
5 |
6 | libseahorse_deps = [
7 | glib_deps,
8 | gcr4_dep,
9 | libsecret,
10 | common_dep,
11 | ]
12 |
13 | libseahorse_lib = static_library('libseahorse',
14 | libseahorse_sources,
15 | dependencies: libseahorse_deps,
16 | include_directories: include_directories('..'),
17 | )
18 |
19 | libseahorse_dep = declare_dependency(
20 | link_with: libseahorse_lib,
21 | )
22 |
--------------------------------------------------------------------------------
/meson.options:
--------------------------------------------------------------------------------
1 | option('help',
2 | type: 'boolean',
3 | value: true,
4 | description: 'Build help',
5 | )
6 |
7 | option('profile',
8 | type: 'combo',
9 | choices: [ 'default', 'development' ],
10 | value: 'default',
11 | description: 'Indicate whether this is a nightly build (used for CI purposes)',
12 | )
13 |
14 | option('pgp-support',
15 | type: 'boolean',
16 | value: true,
17 | description: 'Add support PGP keys',
18 | )
19 |
20 | option('check-compatible-gpg',
21 | type: 'boolean',
22 | value: true,
23 | description: 'Perform a rudimentary check if the GPG and GPG versions are compatible',
24 | )
25 |
26 | option('pkcs11-support',
27 | type: 'boolean',
28 | value: true,
29 | description: 'Add support for PKCS#11 objects',
30 | )
31 |
32 | option('keyservers-support',
33 | type: 'boolean',
34 | value: true,
35 | description: 'Add support for keyservers',
36 | )
37 |
38 | option('hkp-support',
39 | type: 'boolean',
40 | value: true,
41 | description: 'Add support for keyservers using HKP',
42 | )
43 |
44 | option('ldap-support',
45 | type: 'boolean',
46 | value: true,
47 | description: 'Add support for keyservers using LDAP',
48 | )
49 |
50 | option('key-sharing',
51 | type: 'boolean',
52 | value: false,
53 | description: 'Add support for DNS-SD key sharing',
54 | )
55 |
56 | option('manpage',
57 | type: 'boolean',
58 | value: false,
59 | description: 'Build and install the manpage (requires xsltproc)',
60 | )
61 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpg-op.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2004 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include "config.h"
23 |
24 | #include
25 |
26 | gpgme_error_t seahorse_gpg_op_num_uids (gpgme_ctx_t ctx,
27 | const char *pattern,
28 | guint *number);
29 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-add-subkey.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2020 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-gpgme.h"
25 | #include "pgp/seahorse-gpgme-key.h"
26 | #include "pgp/seahorse-gpgme-key-gen-type.h"
27 | #include "pgp/seahorse-gpgme-subkey.h"
28 | #include "pgp/seahorse-pgp-subkey-usage.h"
29 |
30 | #define SEAHORSE_GPGME_TYPE_ADD_SUBKEY (seahorse_gpgme_add_subkey_get_type ())
31 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeAddSubkey, seahorse_gpgme_add_subkey,
32 | SEAHORSE_GPGME, ADD_SUBKEY,
33 | GtkDialog)
34 |
35 | SeahorseGpgmeAddSubkey* seahorse_gpgme_add_subkey_new (SeahorseGpgmeKey *pkey,
36 | GtkWindow *parent);
37 |
38 | SeahorsePgpKeyAlgorithm seahorse_gpgme_add_subkey_get_selected_algo (SeahorseGpgmeAddSubkey *self);
39 |
40 | SeahorsePgpSubkeyUsage seahorse_gpgme_add_subkey_get_selected_usage (SeahorseGpgmeAddSubkey *self);
41 |
42 | guint seahorse_gpgme_add_subkey_get_keysize (SeahorseGpgmeAddSubkey *self);
43 |
44 | GDateTime * seahorse_gpgme_add_subkey_get_expires (SeahorseGpgmeAddSubkey *self);
45 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-add-uid.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2003 Jacob Perkins
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include "seahorse-gpgme-key.h"
24 |
25 | #define SEAHORSE_GPGME_TYPE_ADD_UID (seahorse_gpgme_add_uid_get_type ())
26 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeAddUid, seahorse_gpgme_add_uid,
27 | SEAHORSE_GPGME, ADD_UID,
28 | GtkApplicationWindow)
29 |
30 | SeahorseGpgmeAddUid * seahorse_gpgme_add_uid_new (SeahorseGpgmeKey *pkey,
31 | GtkWindow *parent);
32 |
33 | void seahorse_gpgme_add_uid_run_dialog (SeahorseGpgmeKey *pkey,
34 | GtkWindow *parent);
35 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-data.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | */
20 |
21 | /**
22 | * A gpgme_data_t implementation which maps to a gio handle.
23 | * Allows for accessing data on remote machines (ie: smb, sftp)
24 | */
25 |
26 | #pragma once
27 |
28 | #include
29 | #include
30 |
31 | gpgme_data_t seahorse_gpgme_data_input (GInputStream* input);
32 |
33 | gpgme_data_t seahorse_gpgme_data_output (GOutputStream* output);
34 |
35 | /*
36 | * GTK/Glib use a model where if allocation fails, the program exits. These
37 | * helper functions extend certain GPGME calls to provide the same behavior.
38 | */
39 |
40 | gpgme_data_t seahorse_gpgme_data_new (void);
41 |
42 | void seahorse_gpgme_data_release (gpgme_data_t data);
43 |
44 | int seahorse_gpgme_data_write_all (gpgme_data_t data, const void* buffer, size_t len);
45 |
46 | gpgme_data_t seahorse_gpgme_data_new_from_mem (const char *buffer, size_t size, gboolean copy);
47 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-expires-dialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2020 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-gpgme-key.h"
25 | #include "pgp/seahorse-gpgme-subkey.h"
26 |
27 | #define SEAHORSE_GPGME_TYPE_EXPIRES_DIALOG (seahorse_gpgme_expires_dialog_get_type ())
28 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeExpiresDialog, seahorse_gpgme_expires_dialog,
29 | SEAHORSE_GPGME, EXPIRES_DIALOG,
30 | AdwDialog)
31 |
32 | GtkWidget * seahorse_gpgme_expires_dialog_new (SeahorseGpgmeSubkey *subkey);
33 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-generate-dialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2020 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-gpgme-keyring.h"
25 |
26 | #define SEAHORSE_GPGME_TYPE_GENERATE_DIALOG (seahorse_gpgme_generate_dialog_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeGenerateDialog, seahorse_gpgme_generate_dialog,
28 | SEAHORSE_GPGME, GENERATE_DIALOG,
29 | AdwDialog)
30 |
31 | void seahorse_gpgme_generate_register (void);
32 |
33 | SeahorseGpgmeGenerateDialog * seahorse_gpgme_generate_dialog_new (SeahorseGpgmeKeyring *keyring);
34 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-key-delete-operation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | *
20 | * Author: Stef Walter
21 | */
22 |
23 | #pragma once
24 |
25 | #include
26 |
27 | #include "seahorse-common.h"
28 | #include "seahorse-gpgme-key.h"
29 |
30 | #define SEAHORSE_GPGME_TYPE_KEY_DELETE_OPERATION (seahorse_gpgme_key_delete_operation_get_type ())
31 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeKeyDeleteOperation,
32 | seahorse_gpgme_key_delete_operation,
33 | SEAHORSE_GPGME, KEY_DELETE_OPERATION,
34 | SeahorseDeleteOperation)
35 |
36 | SeahorseGpgmeKeyDeleteOperation *
37 | seahorse_gpgme_key_delete_operation_new (SeahorseGpgmeKey *key);
38 |
39 | void seahorse_gpgme_key_delete_operation_add_key (SeahorseGpgmeKeyDeleteOperation *self,
40 | SeahorseGpgmeKey *key);
41 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-key-export-operation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | *
19 | * Author: Stef Walter
20 | */
21 |
22 | #pragma once
23 |
24 | #include
25 |
26 | #include "seahorse-common.h"
27 |
28 | #include "seahorse-gpgme-key.h"
29 |
30 | #define SEAHORSE_GPGME_TYPE_KEY_EXPORT_OPERATION (seahorse_gpgme_key_export_operation_get_type ())
31 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeKeyExportOperation,
32 | seahorse_gpgme_key_export_operation,
33 | SEAHORSE_GPGME, KEY_EXPORT_OPERATION,
34 | SeahorseExportOperation)
35 |
36 | SeahorseExportOperation * seahorse_gpgme_key_export_operation_new (SeahorseGpgmeKey *key,
37 | gboolean armor,
38 | gboolean secret);
39 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-key-gen-type.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU Lesser General Public License as
9 | * published by the Free Software Foundation; either version 2.1 of
10 | * the License, or (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful, but
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with this program; if not, see
19 | * .
20 | */
21 |
22 | #pragma once
23 |
24 | #include "seahorse-gpgme.h"
25 | #include "seahorse-pgp-key-algorithm.h"
26 |
27 | typedef enum {
28 | SEAHORSE_GPGME_KEY_GEN_TYPE_RSA_RSA,
29 | SEAHORSE_GPGME_KEY_GEN_TYPE_RSA_SIGN,
30 | SEAHORSE_GPGME_KEY_GEN_TYPE_RSA_ENCRYPT,
31 | SEAHORSE_GPGME_KEY_GEN_TYPE_DSA,
32 | SEAHORSE_GPGME_KEY_GEN_TYPE_DSA_ELGAMAL,
33 | SEAHORSE_GPGME_KEY_GEN_TYPE_ELGAMAL,
34 | } SeahorseGpgmeKeyGenType;
35 |
36 | const char * seahorse_gpgme_key_gen_type_to_string (SeahorseGpgmeKeyGenType type);
37 |
38 | SeahorsePgpKeyAlgorithm seahorse_gpgme_key_gen_type_get_key_algo (SeahorseGpgmeKeyGenType type);
39 |
40 | gboolean seahorse_gpgme_key_gen_type_get_subkey_algo (SeahorseGpgmeKeyGenType type,
41 | SeahorsePgpKeyAlgorithm *subkey_algo);
42 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-key.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2005 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include
25 |
26 | #include "seahorse-pgp-key.h"
27 |
28 | #define SEAHORSE_GPGME_TYPE_KEY (seahorse_gpgme_key_get_type ())
29 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeKey, seahorse_gpgme_key,
30 | SEAHORSE_GPGME, KEY,
31 | SeahorsePgpKey)
32 |
33 | SeahorseGpgmeKey* seahorse_gpgme_key_new (SeahorsePlace *sksrc,
34 | gpgme_key_t pubkey,
35 | gpgme_key_t seckey);
36 |
37 | void seahorse_gpgme_key_refresh (SeahorseGpgmeKey *self);
38 |
39 | void seahorse_gpgme_key_realize (SeahorseGpgmeKey *self);
40 |
41 | void seahorse_gpgme_key_ensure_signatures (SeahorseGpgmeKey *self);
42 |
43 | gpgme_key_t seahorse_gpgme_key_get_public (SeahorseGpgmeKey *self);
44 |
45 | void seahorse_gpgme_key_set_public (SeahorseGpgmeKey *self,
46 | gpgme_key_t key);
47 |
48 | gpgme_key_t seahorse_gpgme_key_get_private (SeahorseGpgmeKey *self);
49 |
50 | void seahorse_gpgme_key_set_private (SeahorseGpgmeKey *self,
51 | gpgme_key_t key);
52 |
53 | void seahorse_gpgme_key_refresh_matching (gpgme_key_t key);
54 |
55 | SeahorseValidity seahorse_gpgme_key_get_validity (SeahorseGpgmeKey *self);
56 |
57 | SeahorseValidity seahorse_gpgme_key_get_trust (SeahorseGpgmeKey *self);
58 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-keyring-panel.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2022 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-gpgme-keyring.h"
25 |
26 | #define SEAHORSE_GPGME_TYPE_KEYRING_PANEL (seahorse_gpgme_keyring_panel_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeKeyringPanel, seahorse_gpgme_keyring_panel,
28 | SEAHORSE_GPGME, KEYRING_PANEL,
29 | SeahorsePanel);
30 |
31 | GtkWidget * seahorse_gpgme_keyring_panel_new (SeahorseGpgmeKeyring *keyring);
32 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-keyring-panel.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | GPG Keyring
5 |
8 |
9 |
10 |
11 | vertical
12 | 18
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | Home directory
21 |
24 |
25 |
26 |
27 |
28 | Version
29 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-photo.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include
25 |
26 | #include "pgp/seahorse-gpgme.h"
27 | #include "pgp/seahorse-pgp-photo.h"
28 |
29 | #define SEAHORSE_TYPE_GPGME_PHOTO (seahorse_gpgme_photo_get_type ())
30 | G_DECLARE_FINAL_TYPE (SeahorseGpgmePhoto, seahorse_gpgme_photo,
31 | SEAHORSE, GPGME_PHOTO,
32 | SeahorsePgpPhoto);
33 |
34 | SeahorseGpgmePhoto* seahorse_gpgme_photo_new (gpgme_key_t key,
35 | GdkPixbuf *pixbuf,
36 | guint index);
37 |
38 | gpgme_key_t seahorse_gpgme_photo_get_pubkey (SeahorseGpgmePhoto *self);
39 |
40 | guint seahorse_gpgme_photo_get_index (SeahorseGpgmePhoto *self);
41 |
42 | void seahorse_gpgme_photo_set_index (SeahorseGpgmePhoto *self,
43 | guint index);
44 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-revoke-dialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2020 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-gpgme-subkey.h"
25 |
26 | #define SEAHORSE_GPGME_TYPE_REVOKE_DIALOG (seahorse_gpgme_revoke_dialog_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeRevokeDialog, seahorse_gpgme_revoke_dialog,
28 | SEAHORSE_GPGME, REVOKE_DIALOG,
29 | GtkApplicationWindow)
30 |
31 | GtkWidget * seahorse_gpgme_revoke_dialog_new (SeahorseGpgmeSubkey *subkey,
32 | GtkWindow *parent);
33 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-sign-dialog.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2020 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-gpgme-key.h"
25 | #include "pgp/seahorse-gpgme-uid.h"
26 |
27 | #define SEAHORSE_GPGME_TYPE_SIGN_DIALOG (seahorse_gpgme_sign_dialog_get_type ())
28 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeSignDialog, seahorse_gpgme_sign_dialog,
29 | SEAHORSE_GPGME, SIGN_DIALOG,
30 | GtkApplicationWindow)
31 |
32 | SeahorseGpgmeSignDialog* seahorse_gpgme_sign_dialog_new (SeahorseItem *to_sign);
33 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-subkey-delete-operation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | *
20 | * Author: Stef Walter
21 | */
22 |
23 | #pragma once
24 |
25 | #include
26 |
27 | #include "seahorse-common.h"
28 | #include "seahorse-gpgme-subkey.h"
29 |
30 | #define SEAHORSE_GPGME_TYPE_SUBKEY_DELETE_OPERATION (seahorse_gpgme_subkey_delete_operation_get_type ())
31 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeSubkeyDeleteOperation,
32 | seahorse_gpgme_subkey_delete_operation,
33 | SEAHORSE_GPGME, SUBKEY_DELETE_OPERATION,
34 | SeahorseDeleteOperation)
35 |
36 | SeahorseDeleteOperation * seahorse_gpgme_subkey_delete_operation_new (SeahorseGpgmeSubkey *subkey);
37 |
38 | void seahorse_gpgme_subkey_delete_operation_add_subkey (SeahorseGpgmeSubkeyDeleteOperation *self,
39 | SeahorseGpgmeSubkey *subkey);
40 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-subkey.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2021 Niels De Graef
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see
18 | * .
19 | */
20 |
21 | #pragma once
22 |
23 | #include
24 |
25 | #include
26 |
27 | #include "pgp/seahorse-pgp-subkey.h"
28 | #include "pgp/seahorse-gpgme-key.h"
29 |
30 | #define SEAHORSE_GPGME_TYPE_SUBKEY (seahorse_gpgme_subkey_get_type ())
31 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeSubkey, seahorse_gpgme_subkey,
32 | SEAHORSE_GPGME, SUBKEY,
33 | SeahorsePgpSubkey)
34 |
35 | SeahorseGpgmeSubkey* seahorse_gpgme_subkey_new (SeahorseGpgmeKey *parent_key,
36 | gpgme_subkey_t subkey);
37 |
38 | gpgme_subkey_t seahorse_gpgme_subkey_get_subkey (SeahorseGpgmeSubkey *self);
39 |
40 | void seahorse_gpgme_subkey_set_subkey (SeahorseGpgmeSubkey *self,
41 | gpgme_subkey_t subkey);
42 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme-uid-delete-operation.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | *
20 | * Author: Stef Walter
21 | */
22 |
23 | #pragma once
24 |
25 | #include
26 |
27 | #include "seahorse-common.h"
28 | #include "seahorse-gpgme-uid.h"
29 |
30 | #define SEAHORSE_GPGME_TYPE_UID_DELETE_OPERATION (seahorse_gpgme_uid_delete_operation_get_type ())
31 | G_DECLARE_FINAL_TYPE (SeahorseGpgmeUidDeleteOperation,
32 | seahorse_gpgme_uid_delete_operation,
33 | SEAHORSE_GPGME, UID_DELETE_OPERATION,
34 | SeahorseDeleteOperation)
35 |
36 | SeahorseGpgmeUidDeleteOperation *
37 | seahorse_gpgme_uid_delete_operation_new (SeahorseGpgmeUid *uid);
38 |
39 | void seahorse_gpgme_uid_delete_operation_add_uid (SeahorseGpgmeUidDeleteOperation *self,
40 | SeahorseGpgmeUid *uid);
41 |
--------------------------------------------------------------------------------
/pgp/seahorse-gpgme.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU Lesser General Public License as
9 | * published by the Free Software Foundation; either version 2.1 of
10 | * the License, or (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful, but
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with this program; if not, see
19 | * .
20 | */
21 |
22 | #pragma once
23 |
24 | #include
25 | #include
26 |
27 | #include
28 |
29 | #include "seahorse-common.h"
30 |
31 | typedef struct _SeahorseKeyTypeTable *SeahorseKeyTypeTable;
32 |
33 | struct _SeahorseKeyTypeTable {
34 | int rsa_sign, rsa_enc, dsa_sign, elgamal_enc;
35 | };
36 |
37 | /* TODO: I think these are extraneous and can be removed. In actuality OK == 0 */
38 | #define GPG_IS_OK(e) (gpgme_err_code (e) == GPG_ERR_NO_ERROR)
39 | #define GPG_OK (gpgme_error (GPG_ERR_NO_ERROR))
40 | #define GPG_E(e) (gpgme_error (e))
41 |
42 | #define SEAHORSE_GPGME_ERROR (seahorse_gpgme_error_domain ())
43 |
44 | GQuark seahorse_gpgme_error_domain (void);
45 |
46 | gboolean seahorse_gpgme_propagate_error (gpgme_error_t gerr,
47 | GError** error);
48 |
49 | void seahorse_gpgme_handle_error (gpgme_error_t err,
50 | const char *desc,
51 | ...);
52 |
53 | #define SEAHORSE_GPGME_BOXED_KEY (seahorse_gpgme_boxed_key_type ())
54 |
55 | GType seahorse_gpgme_boxed_key_type (void);
56 |
57 | SeahorseValidity seahorse_gpgme_convert_validity (gpgme_validity_t validity);
58 |
59 | GSource * seahorse_gpgme_gsource_new (gpgme_ctx_t gctx,
60 | GCancellable *cancellable);
61 |
--------------------------------------------------------------------------------
/pgp/seahorse-hkp-source.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2005 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | /**
21 | * SeahorseHKPSource: A key source which searches HTTP PGP key servers.
22 | *
23 | * - Derived from SeahorseServerSource.
24 | * - Adds found keys to SeahorseContext.
25 | * - Used by SeahorseServiceDiscovery for retrieving shared keys.
26 | */
27 |
28 | #pragma once
29 |
30 | #include "config.h"
31 | #include "seahorse-server-source.h"
32 |
33 | #ifdef WITH_HKP
34 |
35 | #define SEAHORSE_TYPE_HKP_SOURCE (seahorse_hkp_source_get_type ())
36 | G_DECLARE_FINAL_TYPE (SeahorseHKPSource, seahorse_hkp_source,
37 | SEAHORSE, HKP_SOURCE,
38 | SeahorseServerSource)
39 |
40 | SeahorseHKPSource* seahorse_hkp_source_new (const char *uri);
41 |
42 | gboolean seahorse_hkp_is_valid_uri (const char *uri);
43 |
44 | GList * seahorse_hkp_parse_lookup_response (const char *response);
45 |
46 |
47 | #define HKP_ERROR_DOMAIN (seahorse_hkp_error_quark())
48 | GQuark seahorse_hkp_error_quark (void);
49 |
50 | #endif /* WITH_HKP */
51 |
--------------------------------------------------------------------------------
/pgp/seahorse-keyserver-search.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | *
19 | * Author: Stef Walter
20 | */
21 |
22 | #pragma once
23 |
24 | #include
25 |
26 | #define SEAHORSE_TYPE_KEYSERVER_SEARCH (seahorse_keyserver_search_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorseKeyserverSearch, seahorse_keyserver_search,
28 | SEAHORSE, KEYSERVER_SEARCH,
29 | AdwDialog)
30 |
31 | SeahorseKeyserverSearch * seahorse_keyserver_search_new (void);
32 |
33 | char * seahorse_keyserver_search_get_search_text (SeahorseKeyserverSearch *self);
34 |
--------------------------------------------------------------------------------
/pgp/seahorse-keyserver-sync.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2006 Adam Schreiber
5 | * Copyright (C) 2020 Niels De Graef
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see
18 | * .
19 | */
20 |
21 | #pragma once
22 |
23 | #include
24 |
25 | #define SEAHORSE_TYPE_KEYSERVER_SYNC (seahorse_keyserver_sync_get_type ())
26 | G_DECLARE_FINAL_TYPE (SeahorseKeyserverSync, seahorse_keyserver_sync,
27 | SEAHORSE, KEYSERVER_SYNC,
28 | AdwDialog)
29 |
30 | SeahorseKeyserverSync * seahorse_keyserver_sync_new (GListModel *keys);
31 |
--------------------------------------------------------------------------------
/pgp/seahorse-ldap-source.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2004 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | /**
21 | * SeahorseHKPSource: A key source which searches LDAP PGP key servers.
22 | *
23 | * - Derived from SeahorseServerSource.
24 | * - Adds found keys to SeahorseContext.
25 | */
26 |
27 | #pragma once
28 |
29 | #include "seahorse-server-source.h"
30 |
31 | #ifdef WITH_LDAP
32 |
33 | #define SEAHORSE_TYPE_LDAP_SOURCE (seahorse_ldap_source_get_type ())
34 | G_DECLARE_FINAL_TYPE (SeahorseLDAPSource, seahorse_ldap_source,
35 | SEAHORSE, LDAP_SOURCE,
36 | SeahorseServerSource)
37 |
38 | SeahorseLDAPSource* seahorse_ldap_source_new (const char *uri);
39 |
40 | gboolean seahorse_ldap_is_valid_uri (const char *uri);
41 |
42 | #endif /* WITH_LDAP */
43 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-actions.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU Lesser General Public License as
9 | * published by the Free Software Foundation; either version 2.1 of
10 | * the License, or (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful, but
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with this program; if not, see
19 | * .
20 | */
21 |
22 | #pragma once
23 |
24 | #include
25 |
26 | SeahorseActionGroup * seahorse_pgp_backend_actions_instance (void);
27 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-dialogs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2003 Jacob Perkins
5 | * Copyright (C) 2004-2005 Stefan Walter
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see
18 | * .
19 | */
20 |
21 | /*
22 | * Various UI elements and dialogs used in pgp component.
23 | */
24 |
25 | #pragma once
26 |
27 | #include
28 |
29 | #include "pgp/seahorse-pgp-key.h"
30 |
31 | SeahorsePgpKey* seahorse_signer_get (GtkWindow *parent);
32 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-key-algorithm.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2025 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | */
20 |
21 | #pragma once
22 |
23 | #include
24 |
25 | typedef enum {
26 | SEAHORSE_PGP_KEY_ALGORITHM_RSA,
27 | SEAHORSE_PGP_KEY_ALGORITHM_DSA,
28 | SEAHORSE_PGP_KEY_ALGORITHM_ELGAMAL,
29 | SEAHORSE_PGP_KEY_ALGORITHM_ECC,
30 | SEAHORSE_PGP_KEY_ALGORITHM_ECDSA,
31 | SEAHORSE_PGP_KEY_ALGORITHM_ECDH,
32 | SEAHORSE_PGP_KEY_ALGORITHM_EDDSA,
33 | } SeahorsePgpKeyAlgorithm;
34 |
35 | /* Length ranges for key types */
36 | typedef enum {
37 | /* Minimum length for #DSA. */
38 | DSA_MIN = 768,
39 | /* Maximum length for #DSA. */
40 | DSA_MAX = 3072,
41 | /* Minimum length for #ELGAMAL. Maximum length is #LENGTH_MAX. */
42 | ELGAMAL_MIN = 768,
43 | /* Minimum length of #RSA_SIGN and #RSA_ENCRYPT. Maximum length is
44 | * #LENGTH_MAX.
45 | */
46 | RSA_MIN = 1024,
47 | /* Maximum length for #ELGAMAL, #RSA_SIGN, and #RSA_ENCRYPT. */
48 | LENGTH_MAX = 4096,
49 | /* Default length for #ELGAMAL, #RSA_SIGN, #RSA_ENCRYPT, and #DSA. */
50 | LENGTH_DEFAULT = 2048,
51 | } SeahorseKeyLength;
52 |
53 | const char * seahorse_pgp_key_algorithm_to_string (SeahorsePgpKeyAlgorithm algo);
54 |
55 | const char * seahorse_pgp_key_algorithm_to_gpgme_string (SeahorsePgpKeyAlgorithm algo);
56 |
57 | gboolean seahorse_pgp_key_algorithm_get_length_values (SeahorsePgpKeyAlgorithm algo,
58 | unsigned int *default_val,
59 | unsigned int *lower,
60 | unsigned int *upper);
61 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-key-panel.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2022 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-pgp-key.h"
25 |
26 | #define SEAHORSE_PGP_TYPE_KEY_PANEL (seahorse_pgp_key_panel_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorsePgpKeyPanel, seahorse_pgp_key_panel,
28 | SEAHORSE_PGP, KEY_PANEL,
29 | SeahorsePanel);
30 |
31 | GtkWidget * seahorse_pgp_key_panel_new (SeahorsePgpKey *pkey);
32 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-keysets.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2022 Niels De Graef
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU Lesser General Public License as
9 | * published by the Free Software Foundation; either version 2.1 of
10 | * the License, or (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful, but
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with this program; if not, see
19 | * .
20 | */
21 |
22 | #pragma once
23 |
24 | #include
25 |
26 | GListModel * seahorse_keyset_pgp_signers_new (void);
27 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-photo.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #define SEAHORSE_PGP_TYPE_PHOTO (seahorse_pgp_photo_get_type ())
26 | G_DECLARE_DERIVABLE_TYPE (SeahorsePgpPhoto, seahorse_pgp_photo,
27 | SEAHORSE_PGP, PHOTO,
28 | GObject);
29 |
30 | struct _SeahorsePgpPhotoClass {
31 | GObjectClass parent_class;
32 | };
33 |
34 | SeahorsePgpPhoto* seahorse_pgp_photo_new (GdkPixbuf *pixbuf);
35 |
36 | GdkPixbuf* seahorse_pgp_photo_get_pixbuf (SeahorsePgpPhoto *self);
37 |
38 | void seahorse_pgp_photo_set_pixbuf (SeahorsePgpPhoto *self,
39 | GdkPixbuf *pixbuf);
40 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-photos-widget.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2025 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "pgp/seahorse-pgp-key.h"
25 |
26 | #define SEAHORSE_PGP_TYPE_PHOTOS_WIDGET (seahorse_pgp_photos_widget_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorsePgpPhotosWidget, seahorse_pgp_photos_widget,
28 | SEAHORSE_PGP, PHOTOS_WIDGET,
29 | GtkWidget);
30 |
31 | GtkWidget * seahorse_pgp_photos_widget_new (SeahorsePgpKey *key);
32 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-photos-widget.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 | vertical
11 | 18
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | avatar-default-symbolic
20 | 42
21 | 12
22 | 12
23 | 12
24 | 12
25 |
26 |
27 |
28 |
29 | end
30 | start
31 |
34 |
35 |
36 | add-photo
37 | list-add-symbolic
38 | Add Picture
39 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
54 |
55 |
56 |
57 |
58 |
59 | carousel
60 |
61 |
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-signature.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "seahorse-common.h"
25 |
26 | #define SEAHORSE_PGP_TYPE_SIGNATURE (seahorse_pgp_signature_get_type ())
27 | G_DECLARE_DERIVABLE_TYPE (SeahorsePgpSignature, seahorse_pgp_signature,
28 | SEAHORSE_PGP, SIGNATURE,
29 | GObject)
30 |
31 |
32 | struct _SeahorsePgpSignatureClass {
33 | GObjectClass parent_class;
34 | };
35 |
36 | SeahorsePgpSignature* seahorse_pgp_signature_new (const gchar *keyid);
37 |
38 | const gchar* seahorse_pgp_signature_get_keyid (SeahorsePgpSignature *self);
39 |
40 | void seahorse_pgp_signature_set_keyid (SeahorsePgpSignature *self,
41 | const gchar *keyid);
42 |
43 | guint seahorse_pgp_signature_get_flags (SeahorsePgpSignature *self);
44 |
45 | void seahorse_pgp_signature_set_flags (SeahorsePgpSignature *self,
46 | guint flags);
47 |
48 | guint seahorse_pgp_signature_get_sigtype (SeahorsePgpSignature *self);
49 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-subkey-list-box.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2021 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 | #include
24 |
25 | #include "seahorse-common.h"
26 | #include "seahorse-pgp-types.h"
27 |
28 | #define SEAHORSE_PGP_TYPE_SUBKEY_LIST_BOX (seahorse_pgp_subkey_list_box_get_type ())
29 | G_DECLARE_FINAL_TYPE (SeahorsePgpSubkeyListBox, seahorse_pgp_subkey_list_box,
30 | SEAHORSE_PGP, SUBKEY_LIST_BOX,
31 | AdwPreferencesGroup)
32 |
33 | GtkWidget * seahorse_pgp_subkey_list_box_new (SeahorsePgpKey *key);
34 |
35 | SeahorsePgpKey * seahorse_pgp_subkey_list_box_get_key (SeahorsePgpSubkeyListBox *self);
36 |
37 | #define SEAHORSE_PGP_TYPE_SUBKEY_LIST_BOX_ROW (seahorse_pgp_subkey_list_box_row_get_type ())
38 | G_DECLARE_FINAL_TYPE (SeahorsePgpSubkeyListBoxRow, seahorse_pgp_subkey_list_box_row,
39 | SEAHORSE_PGP, SUBKEY_LIST_BOX_ROW,
40 | AdwExpanderRow)
41 |
42 | SeahorsePgpSubkey * seahorse_pgp_subkey_list_box_row_get_subkey (SeahorsePgpSubkeyListBoxRow *self);
43 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-subkey-usage.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2025 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | */
20 |
21 | #include "config.h"
22 |
23 | #include "seahorse-pgp-subkey-usage.h"
24 |
25 | #include
26 |
27 | const char *
28 | seahorse_pgp_subkey_usage_to_string (SeahorsePgpSubkeyUsage usage)
29 | {
30 | switch (usage) {
31 | case SEAHORSE_PGP_SUBKEY_USAGE_DEFAULT:
32 | return _("All Usages");
33 | case SEAHORSE_PGP_SUBKEY_USAGE_SIGN_ONLY:
34 | return _("Sign Only");
35 | case SEAHORSE_PGP_SUBKEY_USAGE_ENCRYPT_ONLY:
36 | return _("Encrypt Only");
37 | }
38 |
39 | g_return_val_if_reached (NULL);
40 | }
41 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-subkey-usage.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2025 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | */
20 |
21 | #pragma once
22 |
23 | typedef enum {
24 | SEAHORSE_PGP_SUBKEY_USAGE_DEFAULT,
25 | SEAHORSE_PGP_SUBKEY_USAGE_SIGN_ONLY,
26 | SEAHORSE_PGP_SUBKEY_USAGE_ENCRYPT_ONLY,
27 | } SeahorsePgpSubkeyUsage;
28 |
29 | const char * seahorse_pgp_subkey_usage_to_string (SeahorsePgpSubkeyUsage usage);
30 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-types.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2020 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | *
20 | * Author: Niels De Graef
21 | */
22 |
23 | #pragma once
24 |
25 | #include
26 |
27 | G_BEGIN_DECLS
28 |
29 | /* Common forward declarations */
30 | typedef struct _SeahorsePgpKey SeahorsePgpKey;
31 | typedef struct _SeahorsePgpSubkey SeahorsePgpSubkey;
32 | typedef struct _SeahorsePgpUid SeahorsePgpUid;
33 | typedef struct _SeahorsePgpPhoto SeahorsePgpPhoto;
34 | typedef struct _SeahorsePgpSignature SeahorsePgpSignature;
35 |
36 | G_END_DECLS
37 |
--------------------------------------------------------------------------------
/pgp/seahorse-pgp-uid-list-box.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2021 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "seahorse-pgp-uid.h"
25 |
26 | #define SEAHORSE_PGP_TYPE_UID_LIST_BOX (seahorse_pgp_uid_list_box_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorsePgpUidListBox, seahorse_pgp_uid_list_box,
28 | SEAHORSE_PGP, UID_LIST_BOX,
29 | AdwPreferencesGroup)
30 |
31 | #define SEAHORSE_PGP_TYPE_UID_LIST_BOX_ROW (seahorse_pgp_uid_list_box_row_get_type ())
32 | G_DECLARE_FINAL_TYPE (SeahorsePgpUidListBoxRow, seahorse_pgp_uid_list_box_row,
33 | SEAHORSE_PGP, UID_LIST_BOX_ROW,
34 | AdwExpanderRow)
35 |
36 | GtkWidget * seahorse_pgp_uid_list_box_new (SeahorsePgpKey *key);
37 |
--------------------------------------------------------------------------------
/pgp/seahorse-transfer.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2006 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see
18 | * .
19 | */
20 |
21 | #pragma once
22 |
23 | #include "seahorse-common.h"
24 |
25 | #include "seahorse-server-source.h"
26 |
27 | void seahorse_transfer_keyids_async (SeahorseServerSource *from,
28 | SeahorsePlace *to,
29 | const char **keyids,
30 | GCancellable *cancellable,
31 | GAsyncReadyCallback callback,
32 | gpointer user_data);
33 |
34 | void seahorse_transfer_keys_async (SeahorsePlace *from,
35 | SeahorsePlace *to,
36 | GList *keys,
37 | GCancellable *cancellable,
38 | GAsyncReadyCallback callback,
39 | gpointer user_data);
40 |
41 | gboolean seahorse_transfer_finish (GAsyncResult *result,
42 | GError **error);
43 |
--------------------------------------------------------------------------------
/pgp/seahorse-unknown-source.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2006 Stefan Walter
5 | * Copyright (C) 2011 Collabora Ltd.
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see
18 | * .
19 | */
20 |
21 | #pragma once
22 |
23 | #include "seahorse-common.h"
24 | #include "seahorse-unknown.h"
25 |
26 | #define SEAHORSE_TYPE_UNKNOWN_SOURCE (seahorse_unknown_source_get_type ())
27 | G_DECLARE_FINAL_TYPE (SeahorseUnknownSource, seahorse_unknown_source,
28 | SEAHORSE, UNKNOWN_SOURCE,
29 | GObject)
30 |
31 | SeahorseUnknownSource * seahorse_unknown_source_new (void);
32 |
33 | SeahorseUnknown * seahorse_unknown_source_add_object (SeahorseUnknownSource *self,
34 | const char *keyid,
35 | GCancellable *cancellable);
36 |
--------------------------------------------------------------------------------
/pgp/seahorse-unknown.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2006 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #pragma once
21 |
22 | #include
23 |
24 | #include "seahorse-common.h"
25 |
26 | /* Solve a circular include */
27 | typedef struct _SeahorseUnknownSource SeahorseUnknownSource;
28 |
29 |
30 | #define SEAHORSE_TYPE_UNKNOWN (seahorse_unknown_get_type ())
31 | G_DECLARE_FINAL_TYPE (SeahorseUnknown, seahorse_unknown, SEAHORSE, UNKNOWN, GObject)
32 |
33 | SeahorseUnknown * seahorse_unknown_new (SeahorseUnknownSource *usrc,
34 | const char *keyid,
35 | const char *display);
36 |
37 | const char * seahorse_unknown_get_keyid (SeahorseUnknown *self);
38 |
--------------------------------------------------------------------------------
/pgp/seahorse-xloadimage.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2005 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #include
21 | #include
22 |
23 | #define BUF_SIZE 4096
24 |
25 | int main (int argc, char* argv[])
26 | {
27 | unsigned char buf[BUF_SIZE];
28 | const char* fname;
29 | size_t len;
30 | FILE* f;
31 |
32 | fname = getenv ("SEAHORSE_IMAGE_FILE");
33 | if (!fname) {
34 | fprintf (stderr, "seahorse-xloadimage: specify output file in $SEAHORSE_IMAGE_FILE\n");
35 | exit (2);
36 | }
37 |
38 | f = fopen (fname, "wb");
39 | if (!f) {
40 | fprintf (stderr, "seahorse-xloadimage: couldn't open output file: %s", fname);
41 | exit (1);
42 | }
43 |
44 | do {
45 | len = fread (buf, sizeof(unsigned char), BUF_SIZE, stdin);
46 | } while (fwrite (buf, sizeof(unsigned char), len, f) == BUF_SIZE);
47 |
48 | if (ferror (f)) {
49 | fprintf (stderr, "seahorse-xloadimage: couldn't write to output file: %s", fname);
50 | exit (1);
51 | }
52 |
53 | fclose(f);
54 | return 0;
55 | }
56 |
--------------------------------------------------------------------------------
/pgp/test-ldap-source.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2021 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 |
20 | #include "seahorse-ldap-source.h"
21 | #include "seahorse-pgp-key.h"
22 | #include "seahorse-pgp-uid.h"
23 |
24 | #include
25 |
26 | static void
27 | test_ldap_is_valid_uri (void)
28 | {
29 | g_assert_true (seahorse_ldap_is_valid_uri ("ldap://keyserver.pgp.com"));
30 |
31 | /* Invalid URL */
32 | g_assert_false (seahorse_ldap_is_valid_uri ("test"));
33 |
34 | /* Missing scheme */
35 | g_assert_false (seahorse_ldap_is_valid_uri ("keyserver.pgp.com"));
36 |
37 | /* Wrong scheme */
38 | g_assert_false (seahorse_ldap_is_valid_uri ("hkp://keys.openpgp.org"));
39 | }
40 |
41 | int
42 | main (int argc, char **argv)
43 | {
44 | g_test_init (&argc, &argv, NULL);
45 |
46 | g_test_add_func ("/ldap/valid-uri", test_ldap_is_valid_uri);
47 |
48 | return g_test_run ();
49 | }
50 |
--------------------------------------------------------------------------------
/pkcs11/meson.build:
--------------------------------------------------------------------------------
1 | pkcs11_sources = files(
2 | 'certificate-der-export-operation.vala',
3 | 'pkcs11-certificate.vala',
4 | 'pkcs11-certificate-widget.vala',
5 | 'pkcs11-cert-key-pair.vala',
6 | 'pkcs11-cert-key-pair-panel.vala',
7 | 'pkcs11-delete-operation.vala',
8 | 'pkcs11-generate.vala',
9 | 'pkcs11-module.vala',
10 | 'pkcs11-private-key.vala',
11 | 'pkcs11-private-key-widget.vala',
12 | 'pkcs11-request-certificate-dialog.vala',
13 | 'pkcs11-token.vala',
14 | 'pkcs11-token-filter.vala',
15 | 'pkcs11-token-panel.vala',
16 |
17 | 'seahorse-pkcs11-backend.c',
18 | )
19 |
20 | pkcs11_deps = [
21 | glib_deps,
22 | common_dep,
23 | pkcs11_dep,
24 | ]
25 |
26 | pkcs11_vala_args = [
27 | '--gresources', resources_xml,
28 | ]
29 |
30 | pkcs11_c_args = [
31 | vala_workaround_cflags,
32 | ]
33 |
34 | pkcs11_lib = static_library('seahorse-pkcs11',
35 | pkcs11_sources,
36 | dependencies: pkcs11_deps,
37 | vala_args: pkcs11_vala_args,
38 | c_args: pkcs11_c_args,
39 | )
40 |
41 | pkcs11_dep = declare_dependency(
42 | link_with: pkcs11_lib,
43 | include_directories: include_directories('.'),
44 | )
45 |
--------------------------------------------------------------------------------
/pkcs11/pkcs11-cert-key-pair-panel.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
23 |
24 | action_menu
25 |
26 |
27 |
28 | vertical
29 | 18
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/pkcs11/pkcs11-delete-operation.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2013 Red Hat Inc.
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, write to the Free Software
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19 | * 02111-1307, USA.
20 | *
21 | * Author: Stef Walter
22 | */
23 |
24 | public class Seahorse.Pkcs11.DeleteOperation : Seahorse.DeleteOperation {
25 |
26 | public DeleteOperation(CertKeyPair pair) {
27 | this.items.add(pair);
28 | }
29 |
30 | public override async bool execute(Cancellable? cancellable) throws GLib.Error {
31 | debug("Deleting %u PKCS#11 objects", this.items.length);
32 | foreach (unowned var item in this.items) {
33 | var pair = (CertKeyPair) item;
34 | unowned var token = (Token?) pair.token;
35 |
36 | try {
37 | if (pair.certificate != null) {
38 | yield pair.certificate.destroy_async(cancellable);
39 | if (token != null)
40 | token.remove_object(pair.certificate);
41 | }
42 | if (pair.private_key != null) {
43 | yield pair.private_key.destroy_async(cancellable);
44 | if (token != null)
45 | token.remove_object(pair.private_key);
46 | }
47 |
48 | } catch (GLib.Error e) {
49 | /* Ignore objects that have gone away */
50 | if (e.domain != Gck.Error.quark() ||
51 | e.code != CKR.OBJECT_HANDLE_INVALID)
52 | throw e;
53 | }
54 | }
55 | return true;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/pkcs11/pkcs11-module.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2011 Collabora Ltd.
5 | * Copyright (C) 2012 Stefan Walter
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see .
18 | *
19 | * Author: Stef Walter
20 | */
21 |
22 | namespace Seahorse {
23 |
24 | public const string PKCS11_NAME = "pkcs11";
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/pkcs11/pkcs11-private-key-widget.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Name
9 |
12 |
13 |
14 |
15 |
16 | Description
17 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | Key Parameters
27 |
28 |
29 | Key Type
30 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/pkcs11/pkcs11-token-filter.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2022 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, write to the
17 | * Free Software Foundation, Inc.,
18 | * 59 Temple Place, Suite 330,
19 | * Boston, MA 02111-1307, USA.
20 | */
21 |
22 | public class Seahorse.Pkcs11.TokenFilter : Gtk.Filter {
23 |
24 | /** If set, only match tokens that are writable */
25 | public bool only_writable {
26 | get { return this._only_writable; }
27 | set {
28 | if (this._only_writable != value) {
29 | this._only_writable = value;
30 | changed(Gtk.FilterChange.DIFFERENT);
31 | }
32 | }
33 | }
34 | private bool _only_writable = false;
35 |
36 | /** If not MAXUINT, only match token that have the mechanism */
37 | public ulong mechanism {
38 | get { return this._mechanism; }
39 | set {
40 | if (this._mechanism == value)
41 | return;
42 |
43 | this._mechanism = value;
44 | changed(Gtk.FilterChange.DIFFERENT);
45 | }
46 | }
47 | public ulong _mechanism = ulong.MAX;
48 |
49 | public override bool match (GLib.Object? item) {
50 | var token = (Pkcs11.Token) item;
51 | if (this.only_writable && (CKF.WRITE_PROTECTED & token.info.flags) != 0)
52 | return false;
53 |
54 | if (this.mechanism != uint.MAX && !token.has_mechanism(this.mechanism))
55 | return false;
56 |
57 | return true;
58 | }
59 |
60 | public override Gtk.FilterMatch get_strictness () {
61 | return Gtk.FilterMatch.SOME;
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/pkcs11/seahorse-pkcs11-backend.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU Lesser General Public License as
8 | * published by the Free Software Foundation; either version 2.1 of
9 | * the License, or (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful, but
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | * Lesser General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU Lesser General Public
17 | * License along with this program; if not, see
18 | * .
19 | */
20 |
21 | #ifndef SEAHORSE_PKCS11_BACKEND_H_
22 | #define SEAHORSE_PKCS11_BACKEND_H_
23 |
24 | #include
25 |
26 | #define SEAHORSE_PKCS11_STR "pkcs11"
27 | #define SEAHORSE_PKCS11 (g_quark_from_static_string (SEAHORSE_PKCS11_STR))
28 |
29 | #define SEAHORSE_TYPE_PKCS11_BACKEND (seahorse_pkcs11_backend_get_type ())
30 | G_DECLARE_FINAL_TYPE (SeahorsePkcs11Backend, seahorse_pkcs11_backend, SEAHORSE, PKCS11_BACKEND, GObject)
31 |
32 | SeahorsePkcs11Backend * seahorse_pkcs11_backend_get (void);
33 |
34 | void seahorse_pkcs11_backend_initialize (void);
35 |
36 | #endif /* SEAHORSE_PKCS11_BACKEND_H_ */
37 |
--------------------------------------------------------------------------------
/po/LINGUAS:
--------------------------------------------------------------------------------
1 | # please keep this list sorted alphabetically
2 | #
3 | ab
4 | ar
5 | as
6 | ast
7 | az
8 | be
9 | be@latin
10 | bg
11 | bn
12 | bn_IN
13 | br
14 | bs
15 | ca
16 | ca@valencia
17 | cs
18 | cy
19 | da
20 | de
21 | dz
22 | el
23 | en_CA
24 | en_GB
25 | en@shaw
26 | eo
27 | es
28 | et
29 | eu
30 | fa
31 | fi
32 | fr
33 | fur
34 | ga
35 | gd
36 | gl
37 | gu
38 | he
39 | hi
40 | hr
41 | hu
42 | id
43 | ie
44 | is
45 | it
46 | ja
47 | ka
48 | kk
49 | kn
50 | ko
51 | ku
52 | lt
53 | lv
54 | mai
55 | mk
56 | ml
57 | mr
58 | ms
59 | nb
60 | ne
61 | nl
62 | nn
63 | oc
64 | or
65 | pa
66 | pl
67 | pt
68 | pt_BR
69 | ro
70 | ru
71 | rw
72 | si
73 | sk
74 | sl
75 | sq
76 | sr
77 | sr@latin
78 | sv
79 | ta
80 | te
81 | tg
82 | th
83 | tr
84 | ug
85 | uk
86 | uz
87 | vi
88 | zh_CN
89 | zh_HK
90 | zh_TW
91 |
--------------------------------------------------------------------------------
/po/POTFILES.skip:
--------------------------------------------------------------------------------
1 | # List of source files that should *not* be translated.
2 | # Please keep this file sorted alphabetically.
3 | common/add-keyserver-dialog.c
4 | common/catalog.c
5 | common/datepicker.c
6 | common/delete-dialog.c
7 | common/delete-operation.c
8 | common/exportable.c
9 | common/interaction.c
10 | common/keyserver-dropdown.c
11 | common/object.c
12 | common/passphrase-prompt.c
13 | common/place.c
14 | common/prefs-keyservers.c
15 | common/prefs.c
16 | common/server-category.c
17 | common/util.c
18 | common/validity.c
19 | data/org.gnome.Seahorse.desktop.in
20 | data/org.gnome.Seahorse.metainfo.xml.in
21 | gkr/add-item-dialog.c
22 | gkr/add-keyring-dialog.c
23 | gkr/gkr-backend.c
24 | gkr/gkr-item-info.c
25 | gkr/gkr-item-panel.c
26 | gkr/gkr-item.c
27 | gkr/gkr-keyring-delete-operation.c
28 | gkr/gkr-keyring-panel.c
29 | gkr/gkr-keyring.c
30 | gkr/gkr-password-entry.c
31 | pkcs11/certificate-der-export-operation.c
32 | pkcs11/certificate-der-exporter.c
33 | pkcs11/pkcs11-cert-key-pair-panel.c
34 | pkcs11/pkcs11-cert-key-pair.c
35 | pkcs11/pkcs11-certificate-widget.c
36 | pkcs11/pkcs11-certificate.c
37 | pkcs11/pkcs11-generate.c
38 | pkcs11/pkcs11-private-key-widget.c
39 | pkcs11/pkcs11-private-key.c
40 | pkcs11/pkcs11-request-certificate-dialog.c
41 | pkcs11/pkcs11-token-panel.c
42 | pkcs11/pkcs11-token.c
43 | src/application.c
44 | src/import-dialog.c
45 | src/key-manager.c
46 | src/main.c
47 | src/prefs-dialog.c
48 | src/search-provider.c
49 | src/sidebar.c
50 | ssh/actions.c
51 | ssh/algorithm.c
52 | ssh/backend.c
53 | ssh/errors.c
54 | ssh/exporter.c
55 | ssh/generate-key-dialog.c
56 | ssh/key-data.c
57 | ssh/key-export-operation.c
58 | ssh/key-length-chooser.c
59 | ssh/key-panel.c
60 | ssh/key.c
61 | ssh/operation.c
62 | ssh/seahorse-ssh-askpass.c
63 | ssh/source.c
64 | ssh/ssh.c
65 | ssh/upload.c
66 | # We need to keep this in for a while for Damned Lies
67 | subprojects/libhandy
68 |
--------------------------------------------------------------------------------
/po/meson.build:
--------------------------------------------------------------------------------
1 | i18n.gettext(meson.project_name(),
2 | preset: 'glib'
3 | )
4 |
--------------------------------------------------------------------------------
/seahorse.doap:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | seahorse
9 | A password and encryption key manager
10 | Seahorse is a graphical interface for managing and using encryption keys.
11 | Currently it supports PGP keys (using GPG/GPGME) and SSH keys. Its goal is to
12 | provide an easy to use Key Management Tool, along with an easy to use interface
13 | for encryption operations.
14 |
15 |
16 |
17 |
18 |
19 |
20 | C
21 | Vala
22 |
23 |
24 |
25 | Niels De Graef
26 |
27 | nielsdg
28 |
29 |
30 |
31 |
32 | Daiki Ueno
33 |
34 | dueno
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/src/key-manager-item-row.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | horizontal
7 | 6
8 |
11 |
12 |
13 | 16
14 |
15 |
16 |
17 |
18 | vertical
19 | True
20 | center
21 |
22 |
23 | start
24 | 0
25 | end
26 |
27 |
28 |
29 |
30 | 0
31 | start
32 | end
33 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | 1
44 | start
45 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/main.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2003 Jacob Perkins
5 | * Copyright (C) 2004,2005 Stefan Walter
6 | * Copyright (C) 2017 Niels De Graef
7 | *
8 | * This program is free software; you can redistribute it and/or modify
9 | * it under the terms of the GNU General Public License as published by
10 | * the Free Software Foundation; either version 2 of the License, or
11 | * (at your option) any later version.
12 | *
13 | * This program is distributed in the hope that it will be useful,
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 | * See the GNU General Public License for more details.
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program; if not, see
19 | * .
20 | */
21 |
22 | public int main (string[] args) {
23 | Intl.bindtextdomain(Config.GETTEXT_PACKAGE, Config.LOCALEDIR);
24 | Intl.bind_textdomain_codeset(Config.GETTEXT_PACKAGE, "UTF-8");
25 | Intl.textdomain(Config.GETTEXT_PACKAGE);
26 |
27 | Seahorse.Application app = new Seahorse.Application();
28 | return app.run(args);
29 | }
30 |
--------------------------------------------------------------------------------
/src/meson.build:
--------------------------------------------------------------------------------
1 | search_provider_src = gnome.gdbus_codegen('seahorse-shell-search-provider-generated',
2 | 'org.gnome.ShellSearchProvider2.xml',
3 | interface_prefix : 'org.gnome.',
4 | namespace : 'Seahorse',
5 | )
6 |
7 | seahorse_sources = [
8 | 'application.vala',
9 | 'import-dialog.vala',
10 | 'key-manager.vala',
11 | 'key-manager-filter.vala',
12 | 'key-manager-item-row.vala',
13 | 'main.vala',
14 | 'prefs-dialog.vala',
15 | 'search-provider.vala',
16 | 'sidebar.vala',
17 |
18 | resources_src,
19 | search_provider_src,
20 | ]
21 |
22 | seahorse_dependencies = [
23 | pkcs11_dep,
24 | glib_deps,
25 | gtk4_dep,
26 | libadwaita_dep,
27 | libsecret,
28 | common_dep,
29 | libseahorse_dep,
30 | gkr_dep,
31 | ssh_dep,
32 | ]
33 |
34 | seahorse_c_flags = [
35 | '-DHANDY_USE_UNSTABLE_API',
36 | vala_workaround_cflags,
37 | ]
38 |
39 | seahorse_vala_flags = [
40 | ]
41 |
42 | if get_option('keyservers-support')
43 | seahorse_vala_flags += [ '-D', 'WITH_KEYSERVER' ]
44 | endif
45 | if get_option('pgp-support')
46 | seahorse_dependencies += pgp_dep
47 | seahorse_vala_flags += [ '-D', 'WITH_PGP' ]
48 | endif
49 | if get_option('pkcs11-support')
50 | seahorse_dependencies += pkcs11_dep
51 | seahorse_vala_flags += [ '-D', 'WITH_PKCS11' ]
52 | endif
53 |
54 |
55 | seahorse_exe = executable('seahorse',
56 | seahorse_sources,
57 | dependencies: seahorse_dependencies,
58 | vala_args: seahorse_vala_flags,
59 | c_args: seahorse_c_flags,
60 | install: true,
61 | )
62 |
--------------------------------------------------------------------------------
/src/prefs-dialog.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2004-2005 Stefan Walter
5 | * Copyright (C) 2017 Niels De Graef
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation; either version 2 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 | * See the GNU General Public License for more details.
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program; if not, see
18 | * .
19 | */
20 |
21 | public class Seahorse.PrefsDialog : Adw.PreferencesDialog {
22 |
23 | /** Create a new preferences Dialog */
24 | public PrefsDialog() {
25 | GLib.Object (
26 | title: _("Preferences"),
27 | search_enabled: false
28 | );
29 |
30 | #if WITH_KEYSERVER
31 | add (new PrefsKeyservers());
32 | #endif
33 | }
34 |
35 | /** Returns whether there are any preferences to show */
36 | public static bool available() {
37 | #if WITH_KEYSERVER
38 | return true;
39 | #else
40 | return false;
41 | #endif
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/seahorse-key-manager-widgets.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 |
35 |
36 |
--------------------------------------------------------------------------------
/ssh/errors.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2016 Niels De Graef
5 | *
6 | * This program is free software; you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation; either version 2 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 | * See the GNU General Public License for more details.
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, see
17 | * .
18 | */
19 | public errordomain Seahorse.Ssh.Error {
20 | GENERAL
21 | }
22 |
--------------------------------------------------------------------------------
/ssh/meson.build:
--------------------------------------------------------------------------------
1 | ssh_sources = files(
2 | 'actions.vala',
3 | 'algorithm.vala',
4 | 'backend.vala',
5 | 'errors.vala',
6 | 'generate-key-dialog.vala',
7 | 'key-data.vala',
8 | 'key-delete-operation.vala',
9 | 'key-export-operation.vala',
10 | 'key-length-chooser.vala',
11 | 'key-panel.vala',
12 | 'key.vala',
13 | 'operation.vala',
14 | 'source.vala',
15 | 'ssh.vala',
16 | 'upload-remote-dialog.vala',
17 | )
18 |
19 | ssh_dependencies = [
20 | glib_deps,
21 | gcr4_dep,
22 | posix,
23 | gtk4_dep,
24 | common_dep,
25 | libseahorse_dep,
26 | ]
27 |
28 | ssh_vala_args = [
29 | '--gresources', resources_xml,
30 | ]
31 |
32 | ssh_c_args = [
33 | vala_workaround_cflags,
34 | ]
35 |
36 | ssh_lib = static_library('seahorse-ssh',
37 | ssh_sources,
38 | vala_args: ssh_vala_args,
39 | c_args: ssh_c_args,
40 | dependencies: ssh_dependencies,
41 | )
42 |
43 | ssh_dep = declare_dependency(
44 | link_with: ssh_lib,
45 | include_directories: include_directories('.'),
46 | )
47 |
48 | # ssh-askpass helper binary
49 | ssh_askpass_sources = files(
50 | 'seahorse-ssh-askpass.vala',
51 | )
52 |
53 | ssh_askpass_dependencies = [
54 | gcr4_dep,
55 | gtk4_dep,
56 | config,
57 | common_dep,
58 | posix,
59 | ]
60 |
61 | ssh_askpass = executable('ssh-askpass',
62 | [ ssh_askpass_sources, resources_src, ],
63 | dependencies: ssh_askpass_dependencies,
64 | install: true,
65 | install_dir: libexecbindir,
66 | )
67 |
68 | # Tests
69 | ssh_test_names = [
70 | 'key-parse',
71 | ]
72 |
73 | foreach _test : ssh_test_names
74 | test_bin = executable(_test,
75 | files('test-@0@.vala'.format(_test)),
76 | c_args: vala_workaround_cflags,
77 | dependencies: [
78 | ssh_dep,
79 | ssh_dependencies,
80 | ],
81 | include_directories: include_directories('..'),
82 | )
83 |
84 | test(_test, test_bin,
85 | suite: 'ssh',
86 | )
87 | endforeach
88 |
--------------------------------------------------------------------------------
/ssh/ssh.vala:
--------------------------------------------------------------------------------
1 | /*
2 | * Seahorse
3 | *
4 | * Copyright (C) 2008 Stefan Walter
5 | * Copyright (C) 2016 Niels De Graef
6 | *
7 | * This program is free software; you can redistribute it and/or modify
8 | * it under the terms of the GNU Lesser General Public License as
9 | * published by the Free Software Foundation; either version 2.1 of
10 | * the License, or (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful, but
13 | * WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | * Lesser General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU Lesser General Public
18 | * License along with this program; if not, see
19 | * .
20 | */
21 |
22 | namespace Seahorse.Ssh {
23 |
24 | public const string SEAHORSE_SSH_NAME = "openssh";
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/vapi/libqrencode.vapi:
--------------------------------------------------------------------------------
1 | /* qrencode.vapi
2 | *
3 | * Copyright (C) 2015 Ignacio Casal Quinteiro
4 | *
5 | * This library is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU Lesser General Public License
7 | * as published by the Free Software Foundation; either version 2.1 of
8 | * the License, or (at your option) any later version.
9 | *
10 | * This library is distributed in the hope that it will be useful, but
11 | * WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * Lesser General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU Lesser General Public
16 | * License along with this library; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 | * 02110-1301 USA
19 | *
20 | * As a special exception, if you use inline functions from this file,
21 | * this file does not by itself cause the resulting executable to be
22 | * covered by the GNU Lesser General Public License.
23 | */
24 | namespace QRencode {
25 | [CCode (cheader_filename = "qrencode.h", cname = "QRcode", unref_function = "QRcode_free")]
26 | public class QRcode {
27 | [CCode (cname = "QRcode_encodeString")]
28 | public QRcode.encodeString(string digits, int version, EcLevel level, Mode hint, int casesensitive);
29 |
30 | public int version;
31 | public int width;
32 | [CCode (array_length = false)]
33 | public uint8[] data;
34 | }
35 |
36 | [CCode (cheader_filename = "qrencode.h", cname="QRencLevel")]
37 | public enum EcLevel {
38 | [CCode (cname="QR_ECLEVEL_L")]
39 | L,
40 | [CCode (cname="QR_ECLEVEL_M")]
41 | M,
42 | [CCode (cname="QR_ECLEVEL_Q")]
43 | Q,
44 | [CCode (cname="QR_ECLEVEL_H")]
45 | H
46 | }
47 |
48 | [CCode (cheader_filename = "qrencode.h", cname="QRencodeMode")]
49 | public enum Mode {
50 | [CCode (cname="QR_MODE_NUL")]
51 | NUL,
52 | [CCode (cname="QR_MODE_NUM")]
53 | NUM,
54 | [CCode (cname="QR_MODE_AN")]
55 | AN,
56 | [CCode (cname="QR_MODE_8")]
57 | B8,
58 | [CCode (cname="QR_MODE_KANJI")]
59 | KANJI,
60 | [CCode (cname="QR_MODE_STRUCTURE")]
61 | STRUCTURE
62 | }
63 | }
64 |
--------------------------------------------------------------------------------