├── testing ├── ca-example │ ├── database.txt │ ├── serial.txt │ ├── certs │ │ ├── personal.p12 │ │ ├── server-self.crt │ │ ├── server.crt │ │ ├── personal.crt │ │ ├── client.crt │ │ ├── client-future.crt │ │ ├── client-past.crt │ │ ├── email.crt │ │ ├── generic-dsa.crt │ │ └── ca.crt │ ├── profiles │ │ ├── extensions.conf │ │ ├── request.conf │ │ └── ca.conf │ ├── requests │ │ ├── server.req │ │ ├── email.spkac │ │ ├── personal.req │ │ ├── generic-dsa.req │ │ ├── email.req │ │ └── client.req │ ├── keys │ │ ├── dsa.params │ │ ├── server.key │ │ ├── generic-dsa.key │ │ ├── ca.key │ │ ├── email.key │ │ ├── client.key │ │ └── personal.key │ └── commands.txt ├── ssh-example │ ├── README │ ├── identity │ ├── id_ecdsa.pub │ ├── id_ecdsa │ ├── id_rsa.pub │ ├── id_dsa.pub │ ├── identity.pub │ ├── id_dsa │ └── id_rsa └── gnupg-example │ ├── pubring.gpg │ ├── secring.gpg │ └── trustdb.gpg ├── .dir-locals.el ├── gcr ├── fixtures │ ├── gnupg-homedir │ │ ├── gpg.conf │ │ ├── pubring.gpg │ │ ├── secring.gpg │ │ └── trustdb.gpg │ ├── client.crt │ ├── client.spk │ ├── der-key.p8 │ ├── email.p12 │ ├── pubring.gpg │ ├── secring.gpg │ ├── personal.p12 │ ├── unclient.p12 │ ├── cacert.org.cer │ ├── collabora-ca.cer │ ├── der-dsa-1024.key │ ├── der-ec-256.key │ ├── der-key-dsa.p8 │ ├── der-rsa-1024.key │ ├── der-rsa-2048.p10 │ ├── ecc-strong.crt │ ├── ecc-strong.key │ ├── ecc-strong.spk │ ├── generic-dsa.crt │ ├── generic-dsa.spk │ ├── gost-ca-256.cer │ ├── gost-sample1.crq │ ├── gost-sample3.crq │ ├── startcom-ca.cer │ ├── der-key-v2-des.p8 │ ├── der-key-v2-des3.p8 │ ├── der-rsa-2048.spkac │ ├── jabber-server.cer │ ├── der-certificate.crt │ ├── dhansak-collabora.cer │ ├── test-x509-swiss.p7b │ ├── usr0052-firefox.p12 │ ├── der-certificate-dsa.cer │ ├── der-key-PBE-MD5-DES.p8 │ ├── der-key-PBE-SHA1-DES.p8 │ ├── der-key-PBE-SHA1-3DES.p8 │ ├── der-key-PBE-SHA1-RC2-40.p8 │ ├── der-key-encrypted-pkcs5.p8 │ ├── startcom-intermediate.cer │ ├── der-key-PBE-SHA1-RC4-128.p8 │ ├── gnupg-mock │ │ ├── mock-fail-exit │ │ ├── mock-echo │ │ ├── mock-simple-output │ │ ├── mock-fail-signal │ │ ├── mock-simple-error │ │ ├── mock-arguments-environ │ │ ├── mock-with-homedir │ │ ├── mock-status-and-output │ │ └── mock-status-and-attribute │ ├── ssh-agent │ │ ├── id_ecdsa_plain.pub │ │ ├── id_ecdsa_test.pub │ │ ├── id_ecdsa_encrypted.pub │ │ ├── id_ecdsa_384.pub │ │ ├── id_ecdsa_plain │ │ ├── id_ecdsa_521.pub │ │ ├── id_ecdsa_384 │ │ ├── id_ecdsa_encrypted │ │ ├── id_ecdsa_521 │ │ ├── id_rsa_encrypted.pub │ │ ├── id_rsa_plain.pub │ │ ├── id_rsa_test.pub │ │ ├── id_dsa_plain.pub │ │ ├── id_dsa_encrypted.pub │ │ ├── identity.pub │ │ ├── id_dsa_test.pub │ │ ├── id_dsa_plain │ │ ├── id_dsa_encrypted │ │ ├── id_rsa_plain │ │ └── id_rsa_encrypted │ ├── cert-ecc521.pub │ ├── prompt-tests │ │ ├── password-choice.prompt │ │ └── multiple.prompt │ ├── new_cert_request.csr │ ├── gost-sample1.crt │ ├── gost-sample3.crt │ ├── generic-dsa.key │ ├── pem-dsa-1024.key │ ├── 34.10-01.crt │ ├── base64-rsa-2048.spkac │ ├── RSA_Security_1024_v3.pem │ ├── openssh_keys.pub │ ├── pem-rsa-enc.key │ ├── Thawte_Time_Stamping_CA.pem │ ├── pem-rsa-2048.req │ ├── pem-pkcs8.key │ ├── client.pem │ ├── ecc256.pem │ ├── RSA_Root_Certificate_1.pem │ ├── Thawte_Server_CA.pem │ ├── cert-ecc521.pem │ ├── Thawte_Personal_Basic_CA.pem │ ├── Thawte_Personal_Premium_CA.pem │ ├── Thawte_Premium_Server_CA.pem │ ├── Thawte_Personal_Freemail_CA.pem │ ├── RSA_Security_2048_v3.pem │ ├── generic-dsa.pem │ ├── client.key │ └── grfc.crt ├── libgcr.map ├── gcr-marshal.list ├── gcr-ssh-agent.socket.in ├── Gcr-4.metadata ├── gcr-ssh-agent.service.in ├── gcr-unlock-options.h ├── console-interaction.h ├── gcr-subject-public-key-info-private.h ├── gcr-certificate-field.h ├── gcr-certificate-section.h ├── gcr-certificate-extension-list-private.h ├── gcr-ssh-agent-interaction.h ├── gcr-util.h ├── gcr-version.h.in ├── gcr-ssh-askpass.h ├── gcr-openssh.h ├── gcr-gnupg-records.h ├── gcr-ssh-agent-process.h ├── gcr-fingerprint.h ├── gcr-ssh-agent-preload.h ├── gcr-pkcs11-importer.h ├── gcr-certificate-extension.h ├── gcr-certificate-extension-list.h ├── gcr-callback-output-stream.h ├── gcr-mkoids ├── gcr-subject-public-key.h ├── gcr.h ├── gcr-openpgp.h ├── gcr-util.c ├── gcr-secure-memory.h ├── gcr-ssh-agent-util.h ├── gcr-subject-public-key-info.h ├── gcr-ssh-agent-service.h ├── gcr-certificate-extension-private.h ├── gcr-key-mechanisms.h ├── gcr-mock-prompter.h └── gcr-dbus-constants.h ├── po ├── meson.build ├── POTFILES.skip ├── LINGUAS └── POTFILES.in ├── tools ├── meson.build └── viewer │ ├── meson.build │ ├── gcr-section.h │ └── gcr-certificate-widget.h ├── gck ├── libgck.map ├── gck-marshal.list ├── mock-test-module.c ├── gck.pc.in ├── Gck-2.metadata ├── pkcs11x.h ├── gck-version.h.in └── pkcs11-trust-assertions.h ├── egg ├── fixtures │ ├── test-pkcs7-1.der │ ├── test-pkcs7-2.der │ ├── test-pkcs8-1.der │ ├── test-pkcs12-1.der │ ├── test-pkcs12-2.der │ ├── test-rsakey-1.der │ ├── test-certificate-1.der │ ├── test-personalname-1.der │ ├── test-personalname-invalid.der │ ├── echo-script.sh │ ├── dh-params.pem │ └── pem-rsa-enc.key ├── egg-libgcrypt.h ├── egg-fips-libgcrypt.c ├── egg-secure-memory-private.h ├── egg-fips.h ├── egg-fips-gnutls.c ├── egg-decimal.h ├── egg-asn1-defs.c ├── egg-asn1-defs.h ├── egg-error.h ├── egg-oid.h ├── mock-interaction.h ├── egg-hkdf.h ├── test-oid.c ├── egg-armor.h ├── egg-openssl.h ├── egg-hex.h ├── egg-dn.h └── test.asn ├── docs ├── meson.build ├── gck │ ├── urlmap.js │ ├── meson.build │ ├── gck.toml.in │ └── pkcs11-links.md ├── gcr │ ├── urlmap.js │ ├── pkcs11-configuration.md │ ├── non-pageable-memory.md │ ├── meson.build │ └── gcr.toml.in └── COPYING ├── .editorconfig ├── meson_options.txt └── gcr.doap /testing/ca-example/database.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /testing/ca-example/serial.txt: -------------------------------------------------------------------------------- 1 | 0C 2 | -------------------------------------------------------------------------------- /.dir-locals.el: -------------------------------------------------------------------------------- 1 | ((c-mode . ((c-file-style . "linux")))) 2 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-homedir/gpg.conf: -------------------------------------------------------------------------------- 1 | no-auto-check-trustdb 2 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(gcr_basename, 2 | preset: 'glib' 3 | ) 4 | -------------------------------------------------------------------------------- /testing/ssh-example/README: -------------------------------------------------------------------------------- 1 | The passwords for the private keys are: boooo 2 | -------------------------------------------------------------------------------- /tools/meson.build: -------------------------------------------------------------------------------- 1 | if get_option('gtk4') 2 | subdir('viewer') 3 | endif 4 | -------------------------------------------------------------------------------- /gck/libgck.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | gck_*; 4 | SECMEM_*; 5 | local: 6 | *; 7 | }; 8 | -------------------------------------------------------------------------------- /gcr/fixtures/client.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/client.crt -------------------------------------------------------------------------------- /gcr/fixtures/client.spk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/client.spk -------------------------------------------------------------------------------- /gcr/fixtures/der-key.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key.p8 -------------------------------------------------------------------------------- /gcr/fixtures/email.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/email.p12 -------------------------------------------------------------------------------- /gcr/fixtures/pubring.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/pubring.gpg -------------------------------------------------------------------------------- /gcr/fixtures/secring.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/secring.gpg -------------------------------------------------------------------------------- /gcr/fixtures/personal.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/personal.p12 -------------------------------------------------------------------------------- /gcr/fixtures/unclient.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/unclient.p12 -------------------------------------------------------------------------------- /egg/fixtures/test-pkcs7-1.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-pkcs7-1.der -------------------------------------------------------------------------------- /egg/fixtures/test-pkcs7-2.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-pkcs7-2.der -------------------------------------------------------------------------------- /egg/fixtures/test-pkcs8-1.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-pkcs8-1.der -------------------------------------------------------------------------------- /gck/gck-marshal.list: -------------------------------------------------------------------------------- 1 | BOOLEAN:STRING,POINTER 2 | BOOLEAN:OBJECT,STRING,POINTER 3 | BOOLEAN:ULONG 4 | -------------------------------------------------------------------------------- /gcr/fixtures/cacert.org.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/cacert.org.cer -------------------------------------------------------------------------------- /gcr/fixtures/collabora-ca.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/collabora-ca.cer -------------------------------------------------------------------------------- /gcr/fixtures/der-dsa-1024.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-dsa-1024.key -------------------------------------------------------------------------------- /gcr/fixtures/der-ec-256.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-ec-256.key -------------------------------------------------------------------------------- /gcr/fixtures/der-key-dsa.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-dsa.p8 -------------------------------------------------------------------------------- /gcr/fixtures/der-rsa-1024.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-rsa-1024.key -------------------------------------------------------------------------------- /gcr/fixtures/der-rsa-2048.p10: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-rsa-2048.p10 -------------------------------------------------------------------------------- /gcr/fixtures/ecc-strong.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/ecc-strong.crt -------------------------------------------------------------------------------- /gcr/fixtures/ecc-strong.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/ecc-strong.key -------------------------------------------------------------------------------- /gcr/fixtures/ecc-strong.spk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/ecc-strong.spk -------------------------------------------------------------------------------- /gcr/fixtures/generic-dsa.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/generic-dsa.crt -------------------------------------------------------------------------------- /gcr/fixtures/generic-dsa.spk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/generic-dsa.spk -------------------------------------------------------------------------------- /gcr/fixtures/gost-ca-256.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/gost-ca-256.cer -------------------------------------------------------------------------------- /gcr/fixtures/gost-sample1.crq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/gost-sample1.crq -------------------------------------------------------------------------------- /gcr/fixtures/gost-sample3.crq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/gost-sample3.crq -------------------------------------------------------------------------------- /gcr/fixtures/startcom-ca.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/startcom-ca.cer -------------------------------------------------------------------------------- /gcr/libgcr.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | gcr_*; 4 | _gcr_*; 5 | SECMEM_*; 6 | local: 7 | *; 8 | }; 9 | -------------------------------------------------------------------------------- /testing/ssh-example/identity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/testing/ssh-example/identity -------------------------------------------------------------------------------- /egg/fixtures/test-pkcs12-1.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-pkcs12-1.der -------------------------------------------------------------------------------- /egg/fixtures/test-pkcs12-2.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-pkcs12-2.der -------------------------------------------------------------------------------- /egg/fixtures/test-rsakey-1.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-rsakey-1.der -------------------------------------------------------------------------------- /gcr/fixtures/der-key-v2-des.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-v2-des.p8 -------------------------------------------------------------------------------- /gcr/fixtures/der-key-v2-des3.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-v2-des3.p8 -------------------------------------------------------------------------------- /gcr/fixtures/der-rsa-2048.spkac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-rsa-2048.spkac -------------------------------------------------------------------------------- /gcr/fixtures/jabber-server.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/jabber-server.cer -------------------------------------------------------------------------------- /gcr/fixtures/der-certificate.crt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-certificate.crt -------------------------------------------------------------------------------- /gcr/fixtures/dhansak-collabora.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/dhansak-collabora.cer -------------------------------------------------------------------------------- /gcr/fixtures/test-x509-swiss.p7b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/test-x509-swiss.p7b -------------------------------------------------------------------------------- /gcr/fixtures/usr0052-firefox.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/usr0052-firefox.p12 -------------------------------------------------------------------------------- /testing/gnupg-example/pubring.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/testing/gnupg-example/pubring.gpg -------------------------------------------------------------------------------- /testing/gnupg-example/secring.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/testing/gnupg-example/secring.gpg -------------------------------------------------------------------------------- /testing/gnupg-example/trustdb.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/testing/gnupg-example/trustdb.gpg -------------------------------------------------------------------------------- /egg/fixtures/test-certificate-1.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-certificate-1.der -------------------------------------------------------------------------------- /egg/fixtures/test-personalname-1.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-personalname-1.der -------------------------------------------------------------------------------- /gcr/fixtures/der-certificate-dsa.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-certificate-dsa.cer -------------------------------------------------------------------------------- /gcr/fixtures/der-key-PBE-MD5-DES.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-PBE-MD5-DES.p8 -------------------------------------------------------------------------------- /gcr/fixtures/der-key-PBE-SHA1-DES.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-PBE-SHA1-DES.p8 -------------------------------------------------------------------------------- /gcr/fixtures/der-key-PBE-SHA1-3DES.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-PBE-SHA1-3DES.p8 -------------------------------------------------------------------------------- /gcr/fixtures/der-key-PBE-SHA1-RC2-40.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-PBE-SHA1-RC2-40.p8 -------------------------------------------------------------------------------- /gcr/fixtures/der-key-encrypted-pkcs5.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-encrypted-pkcs5.p8 -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-homedir/pubring.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/gnupg-homedir/pubring.gpg -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-homedir/secring.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/gnupg-homedir/secring.gpg -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-homedir/trustdb.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/gnupg-homedir/trustdb.gpg -------------------------------------------------------------------------------- /gcr/fixtures/startcom-intermediate.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/startcom-intermediate.cer -------------------------------------------------------------------------------- /testing/ca-example/certs/personal.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/testing/ca-example/certs/personal.p12 -------------------------------------------------------------------------------- /gcr/fixtures/der-key-PBE-SHA1-RC4-128.p8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/gcr/fixtures/der-key-PBE-SHA1-RC4-128.p8 -------------------------------------------------------------------------------- /egg/fixtures/test-personalname-invalid.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GNOME/gcr/HEAD/egg/fixtures/test-personalname-invalid.der -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-fail-exit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | exit $1 7 | -------------------------------------------------------------------------------- /po/POTFILES.skip: -------------------------------------------------------------------------------- 1 | # List of source files that should *not* be translated. 2 | # Please keep this file sorted alphabetically. 3 | gcr/gcr-ssh-agent.service.in 4 | -------------------------------------------------------------------------------- /gcr/gcr-marshal.list: -------------------------------------------------------------------------------- 1 | BOOLEAN:INT 2 | BOOLEAN:BOXED 3 | OBJECT:VOID 4 | VOID:STRING,BOXED 5 | VOID:BOXED 6 | VOID:STRING 7 | VOID:OBJECT,BOXED 8 | VOID:OBJECT,OBJECT 9 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-echo: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | while read line; do 7 | echo "$line" 8 | done 9 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-simple-output: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | printf "simple-" 7 | printf "outp" 8 | echo "ut" -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-fail-signal: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | echo $1 > $(mktemp -t gcr-test-mock-fail-signal-XXXXXX) 7 | kill -s $1 $$ 8 | sleep 5 9 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-simple-error: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | printf "line 1: " >&2 7 | echo "more line 1" >&2 8 | echo "line 2" >&2 9 | echo "line 3" >&2 -------------------------------------------------------------------------------- /testing/ssh-example/id_ecdsa.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMKWn4nDF3IVAB2XKK8MdlMV0r1PkwHWemNuNkKnDSLy1CA17IEBXzEFX0yDEaC/8cFGBc0VblrySYCYKvJc+is= stef@stef.thewalter.lan 2 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_plain.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKjrWaW2Adg5rCNzwxl0QK0t1y3+BoTkK+FcVyRyL+y/DsNnVpXO/Z0dhkp0tkLFxkVZATgDx+WXX71S6yNcy5w= A public key comment 2 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_test.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKjrWaW2Adg5rCNzwxl0QK0t1y3+BoTkK+FcVyRyL+y/DsNnVpXO/Z0dhkp0tkLFxkVZATgDx+WXX71S6yNcy5w= A public key comment 2 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_encrypted.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNgFMnVkKhrkaU7FhRLHKstw6YrXHZ5o0hnoKu32Zup0JCegz9GGARlSDf8shWYNi+jGHJ+cIkgvmi92x2QNiAo= A public key comment 2 | -------------------------------------------------------------------------------- /docs/meson.build: -------------------------------------------------------------------------------- 1 | gi_docgen = find_program('gi-docgen') 2 | 3 | subdir('gck') 4 | subdir('gcr') 5 | 6 | # Create a pseudo target that build all docs at once 7 | alias_target('docs', 8 | gck_docs, 9 | gcr_docs, 10 | ) 11 | -------------------------------------------------------------------------------- /egg/fixtures/echo-script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | count=0 4 | output="" 5 | while read line; do 6 | output="$output $line" 7 | count=`expr $count + 1` 8 | echo "$count" >&2 9 | done 10 | echo $output 11 | sleep 1 12 | exit 3 13 | -------------------------------------------------------------------------------- /gck/mock-test-module.c: -------------------------------------------------------------------------------- 1 | #include "config.h" 2 | 3 | #include "gck-mock.h" 4 | #include 5 | 6 | CK_RV 7 | C_GetFunctionList (CK_FUNCTION_LIST_PTR_PTR list) 8 | { 9 | return gck_mock_C_GetFunctionList (list); 10 | } 11 | -------------------------------------------------------------------------------- /docs/gck/urlmap.js: -------------------------------------------------------------------------------- 1 | // A map between namespaces and base URLs for their online documentation 2 | baseURLs = [ 3 | [ 'GLib', 'https://docs.gtk.org/glib/' ], 4 | [ 'GObject', 'https://docs.gtk.org/gobject/' ], 5 | [ 'Gio', 'https://docs.gtk.org/gio/' ], 6 | ] 7 | -------------------------------------------------------------------------------- /docs/gcr/urlmap.js: -------------------------------------------------------------------------------- 1 | // A map between namespaces and base URLs for their online documentation 2 | baseURLs = [ 3 | [ 'GLib', 'https://docs.gtk.org/glib/' ], 4 | [ 'GObject', 'https://docs.gtk.org/gobject/' ], 5 | [ 'Gio', 'https://docs.gtk.org/gio/' ], 6 | ] 7 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_384.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzODQAAABhBGhrgSfK7vALpBivA+s6SFOWN+Z6f+kXbHst/5KUKkBfnDr0oBdxs0+IOdxelyR5x9C6x/8oD0oAwVBdr95CZeTJk6OGJaQUpPPhOSUMXZ6EGETzeuJkWX4kCVpA5wWRrQ== A public key comment 2 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_plain: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIMYWoyDjg5vGlG5DLo6EmnzXK4OGfnA+2GrL9p3xfvu+oAoGCCqGSM49 3 | AwEHoUQDQgAEqOtZpbYB2DmsI3PDGXRArS3XLf4GhOQr4VxXJHIv7L8Ow2dWlc79 4 | nR2GSnS2QsXGRVkBOAPH5ZdfvVLrI1zLnA== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /egg/fixtures/dh-params.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN DH PARAMETERS----- 2 | MIGHAoGBAOmZHLx3BXvrPoFlAl6DOHIr2wApepEOpEESnqhO0JGvnaVWgaGS5+fC 3 | g/9vqexageA6jAmZ9msZ34C+hn0KebHbPkKufsH8oFeInz7WZuhsPCSKpHyOaZmX 4 | GDx6gJMkLA10HOXU4bqZy1rOiVxTuS2bn+aw2CA7WoKGVnuOnCozAgEC 5 | -----END DH PARAMETERS----- 6 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-agent.socket.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=GCR ssh-agent wrapper 3 | 4 | [Socket] 5 | Priority=6 6 | Backlog=5 7 | ListenStream=%t/gcr/ssh 8 | ExecStartPost=-@systemctl@ --user set-environment SSH_AUTH_SOCK=%t/gcr/ssh 9 | DirectoryMode=0700 10 | 11 | [Install] 12 | WantedBy=sockets.target 13 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_521.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAEuCDfR6i7TTI99PeX85cbIhzaO3ho/s9QIdAIeut5ybrTUTgDepo3A+PxHLgAwIxMgtkB60HVSE+NL47ewKUWSOAAQP16XBWjpJHtTZrsy3he+aUw5728tCjI4/TPqF6ANdRw0FjAj7Q0SQvTQl9CqBW68beETcBXK9y8YtO+pHnVmYA== A public key comment 2 | -------------------------------------------------------------------------------- /gcr/fixtures/cert-ecc521.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAoapA9bLQHQiI8V2mIzs9sq80VR4F 3 | BB0TBOSxGqBOE3FSzHAejQkIKc/1pW0v0wKvapYMq/RrfhPJxPkjTPtztUsAkU// 4 | 9E0/aoEWVC6Rqf+VX3wIhe7+RS8JXdBh9SM0+Z9MCRUiM8K9qPMtpNgB2ks7T5BG 5 | FHSMlNKmuLW1agWPy5A= 6 | -----END PUBLIC KEY----- 7 | 8 | -------------------------------------------------------------------------------- /gcr/Gcr-4.metadata: -------------------------------------------------------------------------------- 1 | // Metadata file for Vala API generation. 2 | // See https://live.gnome.org/Vala/UpstreamGuide for more information 3 | 4 | Certificate 5 | .label nullable=true 6 | .subject_name nullable=true 7 | .issuer_name nullable=true 8 | .expiry_date nullable=true 9 | CertificateField.get_value.value ref 10 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_384: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIGkAgEBBDBAcQcqfgI1Oc9lkcuvD7tQUVmjI2w1E122EO7olpF560alvAk9/hhu 3 | eTZpAgl3HRugBwYFK4EEACKhZANiAARoa4Enyu7wC6QYrwPrOkhTljfmen/pF2x7 4 | Lf+SlCpAX5w69KAXcbNPiDncXpckecfQusf/KA9KAMFQXa/eQmXkyZOjhiWkFKTz 5 | 4TklDF2ehBhE83riZFl+JAlaQOcFka0= 6 | -----END EC PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /gcr/fixtures/prompt-tests/password-choice.prompt: -------------------------------------------------------------------------------- 1 | [prompt] 2 | type = password 3 | title = Unlock Keyring 4 | message = Enter password for keyring 'xxx' to unlock 5 | description = An application wants to use a password in 'xxx', but it is locked 6 | choice-label = Always unlock this keyring whenever logged in. 7 | password-new = false 8 | continue-label = Unlock 9 | -------------------------------------------------------------------------------- /testing/ssh-example/id_ecdsa: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,90D5DC6AEE85FE9929F112F5E22E8295 4 | 5 | 2SlRUDeauO04UsLRZMfma2vQwzv2l16l/LEyWx325JNOdEjlGAuYiycJr0b2qr7u 6 | vAv0pc71Re8Jg6nSVSy9O4werYnkQcb6E6MTaZCCUgqRqtGfmHtHvhIDxSqybPv7 7 | iCjTfzLtuJ6C6TiLH9h7OVfDW/tcWg08MJ5VP1iMHhA= 8 | -----END EC PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_encrypted: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,739A7A7A93FC8D8932F08886D4E00A28 4 | 5 | R993QL3hLEDT9eav5CGOEAfpp87WXwwfUQBDX6tQLT9AfKawIx9ywWEVDP858YvH 6 | 7DVftJjfMEJPTprMunH/b+lzG20C5UkXFJSV6Mjb1vfYh55tMn5BkzUswzMtHiXw 7 | C8T+HqpuKI5jTGDbW9m5A0VvFHvWgktj6BYCprpldtI= 8 | -----END EC PRIVATE KEY----- 9 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-agent.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=GCR ssh-agent wrapper 3 | 4 | Requires=gcr-ssh-agent.socket 5 | 6 | [Service] 7 | Type=simple 8 | StandardError=journal 9 | Environment=SSH_AUTH_SOCK=%t/gcr/ssh 10 | ExecStart=@libexecdir@/gcr-ssh-agent --base-dir %t/gcr 11 | Restart=on-failure 12 | 13 | [Install] 14 | Also=gcr-ssh-agent.socket 15 | WantedBy=default.target 16 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-arguments-environ: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | while getopts '1:2:' arg; do 7 | case $arg in 8 | 1) 9 | echo $OPTARG 10 | ;; 11 | 2) 12 | echo $OPTARG 13 | ;; 14 | *) 15 | echo "invalid argument: $arg" 16 | exit 2 17 | ;; 18 | esac 19 | done 20 | 21 | printf $ENVIRON1 >&2 22 | echo $ENVIRON2 >&2 23 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_ecdsa_521: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIHcAgEBBEIBLLaP4NDe6/pO69bC8xRzKcRKZ/HFebSnl6IYerSBv1uXSuIwhK5s 3 | 6xhFUfecUCrImZYaDwFoeB8pa5D66siqWsygBwYFK4EEACOhgYkDgYYABAEuCDfR 4 | 6i7TTI99PeX85cbIhzaO3ho/s9QIdAIeut5ybrTUTgDepo3A+PxHLgAwIxMgtkB6 5 | 0HVSE+NL47ewKUWSOAAQP16XBWjpJHtTZrsy3he+aUw5728tCjI4/TPqF6ANdRw0 6 | FjAj7Q0SQvTQl9CqBW68beETcBXK9y8YtO+pHnVmYA== 7 | -----END EC PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_rsa_encrypted.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4+W0j6ubMFOkdaQ+bSZ5UQCa/HztFKajLjAmJBjiQ2HxMkYTyVhgel1+VXzEMF0mFJx+FML5kF2sf7GA6EXCz7f1A/UiUBfFkD2BYI8WE6o71iFUQ0UK7q8gnPfckSunGdUbb3MZUz+04K6ovR8XQKaOel0EP5rZ4qF457JRg4/w7jrQU9wOuL9m05aaFbPUemACa2M0Yw49PKu6pO8RcjQ3pKokFHkigqTtoRtbk186Rponw4btFt1bQfxxyDWMA1PHz4Gts+EHgOoLfwEN/IErfpYMamgff+1O74qamOTb9LnEkgnWh0UVyf3LcMJLB/fJaEEnoqX0mzf2yon28w== 2 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_rsa_plain.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoD6VKqkhay6pKHSRjAGWWfFPU8xfsi2gnOwP/B1UHDoztx3czhO+py/fTlhCnSP1jsjkrVIZcnzah2fUNFFRgS4+jROBtvbgHsS72V1E6+ZogV+mBJWWAhw0iPrmQ3Kvm38D3PByo5Y7yKO5kIG2LloYLjosJ5F4sx2xh0uz2wXNtnY1b5xhe2+VEksm9OB+FXaUkZC2fQrTNo8ZGFJQSFd8kUhIfbUDJmlYuZ+vvHM+A3Lc9rHyW4IPaRyxFQciRmb+ZQqU2uSdOXAhg17lskuX/q8yCI5Hy5eDicC222oUMdJTtYgwX4dQCU8TICWhxb3x4RCV+g7D99+tkIvv+w== 2 | -------------------------------------------------------------------------------- /gcr/fixtures/new_cert_request.csr: -------------------------------------------------------------------------------- 1 | -----BEGIN NEW CERTIFICATE REQUEST----- 2 | MIHTMIGBAgEAMBIxEDAOBgNVBAMTB0V4YW1wbGUwZjAfBggqhQMHAQEBATATBgcq 3 | hQMCAiMABggqhQMHAQECAgNDAARAC9hv5djbiWaPeJtOHbqFhcVQi0XsW1nYkG3b 4 | cOJJK3/ad/+HGhD73ydm0pPF0WSvuzx7lzpByIXRHXDWibTxJqAAMAoGCCqFAwcB 5 | AQMCA0EAaqqzjjXUqqUXlAMBeZEi2FVIT1efTLuW1jzf3zrMQypBqijS8asUgoDN 6 | ntVv7aQZdAU1VKQnZ7g60EP9OdwEkw== 7 | -----END NEW CERTIFICATE REQUEST----- 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: 2021 The GCR Authors 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | trim_trailing_whitespace = true 10 | 11 | [*.[ch]] 12 | indent_style = tab 13 | insert_final_newline = true 14 | trim_trailing_whitespace = true 15 | tab_width = 8 16 | 17 | [meson.build] 18 | indent_size = 2 19 | indent_style = space 20 | 21 | -------------------------------------------------------------------------------- /testing/ssh-example/id_rsa.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCs8z2y0cCPYRAPkq8tAt6FC/kdfnR/p8B2ZoY0oiLNt7kQEwJfexgwLqTxWYd2fSDUSSDPrsqAxZAwLLS/eF04kXiJO2VfqAWFpTLNToERHpFF1yZQe26ELTlNNfna7LqfCRvpNDwu6AqndsT3eFt7DWvBDXbbEiTLW21Z2OFAAH/J2iCFn4c0a8Myf7IaMYcy5GG3mpk39kEO4aNV/67U7kfooek24ObwD0vlXzlsi5VZIUFOIUi0UdkNEMCtUWpfkZ1STUlmwp9HVM7xb7/9PESQKDnZdxpB09S9cIjdpDecpDlMDDEbEUECM1PIas3ndhB7gAN1i2JsPHTcXZ1 rsa-key@example.com 2 | -------------------------------------------------------------------------------- /gck/gck.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | datarootdir=@datarootdir@ 6 | datadir=@datadir@ 7 | sysconfdir=@sysconfdir@ 8 | 9 | Name: gck-@GCK_MAJOR@ 10 | Description: GObject bindings for PKCS#11 11 | Version: @VERSION@ 12 | Requires: glib-2.0 gobject-2.0 gio-2.0 p11-kit-1 13 | Libs: -L${libdir} -lgck-@GCK_MAJOR@ 14 | Cflags: -I${includedir}/gck-@GCK_MAJOR@ 15 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_rsa_test.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAoD6VKqkhay6pKHSRjAGWWfFPU8xfsi2gnOwP/B1UHDoztx3czhO+py/fTlhCnSP1jsjkrVIZcnzah2fUNFFRgS4+jROBtvbgHsS72V1E6+ZogV+mBJWWAhw0iPrmQ3Kvm38D3PByo5Y7yKO5kIG2LloYLjosJ5F4sx2xh0uz2wXNtnY1b5xhe2+VEksm9OB+FXaUkZC2fQrTNo8ZGFJQSFd8kUhIfbUDJmlYuZ+vvHM+A3Lc9rHyW4IPaRyxFQciRmb+ZQqU2uSdOXAhg17lskuX/q8yCI5Hy5eDicC222oUMdJTtYgwX4dQCU8TICWhxb3x4RCV+g7D99+tkIvv+w== A public key comment 2 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-with-homedir: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | HOMEDIR= 7 | 8 | # Not real 'long' option parsing, but good enough for this 9 | while [ $# -gt 1 ]; do 10 | if [ "$1" = --homedir ]; then 11 | HOMEDIR=$2 12 | shift 13 | fi 14 | shift 15 | done 16 | 17 | # No homedir passed :( 18 | if [ -z "$HOMEDIR" ]; then 19 | exit 22 20 | fi 21 | 22 | echo "DIR: $HOMEDIR" 23 | -------------------------------------------------------------------------------- /gcr/fixtures/gost-sample1.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBGDCBxqADAgECAgEKMAoGCCqFAwcBAQMCMBIxEDAOBgNVBAMTB0V4YW1wbGUwIBcNMDEwMTAxMDAwMDAwWhgPM 3 | jA1MDEyMzEwMDAwMDBaMBIxEDAOBgNVBAMTB0V4YW1wbGUwZjAfBggqhQMHAQEBATATBgcqhQMCAiMABggqhQMHAQ 4 | ECAgNDAARAC9hv5djbiWaPeJtOHbqFhcVQi0XsW1nYkG3bcOJJK3/ad/+HGhD73ydm0pPF0WSvuzx7lzpByIXRHXD 5 | WibTxJjAKBggqhQMHAQEDAgNBAEOGDlxBQFcTPHxIEpISzpCT8mass1FbiDokJqzGC2u+Qaoo0vGrFIKAzZ7Vb+2k 6 | GXQFNVSkJ2e4OtBD/TncBJM= 7 | -----END CERTIFICATE----- 8 | -------------------------------------------------------------------------------- /testing/ca-example/profiles/extensions.conf: -------------------------------------------------------------------------------- 1 | 2 | [ email ] 3 | basicConstraints = CA:FALSE 4 | keyUsage = digitalSignature, dataEncipherment 5 | extendedKeyUsage = emailProtection 6 | 7 | [ server ] 8 | basicConstraints = CA:FALSE 9 | extendedKeyUsage = serverAuth 10 | 11 | [ client ] 12 | basicConstraints = CA:FALSE 13 | extendedKeyUsage = clientAuth 14 | 15 | [ generic ] 16 | basicConstraints = critical,CA:FALSE 17 | -------------------------------------------------------------------------------- /testing/ca-example/requests/server.req: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBBTCBsAIBADBLMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQB 3 | GRYHRVhBTVBMRTEbMBkGA1UEAxMSc2VydmVyLmV4YW1wbGUuY29tMFwwDQYJKoZI 4 | hvcNAQEBBQADSwAwSAJBANhJxPGTnlcGZsMz3PPA76CtXJITiu51a7MfY+k5siie 5 | pt+FGgBqUpWW4b2O9scjzV5fEJ1I5u/UoE/Wxs3lHOkCAwEAAaAAMA0GCSqGSIb3 6 | DQEBBQUAA0EANLzwGQSRCXwpsX/L175/UNghenxUw47qQ7Z0sGCePcXh/WjME8W/ 7 | iUCIDT9xfDP8HkRLbnEOo10e0J9UCtFi2A== 8 | -----END CERTIFICATE REQUEST----- 9 | -------------------------------------------------------------------------------- /testing/ca-example/profiles/request.conf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | distinguished_name = req_distinguished_name 3 | string_mask = nombstr 4 | 5 | 6 | [ req_distinguished_name ] 7 | 8 | 0.domainComponent = Domain Component 9 | 0.domainComponent_default = COM 10 | 11 | 1.domainComponent = Second Domain Component 12 | 1.domainComponent_default = EXAMPLE 13 | 14 | commonName = Common Name 15 | commonName_max = 64 16 | 17 | emailAddress = Email Address (again) 18 | emailAddress_max = 64 19 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-status-and-output: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This script is used with test-gnupg-process 4 | set -euf 5 | 6 | FD= 7 | 8 | # Not real 'long' option parsing, but good enough for this 9 | while [ $# -gt 1 ]; do 10 | if [ "$1" = --status-fd ]; then 11 | FD=$2 12 | shift 13 | fi 14 | shift 15 | done 16 | 17 | # No FD passed :( 18 | if [ -z "$FD" ]; then 19 | exit 22 20 | fi 21 | 22 | echo "Here's some output" 23 | echo "[GNUPG:] SCHEMA one two three four " >&$FD 24 | echo "More output" 25 | -------------------------------------------------------------------------------- /testing/ca-example/keys/dsa.params: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PARAMETERS----- 2 | MIIBHwKBgQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06 3 | OI4XXmEHCVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2 4 | Yn8wj8y2VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUet 5 | ENlaaH+QeAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC7 6 | 47afIasS0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7Qd 7 | D06pg1BbdaAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuM 8 | i/w7 9 | -----END DSA PARAMETERS----- 10 | -------------------------------------------------------------------------------- /testing/ca-example/keys/server.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIBOgIBAAJBANhJxPGTnlcGZsMz3PPA76CtXJITiu51a7MfY+k5siiept+FGgBq 3 | UpWW4b2O9scjzV5fEJ1I5u/UoE/Wxs3lHOkCAwEAAQJAURSWd9lW6ljD/TlcAyS4 4 | sAtNQJWC55GtJiEGW0/9savXVHPRllN5IlcOJS/L//rD47UzwmGHcxxzsg3p+s51 5 | YQIhAPaiU+wbUL0cQrxqwIa/TEtNtrU3T21vNvQaFLSHh+uHAiEA4IBuYuPL+xz2 6 | nDwSB9UWklYV5fKhwqUA96qyMNxTMA8CIGvD6h+Un+bB3nctvgoitFeDEX6FOHN8 7 | 0OpAKyPmxIEpAiEAiwNb1wYhN9QebG3R6GGtQV3m32VXftR3feSHxDOZm0cCIEpA 8 | 7kMFeeQQZb1qYd1PMFSDCG+BkrWh/Fud+VvFAWxI 9 | -----END RSA PRIVATE KEY----- 10 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_dsa_plain.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAMLJmKPrXjxxvoanZdrNUmv7Otx9KRs3UzJ5HmEKAAJOpyfUPhGG5/v25Z7uW/Ji4/Jc151917SIU/sV/2TVP2Le2HJiOzWxx3ClurGcBWeY3hI2/+98Vc+nrDQQM2qYA7CD4+rC57uO6I9UnI8FyxI9lkpM4wMJL/Z9WJsUJeCzAAAAFQDlup4DQoOneAp/hh0LRGzVbWaUXQAAAIA/YuEQf7NQJiuLTGLfaX1syeWoMIF3DbM4xt4bZcNG3jRbg5uITX4882n8IMW5is6MPizsKXiz9T6KingMqw9wvBt2vcKhYTqES450fSOTNy+3yRnlia2bc6KoRbYBGLytTBUn35tFuR9F6s2sN4f89DPAJZ/svOn2U9M1WMIO2wAAAIANW+HtuJWVmfXRRDJ1goMK+GXixDvBLBbFSDf74kYInt3vUBm4MKprHbmC27TLRymb6IOH1ENpYT3MffZJusQTqqZJKPba5nwLvPP9lzN60bJAtqiWUsqfwHEh6Jx+qoMggm8i6ogJJO2zDlki5Twf1ilN+tinHdOL/2CmPPRMgA== 2 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_dsa_encrypted.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBANHNmw2YHEodUj4Ae27i8Rm8uoLnpS68QEiCJx8bv9P1o0AaD0w55sH+TBzlo7vtAEDlAzIOBY3PMpy5WarELTIeXmFPzKfHL8tuxMbOPaN/wDkDZNnJZsqlyRwlQKStPcAlvLBNuMjA53u2ndMTVghtUHXETQzwxKhXf7TmvfLBAAAAFQDnF/Y8MgFCP0PpRC5ZAQo1dyDEwwAAAIEAr4iOpTeZx8i1QgQpRl+dmbBAtHTXbPiophzNJBge9lixqF0T3egN2B9wGGnumIXmnst9RPPjuu+cHCLfxhXHzLlW8MLwoiF6ZQOx9M8WcfWIl5oiGyr2e969woRf5OcMGQPOQBdws6MEtemRqq5gu6dqDqVl3xfhSZSP9LpqAI8AAACAUjiuQ3qGErsCz++qd0qrR++QA185XGXAPZqQEHcr4iKSlO17hSUYA03kOWtDaeRtJOlxjIjl9iLo3juKGFgxUfo2StScOSO2saTWFGjA4MybHCK1+mIYXRcYrq314yK2Tmbql/UGDWpcCCGXLWpSFHTaXTbJjPd6VL+TO9/8tFk= 2 | -------------------------------------------------------------------------------- /testing/ssh-example/id_dsa.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAL4z+ad0ZJYzMOQuGp00UJ+AijKhrPVUEYLcxBmFQonb/KIlLSWJua4Rl9DB4tDj30Y9c/oApqC4n+FIYlUZMSnxmpvcLF6aeXOiHHPvm0EDYjjyVubyYQWI7CROrrzSc+x++ha3TuJEvF3PlKlZmTKKVYEkZNjwFqYysGyPxPalAAAAFQDtDSEF9Gvnv5fQtSbbsp7j78uVBwAAAIAtNpAg/Mbd/E2241enedB9AxAbJWZ5QYnoPe6/zx5dOmU7+qz8mG6tgvF8F7IgXPabuAKslzTDGS3zgaEhWicDS3CIYik2UR8hXdxfovIEqZKZe7u02FCEoXYCEiFUAdzDGzjI7PswgtEJWWNqKeNis3HmDDha9lMkqz/3fLZGXwAAAIEAiaRPYKZDMoJG+aVZ5A3R/m2gl+mYE2MsjPKXuBKcrZ6ItA9BMe4G/An0/+E3A+DuoGxdeNNMF8U9Dy2N8Sch/Ngtg2E/FBo5geljWobJXd1jxmPtF2WAliYJXDdIt6RBVPGL9H/KSjDmBMsVd42wxVJywawzypklVZjSUuWuBMI= dsa-key@example.com 2 | -------------------------------------------------------------------------------- /tools/viewer/meson.build: -------------------------------------------------------------------------------- 1 | gcr_viewer_gtk4_sources = files( 2 | 'gcr-certificate-widget.c', 3 | 'gcr-section.c', 4 | 'viewer.c', 5 | ) 6 | 7 | gcr_viewer_gtk4_deps = [ 8 | gck_dep, 9 | gcr_dep, 10 | p11kit_dep, 11 | gtk4_dep, 12 | ] 13 | 14 | gcr_viewer_gtk4_cflags = [ 15 | '-DGCK_API_SUBJECT_TO_CHANGE', 16 | '-DGCR_API_SUBJECT_TO_CHANGE', 17 | '-DP11_KIT_FUTURE_UNSTABLE_API', 18 | ] 19 | 20 | gcr_viewer_gtk4 = executable('gcr-viewer-gtk4', 21 | gcr_viewer_gtk4_sources, 22 | dependencies: gcr_viewer_gtk4_deps, 23 | c_args: gcr_viewer_gtk4_cflags, 24 | include_directories: config_h_dir, 25 | install: true, 26 | ) 27 | -------------------------------------------------------------------------------- /tools/viewer/gcr-section.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Collabora Ltd. 3 | * Copyright Corentin Noël 4 | * SPDX-License-Identifier: LGPL-2.1-or-later 5 | */ 6 | 7 | #ifndef __GCR_SECTION_H__ 8 | #define __GCR_SECTION_H__ 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | G_BEGIN_DECLS 16 | 17 | #define GCR_TYPE_SECTION gcr_section_get_type() 18 | 19 | G_DECLARE_FINAL_TYPE (GcrSection, gcr_section, GCR, SECTION, GtkWidget) 20 | 21 | GtkWidget *gcr_section_new (GcrCertificateSection *section); 22 | 23 | G_END_DECLS 24 | 25 | #endif /* __GCR_SECTION_H__ */ 26 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/identity.pub: -------------------------------------------------------------------------------- 1 | 2048 65537 24441362561658402203833950446201855344021432187363502135808306611576487614688480997306138918965620875403280637443583435371977323903269172664531450582985454519164856071918921465780900234446084102021505343856321702549268936741458077623280683630954129182173904049746029183391563757599728238653932509919193037170161958394083453355955428766928687086643512804493287104481453268463186578945838089020355657752804348513609803384640933423383046464181883782074377289700592413463972335302845592904197813072122904513007851760502305134812488745575825428292149365221963416490618044666955554129518253460898036309102204336193271317821 miles@centos7 2 | -------------------------------------------------------------------------------- /gcr/fixtures/gost-sample3.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBlTCCAQGgAwIBAgIBCzAKBggqhQMHAQEDAzASMRAwDgYDVQQDEwdFeGFtcGxlMCAXDTAxMDEwMTAwMDAwMFoYD 3 | zIwNTAxMjMxMDAwMDAwWjASMRAwDgYDVQQDEwdFeGFtcGxlMIGgMBcGCCqFAwcBAQECMAsGCSqFAwcBAgECAAOBhA 4 | AEgYDh7zDVLGEz3dmdHVxBRVz3302LTJJbvGmvFDPRVlhRWt0hRoUMMlxbgcEzvmVaqMTUQOe5io1ZSHsMdpa8xV0 5 | R7L53NqnsNX/y/TmTH04RTLjNo1knCsfw5/9D2UGUGeph/Sq3f12fY1I9O1CgT2PioM9Rt8E63CFWDwvUDMnHNzAK 6 | BggqhQMHAQEDAwOBgQA9Vd5th8PV+E7oRo6Oiy2W4DQS5+enYn2gg+fFdnQm22r2MVNyGRUyCj2h+aNGM7r87Q72B 7 | PcvG+UvN6IYEpJsL4b6YKCBCRoj3XleHjxonuUSo8gu4NzCZDx47qj8rNNUklWEhrIPHJ7Bl8kGmYUCYMk7y82cXD 8 | MX4ZNE4XOuNg== 9 | -----END CERTIFICATE----- 10 | -------------------------------------------------------------------------------- /testing/ca-example/certs/server-self.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIBiDCCATICCQDJ4QeFpYPYljANBgkqhkiG9w0BAQUFADBLMRMwEQYKCZImiZPy 3 | LGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEbMBkGA1UEAxMSc2Vy 4 | dmVyLmV4YW1wbGUuY29tMB4XDTExMDExOTAzMTYzOFoXDTIxMDExNjAzMTYzOFow 5 | SzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUx 6 | GzAZBgNVBAMTEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sA 7 | MEgCQQDYScTxk55XBmbDM9zzwO+grVySE4rudWuzH2PpObIonqbfhRoAalKVluG9 8 | jvbHI81eXxCdSObv1KBP1sbN5RzpAgMBAAEwDQYJKoZIhvcNAQEFBQADQQAagc2P 9 | /lCfDwT3max+D2M7++KMDfGqiO3gI+hMarf/jAaQpcKO/9G95AnNo4lTd6W6/7yj 10 | YYvUupv+0vi4CtQG 11 | -----END CERTIFICATE----- 12 | -------------------------------------------------------------------------------- /testing/ssh-example/identity.pub: -------------------------------------------------------------------------------- 1 | 2048 65537 19574029774826276058535216798260123376543523095248321838931847609905153466056541810037612224715393673871614098429330286659520830571243765643286443579570815080037983898081130875270479278411961605207843971799891833860159372766201922902824211581515042106928142039998651198780602488599726242798484153698322199240326703055839125267280449261588792947133244666304909901315045579230615054415554475861850194097568770065871190731807718592844942425524851665039303855329966512492845780563670061745108336917492850264799573485696060306545465548955817911313021071274638931037011169213563881172297734240201883475566393175838117784693 rsa-key@example.com 2 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_dsa_test.pub: -------------------------------------------------------------------------------- 1 | # A comment should be ignored 2 | 3 | # Blank lines should be ignored 4 | 5 | ssh-dss AAAAB3NzaC1kc3MAAACBANHNmw2YHEodUj4Ae27i8Rm8uoLnpS68QEiCJx8bv9P1o0AaD0w55sH+TBzlo7vtAEDlAzIOBY3PMpy5WarELTIeXmFPzKfHL8tuxMbOPaN/wDkDZNnJZsqlyRwlQKStPcAlvLBNuMjA53u2ndMTVghtUHXETQzwxKhXf7TmvfLBAAAAFQDnF/Y8MgFCP0PpRC5ZAQo1dyDEwwAAAIEAr4iOpTeZx8i1QgQpRl+dmbBAtHTXbPiophzNJBge9lixqF0T3egN2B9wGGnumIXmnst9RPPjuu+cHCLfxhXHzLlW8MLwoiF6ZQOx9M8WcfWIl5oiGyr2e969woRf5OcMGQPOQBdws6MEtemRqq5gu6dqDqVl3xfhSZSP9LpqAI8AAACAUjiuQ3qGErsCz++qd0qrR++QA185XGXAPZqQEHcr4iKSlO17hSUYA03kOWtDaeRtJOlxjIjl9iLo3juKGFgxUfo2StScOSO2saTWFGjA4MybHCK1+mIYXRcYrq314yK2Tmbql/UGDWpcCCGXLWpSFHTaXTbJjPd6VL+TO9/8tFk= A public key comment 6 | 7 | # blah blah 8 | -------------------------------------------------------------------------------- /gcr/fixtures/generic-dsa.key: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtu 3 | TI06OI4XXmEHCVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpd 4 | XFP2Yn8wj8y2VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1D 5 | KUetENlaaH+QeAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+ 6 | srC747afIasS0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyR 7 | L7QdD06pg1BbdaAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83 8 | ymuMi/w7AoGAfXLlo8mCQgAGy7y32k/2Onv8LXAL5hcQUEM7WQhHkU2QaXgh7sqm 9 | Ol4vvM97YZi5JIlR0wjP7+dZiJJnYSY5PMaGpAIk7hLGsPbJW6TnozAXwCPli1Xu 10 | ocubvrDWjZ/zSesnO3siGPCIuP97IqVbBKGQG/vJUwFL0ewb/+FUa78CFHgQdcw2 11 | 4vVlnuMrqdmrfXMvzbrw 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /gcr/fixtures/pem-dsa-1024.key: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQCQ7Atgc1g5x1Tq+PZLsD/DU5jWl3K/rlQAed6i06Yfr/snYwoD 3 | igGj0M1ioQdFpXSifstGL08IhbecYbvpVKYKKWaK1Uu6XAenL9ixEFJJZwsznfLF 4 | nmSkcGTvzwtyNsXHLNVc6zKRdDC+yaAD1OSE+6qE15Vxs41rWslbtz4/ewIVAPoh 5 | ShOFwhv+uq2rJAokMMYH1WJxAoGALeBXUfXa7pfz1DxUWVo+lKCAco8MZsmK6+1X 6 | YvarFVgC2DWerR3h7DakWfvu6kjlm55qjLT1KVk2s8yIGl2VfHM5F14s/+DzDTcR 7 | 5DDbZkjC60dKoQpKMpdFBTH/LHxpUSIMnURra2sPACYuHr6zzIYUdqpRjMVVyav5 8 | 5fOQI/wCgYBUc0RR23nU7t8LvOvUO7bLt7hYRgO5VwgAdd0xjrWwJm1LINxe/zdr 9 | 38TqKYOx9/AqOe1MYZ7WhxJyn/87fGlq3RttdI9WpLS+xcQ4XlKEI6O4iuZebVUA 10 | +Xg556SGJVmCGJw7T6jZQzjHbw5cr8mjCh7XKLufIJHVlOMlCgnqAAIVAIdvhPcJ 11 | 1REI37DL+h8cVpwJxBPs 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_dsa_plain: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQDCyZij6148cb6Gp2XazVJr+zrcfSkbN1MyeR5hCgACTqcn1D4R 3 | huf79uWe7lvyYuPyXNedfde0iFP7Ff9k1T9i3thyYjs1scdwpbqxnAVnmN4SNv/v 4 | fFXPp6w0EDNqmAOwg+Pqwue7juiPVJyPBcsSPZZKTOMDCS/2fVibFCXgswIVAOW6 5 | ngNCg6d4Cn+GHQtEbNVtZpRdAoGAP2LhEH+zUCYri0xi32l9bMnlqDCBdw2zOMbe 6 | G2XDRt40W4ObiE1+PPNp/CDFuYrOjD4s7Cl4s/U+iop4DKsPcLwbdr3CoWE6hEuO 7 | dH0jkzcvt8kZ5Ymtm3OiqEW2ARi8rUwVJ9+bRbkfRerNrDeH/PQzwCWf7Lzp9lPT 8 | NVjCDtsCgYANW+HtuJWVmfXRRDJ1goMK+GXixDvBLBbFSDf74kYInt3vUBm4MKpr 9 | HbmC27TLRymb6IOH1ENpYT3MffZJusQTqqZJKPba5nwLvPP9lzN60bJAtqiWUsqf 10 | wHEh6Jx+qoMggm8i6ogJJO2zDlki5Twf1ilN+tinHdOL/2CmPPRMgAIVALKfUS61 11 | xqFTOY5fG1+rLwlPGvL9 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /testing/ca-example/commands.txt: -------------------------------------------------------------------------------- 1 | # Signing a client certificate 2 | $ openssl x509 -CAserial serial.txt -CA certs/ca.crt -CAkey keys/ca.key \ 3 | -days 3650 -req -in requests/client.req -out certs/client.crt 4 | 5 | # Self-signing a certificate 6 | $ openssl x509 -signkey keys/server.key -days 3650 -req \ 7 | -in requests/server.req -out certs/server-self.crt 8 | 9 | # Generating an basic certificate request 10 | $ openssl req -new -subj /CN=personal@example.com -out requests/personal.req \ 11 | -keyout keys/personal.key 12 | 13 | # Creating a PKCS#12 file from key and certificate 14 | openssl pkcs12 -export -in certs/personal.crt -inkey keys/personal.key \ 15 | -certfile certs/ca.crt -name "Example Certificate" \ 16 | -out certs/personal.p12 -------------------------------------------------------------------------------- /testing/ca-example/keys/generic-dsa.key: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBuwIBAAKBgQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtu 3 | TI06OI4XXmEHCVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpd 4 | XFP2Yn8wj8y2VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1D 5 | KUetENlaaH+QeAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+ 6 | srC747afIasS0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyR 7 | L7QdD06pg1BbdaAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83 8 | ymuMi/w7AoGAfXLlo8mCQgAGy7y32k/2Onv8LXAL5hcQUEM7WQhHkU2QaXgh7sqm 9 | Ol4vvM97YZi5JIlR0wjP7+dZiJJnYSY5PMaGpAIk7hLGsPbJW6TnozAXwCPli1Xu 10 | ocubvrDWjZ/zSesnO3siGPCIuP97IqVbBKGQG/vJUwFL0ewb/+FUa78CFHgQdcw2 11 | 4vVlnuMrqdmrfXMvzbrw 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /gcr/fixtures/34.10-01.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIB0DCCAX8CECv1xh7CEb0Xx9zUYma0LiEwCAYGKoUDAgIDMG0xHzAdBgNVBAMM 3 | Fkdvc3RSMzQxMC0yMDAxIGV4YW1wbGUxEjAQBgNVBAoMCUNyeXB0b1BybzELMAkG 4 | A1UEBhMCUlUxKTAnBgkqhkiG9w0BCQEWGkdvc3RSMzQxMC0yMDAxQGV4YW1wbGUu 5 | Y29tMB4XDTA1MDgxNjE0MTgyMFoXDTE1MDgxNjE0MTgyMFowbTEfMB0GA1UEAwwW 6 | R29zdFIzNDEwLTIwMDEgZXhhbXBsZTESMBAGA1UECgwJQ3J5cHRvUHJvMQswCQYD 7 | VQQGEwJSVTEpMCcGCSqGSIb3DQEJARYaR29zdFIzNDEwLTIwMDFAZXhhbXBsZS5j 8 | b20wYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARAhJVodWACGkB1 9 | CM0TjDGJLP3lBQN6Q1z0bSsP508yfleP68wWuZWIA9CafIWuD+SN6qa7flbHy7Df 10 | D2a8yuoaYDAIBgYqhQMCAgMDQQA8L8kJRLcnqeyn1en7U23Sw6pkfEQu3u0xFkVP 11 | vFQ/3cHeF26NG+xxtZPz3TaTVXdoiYkXYiD02rEx1bUcM97i 12 | -----END CERTIFICATE----- 13 | -------------------------------------------------------------------------------- /gcr/fixtures/gnupg-mock/mock-status-and-attribute: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script is used with test-gnupg-process 4 | # Needs to be run with /bin/bash in order to handle two digit 5 | # file descriptor redirects 6 | 7 | set -euf 8 | 9 | SFD= 10 | AFD= 11 | 12 | # Not real 'long' option parsing, but good enough for this 13 | while [ $# -gt 1 ]; do 14 | if [ "$1" = --status-fd ]; then 15 | SFD=$2 16 | shift 17 | elif [ "$1" = --attribute-fd ]; then 18 | AFD=$2 19 | shift 20 | fi 21 | shift 22 | done 23 | 24 | # No FD passed :( 25 | if [ -z "$AFD" ]; then 26 | exit 22 27 | fi 28 | if [ -z "$SFD" ]; then 29 | exit 23 30 | fi 31 | 32 | printf "1lc923g4laoeurc23rc2" >&$AFD 33 | echo "[GNUPG:] SCHEMA one two three four " >&$SFD 34 | printf "41lcg2r23c4gr3" >&$AFD 35 | -------------------------------------------------------------------------------- /gcr/fixtures/base64-rsa-2048.spkac: -------------------------------------------------------------------------------- 1 | SPKAC=MIICTDCCATQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCximUa27OhNYvidD/G6Y9iNZ8Zf4Q5Hs04CLNFfUhhhBXcC8BtkKrBrvXg+fCggPKSeubShlyOV7iKM5csNfEn4BC/z+AllnRvfZPCIcn/VMhT+iRNBtDP/P2A6wNcF2sNuGnTh/gpK2TBYEtA8zd/YD7vJIIGKcr9a3uzuC7Pg9s2xC7tfY+Lg1jgM1GPZ0T7iF1EA/4CqUDJQYvKFR/rbO6y43NsokwU6lDFNYqClu/vixQ/wp2S0sIPEg01LA39x2K/BXowGRhIKQYstNAjjiM8YzIg6+V4CR5uIgpof67eBdiLJqQhZQUSZuIQkyhkg8kwkZg2Ob9uxekoLG3JAgMBAAEWDE15IGNoYWxsZW5nZTANBgkqhkiG9w0BAQQFAAOCAQEAaovLKwXqvpz0M3QvLisqadPJ7zKHc267waOjvuOhgzFCa1VmlbaS5FgBf06EBluPHu23wy66NVSz/JGgm2HGwCAkD0JDziZUGtSDfQdEkIKgynJXaGQA3upBwCwJ8KT24sLF3Sv1OFKrMLWjWg3LJualnP/GBsPDd4P2uPyaVgilJCGBqxAMcPwB1SzFMD+LnRALY0o+MdvwR35X160biP5vGxUL6c9MQs9obQNQEv3wZHb+u+rMr9szoRUHga5Mt1ncG3o1bzP81U5cUGQ+GQoBAH3kImmyUX7xLBqMxq+BFjC4cqU1/dAtqeUeKdNLYs4Qt7D4PvVrYOLBhvb70Q== 2 | -------------------------------------------------------------------------------- /testing/ca-example/requests/email.spkac: -------------------------------------------------------------------------------- 1 | SPKAC=MIICTDCCATQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCximUa27OhNYvidD/G6Y9iNZ8Zf4Q5Hs04CLNFfUhhhBXcC8BtkKrBrvXg+fCggPKSeubShlyOV7iKM5csNfEn4BC/z+AllnRvfZPCIcn/VMhT+iRNBtDP/P2A6wNcF2sNuGnTh/gpK2TBYEtA8zd/YD7vJIIGKcr9a3uzuC7Pg9s2xC7tfY+Lg1jgM1GPZ0T7iF1EA/4CqUDJQYvKFR/rbO6y43NsokwU6lDFNYqClu/vixQ/wp2S0sIPEg01LA39x2K/BXowGRhIKQYstNAjjiM8YzIg6+V4CR5uIgpof67eBdiLJqQhZQUSZuIQkyhkg8kwkZg2Ob9uxekoLG3JAgMBAAEWDE15IGNoYWxsZW5nZTANBgkqhkiG9w0BAQQFAAOCAQEAaovLKwXqvpz0M3QvLisqadPJ7zKHc267waOjvuOhgzFCa1VmlbaS5FgBf06EBluPHu23wy66NVSz/JGgm2HGwCAkD0JDziZUGtSDfQdEkIKgynJXaGQA3upBwCwJ8KT24sLF3Sv1OFKrMLWjWg3LJualnP/GBsPDd4P2uPyaVgilJCGBqxAMcPwB1SzFMD+LnRALY0o+MdvwR35X160biP5vGxUL6c9MQs9obQNQEv3wZHb+u+rMr9szoRUHga5Mt1ncG3o1bzP81U5cUGQ+GQoBAH3kImmyUX7xLBqMxq+BFjC4cqU1/dAtqeUeKdNLYs4Qt7D4PvVrYOLBhvb70Q== 2 | -------------------------------------------------------------------------------- /docs/gck/meson.build: -------------------------------------------------------------------------------- 1 | gck_content_files = [ 2 | 'pkcs11-links.md', 3 | ] 4 | 5 | gck_toml = configure_file( 6 | input: 'gck.toml.in', 7 | output: 'gck.toml', 8 | configuration: { 9 | 'GCK_VERSION': gck_api_version, 10 | }, 11 | ) 12 | 13 | gck_docs = custom_target('gck-docs', 14 | input: gck_gir[0], 15 | output: gck_basename, 16 | command: [ 17 | gi_docgen, 18 | 'generate', 19 | '--quiet', 20 | '--fatal-warnings', 21 | '--config', gck_toml, 22 | '--output-dir=@OUTPUT@', 23 | '--no-namespace-dir', 24 | '--content-dir=@0@'.format(meson.current_source_dir()), 25 | '@INPUT@', 26 | ], 27 | depend_files: [ 28 | gck_toml, 29 | gck_content_files, 30 | ], 31 | build_by_default: true, 32 | install: true, 33 | install_dir: get_option('datadir') / 'doc', 34 | ) 35 | -------------------------------------------------------------------------------- /docs/gcr/pkcs11-configuration.md: -------------------------------------------------------------------------------- 1 | Title: PKCS#11 configuration 2 | 3 | PKCS#11 configuration 4 | ===================== 5 | The GCR library maintains a global list of PKCS#11 modules to use for 6 | its various lookups and storage operations. Each module is represented by 7 | a [class@Gck.Module] object. You can examine this list by using 8 | [func@pkcs11_get_modules]. 9 | 10 | The list is configured automatically by looking for system installed 11 | PKCS#11 modules. It's not not normally necessary to modify this list. But 12 | if you have special needs, you can use the [func@pkcs11_set_modules] and 13 | [func@pkcs11_add_module] (or [func@pkcs11_add_module_from_file]) to do so. 14 | 15 | Trust assertions are stored and looked up in specific PKCS#11 slots. 16 | You can examine this list with [func@pkcs11_get_trust_lookup_slots]. 17 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_dsa_encrypted: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CBC,1ED7C6189634877B 4 | 5 | lex6pFMAspyvnqSktXA1NX/x80/Ebb9BGFaIcJAPvLduCrDR02fgwc3oE+dwSwwe 6 | PXZ8vJK8+AP+Z8Rkedya/3OT4vaAuSENZFCfJA+P6lXglVQplA57R4U5/P9580Ee 7 | l/VTumnh5Gz84hJ5TuEspDOLrq8atkc31qFbEJ+zjMLygGNGbIOzecLou2pBt1Ol 8 | ncx1MPIznoJl2b1NQt7rgPpcbqzCHo+/qgLgvGs7osIg8xzzp+E2ifWuwCnY4NmW 9 | dxLRABi4I97q7kShH7OblBQLKxDreg28sojJQ0h0y0fd6xVcoscFCvfanFh8xx/D 10 | rI+JV3HCRCrlB9YS6U3zB5vpbc1UQ1EaE4AxSmrSLdKsvrPGc7M+grwy/DjYerqO 11 | WGwFWnz/OrlXruJG9Nwyltq/YmXAxFGoSWrunkm42xUxYs8RElddQOFC0ZyfVWOi 12 | IOS2Bv2HkNW+lMTRoR/RIbDc90wzO0HL0Xx4v6LYSbVBZIcaOJU+stoNLeE8Fu53 13 | G47YU+Fd7WswdlIdXtrPjyyiWapf6+xNdhRrqB+40JJQRi2mL1NyYZ2bZkjEd0Or 14 | DsfFH/+DlZrjEdlqWTK2ow== 15 | -----END DSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | # please keep this list sorted alphabetically 2 | # 3 | ab 4 | af 5 | ar 6 | as 7 | ast 8 | az 9 | be 10 | be@latin 11 | bg 12 | bn 13 | bn_IN 14 | bs 15 | ca 16 | ca@valencia 17 | ckb 18 | cs 19 | cy 20 | da 21 | de 22 | dz 23 | el 24 | en_CA 25 | en_GB 26 | en@shaw 27 | eo 28 | es 29 | et 30 | eu 31 | fa 32 | fi 33 | fr 34 | fur 35 | ga 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 | kab 49 | kk 50 | kn 51 | ko 52 | lt 53 | lv 54 | mai 55 | mg 56 | mk 57 | ml 58 | mn 59 | mr 60 | ms 61 | nb 62 | ne 63 | nl 64 | nn 65 | oc 66 | or 67 | pa 68 | pl 69 | pt 70 | pt_BR 71 | ro 72 | ru 73 | rw 74 | si 75 | sk 76 | sl 77 | sq 78 | sr 79 | sr@latin 80 | sv 81 | ta 82 | te 83 | tg 84 | th 85 | tr 86 | ug 87 | uk 88 | uz 89 | vi 90 | xh 91 | zh_CN 92 | zh_HK 93 | zh_TW 94 | -------------------------------------------------------------------------------- /testing/ssh-example/id_dsa: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,ECBE9F6DAE948508DB1A5E51AF32B5A5 4 | 5 | 2LW/70yuiadQM/tVWZ4QqxV0JZQQ3Sjqz28Soj5sUKDuKCszTBFyiRKLvI091Z6G 6 | NsDZ5agRr6t4e6ysne0aiJg1ex7ymx6GyVDI3PmNEstBqrhrxgrHgtfhwR0vVdSf 7 | go0nrftWdU/tlAd2h2JGQSwngwaW8aDlqG9rA86CYYcXLTyF9xW9ECtJMXohl3x2 8 | fS7t4vLZCnCP0lj36andZdRHAMwwHHvO1tgCotQdWeNksN4cIE4m3huM1kIDBcIW 9 | oL4z9qWM3CC4r++Sutn1I9xXpKu86QosKaOJJmObkpwcMagxz+fMvbMDIl9L0GGw 10 | PMM7d5Rl2Fs7H7z2tK9PnKwIpNCuHIMe29RUr65LJxqeqoEc9zgWKgZuPjarBlTa 11 | hob+mWJHi1WntSwoG9QE7Hj0FVuaUwf8QSPBvnNZYFZMzFR8SH4FK57yKXvtVoGI 12 | JFt+4aea0EClJ0X9+zBfS0aAFkwqi+Lbn99OVHhw/DL2XgZa9mjd5xDcMxseh0wQ 13 | Kqc8VQdOVeyfYOwLQgoiimtlgwdimzrG7UWCBQomEGf50d7HlBVAEqv9MeJCm2bb 14 | RJ4ERL/hpmxZulshatfwbA== 15 | -----END DSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /docs/gcr/non-pageable-memory.md: -------------------------------------------------------------------------------- 1 | Title: Non-pageable memory 2 | 3 | Non-pageable memory 4 | =================== 5 | Normal allocated memory can be paged to disk at the whim of the operating 6 | system. This can be a problem for sensitive information like passwords, keys 7 | and secrets. 8 | 9 | The Gcr library holds passwords and keys in *non-pageable*, or *locked* memory. 10 | This is only possible if the OS contains support for it. 11 | 12 | The set of `gcr_secure_memory_*()` functions allow applications to use secure 13 | memory to hold passwords and other sensitive information. 14 | 15 | * [func@Gcr.secure_memory_alloc] 16 | * [func@Gcr.secure_memory_try_alloc] 17 | * [func@Gcr.secure_memory_realloc] 18 | * [func@Gcr.secure_memory_try_realloc] 19 | * [func@Gcr.secure_memory_is_secure] 20 | * [func@Gcr.secure_memory_strdup] 21 | * [func@Gcr.secure_memory_strfree] 22 | -------------------------------------------------------------------------------- /testing/ca-example/certs/server.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICJjCCAY+gAwIBAgIBBzANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk 3 | ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp 4 | ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq 5 | hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTExMDExNzE5NDcxN1oXDTIxMDEx 6 | NDE5NDcxN1owSzETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW 7 | B0VYQU1QTEUxGzAZBgNVBAMTEnNlcnZlci5leGFtcGxlLmNvbTBcMA0GCSqGSIb3 8 | DQEBAQUAA0sAMEgCQQDYScTxk55XBmbDM9zzwO+grVySE4rudWuzH2PpObIonqbf 9 | hRoAalKVluG9jvbHI81eXxCdSObv1KBP1sbN5RzpAgMBAAGjIjAgMAkGA1UdEwQC 10 | MAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADgYEAYx6fMqT1 11 | Gvo0jq88E8mc+bmp4LfXD4wJ7KxYeadQxt75HFRpj4FhFO3DOpVRFgzHlOEo3Fwk 12 | PZOKjvkT0cbcoEq5whLH25dHoQxGoVQgFyAP5s+7Vp5AlHh8Y/vAoXeEVyy/RCIH 13 | QkhUlAflfDMcrrYjsmwoOPSjhx6Mm/AopX4= 14 | -----END CERTIFICATE----- 15 | -------------------------------------------------------------------------------- /gck/Gck-2.metadata: -------------------------------------------------------------------------------- 1 | // Metadata file for Vala API generation. 2 | // See https://live.gnome.org/Vala/UpstreamGuide for more information 3 | 4 | mechanisms_check skip=false 5 | 6 | // Because vapigen is broken with regards to array fields 7 | Attribute 8 | .length skip=true 9 | .value skip=true 10 | 11 | Attributes 12 | .new_empty skip=false sentinel="GCK_INVALID" 13 | 14 | Enumerator 15 | .set_object_type_full name="set_object_type" 16 | 17 | UriData 18 | .attributes unowned=false 19 | .module_info unowned=false 20 | .token_info unowned=false 21 | 22 | ModuleInfo 23 | .library_description unowned=false 24 | .manufacturer_id unowned=false 25 | 26 | SlotInfo 27 | .manufacturer_id unowned=false 28 | .slot_description unowned=false 29 | 30 | TokenInfo 31 | .label unowned=false 32 | .manufacturer_id unowned=false 33 | .model unowned=false 34 | .serial_number unowned=false 35 | -------------------------------------------------------------------------------- /testing/ca-example/profiles/ca.conf: -------------------------------------------------------------------------------- 1 | [ req ] 2 | distinguished_name = req_distinguished_name 3 | x509_extensions = v3_ca 4 | string_mask = nombstr 5 | 6 | 7 | [ req_distinguished_name ] 8 | 0.domainComponent = Domain Component 9 | 0.domainComponent_default = COM 10 | 11 | 1.domainComponent = Second Domain Component 12 | 1.domainComponent_default = EXAMPLE 13 | 14 | organizationalUnitName = Organizational Unit Name (eg, section) 15 | organizationalUnitName_default = Certificate Authority 16 | 17 | commonName = Common Name (eg, YOUR name) 18 | commonName_max = 64 19 | 20 | emailAddress = Email Address 21 | emailAddress_max = 64 22 | 23 | [ v3_ca ] 24 | 25 | subjectKeyIdentifier=hash 26 | authorityKeyIdentifier=keyid:always,issuer:always 27 | 28 | basicConstraints = critical,CA:true 29 | keyUsage = critical,cRLSign, keyCertSign 30 | 31 | subjectAltName=email:copy 32 | issuerAltName=issuer:copy 33 | -------------------------------------------------------------------------------- /testing/ca-example/keys/ca.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQD5OjHuXXN2LG3sFHISaZZ6L1RSYgRdTenu1nvqkMn/xvzOz385 3 | oede1z/7f6BoXyM0kNWCf4SOXtXrEIGmQoeURhFfLCnoK8NHfNcel3IPyMPhdJUM 4 | Jlc3gfpWm+QxjkyqVyMhyYxC9PmgQC7zx4ZKcQrL3zVGYtg8wxmaKY2HwQIDAQAB 5 | AoGBAJv0cJ5KWCAQuVBLkv42mHUo/Mj4kOaaBNLx4GTt6ZlmuXfonCJCT/gnFeCZ 6 | ApWNQwh3wUOB7D7y1UXc9GRHqXJBLhBWEoqCvRhz7aRAWtwfQ7QI7DaepP5+IiG8 7 | C3aEh+b2Jqd6bEM4M1Rdywl+Hrs2BZYXarGqdqi126D8HXZpAkEA/W6hGLCOto/k 8 | qdE9JWMfiolBij6xqfW4HVl+dpGZGRb1IUctnxBUVMcTbLKy4o0KKGr5rnbPjnTG 9 | gRo1pMetMwJBAPvAqLOJIGT8SImZeW9eAF9jvcmZyVhdXtz9bp+dqbMIHd6rBA1l 10 | b9PhhT2o1BuEpcrl1brVQSznR/xuMIvS7zsCQC5EzVqRmWyRNsEeN1ilETQcvP99 11 | VLhf6R5KoYEKMfZXr6dEtHqO46aatdwpf+lGsK0SYsVMYbZzcW5Ol66e2esCQQDD 12 | CNqpXE6wbZJ0p2WglZ6MR+U8TdvijVN0uRH+rlJN1LfvTWXySud7qndi8WyBdR5M 13 | NgqCl7vKYdMvCN6rNFsJAkA9cTwm8M1cY0OZfMAlH1CCDzwpo0i5jN2JzwMf//cx 14 | RWqaOLG1RQOqB2S7yKiiiawI47d5fH4kaMsvLwTnLkN6 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /gcr/fixtures/RSA_Security_1024_v3.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUF 3 | ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg 4 | U2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAyMjIyMTAxNDlaFw0yNjAyMjIyMDAx 5 | NDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT 6 | QSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB 7 | gQDV3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dY 8 | rIMKo1W1exeQFYRMiu4mmdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYt 9 | bzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1BlqFikYvtc6adwlWzMaUQIDAQAB 10 | o2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSME 11 | GDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1N 12 | AdRU2qUMX96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRy 13 | HUZXxGFraZ8SmyzVWujAovBDleMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9 14 | am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNumU4/iXgDmMrzVcydro7B 15 | qkWY+o8aoI2II/EVQQ2lRj6RP4vr93E= 16 | -----END CERTIFICATE----- 17 | -------------------------------------------------------------------------------- /gcr/fixtures/prompt-tests/multiple.prompt: -------------------------------------------------------------------------------- 1 | [three] 2 | type = password 3 | title = Unlock Keyring 4 | message = Enter password for keyring 'sean' to unlock 5 | description = An application wants access to the keyring 'sean', but it is locked 6 | choice-label = Always unlock this keyring whenever I'm logged in. 7 | password-new = false 8 | continue-label = Go 9 | cancel-label = Stop 10 | 11 | [one] 12 | type = password 13 | title = The title 14 | message = The message 15 | description = Description 16 | choice-label = 17 | warning = Make sure you have a good good password 18 | 19 | [two] 20 | type = password 21 | title = New Password 22 | message = Enter a new password here 23 | description = This is a test of the new password prompt 24 | password-new = true 25 | choice-label = 26 | 27 | [four] 28 | type = confirm 29 | title = Question 30 | message = A nice question here 31 | description = This is why you really should be asking this question 32 | warning = 33 | choice-label = 34 | -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | # List of source files containing translatable strings. 2 | # Please keep this file sorted alphabetically. 3 | egg/egg-oid.c 4 | gck/gck-misc.c 5 | gck/gck-module.c 6 | gck/gck-modules.c 7 | gck/gck-uri.c 8 | gcr/gcr-callback-output-stream.c 9 | gcr/gcr-certificate-extension-basic-constraints.c 10 | gcr/gcr-certificate-extension-extended-key-usage.c 11 | gcr/gcr-certificate-extension-key-usage.c 12 | gcr/gcr-certificate-extension-subject-alt-name.c 13 | gcr/gcr-certificate-extension-subject-key-identifier.c 14 | gcr/gcr-certificate-extensions-common.c 15 | gcr/gcr-certificate.c 16 | gcr/gcr-certificate-request.c 17 | gcr/gcr-gnupg-importer.c 18 | gcr/gcr-gnupg-process.c 19 | gcr/gcr-importer.c 20 | gcr/gcr-library.c 21 | gcr/gcr-parser.c 22 | gcr/gcr-prompt.c 23 | gcr/gcr-ssh-agent-interaction.c 24 | gcr/gcr-ssh-agent-service.c 25 | gcr/gcr-ssh-askpass.c 26 | gcr/gcr-subject-public-key.c 27 | gcr/gcr-system-prompt.c 28 | gcr/gcr-trust.c 29 | tools/viewer/viewer.c 30 | -------------------------------------------------------------------------------- /testing/ca-example/requests/personal.req: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIICZDCCAUwCAQAwHzEdMBsGA1UEAwwUcGVyc29uYWxAZXhhbXBsZS5jb20wggEi 3 | MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJFouUpCvnfxBWyt0Iww6sMsD9 4 | jdUGhGhS2pMEBshfdgSDpMA9Jjpnt5/uYcxJBWvToG/tsyo9i3OUp7pcw2JFe8Sz 5 | NKVbjZ7RX4cz8pATbhYLXNX9f7bKgR6XPUa9SFFf7ig9PWfVwYoa4ITtx5mcEOTI 6 | +A/98OmV6TNigMp1T8otw2Z1cU1ectGwSptEsCMF7UhxdpSGvFvwczjJz0m/varu 7 | 8/gNnZs5fiJ5fvvl4Ex68lwV+2wvWN2cTMpfkfTRZorSRUACOLYSP7I9nwEsAiA+ 8 | uMfUJj7B7cWMP4ZQYlSGwJrWxCkMvE3G+T8q5cY6Avh+3SHs6n1f7BA0XDAFAgMB 9 | AAGgADANBgkqhkiG9w0BAQUFAAOCAQEABjETedVq8CDdpnOLHDoAwmEer4CvWAfK 10 | ltzIssiZYUmwsGV3ReQ9eSk0uqxu6A5V8r0Bn16zVHA1OSTi5SHkDGWNUWzwXRLs 11 | 8uvJPlK9io5JhsyvAZaR9OxHjvbVGLQJ8a3f86VEdFgDTYZehoT0VdEVpRT3QpZ7 12 | Zw91ClgZUZGmzGQyNP41shoq/51rSWmoKwcLwOHjV1hF5aTg3yO83EHdKyvsuAUt 13 | h3+ZeJGLgXx91+Tx4zxOxsDgV3zgSTDnHOUSNms+ZihOEsjoBsn/mlSTIu5t/OAB 14 | 6MReWC+9xocnO0fujfsi9BzFCzojj638IY0BxK8IvO3fc7/TUPdt+A== 15 | -----END CERTIFICATE REQUEST----- 16 | -------------------------------------------------------------------------------- /docs/gcr/meson.build: -------------------------------------------------------------------------------- 1 | gcr_content_files = [ 2 | 'non-pageable-memory.md', 3 | 'pkcs11-configuration.md', 4 | 'trust-store.md', 5 | ] 6 | 7 | gcr_toml = configure_file( 8 | input: 'gcr.toml.in', 9 | output: '@BASENAME@', 10 | configuration: { 11 | 'GCR_VERSION': gcr_api_version, 12 | 'GCK_VERSION': gck_api_version, 13 | }, 14 | ) 15 | 16 | gcr_docs = custom_target('gcr-docs', 17 | input: gcr_gir[0], 18 | output: gcr_basename, 19 | command: [ 20 | gi_docgen, 21 | 'generate', 22 | '--quiet', 23 | '--fatal-warnings', 24 | '--add-include-path=@0@'.format(build_root / 'gck'), 25 | '--config', gcr_toml, 26 | '--output-dir=@OUTPUT@', 27 | '--no-namespace-dir', 28 | '--content-dir=@0@'.format(meson.current_source_dir()), 29 | '@INPUT@', 30 | ], 31 | depend_files: [ gcr_toml, gcr_content_files ], 32 | depends: [ gck_gir[0] ], 33 | build_by_default: true, 34 | install: true, 35 | install_dir: get_option('datadir') / 'doc', 36 | ) 37 | -------------------------------------------------------------------------------- /gcr/fixtures/openssh_keys.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAL4z+ad0ZJYzMOQuGp00UJ+AijKhrPVUEYLcxBmFQonb/KIlLSWJua4Rl9DB4tDj30Y9c/oApqC4n+FIYlUZMSnxmpvcLF6aeXOiHHPvm0EDYjjyVubyYQWI7CROrrzSc+x++ha3TuJEvF3PlKlZmTKKVYEkZNjwFqYysGyPxPalAAAAFQDtDSEF9Gvnv5fQtSbbsp7j78uVBwAAAIAtNpAg/Mbd/E2241enedB9AxAbJWZ5QYnoPe6/zx5dOmU7+qz8mG6tgvF8F7IgXPabuAKslzTDGS3zgaEhWicDS3CIYik2UR8hXdxfovIEqZKZe7u02FCEoXYCEiFUAdzDGzjI7PswgtEJWWNqKeNis3HmDDha9lMkqz/3fLZGXwAAAIEAiaRPYKZDMoJG+aVZ5A3R/m2gl+mYE2MsjPKXuBKcrZ6ItA9BMe4G/An0/+E3A+DuoGxdeNNMF8U9Dy2N8Sch/Ngtg2E/FBo5geljWobJXd1jxmPtF2WAliYJXDdIt6RBVPGL9H/KSjDmBMsVd42wxVJywawzypklVZjSUuWuBMI= dsa-key@example.com 2 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCs8z2y0cCPYRAPkq8tAt6FC/kdfnR/p8B2ZoY0oiLNt7kQEwJfexgwLqTxWYd2fSDUSSDPrsqAxZAwLLS/eF04kXiJO2VfqAWFpTLNToERHpFF1yZQe26ELTlNNfna7LqfCRvpNDwu6AqndsT3eFt7DWvBDXbbEiTLW21Z2OFAAH/J2iCFn4c0a8Myf7IaMYcy5GG3mpk39kEO4aNV/67U7kfooek24ObwD0vlXzlsi5VZIUFOIUi0UdkNEMCtUWpfkZ1STUlmwp9HVM7xb7/9PESQKDnZdxpB09S9cIjdpDecpDlMDDEbEUECM1PIas3ndhB7gAN1i2JsPHTcXZ1 rsa-key@example.com 3 | -------------------------------------------------------------------------------- /testing/ca-example/requests/generic-dsa.req: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIICcDCCAi4CAQAwbDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk 3 | ARkWB0VYQU1QTEUxFDASBgNVBAMTC0dlbmVyaWMgRFNBMSYwJAYJKoZIhvcNAQkB 4 | FhdnZW5lcmljLWRzYUBleGFtcGxlLmNvbTCCAbcwggEsBgcqhkjOOAQBMIIBHwKB 5 | gQCdLeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06OI4XXmEH 6 | CVdUxykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2Yn8wj8y2 7 | VYSOveFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUetENlaaH+Q 8 | eAO3IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC747afIasS 9 | 0Q/+pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7QdD06pg1Bb 10 | daAzSxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuMi/w7A4GE 11 | AAKBgH1y5aPJgkIABsu8t9pP9jp7/C1wC+YXEFBDO1kIR5FNkGl4Ie7KpjpeL7zP 12 | e2GYuSSJUdMIz+/nWYiSZ2EmOTzGhqQCJO4SxrD2yVuk56MwF8Aj5YtV7qHLm76w 13 | 1o2f80nrJzt7IhjwiLj/eyKlWwShkBv7yVMBS9HsG//hVGu/oAAwCQYHKoZIzjgE 14 | AwMxADAuAhUAhUtGgWACqrKIYMG9t2Bjv94s6oMCFQCtjGF1voWxW4HaBofgmbfJ 15 | cIJkVA== 16 | -----END CERTIFICATE REQUEST----- 17 | -------------------------------------------------------------------------------- /egg/egg-libgcrypt.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | #ifndef EGG_LIBGCRYPT_H_ 21 | #define EGG_LIBGCRYPT_H_ 22 | 23 | /* Initializes libgcrypt for use in a glib program */ 24 | void egg_libgcrypt_initialize (void); 25 | 26 | #endif /* EGG_LIBGCRYPT_H_ */ 27 | -------------------------------------------------------------------------------- /testing/ca-example/certs/personal.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICmTCCAgICAQwwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND 3 | T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0 4 | ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN 5 | AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xMTA5MDExMDM0NDRaFw0yMTA4MjkxMDM0 6 | NDRaMB8xHTAbBgNVBAMMFHBlcnNvbmFsQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG 7 | 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyRaLlKQr538QVsrdCMMOrDLA/Y3VBoRoUtqT 8 | BAbIX3YEg6TAPSY6Z7ef7mHMSQVr06Bv7bMqPYtzlKe6XMNiRXvEszSlW42e0V+H 9 | M/KQE24WC1zV/X+2yoEelz1GvUhRX+4oPT1n1cGKGuCE7ceZnBDkyPgP/fDplekz 10 | YoDKdU/KLcNmdXFNXnLRsEqbRLAjBe1IcXaUhrxb8HM4yc9Jv72q7vP4DZ2bOX4i 11 | eX775eBMevJcFftsL1jdnEzKX5H00WaK0kVAAji2Ej+yPZ8BLAIgPrjH1CY+we3F 12 | jD+GUGJUhsCa1sQpDLxNxvk/KuXGOgL4ft0h7Op9X+wQNFwwBQIDAQABMA0GCSqG 13 | SIb3DQEBBQUAA4GBAFpkc7qYXeyvs4OI8wEefQx2GrJvTl5cciIDRa/gIDX1E4HA 14 | 1EReBRAkrYSYq4BLN8uD1qhIZphlCC6rcdUvkepxbHa4w+uf0O7R0E4zWg3dYog9 15 | yYjP4nSG/xoh0EsSZjKb904Y4rohrWgQ0AcXCrZIZGl4/Z/rH92rxeMv6VEn 16 | -----END CERTIFICATE----- 17 | -------------------------------------------------------------------------------- /docs/gck/gck.toml.in: -------------------------------------------------------------------------------- 1 | [library] 2 | namespace = "Gck" 3 | version = "@GCK_VERSION@" 4 | browse_url = "https://gitlab.gnome.org/GNOME/gcr/" 5 | repository_url = "https://gitlab.gnome.org/GNOME/gcr.git" 6 | authors = "GCK contributors" 7 | license = "LGPL-2.0-or-later" 8 | description = "GObject bindings for PKCS#11" 9 | dependencies = [ "GObject-2.0", "Gio-2.0" ] 10 | devhelp = true 11 | search_index = true 12 | 13 | [dependencies."GObject-2.0"] 14 | name = "GObject" 15 | description = "The base type system library" 16 | docs_url = "https://developer.gnome.org/gobject/stable" 17 | 18 | [dependencies."Gio-2.0"] 19 | name = "Gio" 20 | description = "GObject interfaces and objects" 21 | docs_url = "https://developer.gnome.org/gio/stable" 22 | 23 | [theme] 24 | name = "basic" 25 | show_index_summary = true 26 | show_class_hierarchy = true 27 | 28 | [source-location] 29 | base_url = "https://gitlab.gnome.org/GNOME/gcr/-/blob/master/" 30 | 31 | [extra] 32 | content_files = [ 33 | 'pkcs11-links.md', 34 | ] 35 | urlmap_file = "urlmap.js" 36 | -------------------------------------------------------------------------------- /egg/fixtures/pem-rsa-enc.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CBC,24522D4CE5F5CD7B 4 | 5 | 2H/8j0HYUya7LWEUxpgjp/LVcCX7yZB7SoREdoJdcqJEBUMWVxU/2OfVB8EZupmy 6 | 7YHcnn5v1JwwtmAXAtqM9JGlvNWaRr1m4zDrhJn1fY3tu8YGtMR49IOZmOUBK+X+ 7 | IxWAwaFDqLntuGZZnAmRJtgFVYVABEs5yM9zgoCGDaU4WMK3caD7Jnw8jH5m0nqQ 8 | XiQ1y1dHxFJmAgG0b5h2z7zjQTmmXd3IhXqSqsE/9ryruCCYa0Z7aAN5oAmO89I9 9 | gOyy3J4h76mTNFfF5btV4Jllwd4LkgGOmm69UxAyUTGzwYJ5gxgB3xFzGBwpVlcu 10 | 72PrQCrjZqZ6rj6cTPGUYzcyMtEw3Xd6mFhApqJpVRZwNWUAMMJwHl2oWwKcIxfV 11 | y+OftRX6kc+cunrxCkl9aKuHDoJPEq+/Uh+AEXqir+942Vull0WPyuWUjaPKR1xJ 12 | poYsNfHRWq+klKCggQQL6jwuVbDLhbaXfgaNBQO1XMracgfmnO1PQPw8JSQ5iOkm 13 | Ybt2oHAEnrEWxZGn1PfRq6Z8HAbBlQpfmG7SMJZdQjlndKA6GR+tN5krKfpj6uak 14 | 0eklm0Nb0YcDzJ3qqHXxIimK3Kh/WRZ1hVTnX4mS9u3HNQMo5Ov6z8OQN+Q45ffi 15 | ZDFkVwUTEJ+iwmCG7XnxX0v8Bv5LZmAnPu95KQTp4Ds0AZ6Sp+RqxvhnCO25cgWj 16 | +N5jHGzsDk9/Jw7rAHz8pnl3sziNBWdAk5ASPA28HCQQo5peWnWajM3Pk98+/wHY 17 | blTh7gw77gTake6hpiegnhNUXwGm6BXEqmyu7mPW0z5XFRb9W7bpog== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /gcr/fixtures/pem-rsa-enc.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CBC,24522D4CE5F5CD7B 4 | 5 | 2H/8j0HYUya7LWEUxpgjp/LVcCX7yZB7SoREdoJdcqJEBUMWVxU/2OfVB8EZupmy 6 | 7YHcnn5v1JwwtmAXAtqM9JGlvNWaRr1m4zDrhJn1fY3tu8YGtMR49IOZmOUBK+X+ 7 | IxWAwaFDqLntuGZZnAmRJtgFVYVABEs5yM9zgoCGDaU4WMK3caD7Jnw8jH5m0nqQ 8 | XiQ1y1dHxFJmAgG0b5h2z7zjQTmmXd3IhXqSqsE/9ryruCCYa0Z7aAN5oAmO89I9 9 | gOyy3J4h76mTNFfF5btV4Jllwd4LkgGOmm69UxAyUTGzwYJ5gxgB3xFzGBwpVlcu 10 | 72PrQCrjZqZ6rj6cTPGUYzcyMtEw3Xd6mFhApqJpVRZwNWUAMMJwHl2oWwKcIxfV 11 | y+OftRX6kc+cunrxCkl9aKuHDoJPEq+/Uh+AEXqir+942Vull0WPyuWUjaPKR1xJ 12 | poYsNfHRWq+klKCggQQL6jwuVbDLhbaXfgaNBQO1XMracgfmnO1PQPw8JSQ5iOkm 13 | Ybt2oHAEnrEWxZGn1PfRq6Z8HAbBlQpfmG7SMJZdQjlndKA6GR+tN5krKfpj6uak 14 | 0eklm0Nb0YcDzJ3qqHXxIimK3Kh/WRZ1hVTnX4mS9u3HNQMo5Ov6z8OQN+Q45ffi 15 | ZDFkVwUTEJ+iwmCG7XnxX0v8Bv5LZmAnPu95KQTp4Ds0AZ6Sp+RqxvhnCO25cgWj 16 | +N5jHGzsDk9/Jw7rAHz8pnl3sziNBWdAk5ASPA28HCQQo5peWnWajM3Pk98+/wHY 17 | blTh7gw77gTake6hpiegnhNUXwGm6BXEqmyu7mPW0z5XFRb9W7bpog== 18 | -----END RSA PRIVATE KEY----- 19 | -------------------------------------------------------------------------------- /egg/egg-fips-libgcrypt.c: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 3 | * 4 | * Copyright (C) 2024 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, see . 18 | */ 19 | 20 | #include "config.h" 21 | #include "egg-fips.h" 22 | 23 | EggFipsMode 24 | egg_fips_get_mode (void) 25 | { 26 | return EGG_FIPS_MODE_DISABLED; 27 | } 28 | 29 | void 30 | egg_fips_set_mode (EggFipsMode mode) 31 | { 32 | (void)mode; 33 | } 34 | -------------------------------------------------------------------------------- /tools/viewer/gcr-certificate-widget.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021 Collabora Ltd. 3 | * Copyright Corentin Noël 4 | * SPDX-License-Identifier: LGPL-2.1-or-later 5 | */ 6 | 7 | #ifndef __GCR_CERTIFICATE_WIDGET_H__ 8 | #define __GCR_CERTIFICATE_WIDGET_H__ 9 | 10 | #include 11 | #include 12 | 13 | #include 14 | #include 15 | 16 | G_BEGIN_DECLS 17 | 18 | #define GCR_TYPE_CERTIFICATE_WIDGET gcr_certificate_widget_get_type () 19 | G_DECLARE_FINAL_TYPE (GcrCertificateWidget, gcr_certificate_widget, GCR, CERTIFICATE_WIDGET, GtkWidget) 20 | 21 | GtkWidget *gcr_certificate_widget_new (GcrCertificate *certificate); 22 | 23 | GcrCertificate *gcr_certificate_widget_get_certificate (GcrCertificateWidget *self); 24 | 25 | void gcr_certificate_widget_set_certificate (GcrCertificateWidget *self, 26 | GcrCertificate *certificate); 27 | 28 | G_END_DECLS 29 | 30 | #endif /* __GCR_CERTIFICATE_WIDGET_H__ */ 31 | -------------------------------------------------------------------------------- /gcr/fixtures/Thawte_Time_Stamping_CA.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMC 3 | WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmls 4 | bGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmlj 5 | YXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcw 6 | MTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTAT 7 | BgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN 8 | BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24x 9 | HzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcN 10 | AQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+oJ9O0yeB8 11 | WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR 12 | 5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7 13 | X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN 14 | AQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC9RAIDb/LogWK 15 | 0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCed/r8 16 | zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJ 17 | SdM= 18 | -----END CERTIFICATE----- 19 | -------------------------------------------------------------------------------- /gcr/fixtures/pem-rsa-2048.req: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIICpTCCAY0CAQAwYDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk 3 | ARkWB0VYQU1QTEUxDjAMBgNVBAMTBWVtYWlsMSAwHgYJKoZIhvcNAQkBFhFlbWFp 4 | bEBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALGK 5 | ZRrbs6E1i+J0P8bpj2I1nxl/hDkezTgIs0V9SGGEFdwLwG2QqsGu9eD58KCA8pJ6 6 | 5tKGXI5XuIozlyw18SfgEL/P4CWWdG99k8Ihyf9UyFP6JE0G0M/8/YDrA1wXaw24 7 | adOH+CkrZMFgS0DzN39gPu8kggYpyv1re7O4Ls+D2zbELu19j4uDWOAzUY9nRPuI 8 | XUQD/gKpQMlBi8oVH+ts7rLjc2yiTBTqUMU1ioKW7++LFD/CnZLSwg8SDTUsDf3H 9 | Yr8FejAZGEgpBiy00COOIzxjMiDr5XgJHm4iCmh/rt4F2IsmpCFlBRJm4hCTKGSD 10 | yTCRmDY5v27F6SgsbckCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQB312vpA1P4 11 | Jb35YVmNBtLlUL8OlBLj6hr48NBjkRigHSBeUiKMgUFjbWmTSK1DRddD6hZFTjBm 12 | S1yquCXxh+JMXi957NVHVk8w3fS1ySFpOxXMmZCjT5edgae7VTDBveDBQfAVtTP+ 13 | 02VUhdnwZGQAH7mBM8Ml9iHB5rcgS5BsMexu0YH3p7Qi5DBHeVo6CqbguST1Wczm 14 | Faql7m329stKQHf1nCOsSroLWb4qugtZ9rxpQJVIqOxVPxP3tBK1GQg/nM/VwI0l 15 | jMZ8lpn7J77XEYgb+Q642RoXxV8PRLtG4GKeZ13/5LssAsTvS4EkzuhxD+bPAcYu 16 | WXklJECG6mpw 17 | -----END CERTIFICATE REQUEST----- 18 | -------------------------------------------------------------------------------- /testing/ca-example/requests/email.req: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIICpTCCAY0CAQAwYDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk 3 | ARkWB0VYQU1QTEUxDjAMBgNVBAMTBWVtYWlsMSAwHgYJKoZIhvcNAQkBFhFlbWFp 4 | bEBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALGK 5 | ZRrbs6E1i+J0P8bpj2I1nxl/hDkezTgIs0V9SGGEFdwLwG2QqsGu9eD58KCA8pJ6 6 | 5tKGXI5XuIozlyw18SfgEL/P4CWWdG99k8Ihyf9UyFP6JE0G0M/8/YDrA1wXaw24 7 | adOH+CkrZMFgS0DzN39gPu8kggYpyv1re7O4Ls+D2zbELu19j4uDWOAzUY9nRPuI 8 | XUQD/gKpQMlBi8oVH+ts7rLjc2yiTBTqUMU1ioKW7++LFD/CnZLSwg8SDTUsDf3H 9 | Yr8FejAZGEgpBiy00COOIzxjMiDr5XgJHm4iCmh/rt4F2IsmpCFlBRJm4hCTKGSD 10 | yTCRmDY5v27F6SgsbckCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQB312vpA1P4 11 | Jb35YVmNBtLlUL8OlBLj6hr48NBjkRigHSBeUiKMgUFjbWmTSK1DRddD6hZFTjBm 12 | S1yquCXxh+JMXi957NVHVk8w3fS1ySFpOxXMmZCjT5edgae7VTDBveDBQfAVtTP+ 13 | 02VUhdnwZGQAH7mBM8Ml9iHB5rcgS5BsMexu0YH3p7Qi5DBHeVo6CqbguST1Wczm 14 | Faql7m329stKQHf1nCOsSroLWb4qugtZ9rxpQJVIqOxVPxP3tBK1GQg/nM/VwI0l 15 | jMZ8lpn7J77XEYgb+Q642RoXxV8PRLtG4GKeZ13/5LssAsTvS4EkzuhxD+bPAcYu 16 | WXklJECG6mpw 17 | -----END CERTIFICATE REQUEST----- 18 | -------------------------------------------------------------------------------- /testing/ca-example/requests/client.req: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIICpzCCAY8CAQAwYjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixk 3 | ARkWB0VYQU1QTEUxDzANBgNVBAMTBkNsaWVudDEhMB8GCSqGSIb3DQEJARYSY2xp 4 | ZW50QGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA 5 | wSA0Mz92De30Mc0A/P9vzstLERoqGhnwBw0HKbcsQ50KdcYScp/Rv2WRPlxpe7kY 6 | AzzhqFMInufv1FU2uoYozuNsF1Jf5lR+SolA+E5cPb7SeJhCJwf3afPvyTGaOVuL 7 | O93d8zUGU74L/741Z/YQCE5FUCO8msc2iQmnc9M1EnVZa14d5T0/B8aZYcpVzUiC 8 | 9EUwfTzrTghnNfkJzEiD9vnqDbsDsIE+H8o7+opMMsUU0ZzVPZqy9j8/f4943rL6 9 | V4UdK0JO7tEGL+XiFzNl2fCrcEZPqaeMQ3vBq7azukDTrtJeKY06RiLl+DCykweL 10 | x8laZjIHKlSZAFHPB+bvsQIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAEEfK+a4 11 | yCsQEfVTVhJnJ519UeX6AaW4dtt1/w02DB2Ntn/O/SoJCtsREWkZTJW1RcqA6hcD 12 | KWqRu6G5QOOdEDq1OulbI5dPISqjQ+INcgSyo4PznARsx3pzBZ3mfl+WLBypj2wn 13 | IpNLhF6mKb6dS7rkYywi1kNLXX4U0UtSNx3Hl39xjcKNoNyaPW3P8Lw9ftycjOZf 14 | HspIXjfcLFBJMnXTV8wZ8LmyhmKt0d0rOlU/OreOo6JfXVSypUaAhFSMdD5ENDxT 15 | ld9dzQx1FzHNH4Miqf7rKxxhgqIQ+yeaJnaVIqxsX6gvIjtCKj5L5jU/jHArnCGo 16 | XFlV4rO8nPyAGRE= 17 | -----END CERTIFICATE REQUEST----- 18 | -------------------------------------------------------------------------------- /egg/egg-secure-memory-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Collabora Ltd. (https://collabora.com) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as 6 | * published by the Free Software Foundation; either version 2 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this program; if not, see . 16 | * 17 | * Author: Corentin Noël 18 | */ 19 | 20 | #ifndef EGG_SECURE_MEMORY_PRIVATE_H 21 | #define EGG_SECURE_MEMORY_PRIVATE_H 22 | 23 | #include 24 | 25 | void egg_set_secure_warnings (int val); 26 | 27 | #endif /* EGG_SECURE_MEMORY_PRIVATE_H */ 28 | -------------------------------------------------------------------------------- /egg/egg-fips.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 3 | * 4 | * Copyright (C) 2024 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, see . 18 | */ 19 | 20 | #ifndef EGG_FIPS_H_ 21 | #define EGG_FIPS_H_ 22 | 23 | typedef enum { 24 | EGG_FIPS_MODE_DISABLED = 0, 25 | /* Other values are specific to each backend */ 26 | } EggFipsMode; 27 | 28 | EggFipsMode egg_fips_get_mode (void); 29 | void egg_fips_set_mode (EggFipsMode mode); 30 | 31 | #endif /* EGG_FIPS_H_ */ 32 | -------------------------------------------------------------------------------- /gcr/fixtures/pem-pkcs8.key: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIf4lXzcHXqAICAggA 3 | MBQGCCqGSIb3DQMHBAhV8iKHmoUJDQSCAoDK4fY/dfIzOof1QlYV8mhr0OmhaIAe 4 | aaDz4rER6+OGwq7WQ32ErmHBiJRI8oQRrxy4oHTXx8TR+JxQT1io9V9jjXZCS8HT 5 | Ek0J69pgjPdIUnlZYV1GdJUJq7tWxTKJJFr1tsB0XzgugQLYcui4ikrZ6rHE9PVh 6 | SXFIEbns42xHIvtQ/j3c6ScS63UNpSsKe5pWRNgHUHpjSGPAaZogOdMfStmj3tdN 7 | nIH3mjIM8uisN9nyPV42aziZi5mO9F5JHlNp1H5pDAUWOKkKoXw27MgXnxvSkLAX 8 | HSgpPuK5ejqXu4nkciwHnr4eULV0biwqpmYEWxC4aNuog/t3DoL1gkC74J07jjUU 9 | 3gZwxjKsAWfIKnNURsHlBAcYClug5ZWs9ru/4sc27bNV9qRKbHcgGD+nzfTXxZZ2 10 | BG5eSBVpYT2Jzdkpw8puSHwNW5mQcuY4E+ZEERFsW8q1raPSgYVk5rM8TiVdTD5x 11 | UwQG7ADidVSVTR5KGV8wmonbuDu9b61GgU7VBslEK9Lsd92FO0/u09FF6DgCcICD 12 | yRJ0nM0o9S9FI1lqKoxAdgWyFwrKkBVZ05IDHw+jS6r7D/2irYetPJmVO/dvi87r 13 | aaLvyvzU3nz4LiWHmSl2AgDanjDcxtjGoWR2cc+J0v3r/+VEOctrc5EuAnlhl9Yj 14 | kFcfZDfqthCNb49qNGDgQMGrKTt+Dvrka/ZZxXBN3v96L3K4O32j9c97sZ8LEFaI 15 | RHl91Mx2okjrT9q2+Gef2UR9XEzuFEBRBqxktltlrIQIncn6Xx/TjEvIhf2Dgo4W 16 | isaAwTazyZrzATTWR1JS6Hdm7Eb/nCEHAFmVUbQm0d5BDfKmnRsNaaZK 17 | -----END ENCRYPTED PRIVATE KEY----- 18 | -------------------------------------------------------------------------------- /gcr/fixtures/client.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIC3DCCAkUCAQkwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND 3 | T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0 4 | ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN 5 | AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xMTAxMTgwNjA0MTFaFw0yMTAxMTUwNjA0 6 | MTFaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN 7 | UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt 8 | cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t 9 | 9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n 10 | 79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+ 11 | C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I 12 | ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R 13 | Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU 14 | mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA3LuElj2QB9wQvmIxk2Jmb 15 | IPP2/WS8dwPoCv/N3+6nTx8yRsrILf4QsnEbbsxoYO5jW4r9Kt8m8B/M7YgnBDE9 16 | zlm7JbXKZf2isSm5TyT627Ymzxrzs5d+7o2eS7SN1DB6PyvRh2ye7EMbyEYD8ULi 17 | itDUkYkssNCVivYwVvJoMg== 18 | -----END CERTIFICATE----- 19 | -------------------------------------------------------------------------------- /gcr/fixtures/ecc256.pem: -------------------------------------------------------------------------------- 1 | Public Key Info: 2 | Public Key Algorithm: EC 3 | Key Security Level: High 4 | 5 | curve: SECP256R1 6 | private key: 7 | 00:fd:2b:00:80:f3:36:5f:11:32:65:e3:8d:30:33: 8 | 3b:47:f5:ce:f8:13:e5:4c:c2:cf:fd:e8:05:6a:ca: 9 | c9:41:b1: 10 | x: 11 | 3c:15:6f:1d:48:3e:64:59:13:2c:6d:04:1a:38:0d: 12 | 30:5c:e4:3f:55:cb:d9:17:15:46:72:71:92:c1:f8: 13 | c6:33: 14 | y: 15 | 3d:04:2e:c8:c1:0f:c0:50:04:7b:9f:c9:48:b5:40: 16 | fa:6f:93:82:59:61:5e:72:57:cb:83:06:bd:cc:82: 17 | 94:c1: 18 | 19 | Public Key ID: AC:FA:47:67:C6:1B:41:79:12:57:F7:AC:05:C1:50:E2:8E:D0:0E:5B 20 | Public key's random art: 21 | +--[ EC 256]----+ 22 | | .o+==..| 23 | | .+o...+.| 24 | | o.Eo. +| 25 | | . *.o o | 26 | | S.o.. . | 27 | | .. * | 28 | | .. + o | 29 | | . . . | 30 | | .... | 31 | +-----------------+ 32 | 33 | -----BEGIN EC PRIVATE KEY----- 34 | MHgCAQEEIQD9KwCA8zZfETJl440wMztH9c74E+VMws/96AVqyslBsaAKBggqhkjO 35 | PQMBB6FEA0IABDwVbx1IPmRZEyxtBBo4DTBc5D9Vy9kXFUZycZLB+MYzPQQuyMEP 36 | wFAEe5/JSLVA+m+TgllhXnJXy4MGvcyClME= 37 | -----END EC PRIVATE KEY----- 38 | -------------------------------------------------------------------------------- /testing/ca-example/certs/client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIC3DCCAkUCAQkwDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND 3 | T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0 4 | ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN 5 | AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0xMTAxMTgwNjA0MTFaFw0yMTAxMTUwNjA0 6 | MTFaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN 7 | UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt 8 | cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t 9 | 9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n 10 | 79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+ 11 | C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I 12 | ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R 13 | Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU 14 | mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQA3LuElj2QB9wQvmIxk2Jmb 15 | IPP2/WS8dwPoCv/N3+6nTx8yRsrILf4QsnEbbsxoYO5jW4r9Kt8m8B/M7YgnBDE9 16 | zlm7JbXKZf2isSm5TyT627Ymzxrzs5d+7o2eS7SN1DB6PyvRh2ye7EMbyEYD8ULi 17 | itDUkYkssNCVivYwVvJoMg== 18 | -----END CERTIFICATE----- 19 | -------------------------------------------------------------------------------- /testing/ca-example/certs/client-future.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIC3DCCAkUCAQowDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND 3 | T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0 4 | ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN 5 | AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0yMDAxMTgxNzI3MDNaFw0yMTAxMTcxNzI3 6 | MDNaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN 7 | UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt 8 | cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t 9 | 9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n 10 | 79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+ 11 | C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I 12 | ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R 13 | Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU 14 | mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQBvt8v930fQtxR7f7Vcb1Hg 15 | irq1CtffsBqtKYupYg6IgloiRA6U5wdU0e6faA3Ppsmd4SmNKb9ZavIgnDBfx8MP 16 | 1/IpsNOkg0366bP/zzkAhcXspo7PU8yZIqep//wT4TOFz04N8Lshqm8HUejShFdA 17 | fB8C0LX5Y/2219ZVMaaEbw== 18 | -----END CERTIFICATE----- 19 | -------------------------------------------------------------------------------- /testing/ca-example/certs/client-past.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIC3DCCAkUCAQswDQYJKoZIhvcNAQEFBQAwgYYxEzARBgoJkiaJk/IsZAEZFgND 3 | T00xFzAVBgoJkiaJk/IsZAEZFgdFWEFNUExFMR4wHAYDVQQLExVDZXJ0aWZpY2F0 4 | ZSBBdXRob3JpdHkxFzAVBgNVBAMTDmNhLmV4YW1wbGUuY29tMR0wGwYJKoZIhvcN 5 | AQkBFg5jYUBleGFtcGxlLmNvbTAeFw0wMDAxMTgxNzI3NDdaFw0wMTAxMTcxNzI3 6 | NDdaMGIxEzARBgoJkiaJk/IsZAEZFgNDT00xFzAVBgoJkiaJk/IsZAEZFgdFWEFN 7 | UExFMQ8wDQYDVQQDEwZDbGllbnQxITAfBgkqhkiG9w0BCQEWEmNsaWVudEBleGFt 8 | cGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMEgNDM/dg3t 9 | 9DHNAPz/b87LSxEaKhoZ8AcNBym3LEOdCnXGEnKf0b9lkT5caXu5GAM84ahTCJ7n 10 | 79RVNrqGKM7jbBdSX+ZUfkqJQPhOXD2+0niYQicH92nz78kxmjlbizvd3fM1BlO+ 11 | C/++NWf2EAhORVAjvJrHNokJp3PTNRJ1WWteHeU9PwfGmWHKVc1IgvRFMH08604I 12 | ZzX5CcxIg/b56g27A7CBPh/KO/qKTDLFFNGc1T2asvY/P3+PeN6y+leFHStCTu7R 13 | Bi/l4hczZdnwq3BGT6mnjEN7wau2s7pA067SXimNOkYi5fgwspMHi8fJWmYyBypU 14 | mQBRzwfm77ECAwEAATANBgkqhkiG9w0BAQUFAAOBgQBC3BOULAOkRFLKLajHIIB2 15 | VB0tHOFWuflP/LXso3ogGA8ItqbjacqjRHdTGK79etbxSTdi7k8owMVMPavJnBYk 16 | TraOkf/xxHo2zWy3XES1lniTUfGgKpjYNlALB6K6DJseZorSOmGA4KllL46MYwNu 17 | jsLO+5HkS/uNxlKo2l+xGw== 18 | -----END CERTIFICATE----- 19 | -------------------------------------------------------------------------------- /egg/egg-fips-gnutls.c: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 3 | * 4 | * Copyright (C) 2024 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, see . 18 | */ 19 | 20 | #include "config.h" 21 | 22 | #include "egg-fips.h" 23 | 24 | #include 25 | 26 | EggFipsMode 27 | egg_fips_get_mode (void) 28 | { 29 | return gnutls_fips140_mode_enabled (); 30 | } 31 | 32 | void 33 | egg_fips_set_mode (EggFipsMode mode) 34 | { 35 | gnutls_fips140_set_mode (mode, GNUTLS_FIPS140_SET_MODE_THREAD); 36 | } 37 | -------------------------------------------------------------------------------- /meson_options.txt: -------------------------------------------------------------------------------- 1 | option('introspection', 2 | type: 'boolean', 3 | value: true, 4 | description: 'Build GObject Introspection (GIR) files', 5 | ) 6 | option('vapi', 7 | type: 'boolean', 8 | value: true, 9 | description: 'Generate vapi data (requires vapigen and introspection option)', 10 | ) 11 | option('gtk4', 12 | type: 'boolean', 13 | value: true, 14 | description: 'Enable the GTK4 library and utilities', 15 | ) 16 | option('gtk_doc', 17 | type: 'boolean', 18 | value: true, 19 | description: 'Build the reference documentation (requires gi-docgen)', 20 | ) 21 | option('gpg_path', 22 | type: 'string', 23 | value: '', 24 | description: 'Path to gpg, autodetected if not set', 25 | ) 26 | option('crypto', 27 | type: 'combo', 28 | choices: ['libgcrypt', 'gnutls'], 29 | value: 'libgcrypt', 30 | description: 'Backend library to implement transport encryption', 31 | ) 32 | option('ssh_agent', 33 | type: 'boolean', 34 | value: true, 35 | description: 'Build ssh-agent binary', 36 | ) 37 | option('systemd', 38 | type: 'feature', 39 | value: 'auto', 40 | description: 'Use systemd socket activation for server programs' 41 | ) 42 | -------------------------------------------------------------------------------- /gcr/fixtures/RSA_Root_Certificate_1.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD 3 | ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu 4 | Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRp 5 | b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv 6 | bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy 7 | NjAwMjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 8 | IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x 9 | NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24g 10 | QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x 11 | IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3 12 | DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2f 13 | NUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChM 14 | MFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqYJJgpp0lZpd34 15 | t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs3x/b 16 | e0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0Wu 17 | PIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A 18 | PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu 19 | -----END CERTIFICATE----- 20 | -------------------------------------------------------------------------------- /gcr/gcr-unlock-options.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 Stefan Walter 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as 6 | * published by the Free Software Foundation; either version 2.1 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this program; if not, see . 16 | */ 17 | 18 | #ifndef __GCR_UNLOCK_OPTIONS_H__ 19 | #define __GCR_UNLOCK_OPTIONS_H__ 20 | 21 | G_BEGIN_DECLS 22 | 23 | #define GCR_UNLOCK_OPTION_ALWAYS "always" 24 | #define GCR_UNLOCK_OPTION_SESSION "session" 25 | #define GCR_UNLOCK_OPTION_TIMEOUT "timeout" 26 | #define GCR_UNLOCK_OPTION_IDLE "idle" 27 | 28 | G_END_DECLS 29 | 30 | #endif /* __GCR_UNLOCK_OPTIONS_H__ */ 31 | -------------------------------------------------------------------------------- /gcr/console-interaction.h: -------------------------------------------------------------------------------- 1 | /* GIO - GLib Input, Output and Streaming Library 2 | * 3 | * Copyright (C) 2011 Collabora, Ltd. 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 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but 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 16 | * Public License along with this library; if not, see . 17 | * 18 | * Author: Stef Walter 19 | */ 20 | 21 | #ifndef __CONSOLE_INTERACTION_H__ 22 | #define __CONSOLE_INTERACTION_H__ 23 | 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | GTlsInteraction * console_interaction_new (void); 29 | 30 | G_END_DECLS 31 | 32 | #endif /* __G_TLS_CONSOLE_INTERACTION_H__ */ 33 | -------------------------------------------------------------------------------- /testing/ca-example/certs/email.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDEDCCAnmgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk 3 | ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp 4 | ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq 5 | hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTA3MTIyMDE4MTAyOVoXDTA4MDEx 6 | OTE4MTAyOVowYDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW 7 | B0VYQU1QTEUxDjAMBgNVBAMTBWVtYWlsMSAwHgYJKoZIhvcNAQkBFhFlbWFpbEBl 8 | eGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALGKZRrb 9 | s6E1i+J0P8bpj2I1nxl/hDkezTgIs0V9SGGEFdwLwG2QqsGu9eD58KCA8pJ65tKG 10 | XI5XuIozlyw18SfgEL/P4CWWdG99k8Ihyf9UyFP6JE0G0M/8/YDrA1wXaw24adOH 11 | +CkrZMFgS0DzN39gPu8kggYpyv1re7O4Ls+D2zbELu19j4uDWOAzUY9nRPuIXUQD 12 | /gKpQMlBi8oVH+ts7rLjc2yiTBTqUMU1ioKW7++LFD/CnZLSwg8SDTUsDf3HYr8F 13 | ejAZGEgpBiy00COOIzxjMiDr5XgJHm4iCmh/rt4F2IsmpCFlBRJm4hCTKGSDyTCR 14 | mDY5v27F6SgsbckCAwEAAaMvMC0wCQYDVR0TBAIwADALBgNVHQ8EBAMCBJAwEwYD 15 | VR0lBAwwCgYIKwYBBQUHAwQwDQYJKoZIhvcNAQEFBQADgYEAeLL/CxUM8BWu2lSs 16 | CweOyGyU3vjYM4K2wmO0ClDfoSGFkUxjBfuRP92arJ+fQurS9dwKLMz8yr+/X+NT 17 | K+47rns2hpG5B+YSgGYrIxfKPLFkXRJmDQEhxVe5fGvPAIJeaRKa+cjndyK/taol 18 | 0FOZxhQa+8qBocTde6111xGQn3c= 19 | -----END CERTIFICATE----- 20 | -------------------------------------------------------------------------------- /gcr/fixtures/Thawte_Server_CA.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMC 3 | WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du 4 | MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy 5 | dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3Rl 6 | IFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 7 | ZS5jb20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkG 8 | A1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2Fw 9 | ZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE 10 | CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQ 11 | VGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRz 12 | QHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I 13 | /1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC 14 | 6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCXL+eQbcAoQpnX 15 | TEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzARMA8G 16 | A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWD 17 | TSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e 18 | QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdni 19 | TCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /gcr/fixtures/cert-ecc521.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDJDCCAsmgAwIBAgIBBzAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G 3 | A1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2VydGlmaWNhdGUgYXV0aG9y 4 | aXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdudVRMUyBjZXJ0aWZpY2F0 5 | ZSBhdXRob3JpdHkwIhgPMjAxMjA5MDEwOTIyMjRaGA8yMDE5MTAwNTA5MjIyNFow 6 | gbgxCzAJBgNVBAYTAkdSMRIwEAYDVQQKEwlLb2tvIGluYy4xFzAVBgNVBAsTDnNs 7 | ZWVwaW5nIGRlcHQuMQ8wDQYDVQQIEwZBdHRpa2kxFTATBgNVBAMTDENpbmR5IExh 8 | dXBlcjEXMBUGCgmSJomT8ixkAQETB2NsYXVwZXIxDDAKBgNVBAwTA0RyLjEPMA0G 9 | A1UEQRMGamFja2FsMRwwGgYJKoZIhvcNAQkBFg1ub25lQG5vbmUub3JnMIGbMBAG 10 | ByqGSM49AgEGBSuBBAAjA4GGAAQAoapA9bLQHQiI8V2mIzs9sq80VR4FBB0TBOSx 11 | GqBOE3FSzHAejQkIKc/1pW0v0wKvapYMq/RrfhPJxPkjTPtztUsAkU//9E0/aoEW 12 | VC6Rqf+VX3wIhe7+RS8JXdBh9SM0+Z9MCRUiM8K9qPMtpNgB2ks7T5BGFHSMlNKm 13 | uLW1agWPy5CjgbYwgbMwDAYDVR0TAQH/BAIwADA9BgNVHREENjA0ggx3d3cubm9u 14 | ZS5vcmeCE3d3dy5tb3JldGhhbm9uZS5vcmeCCWxvY2FsaG9zdIcEwKgBATATBgNV 15 | HSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBTagKMW 16 | kYyqTJk/RRjg++gqz6xX6zAfBgNVHSMEGDAWgBTwtIH+mBK/tSi5ZEADy8wfZk4o 17 | AzAKBggqhkjOPQQDAgNJADBGAiEAoj/ZB98cG/FaA7VVU+R6+TT3icF+De61rfim 18 | R43VMlUCIQCXjG9gRp0x+/8vCRL0/nr0a32SRPruKVDqbHnNiWchsg== 19 | -----END CERTIFICATE----- 20 | -------------------------------------------------------------------------------- /gcr/gcr-subject-public-key-info-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 3 | * 4 | * Copyright (C) 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 | * Author: Niels De Graef 20 | */ 21 | 22 | #ifndef GCR_SUBJECT_PUBLIC_KEY_INFO_PRIVATE_H 23 | #define GCR_SUBJECT_PUBLIC_KEY_INFO_PRIVATE_H 24 | 25 | #include "gcr-subject-public-key-info.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | GcrSubjectPublicKeyInfo * _gcr_subject_public_key_info_new (GNode *subject_public_key); 30 | 31 | G_END_DECLS 32 | 33 | #endif /* GCR_SUBJECT_PUBLIC_KEY_INFO_PRIVATE_H */ 34 | -------------------------------------------------------------------------------- /egg/egg-decimal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef EGG_DECIMAL_H_ 23 | #define EGG_DECIMAL_H_ 24 | 25 | #include 26 | 27 | gpointer egg_decimal_decode (const gchar *data, 28 | gssize n_data, 29 | gsize *n_decoded); 30 | 31 | #endif /* EGG_DECIMAL_H_ */ 32 | -------------------------------------------------------------------------------- /gcr/fixtures/Thawte_Personal_Basic_CA.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMC 3 | WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du 4 | MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm 5 | aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBl 6 | cnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNp 7 | Y0B0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVow 8 | gcsxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNV 9 | BAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAm 10 | BgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xITAfBgNV 11 | BAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZ 12 | cGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOB 13 | jQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTK 14 | P1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdKwPQIcOk8RHtQ 15 | fmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY0b8j 16 | kyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOB 17 | gQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7 18 | c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95 19 | B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ== 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /gcr/gcr-certificate-field.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Collabora Ltd. 3 | * Copyright Corentin Noël 4 | * SPDX-License-Identifier: LGPL-2.1-or-later 5 | */ 6 | 7 | #ifndef __GCR_CERTIFICATE_FIELD_H__ 8 | #define __GCR_CERTIFICATE_FIELD_H__ 9 | 10 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 11 | #error "Only can be included directly." 12 | #endif 13 | 14 | #include 15 | 16 | #include 17 | 18 | G_BEGIN_DECLS 19 | 20 | #define GCR_TYPE_CERTIFICATE_FIELD (gcr_certificate_field_get_type ()) 21 | 22 | G_DECLARE_FINAL_TYPE (GcrCertificateField, gcr_certificate_field, GCR, CERTIFICATE_FIELD, GObject) 23 | 24 | const char *gcr_certificate_field_get_label (GcrCertificateField *self); 25 | gboolean gcr_certificate_field_get_value (GcrCertificateField *self, 26 | GValue *value); 27 | GType gcr_certificate_field_get_value_type (GcrCertificateField *self); 28 | GcrCertificateSection *gcr_certificate_field_get_section (GcrCertificateField *self); 29 | 30 | G_END_DECLS 31 | 32 | #endif /* __GCR_CERTIFICATE_FIELD_H__ */ 33 | -------------------------------------------------------------------------------- /gcr/gcr-certificate-section.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2022 Collabora Ltd. 3 | * Copyright Corentin Noël 4 | * SPDX-License-Identifier: LGPL-2.1-or-later 5 | */ 6 | 7 | #ifndef __GCR_CERTIFICATE_SECTION_H__ 8 | #define __GCR_CERTIFICATE_SECTION_H__ 9 | 10 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 11 | #error "Only can be included directly." 12 | #endif 13 | 14 | #include 15 | 16 | #include 17 | #include 18 | 19 | G_BEGIN_DECLS 20 | 21 | #define GCR_TYPE_CERTIFICATE_SECTION (gcr_certificate_section_get_type()) 22 | 23 | G_DECLARE_FINAL_TYPE (GcrCertificateSection, gcr_certificate_section, GCR, CERTIFICATE_SECTION, GObject) 24 | 25 | typedef enum { 26 | GCR_CERTIFICATE_SECTION_NONE = 0, 27 | GCR_CERTIFICATE_SECTION_IMPORTANT = 1 << 0, 28 | } GcrCertificateSectionFlags; 29 | 30 | const char *gcr_certificate_section_get_label (GcrCertificateSection *self); 31 | GListModel *gcr_certificate_section_get_fields (GcrCertificateSection *self); 32 | GcrCertificateSectionFlags gcr_certificate_section_get_flags (GcrCertificateSection *self); 33 | 34 | G_END_DECLS 35 | 36 | #endif /* __GCR_CERTIFICATE_SECTION_H__ */ 37 | -------------------------------------------------------------------------------- /gcr/fixtures/Thawte_Personal_Premium_CA.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMC 3 | WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du 4 | MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm 5 | aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBl 6 | cnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXBy 7 | ZW1pdW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5 8 | NTlaMIHPMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIw 9 | EAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5n 10 | MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSMw 11 | IQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3 12 | DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3 13 | DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw7 14 | 7f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWIEt12TfIa/G8j 15 | Hnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicRFTuq 16 | W/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 17 | DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH 18 | b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVx 19 | eTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1 20 | KzGJ 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /gcr/fixtures/Thawte_Premium_Server_CA.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMC 3 | WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du 4 | MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy 5 | dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3Rl 6 | IFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl 7 | cnZlckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1 8 | OVowgc4xCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQ 9 | BgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMUVGhhd3RlIENvbnN1bHRpbmcg 10 | Y2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x 11 | ITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3 12 | DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0B 13 | AQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhI 14 | NTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQug2SBhRz1JPL 15 | lyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/qgeN 16 | 9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B 17 | AQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI 18 | hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZ 19 | a4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcU 20 | Qg== 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /gcr/fixtures/Thawte_Personal_Freemail_CA.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMC 3 | WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du 4 | MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm 5 | aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBl 6 | cnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1m 7 | cmVlbWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIz 8 | NTk1OVowgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUx 9 | EjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRp 10 | bmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x 11 | JDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqG 12 | SIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkq 13 | hkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0N 14 | j3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5ErHzmj+hND3Ef 15 | QDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgkCGqY 16 | x7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq 17 | hkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP 18 | MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgC 19 | neSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr 20 | 5PjRzneigQ== 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /egg/egg-asn1-defs.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* egg-asn1-defs.c - ASN.1 definitions 3 | 4 | Copyright (C) 2011 Collabora Ltd. 5 | 6 | The Gnome Keyring Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Library General Public License as 8 | published by the Free Software Foundation; either version 2 of the 9 | License, or (at your option) any later version. 10 | 11 | The Gnome Keyring Library 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. See the GNU 14 | Library General Public License for more details. 15 | 16 | You should have received a copy of the GNU Library General Public 17 | License along with the Gnome Library; see the file COPYING.LIB. If not, 18 | see . 19 | 20 | Author: Stef Walter 21 | */ 22 | 23 | #include "config.h" 24 | 25 | #include "egg-asn1-defs.h" 26 | 27 | #include 28 | 29 | typedef struct _EggAsn1xDef ASN1_ARRAY_TYPE; 30 | typedef struct _EggAsn1xDef asn1_static_node; 31 | 32 | #include "pk.asn.h" 33 | #include "pkix.asn.h" 34 | -------------------------------------------------------------------------------- /gcr/gcr-certificate-extension-list-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 3 | * 4 | * Copyright (C) 2024 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 | * Author: Niels De Graef 20 | */ 21 | 22 | #ifndef GCR_CERTIFICATE_EXTENSION_LIST_PRIVATE_H 23 | #define GCR_CERTIFICATE_EXTENSION_LIST_PRIVATE_H 24 | 25 | #include "gcr-certificate-extension-list.h" 26 | #include "gcr-certificate.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | GcrCertificateExtensionList * _gcr_certificate_extension_list_new_for_asn1 (GNode *asn1); 31 | 32 | G_END_DECLS 33 | 34 | #endif /* GCR_CERTIFICATE_EXTENSION_PRIVATE_H */ 35 | -------------------------------------------------------------------------------- /gcr/fixtures/RSA_Security_2048_v3.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUF 3 | ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg 4 | U2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5 5 | MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT 6 | QSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB 7 | CgKCAQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37 8 | RqtBaB4Y6lXIL5F4iSj7Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E 9 | 0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J 10 | 6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iHKrtjEAMq 11 | s6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzD 12 | uvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2Mw 13 | YTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAW 14 | gBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NRMKSq6UWuNST6 15 | /yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmYv/3V 16 | EhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5g 17 | EydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+ 18 | f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJq 19 | aHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEk 20 | llgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA 21 | pKnXwiJPZ9d37CAFYd4= 22 | -----END CERTIFICATE----- 23 | -------------------------------------------------------------------------------- /docs/gck/pkcs11-links.md: -------------------------------------------------------------------------------- 1 | Title: About PKCS#11 2 | 3 | About PKCS#11 4 | ============= 5 | PKCS#11 is an API for storing and using crypto objects, and performing crypto 6 | operations on them. 7 | 8 | It is specified at the [RSA website] and a [handy PKCS#11 reference] is also 9 | available. 10 | 11 | ## PKCS#11 URIs 12 | [PKCS#11 URIs] are a standard for referring to PKCS#11 modules, tokens, or 13 | objects. What the PKCS#11 URI refers to depends on the context in which it is 14 | used. 15 | 16 | A PKCS#11 URI can always resolve to more than one object, token or module. A 17 | PKCS#11 URI that refers to a token, would (when used in a context that expects 18 | objects) refer to all the token on that module. 19 | 20 | To parse a PKCS#11 URI, use the [func@Gck.UriData.parse] function passing in the type of 21 | context in which you're using the URI. To build a URI, use the [method@Gck.UriData.build] 22 | function. 23 | 24 | In most cases, the parsing or building of URIs is already handled for you in the 25 | GCK library. For example: to enumerate objects that match a PKCS#11 URI use the 26 | [func@modules_enumerate_uri] function. 27 | 28 | 29 | 30 | [RSA website]: http://www.rsa.com/rsalabs/node.asp?id=2133 31 | [handy PKCS#11 reference]: http://www.cryptsoft.com/pkcs11doc/ 32 | [PKCS#11 URIs]: http://tools.ietf.org/html/draft-pechanec-pkcs11uri-03 33 | -------------------------------------------------------------------------------- /docs/gcr/gcr.toml.in: -------------------------------------------------------------------------------- 1 | [library] 2 | namespace = "Gcr" 3 | version = "@GCR_VERSION@" 4 | browse_url = "https://gitlab.gnome.org/GNOME/gcr/" 5 | repository_url = "https://gitlab.gnome.org/GNOME/gcr.git" 6 | authors = "GCR contributors" 7 | license = "LGPL-2.0-or-later" 8 | description = "GObject and GUI library for high level crypto handling" 9 | dependencies = [ "GObject-2.0", "Gio-2.0", "Gck-@GCK_VERSION@" ] 10 | devhelp = true 11 | search_index = true 12 | 13 | [dependencies."GObject-2.0"] 14 | name = "GObject" 15 | description = "The base type system library" 16 | docs_url = "https://developer.gnome.org/gobject/stable" 17 | 18 | [dependencies."Gio-2.0"] 19 | name = "Gio" 20 | description = "GObject interfaces and objects" 21 | docs_url = "https://developer.gnome.org/gio/stable" 22 | 23 | [dependencies."Gck-@GCK_VERSION@"] 24 | name = "Gck" 25 | description = "GObject bindings for PKCS#11" 26 | docs_url = "https://gnome.pages.gitlab.gnome.org/gcr/gck-@GCK_VERSION@" 27 | 28 | [theme] 29 | name = "basic" 30 | show_index_summary = true 31 | show_class_hierarchy = true 32 | 33 | [source-location] 34 | base_url = "https://gitlab.gnome.org/GNOME/gcr/-/blob/master/" 35 | 36 | [extra] 37 | content_files = [ 38 | 'non-pageable-memory.md', 39 | 'pkcs11-configuration.md', 40 | 'trust-store.md', 41 | ] 42 | urlmap_file = "urlmap.js" 43 | -------------------------------------------------------------------------------- /egg/egg-asn1-defs.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* egg-asn1-defs.h - ASN.1 definitions 3 | 4 | Copyright (C) 2010 Stefan Walter 5 | 6 | The Gnome Keyring Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Library General Public License as 8 | published by the Free Software Foundation; either version 2 of the 9 | License, or (at your option) any later version. 10 | 11 | The Gnome Keyring Library 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. See the GNU 14 | Library General Public License for more details. 15 | 16 | You should have received a copy of the GNU Library General Public 17 | License along with the Gnome Library; see the file COPYING.LIB. If not, 18 | see . 19 | 20 | Author: Stef Walter 21 | */ 22 | 23 | #ifndef EGG_ASN1_DEFS_H_ 24 | #define EGG_ASN1_DEFS_H_ 25 | 26 | struct _EggAsn1xDef { 27 | const char *name; 28 | unsigned int type; 29 | const void *value; 30 | }; 31 | 32 | extern const struct _EggAsn1xDef pkix_asn1_tab[]; 33 | extern const struct _EggAsn1xDef pk_asn1_tab[]; 34 | 35 | #endif /* EGG_ASN1_DEFS_H_ */ 36 | -------------------------------------------------------------------------------- /egg/egg-error.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2010 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 | #ifndef EGG_ERROR_H_ 21 | #define EGG_ERROR_H_ 22 | 23 | #include 24 | 25 | static inline const gchar * 26 | egg_error_message (GError *error) 27 | { 28 | g_return_val_if_fail (error, "(unknown)"); 29 | return error->message ? error->message : "(null)"; 30 | } 31 | 32 | static inline const gchar * 33 | egg_error_result_message (GError **error) 34 | { 35 | if (error == NULL) 36 | return "(unknown)"; 37 | return (*error) && (*error)->message ? (*error)->message : "(null)"; 38 | } 39 | 40 | #endif /* EGG_ERROR_H_ */ 41 | -------------------------------------------------------------------------------- /gcr/fixtures/generic-dsa.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDkjCCAvugAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk 3 | ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp 4 | ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq 5 | hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTA3MTIyMDE4NDc0N1oXDTA4MDEx 6 | OTE4NDc0N1owbDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW 7 | B0VYQU1QTEUxFDASBgNVBAMTC0dlbmVyaWMgRFNBMSYwJAYJKoZIhvcNAQkBFhdn 8 | ZW5lcmljLWRzYUBleGFtcGxlLmNvbTCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCd 9 | LeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06OI4XXmEHCVdU 10 | xykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2Yn8wj8y2VYSO 11 | veFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUetENlaaH+QeAO3 12 | IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC747afIasS0Q/+ 13 | pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7QdD06pg1BbdaAz 14 | SxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuMi/w7A4GEAAKB 15 | gH1y5aPJgkIABsu8t9pP9jp7/C1wC+YXEFBDO1kIR5FNkGl4Ie7KpjpeL7zPe2GY 16 | uSSJUdMIz+/nWYiSZ2EmOTzGhqQCJO4SxrD2yVuk56MwF8Aj5YtV7qHLm76w1o2f 17 | 80nrJzt7IhjwiLj/eyKlWwShkBv7yVMBS9HsG//hVGu/oxAwDjAMBgNVHRMBAf8E 18 | AjAAMA0GCSqGSIb3DQEBBQUAA4GBAPRyHCHjWKKVHZ7wSJQOS/Ve8e4DWFiuP9J8 19 | X4/sXEg59yWjScy9EovZVj5iELZI6OqUArvwVV6w6tewK0BAed4UGp+TyTHjPuJG 20 | WGxBm2AhtZUlYmpHQ+gA+E9weeFNQWP1QOATmFQ+r18eNH0rUONnR3G0XUYQTgd1 21 | LgEYxM4t 22 | -----END CERTIFICATE----- 23 | -------------------------------------------------------------------------------- /testing/ca-example/certs/generic-dsa.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDkjCCAvugAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBhjETMBEGCgmSJomT8ixk 3 | ARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRp 4 | ZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkq 5 | hkiG9w0BCQEWDmNhQGV4YW1wbGUuY29tMB4XDTA3MTIyMDE4NDc0N1oXDTA4MDEx 6 | OTE4NDc0N1owbDETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkW 7 | B0VYQU1QTEUxFDASBgNVBAMTC0dlbmVyaWMgRFNBMSYwJAYJKoZIhvcNAQkBFhdn 8 | ZW5lcmljLWRzYUBleGFtcGxlLmNvbTCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQCd 9 | LeaVVA8HNMKFr0UUQe/bj6mJvO+I67hxn/KzCWnMjw9h6vtuTI06OI4XXmEHCVdU 10 | xykTkp1NSaTanoV8seEbJyyUgFQFBVaFOE8xDHp5RZghAKpdXFP2Yn8wj8y2VYSO 11 | veFKXj9ySj9A38nbG8mF0imBXNg/nL/EPCynR7JBVwIVAM1DKUetENlaaH+QeAO3 12 | IwcENMSZAoGBAJFujxH2WB5bU+sjjePwBTRev6qtYzPAXPd+srC747afIasS0Q/+ 13 | pE0Q40bjdGNipf3fs5Cq8s0tYTYeNzAqUej1X5YI7TP+uJyRL7QdD06pg1BbdaAz 14 | SxnnGjf2b25IvPRdxgy1XetgOmT+qA8nXeLROgTLNOQqxG83ymuMi/w7A4GEAAKB 15 | gH1y5aPJgkIABsu8t9pP9jp7/C1wC+YXEFBDO1kIR5FNkGl4Ie7KpjpeL7zPe2GY 16 | uSSJUdMIz+/nWYiSZ2EmOTzGhqQCJO4SxrD2yVuk56MwF8Aj5YtV7qHLm76w1o2f 17 | 80nrJzt7IhjwiLj/eyKlWwShkBv7yVMBS9HsG//hVGu/oxAwDjAMBgNVHRMBAf8E 18 | AjAAMA0GCSqGSIb3DQEBBQUAA4GBAPRyHCHjWKKVHZ7wSJQOS/Ve8e4DWFiuP9J8 19 | X4/sXEg59yWjScy9EovZVj5iELZI6OqUArvwVV6w6tewK0BAed4UGp+TyTHjPuJG 20 | WGxBm2AhtZUlYmpHQ+gA+E9weeFNQWP1QOATmFQ+r18eNH0rUONnR3G0XUYQTgd1 21 | LgEYxM4t 22 | -----END CERTIFICATE----- 23 | -------------------------------------------------------------------------------- /egg/egg-oid.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* egg-oid.h - OID helper routines 3 | 4 | Copyright (C) 2007 Stefan Walter 5 | 6 | The Gnome Keyring Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Library General Public License as 8 | published by the Free Software Foundation; either version 2 of the 9 | License, or (at your option) any later version. 10 | 11 | The Gnome Keyring Library 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. See the GNU 14 | Library General Public License for more details. 15 | 16 | You should have received a copy of the GNU Library General Public 17 | License along with the Gnome Library; see the file COPYING.LIB. If not, 18 | see . 19 | 20 | Author: Stef Walter 21 | */ 22 | 23 | #ifndef EGGOID_H_ 24 | #define EGGOID_H_ 25 | 26 | #include 27 | enum { 28 | EGG_OID_PRINTABLE = 0x01, 29 | EGG_OID_IS_CHOICE = 0x02 30 | }; 31 | 32 | const gchar* egg_oid_get_name (GQuark oid); 33 | 34 | guint egg_oid_get_flags (GQuark oid); 35 | 36 | const gchar* egg_oid_get_description (GQuark oid); 37 | 38 | #endif /* EGGOID_H_ */ 39 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-agent-interaction.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2018 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, see 18 | * . 19 | * 20 | * Author: Daiki Ueno 21 | */ 22 | 23 | #ifndef GCR_SSH_AGENT_INTERACTION_H 24 | #define GCR_SSH_AGENT_INTERACTION_H 25 | 26 | #include 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define GCR_TYPE_SSH_AGENT_INTERACTION gcr_ssh_agent_interaction_get_type () 31 | G_DECLARE_FINAL_TYPE (GcrSshAgentInteraction, gcr_ssh_agent_interaction, GCR, SSH_AGENT_INTERACTION, GTlsInteraction) 32 | 33 | GTlsInteraction *gcr_ssh_agent_interaction_new (const gchar *prompter_name, 34 | const gchar *label, 35 | GHashTable *fields); 36 | 37 | G_END_DECLS 38 | 39 | #endif /* GCR_SSH_AGENT_INTERACTION_H */ 40 | -------------------------------------------------------------------------------- /testing/ca-example/certs/ca.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDxjCCAy+gAwIBAgIJAOpd4Em2fjp3MA0GCSqGSIb3DQEBBQUAMIGGMRMwEQYK 3 | CZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRVhBTVBMRTEeMBwGA1UE 4 | CxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv 5 | bTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBsZS5jb20wHhcNMDcxMjIwMTc1NjA2 6 | WhcNMzUwNTA4MTc1NjA2WjCBhjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmS 7 | JomT8ixkARkWB0VYQU1QTEUxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhvcml0 8 | eTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5jb20xHTAbBgkqhkiG9w0BCQEWDmNhQGV4 9 | YW1wbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD5OjHuXXN2LG3s 10 | FHISaZZ6L1RSYgRdTenu1nvqkMn/xvzOz385oede1z/7f6BoXyM0kNWCf4SOXtXr 11 | EIGmQoeURhFfLCnoK8NHfNcel3IPyMPhdJUMJlc3gfpWm+QxjkyqVyMhyYxC9Pmg 12 | QC7zx4ZKcQrL3zVGYtg8wxmaKY2HwQIDAQABo4IBODCCATQwHQYDVR0OBBYEFNSE 13 | nYhMCPaaFynFeQ2R5y25+AcFMIG7BgNVHSMEgbMwgbCAFNSEnYhMCPaaFynFeQ2R 14 | 5y25+AcFoYGMpIGJMIGGMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPy 15 | LGQBGRYHRVhBTVBMRTEeMBwGA1UECxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRcw 16 | FQYDVQQDEw5jYS5leGFtcGxlLmNvbTEdMBsGCSqGSIb3DQEJARYOY2FAZXhhbXBs 17 | ZS5jb22CCQDqXeBJtn46dzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB 18 | BjAZBgNVHREEEjAQgQ5jYUBleGFtcGxlLmNvbTAZBgNVHRIEEjAQgQ5jYUBleGFt 19 | cGxlLmNvbTANBgkqhkiG9w0BAQUFAAOBgQA6xjU2aPgMOh2yyz2KCb6d5gNNvfr4 20 | pLGpZWilbRkA36OOG43zxeRZoumh1ybyOvhm73cMvNihDUyOf7vQe75Qtp5koGPS 21 | V3mSruhsRGvOZxcV+SJnBj1exKyH3mdaZA74Xg4y5qkUkywPqnP5Y+E6UMJM7Nmw 22 | kHk2bKJC5vjxoA== 23 | -----END CERTIFICATE----- 24 | -------------------------------------------------------------------------------- /gcr/gcr-util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef GCR_UTIL_H 23 | #define GCR_UTIL_H 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | typedef void (*GcrLineCallback) (const gchar *line, 30 | gpointer user_data); 31 | 32 | void _gcr_util_parse_lines (GString *string, 33 | gboolean last_line, 34 | GcrLineCallback callback, 35 | gpointer user_data); 36 | 37 | G_END_DECLS 38 | 39 | #endif /* __GCR_TOKEN_MANAGER_H__ */ 40 | -------------------------------------------------------------------------------- /gck/pkcs11x.h: -------------------------------------------------------------------------------- 1 | /* pkcs11x.h 2 | Copyright 2010 Collabora Ltd 3 | 4 | This file is free software; as a special exception the author gives 5 | unlimited permission to copy and/or distribute it, with or without 6 | modifications, as long as this notice is preserved. 7 | 8 | This file is distributed in the hope that it will be useful, but 9 | WITHOUT ANY WARRANTY, to the extent permitted by law; without even 10 | the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11 | PURPOSE. */ 12 | 13 | 14 | #ifndef PKCS11X_H 15 | #define PKCS11X_H 16 | 17 | #include 18 | 19 | #define CKA_XDG (CKA_VENDOR_DEFINED | 0x58444700UL /* XDG0 */ ) 20 | #define CKO_XDG (CKA_VENDOR_DEFINED | 0x58444700UL /* XDG0 */ ) 21 | 22 | /* ------------------------------------------------------------------- 23 | * TRUST ASSERTIONS 24 | */ 25 | 26 | #define CKO_X_TRUST_ASSERTION (CKO_XDG + 100) 27 | 28 | #define CKA_X_ASSERTION_TYPE (CKA_XDG + 1) 29 | 30 | #define CKA_X_CERTIFICATE_VALUE (CKA_XDG + 2) 31 | 32 | #define CKA_X_PURPOSE (CKA_XDG + 3) 33 | 34 | #define CKA_X_PEER (CKA_XDG + 4) 35 | 36 | typedef CK_ULONG CK_X_ASSERTION_TYPE; 37 | 38 | #define CKT_X_DISTRUSTED_CERTIFICATE 1UL 39 | 40 | #define CKT_X_PINNED_CERTIFICATE 2UL 41 | 42 | #define CKT_X_ANCHORED_CERTIFICATE 3UL 43 | 44 | #endif /* PKCS11X_H */ 45 | -------------------------------------------------------------------------------- /gck/gck-version.h.in: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2013 Stef 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef __GCK_VERSION_H__ 23 | #define __GCK_VERSION_H__ 24 | 25 | #if !defined (__GCK_INSIDE_HEADER__) && !defined (GCK_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | /* compile time version 30 | */ 31 | #define GCK_MAJOR_VERSION (@GCR_MAJOR@) 32 | #define GCK_MINOR_VERSION (@GCR_MINOR@) 33 | #define GCK_MICRO_VERSION (@GCR_MICRO@) 34 | 35 | /* check whether a Gcr version equal to or greater than 36 | * major.minor.micro. 37 | */ 38 | #define GCK_CHECK_VERSION(major,minor,micro) \ 39 | (GCK_MAJOR_VERSION > (major) || \ 40 | (GCK_MAJOR_VERSION == (major) && GCK_MINOR_VERSION > (minor)) || \ 41 | (GCK_MAJOR_VERSION == (major) && GCK_MINOR_VERSION == (minor) && \ 42 | GCK_MICRO_VERSION >= (micro))) 43 | 44 | #endif /* __GCK_VERSION_H__ */ 45 | -------------------------------------------------------------------------------- /gcr/gcr-version.h.in: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2013 Stef 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef __GCR_VERSION_H__ 23 | #define __GCR_VERSION_H__ 24 | 25 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | /* compile time version 30 | */ 31 | #define GCR_MAJOR_VERSION (@GCR_MAJOR@) 32 | #define GCR_MINOR_VERSION (@GCR_MINOR@) 33 | #define GCR_MICRO_VERSION (@GCR_MICRO@) 34 | 35 | /* check whether a Gcr version equal to or greater than 36 | * major.minor.micro. 37 | */ 38 | #define GCR_CHECK_VERSION(major,minor,micro) \ 39 | (GCR_MAJOR_VERSION > (major) || \ 40 | (GCR_MAJOR_VERSION == (major) && GCR_MINOR_VERSION > (minor)) || \ 41 | (GCR_MAJOR_VERSION == (major) && GCR_MINOR_VERSION == (minor) && \ 42 | GCR_MICRO_VERSION >= (micro))) 43 | 44 | #endif /* __GCR_VERSION_H__ */ 45 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-askpass.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Stefan Walter 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as 6 | * published by the Free Software Foundation; either version 2.1 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this program; if not, see . 16 | * 17 | * Author: Stef Walter 18 | */ 19 | 20 | #ifndef __GCR_SSH_ASKPASS_H__ 21 | #define __GCR_SSH_ASKPASS_H__ 22 | 23 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 24 | #error "Only can be included directly." 25 | #endif 26 | 27 | #include 28 | 29 | #include 30 | 31 | G_BEGIN_DECLS 32 | 33 | #define GCR_TYPE_SSH_ASKPASS (gcr_ssh_askpass_get_type ()) 34 | G_DECLARE_FINAL_TYPE (GcrSshAskpass, gcr_ssh_askpass, 35 | GCR, SSH_ASKPASS, 36 | GObject) 37 | 38 | GcrSshAskpass * gcr_ssh_askpass_new (GTlsInteraction *interaction); 39 | 40 | GTlsInteraction * gcr_ssh_askpass_get_interaction (GcrSshAskpass *self); 41 | 42 | void gcr_ssh_askpass_child_setup (gpointer askpass); 43 | 44 | G_END_DECLS 45 | 46 | #endif /* __GCR_SSH_ASKPASS_H__ */ 47 | -------------------------------------------------------------------------------- /gcr.doap: -------------------------------------------------------------------------------- 1 | 6 | 7 | gcr 8 | A library for bits of crypto UI and parsing etc. 9 | GCR is a library for displaying certificates, and crypto UI, accessing 10 | key stores. It also provides the viewer for crypto files on the GNOME 11 | desktop. 12 | 13 | GCK is a library for accessing PKCS#11 modules like smart cards, in a 14 | (G)object oriented way. 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | C 23 | 24 | 25 | 26 | Daiki Ueno 27 | 28 | dueno 29 | 30 | 31 | 32 | 33 | 34 | Niels De Graef 35 | 36 | nielsdg 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /egg/mock-interaction.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* mock-interaction.h 3 | 4 | Copyright (C) 2011 Collabora Ltd 5 | 6 | The Gnome Keyring Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Library General Public License as 8 | published by the Free Software Foundation; either version 2 of the 9 | License, or (at your option) any later version. 10 | 11 | The Gnome Keyring Library 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. See the GNU 14 | Library General Public License for more details. 15 | 16 | You should have received a copy of the GNU Library General Public 17 | License along with the Gnome Library; see the file COPYING.LIB. If not, 18 | see . 19 | 20 | Author: Stef Walter 21 | */ 22 | 23 | #ifndef MOCK_INTERACTION_H 24 | #define MOCK_INTERACTION_H 25 | 26 | #include 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define MOCK_TYPE_INTERACTION (mock_interaction_get_type ()) 31 | #define MOCK_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOCK_TYPE_INTERACTION, MockInteraction)) 32 | #define MOCK_IS_INTERACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MOCK_TYPE_INTERACTION)) 33 | 34 | typedef struct _MockInteraction MockInteraction; 35 | 36 | GType mock_interaction_get_type (void) G_GNUC_CONST; 37 | 38 | GTlsInteraction * mock_interaction_new (const gchar *password); 39 | 40 | G_END_DECLS 41 | 42 | #endif /* MOCK_INTERACTION_H */ 43 | -------------------------------------------------------------------------------- /egg/egg-hkdf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef EGG_HKDF_H_ 23 | #define EGG_HKDF_H_ 24 | 25 | #include 26 | 27 | gboolean egg_hkdf_perform (const gchar *hash_algo, 28 | gconstpointer input, 29 | gsize n_input, 30 | gconstpointer salt, 31 | gsize n_salt, 32 | gconstpointer info, 33 | gsize n_info, 34 | gpointer output, 35 | gsize n_output); 36 | 37 | #endif /* EGG_HKDF_H_ */ 38 | -------------------------------------------------------------------------------- /gcr/gcr-openssh.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef __GCR_OPENSSH_H__ 23 | #define __GCR_OPENSSH_H__ 24 | 25 | #include 26 | 27 | #include 28 | 29 | G_BEGIN_DECLS 30 | 31 | typedef void (*GcrOpensshPubCallback) (GckAttributes *attrs, 32 | const gchar *label, 33 | const gchar *options, 34 | GBytes *outer, 35 | gpointer user_data); 36 | 37 | guint _gcr_openssh_pub_parse (GBytes *data, 38 | GcrOpensshPubCallback callback, 39 | gpointer user_data); 40 | 41 | G_END_DECLS 42 | 43 | #endif /* __GCR_OPENSSH_H__ */ 44 | -------------------------------------------------------------------------------- /gcr/gcr-gnupg-records.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 Collabora Ltd. 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as 6 | * published by the Free Software Foundation; either version 2.1 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this program; if not, see . 16 | * 17 | * Author: Stef Walter 18 | */ 19 | 20 | #ifndef GCR_GNUPG_RECORDS_H 21 | #define GCR_GNUPG_RECORDS_H 22 | 23 | #include 24 | 25 | #include "gcr-record.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | const gchar * _gcr_gnupg_records_get_keyid (GPtrArray *records); 30 | 31 | const gchar * _gcr_gnupg_records_get_short_keyid (GPtrArray *records); 32 | 33 | const gchar * _gcr_gnupg_records_get_fingerprint (GPtrArray *records); 34 | 35 | gchar * _gcr_gnupg_records_get_user_id (GPtrArray *records); 36 | 37 | gboolean _gcr_gnupg_records_parse_user_id (const gchar *user_id, 38 | gchar **name, 39 | gchar **email, 40 | gchar **comment); 41 | 42 | G_END_DECLS 43 | 44 | #endif /* __GCR_GNUPG_RECORD_H__ */ 45 | -------------------------------------------------------------------------------- /gcr/fixtures/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpQIBAAKCAQEAwSA0Mz92De30Mc0A/P9vzstLERoqGhnwBw0HKbcsQ50KdcYS 3 | cp/Rv2WRPlxpe7kYAzzhqFMInufv1FU2uoYozuNsF1Jf5lR+SolA+E5cPb7SeJhC 4 | Jwf3afPvyTGaOVuLO93d8zUGU74L/741Z/YQCE5FUCO8msc2iQmnc9M1EnVZa14d 5 | 5T0/B8aZYcpVzUiC9EUwfTzrTghnNfkJzEiD9vnqDbsDsIE+H8o7+opMMsUU0ZzV 6 | PZqy9j8/f4943rL6V4UdK0JO7tEGL+XiFzNl2fCrcEZPqaeMQ3vBq7azukDTrtJe 7 | KY06RiLl+DCykweLx8laZjIHKlSZAFHPB+bvsQIDAQABAoIBAQCQUI1RYnHIdPFO 8 | qZ+8bvDQ+g8tR30ApjM8QZsBrDRyjg579bhhWVY2jSJdFFdqseTkvoDt9KZzgGQy 9 | Kj9MYOZru3xRbSfmiWsaLbiUFJJPPaIvpa+BVS2oSjX8BYn2pJbF9MRfclc5CsIS 10 | qMNl3XUbj8mx2hKdIpJ5EvLD1adKE4Se6peqSZAmEHONNCsrMrQ0GSQqV3viInJr 11 | tc3kp3HcPffSROWqmc6jAJ77Cs3ApgJavL5RGjx30Kd+dKVq4PXZ+IhWM8dOSput 12 | wcyxEosiP/W2g0rDgNW2mGOVOwa/D5SnOolicHifdV7idjwLAjkyYgvmBMNSsECj 13 | yKBkE0gxAoGBAN8iHMumyvriHuj9bSLZ1bcyYFz7jIwUxpHTT7VqN/j/Y1BoBIBy 14 | ZZLDGMa+ID/brpRHzJQAKSNtbFQ0S1HTSKcFud5OWE8Rp3pQJU+sdeO3pCMWAD1z 15 | Q4ggF07JjTSSnK+4fcXgEN9P2OdfXy7Rj3HFpSahql55Kp5udoUdzUVFAoGBAN2S 16 | krlcEuqsEYjqsCJw5pctIwPMvCM51JgirrdETwSGquMklSrobH0PHMlR67gsA/9I 17 | UGShT0LL4UWYpBn/4xLrLbua5aHIBfQQZp9K6jDZddWS+EFL5JkO/Up4/qM6fUbH 18 | CuweVv1gd6i2Ti35K60mgx6MqVunaB1k8Q9P3Pl9AoGALSVtxha9Qv21W1bLWh3R 19 | C/v5W1baHQ2nD6I9omsXYB3sLjydjI+Y1ZT70lptk/4S2JWeYuOVb0GYhYD/LFMf 20 | hAu4i642V+kuhaTpp7ExOR3S6/ZrngNQSp6TmLFXDKgNY9BkQkEPqN8y971oOMTV 21 | zSM8QxC6s9q4MM4Q1OYuvjECgYEAsO2V1AW95T45Ukd1FktpFlaomyQlJ0vKgyFO 22 | unEFV+vhETfpFTY7SzGCHxAXVh1vo62u5Gwayo/a9qQIhepa/IRnJGNv8luyxU1D 23 | ZPeBQjija0PMkPd1NvNNNuafDuBpoNbX1ev0MqeRZVsN2pAZXE5gbUiNA+8NqEsu 24 | Yre3EFECgYEA13rXE76zZgsefx+2spjqJDUWEmTDd1460xTtxCCgL9dy4rW5bgwo 25 | MvINphSUXOwSkn8Oja/IvpN28zSj9W/ci5wU52P5w4blkBmuj8UoCjP2FN1b1OBa 26 | 86mkwVsCYUyyI2apuwrHP77yeb8jXZb+reqSns3hU+HyO/nUTVmnews= 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_rsa_plain: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEowIBAAKCAQEAoD6VKqkhay6pKHSRjAGWWfFPU8xfsi2gnOwP/B1UHDoztx3c 3 | zhO+py/fTlhCnSP1jsjkrVIZcnzah2fUNFFRgS4+jROBtvbgHsS72V1E6+ZogV+m 4 | BJWWAhw0iPrmQ3Kvm38D3PByo5Y7yKO5kIG2LloYLjosJ5F4sx2xh0uz2wXNtnY1 5 | b5xhe2+VEksm9OB+FXaUkZC2fQrTNo8ZGFJQSFd8kUhIfbUDJmlYuZ+vvHM+A3Lc 6 | 9rHyW4IPaRyxFQciRmb+ZQqU2uSdOXAhg17lskuX/q8yCI5Hy5eDicC222oUMdJT 7 | tYgwX4dQCU8TICWhxb3x4RCV+g7D99+tkIvv+wIBIwKCAQEAm6qCRrLtQ4xpz4cu 8 | TX3ig0Ivzb84Y/HPOVpYq8S4G2u9NYq5PTfAhScwsoGfy9nJ+GthzPCrAYCZxV2M 9 | UBR7D8aF6CGT85C8dakrgrJgNZ3/HpduExT4H06Zbx+d2x7zu5/1H8UBpjorcnMp 10 | SoyiWOnOWMrLzqqSghzYV4teQnkhDmMTDgP/L39k9oLh/gvDHkxQET/IirrM3iT3 11 | rpZsXjsA+vAOrDrrsauPP9uAswaRGOH1O+xdAc/QH6/j2RK6ew/uICl0V9xYddSw 12 | 9LSkk0gre2sdd7zz/r2t1oMFFsq+MaQ5Uynz0zmwpe/wyQjWY1ILy/wcIdOpLyOS 13 | PUaMSwKBgQDMULEsX+QChX3Od9gnwfbu4it7KYOV8V495al1YsaEyZcmcPQNKGrG 14 | iHyjDTWjj9w0THhrzF2ZfkWw3+N3SHfYqRx0+bzMgttEEJbaACOqBJPMmOwmi30I 15 | 9ILcmsSMyOk+W9bHKPQ4OjwIVruiyvsFoLfhcFm0hispibWCKnlhUQKBgQDIx+aT 16 | kFnnVBvPnLAHgDfN32X0KR5Kk3PRe0cdNoeJHb/VHgLC0SuzZwdl+bzLdEyDaKht 17 | MGiPtblEhrjeTvwCHpwFOyMb33lYc1En8L2DNDjL0CASzRoHbvcKkin/L78wKmkV 18 | TY5uFyZ7Q/5S0YNlGSKL02+XURE/F/4FzKRJiwKBgQC6zW7JfD4uMOgNOl86SvBl 19 | YRHPsO1V4/5kejSIlNLCjGzv8j436nBAfMm5pa1iV6TCGgezA/3OKk5Yki8N+R0d 20 | 3HHKCOchYbKHX5/dQfS4s7pUqRJsYkZulmkENbsEX+sxsw2C4511PI6oidAfz4Zr 21 | i6DOHZPYQCd2b0bdaKl9iwKBgQCD8RPdUDsUW9fC8fAE7duHSall7yKIx0wb8ezn 22 | T7gm56nycs6dR6Bf8z9gRQcJWw21cKkxz1qnlKzyhGrbOzfkIr5MlJNqFoLw+1KW 23 | luLv0dwuKa6tRPPY/8bpsIH/dyXd0roVUDkGhD3b+Xs9vOFREIRqg6EaSzc4FxSk 24 | ua3J7QKBgBVAzKSD3ya+VYKFD3E8GaiLQoClJF2t9Zkzr3yyJ657CwugA/2uU2/x 25 | 3YNU3vK9hyypTXulbtteifRceSLDxEBQ67f0F3gvBqU6ZU2FmD7YTTv82Jvl0Ue2 26 | 49ouxRjON9nXmr+6qe/yr5vIRlcRjKlfaIxDL7V6OTgwedUwqCuY 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /testing/ca-example/keys/email.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpAIBAAKCAQEAsYplGtuzoTWL4nQ/xumPYjWfGX+EOR7NOAizRX1IYYQV3AvA 3 | bZCqwa714PnwoIDyknrm0oZcjle4ijOXLDXxJ+AQv8/gJZZ0b32TwiHJ/1TIU/ok 4 | TQbQz/z9gOsDXBdrDbhp04f4KStkwWBLQPM3f2A+7ySCBinK/Wt7s7guz4PbNsQu 5 | 7X2Pi4NY4DNRj2dE+4hdRAP+AqlAyUGLyhUf62zusuNzbKJMFOpQxTWKgpbv74sU 6 | P8KdktLCDxINNSwN/cdivwV6MBkYSCkGLLTQI44jPGMyIOvleAkebiIKaH+u3gXY 7 | iyakIWUFEmbiEJMoZIPJMJGYNjm/bsXpKCxtyQIDAQABAoIBAHJ7n36WNVq6wJ0i 8 | AQ4vBXp6wUEb7RM4PXToh1FD3Cylk8L1APyl0LZcL8kG4pddDw5NmhIe+gf/oMvd 9 | QJoNnpfr8GD/lrYmMqbB/0mrqCmxbgxYvJe+0V+M75r18JCtuSZ7yCHTB77kcHAR 10 | u/UB4MOOOIbUr9Nxl6eaa4YUOnsso3KctxpIVUcl8MNXQ7f9HKDZimkqCkQBHDKJ 11 | mWIzacFE0OmuuhLNKp0fC0PSt+GhLLclBm7Lwq8nPKY4gCNc0GBYnxddWlm58KLW 12 | dEjTv1KTXr+9wztBrCh+2rhCHgOfEGexSymvFOXg8eykPpSRRCwsnlGN2Yd5evtW 13 | 0NSO31ECgYEA6GPc9aDtLQOIwLlQbHJLvqE2julI3FhV9sttR/DXgtZuRcMMN6gY 14 | qHt4cg6g2SchGu8un+aZeMLHCNstS1bj2Szh/RxXxILLkPmZVPi68WMF+sIflNtY 15 | gVZeU0mADFizMOkFRaGBw31zjkC2k8ZZsLpRoausc2Y4eNhOA/QqzvsCgYEAw5P5 16 | dZd9UVrExyb1diopuG0iRPkHcC96a7kfn69jlXH0Dsnls2kxCskAB9cJzYLzSSNv 17 | 4M6efD6ZmMwOlwErOkkAu6GV4VjCYU7bildHxY/iUD73xxaWIf37H7bo83yKcDOO 18 | Z5HXevYlzd8NEQ2sGX6fti2Ea11ycZGJ36h2SwsCgYBjW275RdihykUJwTF1bFie 19 | JGcjKvKP4uS+I7ORcpNxySRUh1QN57zDLCcO/Nogfe5VibWxf/JWA1D9pFf1Qi0g 20 | iWQFx7xutE08qrq37bBfzCqeT6kZB78LbVXe3in1HWdfngE3CBpm7pgdVeW5wLBQ 21 | Mxj7ul586FN0t2aDoj07SQKBgQCLu+W3xoya26dMQuGNk4JLam3ZqbNOzB1DafjW 22 | NpGH7OraxhV/oeCQPBvxfgpa8vyvfMoqbHV/f5puOR0TdppUAmSrqj9Tyf7XV2gz 23 | 5zg4Rx0DCHovnEuX7cbGWgEGNi0TDULpbKHwEH3iIUNMs+AKNxYVK2A49YMW8Uz4 24 | p3wdEQKBgQCUPublorKW6KmnobFL0iVWkM8hZL1xVDB4Yj8Xr7/Vpjs/Jb1dX/Hc 25 | u1fkc6p4d8zmueTfDchEkIrmt49ZqtwvWlH55a8nfPvdrOq8sbcEhRVAzre075R4 26 | s/yD9FBk1FQSJHhy0IcHSWyf4bq9+kt9t4BaxfMP2d+YPphiUa72OQ== 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /testing/ca-example/keys/client.key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpQIBAAKCAQEAwSA0Mz92De30Mc0A/P9vzstLERoqGhnwBw0HKbcsQ50KdcYS 3 | cp/Rv2WRPlxpe7kYAzzhqFMInufv1FU2uoYozuNsF1Jf5lR+SolA+E5cPb7SeJhC 4 | Jwf3afPvyTGaOVuLO93d8zUGU74L/741Z/YQCE5FUCO8msc2iQmnc9M1EnVZa14d 5 | 5T0/B8aZYcpVzUiC9EUwfTzrTghnNfkJzEiD9vnqDbsDsIE+H8o7+opMMsUU0ZzV 6 | PZqy9j8/f4943rL6V4UdK0JO7tEGL+XiFzNl2fCrcEZPqaeMQ3vBq7azukDTrtJe 7 | KY06RiLl+DCykweLx8laZjIHKlSZAFHPB+bvsQIDAQABAoIBAQCQUI1RYnHIdPFO 8 | qZ+8bvDQ+g8tR30ApjM8QZsBrDRyjg579bhhWVY2jSJdFFdqseTkvoDt9KZzgGQy 9 | Kj9MYOZru3xRbSfmiWsaLbiUFJJPPaIvpa+BVS2oSjX8BYn2pJbF9MRfclc5CsIS 10 | qMNl3XUbj8mx2hKdIpJ5EvLD1adKE4Se6peqSZAmEHONNCsrMrQ0GSQqV3viInJr 11 | tc3kp3HcPffSROWqmc6jAJ77Cs3ApgJavL5RGjx30Kd+dKVq4PXZ+IhWM8dOSput 12 | wcyxEosiP/W2g0rDgNW2mGOVOwa/D5SnOolicHifdV7idjwLAjkyYgvmBMNSsECj 13 | yKBkE0gxAoGBAN8iHMumyvriHuj9bSLZ1bcyYFz7jIwUxpHTT7VqN/j/Y1BoBIBy 14 | ZZLDGMa+ID/brpRHzJQAKSNtbFQ0S1HTSKcFud5OWE8Rp3pQJU+sdeO3pCMWAD1z 15 | Q4ggF07JjTSSnK+4fcXgEN9P2OdfXy7Rj3HFpSahql55Kp5udoUdzUVFAoGBAN2S 16 | krlcEuqsEYjqsCJw5pctIwPMvCM51JgirrdETwSGquMklSrobH0PHMlR67gsA/9I 17 | UGShT0LL4UWYpBn/4xLrLbua5aHIBfQQZp9K6jDZddWS+EFL5JkO/Up4/qM6fUbH 18 | CuweVv1gd6i2Ti35K60mgx6MqVunaB1k8Q9P3Pl9AoGALSVtxha9Qv21W1bLWh3R 19 | C/v5W1baHQ2nD6I9omsXYB3sLjydjI+Y1ZT70lptk/4S2JWeYuOVb0GYhYD/LFMf 20 | hAu4i642V+kuhaTpp7ExOR3S6/ZrngNQSp6TmLFXDKgNY9BkQkEPqN8y971oOMTV 21 | zSM8QxC6s9q4MM4Q1OYuvjECgYEAsO2V1AW95T45Ukd1FktpFlaomyQlJ0vKgyFO 22 | unEFV+vhETfpFTY7SzGCHxAXVh1vo62u5Gwayo/a9qQIhepa/IRnJGNv8luyxU1D 23 | ZPeBQjija0PMkPd1NvNNNuafDuBpoNbX1ev0MqeRZVsN2pAZXE5gbUiNA+8NqEsu 24 | Yre3EFECgYEA13rXE76zZgsefx+2spjqJDUWEmTDd1460xTtxCCgL9dy4rW5bgwo 25 | MvINphSUXOwSkn8Oja/IvpN28zSj9W/ci5wU52P5w4blkBmuj8UoCjP2FN1b1OBa 26 | 86mkwVsCYUyyI2apuwrHP77yeb8jXZb+reqSns3hU+HyO/nUTVmnews= 27 | -----END RSA PRIVATE KEY----- 28 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-agent-process.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2014 Stef Walter 5 | * Copyright (C) 2018 Red Hat, Inc. 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 | * Author: Stef Walter , Daiki Ueno 22 | */ 23 | 24 | #ifndef GCR_SSH_AGENT_PROCESS_H 25 | #define GCR_SSH_AGENT_PROCESS_H 26 | 27 | #include 28 | 29 | #include "egg/egg-buffer.h" 30 | 31 | #define GCR_TYPE_SSH_AGENT_PROCESS gcr_ssh_agent_process_get_type () 32 | G_DECLARE_FINAL_TYPE(GcrSshAgentProcess, gcr_ssh_agent_process, GCR, SSH_AGENT_PROCESS, GObject) 33 | 34 | GcrSshAgentProcess *gcr_ssh_agent_process_new (const gchar *path, 35 | GStrv ssh_agent_args); 36 | GSocketConnection *gcr_ssh_agent_process_connect (GcrSshAgentProcess *self, 37 | GCancellable *cancellable, 38 | GError **error); 39 | GPid gcr_ssh_agent_process_get_pid (GcrSshAgentProcess *self); 40 | 41 | #endif /* GCR_SSH_AGENT_PROCESS_H */ 42 | -------------------------------------------------------------------------------- /docs/COPYING: -------------------------------------------------------------------------------- 1 | This work may be reproduced and distributed in whole or in part, in 2 | any medium, physical or electronic, so as long as this copyright 3 | notice remains intact and unchanged on all copies. Commercial 4 | redistribution is permitted and encouraged, but you may not 5 | redistribute, in whole or in part, under terms more restrictive than 6 | those under which you received it. If you redistribute a modified or 7 | translated version of this work, you must also make the source code to 8 | the modified or translated version available in electronic form 9 | without charge. However, mere aggregation as part of a larger work 10 | shall not count as a modification for this purpose. 11 | 12 | All code examples in this work are placed into the public domain, 13 | and may be used, modified and redistributed without restriction. 14 | 15 | BECAUSE THIS WORK IS LICENSED FREE OF CHARGE, THERE IS NO 16 | WARRANTY FOR THE WORK, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 17 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 18 | OTHER PARTIES PROVIDE THE WORK "AS IS" WITHOUT WARRANTY OF ANY 19 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 | PURPOSE. SHOULD THE WORK PROVE DEFECTIVE, YOU ASSUME 22 | THE COST OF ALL NECESSARY REPAIR OR CORRECTION. 23 | 24 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 25 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 26 | AND/OR REDISTRIBUTE THE WORK AS PERMITTED ABOVE, BE LIABLE TO YOU 27 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 28 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 29 | WORK, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 30 | POSSIBILITY OF SUCH DAMAGES. 31 | -------------------------------------------------------------------------------- /gck/pkcs11-trust-assertions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * pkcs11x.h 3 | * Copyright 2010 Collabora, Ltd 4 | * 5 | * This file is free software; as a special exception the author gives 6 | * unlimited permission to copy and/or distribute it, with or without 7 | * modifications, as long as this notice is preserved. 8 | * 9 | * This file is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY, to the extent permitted by law; without even 11 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 12 | * PURPOSE. 13 | */ 14 | 15 | /* 16 | * The latest version of this file is at: 17 | * 18 | * git://thewalter.net/git/pkcs11-trust-assertions 19 | * 20 | * or viewable on the web at: 21 | * 22 | * http://thewalter.net/git/cgit.cgi/pkcs11-trust-assertions/tree/pkcs11-trust-assertions.h 23 | * 24 | */ 25 | 26 | #ifndef PKCS11_TRUST_ASSERTIONS_H 27 | #define PKCS11_TRUST_ASSERTIONS_H 28 | 29 | #include 30 | 31 | #define CKA_XDG (CKA_VENDOR_DEFINED | 0x58444700UL /* XDG0 */ ) 32 | #define CKO_XDG (CKA_VENDOR_DEFINED | 0x58444700UL /* XDG0 */ ) 33 | 34 | /* ------------------------------------------------------------------- 35 | * TRUST ASSERTIONS 36 | */ 37 | 38 | #define CKO_X_TRUST_ASSERTION (CKO_XDG + 100) 39 | 40 | #define CKA_X_ASSERTION_TYPE (CKA_XDG + 1) 41 | 42 | #define CKA_X_CERTIFICATE_VALUE (CKA_XDG + 2) 43 | 44 | #define CKA_X_PURPOSE (CKA_XDG + 3) 45 | 46 | #define CKA_X_PEER (CKA_XDG + 4) 47 | 48 | typedef CK_ULONG CK_X_ASSERTION_TYPE; 49 | 50 | #define CKT_X_UNTRUSTED_CERTIFICATE 1UL 51 | 52 | #define CKT_X_PINNED_CERTIFICATE 2UL 53 | 54 | #define CKT_X_ANCHORED_CERTIFICATE 3UL 55 | 56 | #endif /* PKCS11_TRUST_ASSERTIONS_H */ 57 | -------------------------------------------------------------------------------- /gcr/fixtures/ssh-agent/id_rsa_encrypted: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-EDE3-CBC,C7CA72E4022D0E83 4 | 5 | me0oewaJEzC9jiS1EaEN1dgXwc6QpVa9YeZLOmuhWbKhJI7B4eB7ZzdCRZv07wKv 6 | kCSkM+/rk6Env7QjkRhREF2Uc1jGwZAh5SttP/eGlWe4tcJ0o246rNgtPmyrlmh4 7 | 7jESkZICnv7kv9nam4W0GU/4UHTGZsx4z6l0XUnbI5mDwUC4QL7mF9Bu3tZ3+hlY 8 | V4Pr7OklILzopGuoaYaJABhbu/EtU3R8+g9gXJZFkLJUo41Q53BjBlZb1XEKSBE/ 9 | 3TL+sDVklBOZlqgIiBnN7buGeC/0VFzmworpMvti1SIBtfKCuYGYcrqoeUmP8+CK 10 | lAOpfFGWuh89YpVsWG57pJg6YJo8SrqwmUO0ksv3SA2Lf4hoecX3Ikp6vNKYlZ27 11 | uKWtmWV79gtsOKARh2v72ZFChRS6AQFkU1ZMA56rKEaW/Mvlm/7HF9G4k7SEftR1 12 | r06FUKp5uUCbvWOfyYM/69HdB8aZROU24zUPkYu49kZ/QCl7q7LxG+ODJIybyklR 13 | RxZVO0qcb14umRP0iC+9jNw3J/hECS6JzHW7NbCplzi/AEbXZGUrhfzpri3CTs81 14 | l9WSywbZINUyesYO4TfttfmCgBuLRc0x2C/wrn8MG09Gl7c2aw2pxhaMPGF3j/G8 15 | shV7FwTGsKm8G+eMSiFXkm58Biz/nAITimAqe36VsmkcqjAuX0YVAiLVkux9YmQ2 16 | 5hmCoBaZIx88YGgCwsigwPQPGQrXlZinlFfYluG6trA42pl2BD/6U/AJEZ8RUsD0 17 | OshlvRxxR0/zCqMufRWxBb1BUftglKunfiF6iHgTshIoOUmvLblzaEDB8Jf5UMS1 18 | tZMH0RQSLH3gQ+kp7/2mW2jGbdIhusru729yykb/9iinoGMEgdsfFr62nDj5zPYb 19 | kltEUwjVWnuL/O/38exZjrIZkf1uaFkjLXqrHIz3MuoHSoVd/AVBeEU4BvKO4aoM 20 | mgcT/Nc+jNWhOOewDtvtYxcPjrvmg69huLG0XoCgQ8P2GQJD2rSVc2MTe3hqmJj8 21 | SKqSUdlq4Sb+8K/hh++gCQkrJb5q7zIdXxULA7xf8PD2yhrVgO/h9mzaDxR77zBJ 22 | lab2dSxEH9vdGQKqGT6ZndEZo6Gopn2pXtn7bYVN2K0GojYa2MiLNbuhqxtZvg5Z 23 | Y49acItEd49objc40IU6WAAwz5w6jl6lybTq6EiNSMsmtekugUwyFQCOpTfYdOwZ 24 | 9zrbmzwiWWAiQQTYuPESS1FpQEvAilzoSmwmbNkaAbMZfguX429+cSW1Kdu0/AWq 25 | SGx7AFpZpbKLd7hdKy25ZRIyRqu0goTsqA/r28faLKhjhKMF2Dl+Pgtkny7t/k1Z 26 | ZJXGmt++mHIck1UvGZR37thqpqd5IF9e96Pos1nQPfkV3cxXOT6mMOf9F3yCYW6d 27 | VclJPaM0lTEobbt2q/cDIM86Mo7G3cYHtfe7O+ard5Uhz+KVXhczduXeiwR4XNmP 28 | xQj/mgGTGCZIEWMJ32576B/vjEThY1RkA/wvdiMmV4gskXBbu/rhcX/RX51yBalP 29 | FU0DCN56t7vrXacEcdilMJIWLFZiqQCvYFHigNhwVsfBhNZHDxRODg== 30 | -----END RSA PRIVATE KEY----- 31 | -------------------------------------------------------------------------------- /gcr/gcr-fingerprint.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef GCR_FINGERPRINT_H 23 | #define GCR_FINGERPRINT_H 24 | 25 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | #include 30 | 31 | #include "gcr-types.h" 32 | #include "gcr-certificate.h" 33 | 34 | guchar * gcr_fingerprint_from_subject_public_key_info (const guchar *key_info, 35 | gsize n_key_info, 36 | GChecksumType checksum_type, 37 | gsize *n_fingerprint); 38 | 39 | guchar * gcr_fingerprint_from_attributes (GckAttributes *attrs, 40 | GChecksumType checksum_type, 41 | gsize *n_fingerprint); 42 | 43 | #endif /* GCR_FINGERPRINT_H_ */ 44 | -------------------------------------------------------------------------------- /testing/ssh-example/id_rsa: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: AES-128-CBC,2166F6D1CF1E7548690D572639503DCF 4 | 5 | vWdHuKtNO8dMYBxgQgxjVUiiek6KTZpb0nnm9tRo6KJp08Ce3TCC184LSA+AQ+zJ 6 | tJ54GTyHaTB4jf+BTn0LjmHT5VSFevmyWCWvQ2UbEJTmOhmEHwVpzJHcB9jVKhYG 7 | axHMtckUelUXlOmx7YFVU5YTbnIOyXkG8XSARk3j1NSmSGMK7S4vB0I7KpJi76gN 8 | LpWGFsiYjr6vUdcvjsZUB/CbyJ456N/ND41AERVM0Ecl6vQC8touN/U9+BHHWOAb 9 | +e6I0v2Oje0TEm/qDpq834JJb6auCWmCDQLEe63WeWgceG48DmdyDwJ5sOH0kSxq 10 | HNGYFRB2PEOaNI4b0keSeXTjxKCxhaFs+krJZaXAfKIzGg1AJ1w9Hb7whFpvwRMv 11 | SUhfdFkzQW1/fj6qCgRlq78h7rAahoLroPpY9Uhd1qKH4PTpx4oD+nvAIqPN4Ch8 12 | vVGh+NtiGWNT7HnTG6cWkGZnWUQ4PZ9dkPVSPWsea8dVEHjpbUKGikxIx4D7abbC 13 | ZA2ifcAMt2rklYWoXVST53qBrKTo2hlpI9c5sn3/A7JBZuE3ljgCZL/TozuKk+ZH 14 | UzqbxWsGl1u3pMNc8/T8l6PuuKl+D3vczBFkQWlSjRGY3UCnQ+nQEI8zxKes61B9 15 | y/b1/zNYJiGqNzJG427qd3EGAlt0FS5N/5iFCGXyo80rS34i/UnJkcJcAuIQdqIX 16 | GKgRrekxepff/mirn58WKIxWobp9y0vOMCZm8lD53wXLCIsbbWCqxbmBttvdr6hM 17 | UWZ2QTbKn+3KeBm2O8PZGDooP2bhocnBP2tdm/6rC9cYbESikFUjC6IJFxFsRr7z 18 | Hmwnwxdkb0vJCKXLf4ww48nDODrSu3Fhc6YhRR7uIpt3VswKG1Kfm5xVbjUhu+4S 19 | rf0Y69sivYFi+mlpr0GD6EpQsZ9nHhd1e6pPmVprBt5s5LbOa+SO8k3iTa+/BDGZ 20 | Ft8PXG3alEEUYllavubkP5kLnsVZ8C+UNFEeDRzhzWjmcv3er6U1WwTEzgIxos76 21 | 2+leOvtQ5l0wzk0U3fL0c694dOoG0rm1E2jAd6LkZwn7e/15raP9igEB72uM5bea 22 | ikrd2gd5AEwaDKESErRp+CCcHXJ8C1zaAhgws21qbNegV44AwtDPkYN8ID2DSwUv 23 | KQZX3hwNc0g3sRGlQ35lpwe7H8qTGwr5l5TPM0eKuNi/V+qmFFjCMEpDkp+/hSSu 24 | ThpazlWoWUg7qBlopOmTLF7wN1byfwiu5DeF56HE1+W1cPyAzhEkbuuEuzZcaJit 25 | 6aS5pCeq2dGwyNgb65+n/jZiucCXJQToIUZvdlPXfsstABDs//iAARwqjtxmIdoZ 26 | uyI7tjK9MkRIvHIyCSQRKdhpelDuMiKxORhOiLLJsZ3Wd+Acr14vNk7nHJZcvaX/ 27 | UuF6/iKFsg+smWIsSPE/OtsWJ+4g0jOg5oHphOH57m89cqOQe2njcTWpOSMGdF9P 28 | u9QrCVOaRnswPpFuNJQrRjte+9HIxn5Qgzw3vr+Me21NW0fvDaaKUrBm4PPPEUFg 29 | V4/XW2WtotyszoIAMdzUOmLNUGNh1I+GwJY7Mb16jHDQe0RjtGYlDjH3ykj1isAM 30 | -----END RSA PRIVATE KEY----- 31 | -------------------------------------------------------------------------------- /egg/test-oid.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* unit-test-oid.c: Test OID routines 3 | Copyright (C) 2008 Stefan Walter 4 | 5 | The Gnome Keyring Library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Library General Public License as 7 | published by the Free Software Foundation; either version 2 of the 8 | License, or (at your option) any later version. 9 | 10 | The Gnome Keyring Library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Library General Public License for more details. 14 | 15 | You should have received a copy of the GNU Library General Public 16 | License along with the Gnome Library; see the file COPYING.LIB. If not, 17 | see . 18 | 19 | Author: Stef Walter 20 | */ 21 | 22 | #include "config.h" 23 | 24 | #include "egg/egg-oid.h" 25 | 26 | #include 27 | 28 | static void 29 | test_tests (void) 30 | { 31 | GQuark oid; 32 | 33 | oid = g_quark_from_static_string ("0.9.2342.19200300.100.1.25"); 34 | g_assert_cmpstr (egg_oid_get_name (oid), ==, "DC"); 35 | g_assert_cmpstr (egg_oid_get_description (oid), ==, "Domain Component"); 36 | g_assert_cmpuint (egg_oid_get_flags (oid), ==, EGG_OID_PRINTABLE); 37 | 38 | /* Should return OID for invalid oids */ 39 | oid = g_quark_from_static_string ("1.1.1.1.1"); 40 | g_assert_cmpstr (egg_oid_get_name (oid), ==, "1.1.1.1.1"); 41 | g_assert_cmpstr (egg_oid_get_description (oid), ==, "1.1.1.1.1"); 42 | g_assert_cmpuint (egg_oid_get_flags (oid), ==, 0); 43 | } 44 | 45 | int 46 | main (int argc, char **argv) 47 | { 48 | g_test_init (&argc, &argv, NULL); 49 | 50 | g_test_add_func ("/oid/tests", test_tests); 51 | 52 | return g_test_run (); 53 | } 54 | -------------------------------------------------------------------------------- /gcr/fixtures/grfc.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIFGDCCBMegAwIBAgIQDIxAk7vmk71DC/UYJgMdBTAIBgYqhQMCAgMwggEWMRgw 3 | FgYFKoUDZAESDTEwMjc3MzkzMzQ0NzkxGjAYBggqhQMDgQMBARIMMDA3NzA2MjI4 4 | MjE4MTowOAYDVQQJDDHQlNC10YDQsdC10L3QtdCy0YHQutCw0Y8g0L3QsNCxLiDQ 5 | tC4gNyDRgdGC0YAuIDE1MR8wHQYJKoZIhvcNAQkBFhBwa2ktZ3JmY0BncmZjLnJ1 6 | MQswCQYDVQQGEwJSVTEcMBoGA1UECAwTNzcg0LMuINCc0L7RgdC60LLQsDEVMBMG 7 | A1UEBwwM0JzQvtGB0LrQstCwMRwwGgYDVQQKDBPQpNCT0KPQnyAi0JPQoNCn0KYi 8 | MSEwHwYDVQQDDBjQo9CmINCk0JPQo9CfICLQk9Cg0KfQpiIwHhcNMTMwMzEyMDcz 9 | ODI2WhcNMjgwMzEyMDc0NjAwWjCCARYxGDAWBgUqhQNkARINMTAyNzczOTMzNDQ3 10 | OTEaMBgGCCqFAwOBAwEBEgwwMDc3MDYyMjgyMTgxOjA4BgNVBAkMMdCU0LXRgNCx 11 | 0LXQvdC10LLRgdC60LDRjyDQvdCw0LEuINC0LiA3INGB0YLRgC4gMTUxHzAdBgkq 12 | hkiG9w0BCQEWEHBraS1ncmZjQGdyZmMucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQI 13 | DBM3NyDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxHDAa 14 | BgNVBAoME9Ck0JPQo9CfICLQk9Cg0KfQpiIxITAfBgNVBAMMGNCj0KYg0KTQk9Cj 15 | 0J8gItCT0KDQp9CmIjBjMBwGBiqFAwICEzASBgcqhQMCAiMBBgcqhQMCAh4BA0MA 16 | BECWU7YnkJgff0sdJ+i50FXAYZlpcSz8wO/2AnfCzGC+PMj/NGOKMMWcv8I9eN7W 17 | eEXwIuRc96StDM8zJigQGd/1o4IB6TCCAeUwNgYFKoUDZG8ELQwrItCa0YDQuNC/ 18 | 0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8gMy42KTCCATMGBSqFA2RwBIIB 19 | KDCCASQMKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDMu 20 | NikMUyLQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAgItCa 21 | 0YDQuNC/0YLQvtCf0YDQviDQo9CmIiDQstC10YDRgdC40LggMS41DE/QodC10YDR 22 | gtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQv 23 | MTIxLTE4NTkg0L7RgiAxNy4wNi4yMDEyDE/QodC10YDRgtC40YTQuNC60LDRgiDR 24 | gdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI4LTE4MjIg0L7RgiAw 25 | MS4wNi4yMDEyMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW 26 | BBRrAIaDidIAz1a4a+TjNhAeH3KuwzAQBgkrBgEEAYI3FQEEAwIBADAlBgNVHSAE 27 | HjAcMAgGBiqFA2RxATAIBgYqhQNkcQIwBgYEVR0gADAIBgYqhQMCAgMDQQC9ld1f 28 | Oit0pSliIMIkqIugExoh9UrWLrE/9VDplqCiyXkJFaJBwGDhHT8ljYj0TGDzD07j 29 | KW64bgG0AywHjyc3 30 | -----END CERTIFICATE----- 31 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-agent-preload.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2014 Stef Walter 5 | * Copyright (C) 2018 Red Hat, Inc. 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 | * Author: Stef Walter , Daiki Ueno 22 | */ 23 | 24 | #ifndef GCR_SSH_AGENT_PRELOAD_H 25 | #define GCR_SSH_AGENT_PRELOAD_H 26 | 27 | #include 28 | 29 | typedef struct { 30 | gchar *filename; 31 | GBytes *public_key; 32 | gchar *comment; 33 | } GcrSshAgentKeyInfo; 34 | 35 | void gcr_ssh_agent_key_info_free (gpointer boxed); 36 | gpointer gcr_ssh_agent_key_info_copy (gpointer boxed); 37 | 38 | #define GCR_TYPE_SSH_AGENT_PRELOAD gcr_ssh_agent_preload_get_type () 39 | G_DECLARE_FINAL_TYPE (GcrSshAgentPreload, gcr_ssh_agent_preload, GCR, SSH_AGENT_PRELOAD, GObject) 40 | 41 | GcrSshAgentPreload *gcr_ssh_agent_preload_new (const gchar *path); 42 | 43 | GList *gcr_ssh_agent_preload_get_keys (GcrSshAgentPreload *self); 44 | 45 | GcrSshAgentKeyInfo *gcr_ssh_agent_preload_lookup_by_public_key 46 | (GcrSshAgentPreload *self, 47 | GBytes *public_key); 48 | 49 | #endif /* GCR_SSH_AGENT_PRELOAD_H */ 50 | 51 | -------------------------------------------------------------------------------- /testing/ca-example/keys/personal.key: -------------------------------------------------------------------------------- 1 | -----BEGIN ENCRYPTED PRIVATE KEY----- 2 | MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIh0hiA0TV0c8CAggA 3 | MBQGCCqGSIb3DQMHBAiJTGwjsHvP4wSCBMhwsU0BvXw6lzRCGvJc3B2yvOTGn7zA 4 | N4skd7Pl0swPFdjw3i1nU55A6+nOt9o2Uf6CL6j2hc8j4j2MbYAJL2OKmsk25utX 5 | mqxNQs2saDGd1tPhcIfcAOqjSlIDndQl5qxf7czQ9iQCSIPJJ+rPV9h99Pt273q0 6 | gGSayzlt/wiD9K0v41CBosfLJ0O6w4d+mu1oHXUMSKc02wwsoMOLecnBWoEYeGV+ 7 | 6WmBc6jDDwZ14f/eBhOlS4hPduB2D5G59EirVheyjSuVuyIfLS+vSHQbMsJKyNdN 8 | HD3mK7FVCt1a+VzrezeQaKOnvS2nnLIO0WnI80decYtS0ZIn/bPzOcogrtUEP/yr 9 | X7rbnw4oWD5LxmDP8yqflJDSCealkcOb4xdvFHvwibuYvfmskTPcaOE31WGMYBXw 10 | xgq0edd3skBolWa/I4y4gWWpWJNpROLdnKQRi/M4DG0RGidc/HcdV7lEYdj5l5zW 11 | mPWZob44XMnyzs2WPb4bqKgeu2hSH/sxyMULtjOcKDgLp5EKLKq+SLeWkVqZGFjT 12 | 4ktAvTmsXqNfWMOSmUQQidPO1+He1AfKac4NMO7VMjjyPgDNKCwjPejL4cV376Lg 13 | yxrk8vKt268LQ/l+hJ+S03mdk60VNWc/56yQ8WaekJYW1KmaY8VvXmkvZydo7+Kc 14 | VvuUHt4BZoM/mQYEzuM8xL47e/b4MzZk+ygjzHWxubXdMbPtDM1jIN934DwGGWqd 15 | bFzTK4YFTaw/pEmvvsMGiTBYy4NOxZSJD+JHAl1XMeafc1W4ISO8Hi7QLrApDPa2 16 | OvITfycPSf/AsR4fX//vldpwwT6NbGerawHR4fWqiYaeEBwCy5LKEo69yL/08Zeb 17 | D4VJO2KjCcSlXH4iEFuMcQWMTH+jDKehMMhFEA7pYivIGYiN6YfhJbEplReM3Im4 18 | KJ7aZsUUSbtT/SD94RVM6o/tgiYbpHAYvas1YWyDc+6LV4rnPfU+xbTM25Wr1/uQ 19 | QZ7pDsYP6t9UgkdwviqC67lid0fVKIuIKK7TJSIhRZK5E0N+ZO+fU5wt2q6lDHIV 20 | 54FLh4xU7F3pqr7zp0jePr4qNK3Mpe5K0hNXPYP7Qa3Y+9k5Ys8MM+ix3LBvwlcg 21 | T/GaChCIGeIeK/HbKIbjNHHRQp+aCfKLMsmJiyyNZ6LPmt0aeX1xBQ/yelRyGjl8 22 | H/LPt+RKM3QCVgLAQEB5Sd0Ps7XsZr4X4KAjq0Eh3p5IOGB8pnng5lSBeNE3DzqU 23 | 94bGWnX3Z+bBuUGjpNaybEPWPIhYM2A7MtXNe5cx6Qxl4DJQ9Hu4foWpggbLyvkS 24 | iViiwMacfBneJVyERMNzbeyu/whR1KfxV+JeYDObYzVvBVNf713UG6FkYWSMvShu 25 | s+7UrlpX4lkZx78x6W8iOUBiWmzWGlS636pAQgx4GDmtX4D+Hrr5ZO7t9mu3qXYb 26 | DIRC1Y/8pYpDjJoMdplPu6SuHVOYHgz9k4PKekWgjg417tke5XjoPUz7528CWrJY 27 | 5HCkoMXB0KMgoBvOSMVc99ZDCGSf6d9iWGKGq3teQrEwuexLfXQ08egzW5pmayrl 28 | fNJw1fwfatRIXs6yUGhxtPMSJKhXtDU/AQC1f8vVZGKRJk1cxm9G0hyM7zh87d+y 29 | wis= 30 | -----END ENCRYPTED PRIVATE KEY----- 31 | -------------------------------------------------------------------------------- /egg/egg-armor.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* egg-armor.h - Armor routines 3 | 4 | Copyright (C) 2007 Stefan Walter 5 | 6 | The Gnome Keyring Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Library General Public License as 8 | published by the Free Software Foundation; either version 2 of the 9 | License, or (at your option) any later version. 10 | 11 | The Gnome Keyring Library 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. See the GNU 14 | Library General Public License for more details. 15 | 16 | You should have received a copy of the GNU Library General Public 17 | License along with the Gnome Library; see the file COPYING.LIB. If not, 18 | see . 19 | 20 | Author: Stef Walter 21 | */ 22 | 23 | #ifndef EGG_ARMOR_H_ 24 | #define EGG_ARMOR_H_ 25 | 26 | #include 27 | 28 | typedef void (*EggArmorCallback) (GQuark type, 29 | GBytes *data, 30 | GBytes *outer, 31 | GHashTable *headers, 32 | gpointer user_data); 33 | 34 | GHashTable* egg_armor_headers_new (void); 35 | 36 | guint egg_armor_parse (GBytes *data, 37 | EggArmorCallback callback, 38 | gpointer user_data); 39 | 40 | guchar* egg_armor_write (const guchar *data, 41 | gsize n_data, 42 | GQuark type, 43 | GHashTable *headers, 44 | gsize *n_result); 45 | 46 | #endif /* EGG_ARMOR_H_ */ 47 | -------------------------------------------------------------------------------- /gcr/gcr-pkcs11-importer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 21 | */ 22 | 23 | #ifndef __GCR_PKCS11_IMPORTER_H__ 24 | #define __GCR_PKCS11_IMPORTER_H__ 25 | 26 | #include "gcr-importer.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define GCR_TYPE_PKCS11_IMPORTER (_gcr_pkcs11_importer_get_type ()) 31 | G_DECLARE_FINAL_TYPE (GcrPkcs11Importer, _gcr_pkcs11_importer, 32 | GCR, PKCS11_IMPORTER, 33 | GObject); 34 | 35 | GcrImporter * _gcr_pkcs11_importer_new (GckSlot *slot); 36 | 37 | void _gcr_pkcs11_importer_queue (GcrPkcs11Importer *self, 38 | const gchar *label, 39 | GckAttributes *attrs); 40 | 41 | GckSlot * _gcr_pkcs11_importer_get_slot (GcrPkcs11Importer *self); 42 | 43 | GList * _gcr_pkcs11_importer_get_queued (GcrPkcs11Importer *self); 44 | 45 | GList * _gcr_pkcs11_importer_get_imported (GcrPkcs11Importer *self); 46 | 47 | G_END_DECLS 48 | 49 | #endif /* __GCR_PKCS11_IMPORTER_H__ */ 50 | -------------------------------------------------------------------------------- /gcr/gcr-certificate-extension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 3 | * 4 | * Copyright (C) 2024 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 | * Author: Niels De Graef 20 | */ 21 | 22 | #ifndef GCR_CERTIFICATE_EXTENSION_H 23 | #define GCR_CERTIFICATE_EXTENSION_H 24 | 25 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | #include 30 | 31 | G_BEGIN_DECLS 32 | 33 | #define GCR_TYPE_CERTIFICATE_EXTENSION (gcr_certificate_extension_get_type ()) 34 | G_DECLARE_DERIVABLE_TYPE (GcrCertificateExtension, gcr_certificate_extension, 35 | GCR, CERTIFICATE_EXTENSION, 36 | GObject) 37 | 38 | struct _GcrCertificateExtensionClass { 39 | GObjectClass parent_class; 40 | 41 | gpointer padding[8]; 42 | }; 43 | 44 | const char * gcr_certificate_extension_get_oid (GcrCertificateExtension *self); 45 | 46 | const char * gcr_certificate_extension_get_description (GcrCertificateExtension *self); 47 | 48 | GBytes * gcr_certificate_extension_get_value (GcrCertificateExtension *self); 49 | 50 | gboolean gcr_certificate_extension_is_critical (GcrCertificateExtension *self); 51 | 52 | G_END_DECLS 53 | 54 | #endif /* GCR_CERTIFICATE_EXTENSION_H */ 55 | -------------------------------------------------------------------------------- /gcr/gcr-certificate-extension-list.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Niels De Graef 20 | */ 21 | 22 | #ifndef GCR_CERTIFICATE_EXTENSION_LIST_H 23 | #define GCR_CERTIFICATE_EXTENSION_LIST_H 24 | 25 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | #include 30 | #include "gcr-certificate-extension.h" 31 | 32 | G_BEGIN_DECLS 33 | 34 | #define GCR_TYPE_CERTIFICATE_EXTENSION_LIST (gcr_certificate_extension_list_get_type ()) 35 | G_DECLARE_FINAL_TYPE (GcrCertificateExtensionList, gcr_certificate_extension_list, 36 | GCR, CERTIFICATE_EXTENSION_LIST, 37 | GObject) 38 | 39 | GcrCertificateExtension * gcr_certificate_extension_list_get_extension (GcrCertificateExtensionList *self, 40 | unsigned int position); 41 | 42 | GcrCertificateExtension * gcr_certificate_extension_list_find_by_oid (GcrCertificateExtensionList *self, 43 | const char *oid); 44 | 45 | G_END_DECLS 46 | 47 | #endif /* GCR_CERTIFICATE_EXTENSION_LIST_H */ 48 | -------------------------------------------------------------------------------- /gcr/gcr-callback-output-stream.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef GCR_CALLBACK_OUTPUT_STREAM_H 23 | #define GCR_CALLBACK_OUTPUT_STREAM_H 24 | 25 | #include 26 | #include 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define GCR_TYPE_CALLBACK_OUTPUT_STREAM (_gcr_callback_output_stream_get_type ()) 31 | G_DECLARE_FINAL_TYPE (GcrCallbackOutputStream, _gcr_callback_output_stream, 32 | GCR, CALLBACK_OUTPUT_STREAM, 33 | GOutputStream) 34 | 35 | typedef gssize (*GcrCallbackOutputFunc) (gconstpointer buffer, 36 | gsize count, 37 | GCancellable *cancellable, 38 | gpointer user_data, 39 | GError **error); 40 | 41 | GOutputStream * _gcr_callback_output_stream_new (GcrCallbackOutputFunc callback, 42 | gpointer user_data, 43 | GDestroyNotify destroy_func); 44 | 45 | G_END_DECLS 46 | 47 | #endif /* GCR_CALLBACK_OUTPUT_STREAM_H */ 48 | -------------------------------------------------------------------------------- /gcr/gcr-mkoids: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -euf 4 | 5 | generate_header () 6 | { 7 | echo "/* WARNING: file is autogenerated */" 8 | echo "" 9 | echo "#include " 10 | echo "" 11 | echo "#ifndef ${UPPER}_OIDS_" 12 | echo "#define ${UPPER}_OIDS_" 13 | echo "" 14 | 15 | while read name oid; do 16 | if [ -n "$name" ]; then 17 | lname=$(echo "$name" | tr '[:upper:]' '[:lower:]') 18 | echo "GQuark _${LOWER}_oid_${lname}_get_quark (void) G_GNUC_CONST;" 19 | echo "#define ${UPPER}_OID_${name} _${LOWER}_oid_${lname}_get_quark ()" 20 | echo "" 21 | fi 22 | done 23 | 24 | echo "" 25 | echo "#endif /* ${UPPER}_OIDS_ */" 26 | } 27 | 28 | generate_source () 29 | { 30 | echo "/* WARNING: file is autogenerated */" 31 | echo "" 32 | echo "#include \"$HEADER\"" 33 | echo "" 34 | 35 | while read name oid; do 36 | if [ -n "$name" ]; then 37 | lname=$(echo "$name" | tr '[:upper:]' '[:lower:]') 38 | echo "GQuark" 39 | echo "_${LOWER}_oid_${lname}_get_quark (void)" 40 | echo "{" 41 | echo " static size_t inited = 0;" 42 | echo " static GQuark quark = 0;" 43 | echo " if (g_once_init_enter (&inited)) {" 44 | echo " quark = g_quark_from_static_string (\"${oid}\");" 45 | echo " g_once_init_leave (&inited, 1);" 46 | echo " }" 47 | echo " return quark;" 48 | echo "}" 49 | echo "" 50 | fi 51 | done 52 | } 53 | 54 | UPPER="PREFIX" 55 | LOWER="prefix" 56 | 57 | while getopts 'c:h:p:' arg; do 58 | case $arg in 59 | p) 60 | UPPER=$(echo "$OPTARG" | tr '[:lower:]' '[:upper:]') 61 | LOWER=$(echo "$OPTARG" | tr '[:upper:]' '[:lower:]') 62 | ;; 63 | c) 64 | SOURCE="$OPTARG" 65 | ;; 66 | h) 67 | HEADER="$OPTARG" 68 | ;; 69 | *) 70 | echo "gcr-mkoids: invalid argument: $arg" >&2 71 | exit 2 72 | ;; 73 | esac 74 | done 75 | 76 | shift $(expr $OPTIND - 1) 77 | if [ $# -ne 1 ]; then 78 | echo "gcr-mkoids: specify input file on command line" 79 | exit 2 80 | fi 81 | 82 | INPUT="$1" 83 | 84 | if [ -n "$HEADER" ]; then 85 | generate_header < $INPUT > $HEADER 86 | fi 87 | if [ -n "$SOURCE" ]; then 88 | generate_source < $INPUT > $SOURCE 89 | fi 90 | -------------------------------------------------------------------------------- /egg/egg-openssl.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* egg-openssl.h - OpenSSL compatibility functionality 3 | 4 | Copyright (C) 2007 Stefan Walter 5 | 6 | The Gnome Keyring Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Library General Public License as 8 | published by the Free Software Foundation; either version 2 of the 9 | License, or (at your option) any later version. 10 | 11 | The Gnome Keyring Library 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. See the GNU 14 | Library General Public License for more details. 15 | 16 | You should have received a copy of the GNU Library General Public 17 | License along with the Gnome Library; see the file COPYING.LIB. If not, 18 | see . 19 | 20 | Author: Stef Walter 21 | */ 22 | 23 | #ifndef EGG_OPENSSL_H_ 24 | #define EGG_OPENSSL_H_ 25 | 26 | #include 27 | 28 | int egg_openssl_parse_algo (const gchar *name, int *mode); 29 | 30 | guchar * egg_openssl_encrypt_block (const gchar *dekinfo, 31 | const gchar *password, 32 | gssize n_password, 33 | GBytes *data, 34 | gsize *n_encrypted); 35 | 36 | guchar * egg_openssl_decrypt_block (const gchar *dekinfo, 37 | const gchar *password, 38 | gssize n_password, 39 | GBytes *data, 40 | gsize *n_decrypted); 41 | 42 | const gchar* egg_openssl_get_dekinfo (GHashTable *headers); 43 | 44 | const gchar* egg_openssl_prep_dekinfo (GHashTable *headers); 45 | 46 | #endif /* EGG_OPENSSL_H_ */ 47 | -------------------------------------------------------------------------------- /gcr/gcr-subject-public-key.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef GCR_SUBJECT_PUBLIC_KEY_H 23 | #define GCR_SUBJECT_PUBLIC_KEY_H 24 | 25 | #include 26 | 27 | #include 28 | 29 | G_BEGIN_DECLS 30 | 31 | GNode * _gcr_subject_public_key_for_attributes (GckAttributes *attributes); 32 | 33 | GNode * _gcr_subject_public_key_load (GckObject *key, 34 | GCancellable *cancellable, 35 | GError **error); 36 | 37 | void _gcr_subject_public_key_load_async (GckObject *key, 38 | GCancellable *cancellable, 39 | GAsyncReadyCallback callback, 40 | gpointer user_data); 41 | 42 | GNode * _gcr_subject_public_key_load_finish (GAsyncResult *result, 43 | GError **error); 44 | 45 | guint _gcr_subject_public_key_calculate_size (GNode *subject_public_key); 46 | 47 | guint _gcr_subject_public_key_attributes_size (GckAttributes *attributes); 48 | 49 | G_END_DECLS 50 | 51 | #endif /* GCR_CERTIFICATE_H */ 52 | -------------------------------------------------------------------------------- /gcr/gcr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2010 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef GCR_API_SUBJECT_TO_CHANGE 23 | #error "This API has not yet reached stability." 24 | #endif 25 | 26 | #ifndef __GCR_H__ 27 | #define __GCR_H__ 28 | 29 | #include 30 | 31 | #define __GCR_INSIDE_HEADER__ 32 | 33 | #include 34 | 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | 60 | #undef __GCR_INSIDE_HEADER__ 61 | 62 | #endif /* __GCR_H__ */ 63 | -------------------------------------------------------------------------------- /gcr/gcr-openpgp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef __GCR_OPENPGP_H__ 23 | #define __GCR_OPENPGP_H__ 24 | 25 | #include 26 | 27 | #include 28 | 29 | typedef enum { 30 | GCR_OPENPGP_ALGO_RSA = 1, 31 | GCR_OPENPGP_ALGO_RSA_E = 2, 32 | GCR_OPENPGP_ALGO_RSA_S = 3, 33 | GCR_OPENPGP_ALGO_ELG_E = 16, 34 | GCR_OPENPGP_ALGO_DSA = 17 35 | } GcrOpenpgpAlgo; 36 | 37 | typedef enum { 38 | GCR_OPENPGP_PARSE_NONE = 0, 39 | GCR_OPENPGP_PARSE_KEYS = 1 << 1, 40 | GCR_OPENPGP_PARSE_NO_RECORDS = 1 << 2, 41 | GCR_OPENPGP_PARSE_SIGNATURES = 1 << 3, 42 | GCR_OPENPGP_PARSE_ATTRIBUTES = 1 << 4, 43 | } GcrOpenpgpParseFlags; 44 | 45 | G_BEGIN_DECLS 46 | 47 | typedef void (*GcrOpenpgpCallback) (GPtrArray *records, 48 | GBytes *outer, 49 | gpointer user_data); 50 | 51 | guint _gcr_openpgp_parse (GBytes *data, 52 | GcrOpenpgpParseFlags flags, 53 | GcrOpenpgpCallback callback, 54 | gpointer user_data); 55 | 56 | G_END_DECLS 57 | 58 | #endif /* __GCR_OPENPGP_H__ */ 59 | -------------------------------------------------------------------------------- /egg/egg-hex.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | #ifndef EGG_HEX_H_ 21 | #define EGG_HEX_H_ 22 | 23 | #include 24 | 25 | gpointer egg_hex_decode (const gchar *data, 26 | gssize n_data, 27 | gsize *n_decoded); 28 | 29 | gpointer egg_hex_decode_full (const gchar *data, 30 | gssize n_data, 31 | const gchar *delim, 32 | guint group, 33 | gsize *n_decoded); 34 | 35 | gchar* egg_hex_encode (gconstpointer data, 36 | gsize n_data); 37 | 38 | gchar* egg_hex_encode_full (gconstpointer data, 39 | gsize n_data, 40 | gboolean upper_case, 41 | const gchar *delim, 42 | guint group); 43 | 44 | #endif /* EGG_HEX_H_ */ 45 | -------------------------------------------------------------------------------- /gcr/gcr-util.c: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #include "config.h" 23 | 24 | #include "gcr-util.h" 25 | 26 | #include 27 | 28 | /** 29 | * _gcr_util_parse_lines: 30 | * @string: The string to parse lines from, will be modified 31 | * @last_line: Whether or not we should run for last line or not 32 | * @callback: Call for each line 33 | * @user_data: Data for callback 34 | * 35 | * Calls callback for each line. If last_line, also sends the remainder 36 | * data that comes after the last line break. \n and \r\n are line separators. 37 | * Neither are included in data passed to callback. 38 | */ 39 | void 40 | _gcr_util_parse_lines (GString *string, gboolean last_line, 41 | GcrLineCallback callback, gpointer user_data) 42 | { 43 | gchar *ptr; 44 | gchar *prev; 45 | 46 | g_return_if_fail (string); 47 | g_return_if_fail (callback); 48 | 49 | /* Print all stderr lines as messages */ 50 | while ((ptr = strchr (string->str, '\n')) != NULL) { 51 | *ptr = '\0'; 52 | if (ptr != string->str) { 53 | prev = ptr - 1; 54 | if (*prev == '\r') 55 | *prev = '\0'; 56 | } 57 | 58 | (callback) (string->str, user_data); 59 | g_string_erase (string, 0, ptr - string->str + 1); 60 | } 61 | 62 | if (last_line && string->len) { 63 | (callback) (string->str, user_data); 64 | g_string_erase (string, 0, string->len); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /gcr/gcr-secure-memory.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* gcr-secure-memory.h - library for allocating memory that is non-pageable 3 | 4 | Copyright (C) 2007 Stefan Walter 5 | Copyright (C) 2012 Red Hat Inc. 6 | 7 | The Gnome Keyring Library is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU Library General Public License as 9 | published by the Free Software Foundation; either version 2 of the 10 | License, or (at your option) any later version. 11 | 12 | The Gnome Keyring Library 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. See the GNU 15 | Library General Public License for more details. 16 | 17 | You should have received a copy of the GNU Library General Public 18 | License along with the Gnome Library; see the file COPYING.LIB. If not, 19 | see . 20 | 21 | Author: Stef Walter 22 | */ 23 | 24 | #ifndef GCR_SECURE_MEMORY_H 25 | #define GCR_SECURE_MEMORY_H 26 | 27 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 28 | #error "Only can be included directly." 29 | #endif 30 | 31 | #include 32 | 33 | G_BEGIN_DECLS 34 | 35 | #define gcr_secure_memory_new(type, n_objects) \ 36 | ((type *)(gcr_secure_memory_alloc (sizeof (type) * (n_objects)))) 37 | 38 | gpointer gcr_secure_memory_alloc (gsize size); 39 | 40 | gpointer gcr_secure_memory_try_alloc (gsize size); 41 | 42 | gpointer gcr_secure_memory_realloc (gpointer memory, 43 | gsize size); 44 | 45 | gpointer gcr_secure_memory_try_realloc (gpointer memory, 46 | gsize size); 47 | 48 | void gcr_secure_memory_free (gpointer memory); 49 | 50 | gboolean gcr_secure_memory_is_secure (gpointer memory); 51 | 52 | gchar * gcr_secure_memory_strdup (const gchar *string); 53 | 54 | void gcr_secure_memory_strfree (gchar *string); 55 | 56 | G_END_DECLS 57 | 58 | #endif /* GCR_SECURE_MEMORY_H */ 59 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-agent-util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2018 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, see 18 | * . 19 | * 20 | * Author: Daiki Ueno 21 | */ 22 | 23 | #include 24 | #include "egg/egg-buffer.h" 25 | 26 | #ifndef GCR_SSH_AGENT_UTIL_H 27 | #define GCR_SSH_AGENT_UTIL_H 28 | 29 | gboolean _gcr_ssh_agent_read_packet (GSocketConnection *connection, 30 | EggBuffer *buffer, 31 | GCancellable *cancellable, 32 | GError **error); 33 | 34 | gboolean _gcr_ssh_agent_write_packet (GSocketConnection *connection, 35 | EggBuffer *buffer, 36 | GCancellable *cancellable, 37 | GError **error); 38 | 39 | gboolean _gcr_ssh_agent_call (GSocketConnection *connection, 40 | EggBuffer *req, 41 | EggBuffer *resp, 42 | GCancellable *cancellable, 43 | GError **error); 44 | 45 | GBytes *_gcr_ssh_agent_parse_public_key (GBytes *input, 46 | gchar **comment); 47 | 48 | gchar *_gcr_ssh_agent_canon_error (gchar *str); 49 | 50 | #endif /* GCR_SSH_AGENT_UTIL_H */ 51 | -------------------------------------------------------------------------------- /gcr/gcr-subject-public-key-info.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 3 | * 4 | * Copyright (C) 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 | * Author: Niels De Graef 20 | */ 21 | 22 | #ifndef GCR_SUBJECT_PUBLIC_KEY_INFO_H 23 | #define GCR_SUBJECT_PUBLIC_KEY_INFO_H 24 | 25 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | #include 30 | 31 | G_BEGIN_DECLS 32 | 33 | typedef struct _GcrSubjectPublicKeyInfo GcrSubjectPublicKeyInfo; 34 | 35 | #define GCR_TYPE_SUBJECT_PUBLIC_KEY_INFO (gcr_subject_public_key_info_get_type ()) 36 | GType gcr_subject_public_key_info_get_type (void) G_GNUC_CONST; 37 | 38 | 39 | GBytes * gcr_subject_public_key_info_get_key (GcrSubjectPublicKeyInfo *self); 40 | 41 | const char * gcr_subject_public_key_info_get_algorithm_oid (GcrSubjectPublicKeyInfo *self); 42 | 43 | const char * gcr_subject_public_key_info_get_algorithm_description (GcrSubjectPublicKeyInfo *self); 44 | 45 | GBytes * gcr_subject_public_key_info_get_algorithm_parameters_raw (GcrSubjectPublicKeyInfo *self); 46 | 47 | unsigned int gcr_subject_public_key_info_get_key_size (GcrSubjectPublicKeyInfo *self); 48 | 49 | GcrSubjectPublicKeyInfo * 50 | gcr_subject_public_key_info_copy (GcrSubjectPublicKeyInfo *self); 51 | 52 | void gcr_subject_public_key_info_free (GcrSubjectPublicKeyInfo *self); 53 | 54 | G_END_DECLS 55 | 56 | #endif /* GCR_SUBJECT_PUBLIC_KEY_INFO_H */ 57 | -------------------------------------------------------------------------------- /egg/egg-dn.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ 2 | /* egg-dn.h - ASN.1 helper routines 3 | 4 | Copyright (C) 2010 Stefan Walter 5 | 6 | The Gnome Keyring Library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Library General Public License as 8 | published by the Free Software Foundation; either version 2 of the 9 | License, or (at your option) any later version. 10 | 11 | The Gnome Keyring Library 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. See the GNU 14 | Library General Public License for more details. 15 | 16 | You should have received a copy of the GNU Library General Public 17 | License along with the Gnome Library; see the file COPYING.LIB. If not, 18 | see . 19 | 20 | Author: Stef Walter 21 | */ 22 | 23 | #ifndef EGG_DN_H_ 24 | #define EGG_DN_H_ 25 | 26 | #include 27 | 28 | gchar* egg_dn_read (GNode *node); 29 | 30 | gchar* egg_dn_read_part (GNode *node, 31 | const gchar *match); 32 | 33 | typedef void (*EggDnCallback) (guint index, 34 | GQuark oid, 35 | GNode *value, 36 | gpointer user_data); 37 | 38 | gboolean egg_dn_parse (GNode *node, 39 | EggDnCallback callback, 40 | gpointer user_data); 41 | 42 | gchar* egg_dn_print_value (GQuark oid, 43 | GNode *value); 44 | 45 | void egg_dn_add_string_part (GNode *node, 46 | GQuark oid, 47 | const gchar *string); 48 | 49 | #endif /* EGG_DN_H_ */ 50 | -------------------------------------------------------------------------------- /gcr/gcr-ssh-agent-service.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2007 Stefan Walter 5 | * Copyright (C) 2018 Red Hat, Inc. 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 | * Author: Stef Walter , Daiki Ueno 22 | */ 23 | 24 | #ifndef GCR_SSH_AGENT_SERVICE_H 25 | #define GCR_SSH_AGENT_SERVICE_H 26 | 27 | #include 28 | #include "gcr-ssh-agent-preload.h" 29 | #include "gcr-ssh-agent-process.h" 30 | #include "egg/egg-buffer.h" 31 | 32 | #define GCR_TYPE_SSH_AGENT_SERVICE gcr_ssh_agent_service_get_type () 33 | G_DECLARE_FINAL_TYPE (GcrSshAgentService, gcr_ssh_agent_service, GCR, SSH_AGENT_SERVICE, GObject); 34 | 35 | GcrSshAgentService *gcr_ssh_agent_service_new (const gchar *path, 36 | GStrv ssh_agent_args, 37 | GcrSshAgentPreload *preload); 38 | 39 | gboolean gcr_ssh_agent_service_start 40 | (GcrSshAgentService *self); 41 | 42 | void gcr_ssh_agent_service_stop (GcrSshAgentService *self); 43 | 44 | GcrSshAgentPreload *gcr_ssh_agent_service_get_preload 45 | (GcrSshAgentService *self); 46 | 47 | GcrSshAgentProcess *gcr_ssh_agent_service_get_process 48 | (GcrSshAgentService *self); 49 | 50 | gboolean gcr_ssh_agent_service_lookup_key 51 | (GcrSshAgentService *self, 52 | GBytes *key); 53 | 54 | #endif /* GCR_SSH_AGENT_SERVICE_H */ 55 | -------------------------------------------------------------------------------- /egg/test.asn: -------------------------------------------------------------------------------- 1 | TESTS { } 2 | 3 | DEFINITIONS EXPLICIT TAGS ::= 4 | 5 | BEGIN 6 | 7 | TestInteger ::= INTEGER 8 | 9 | TestBoolean ::= BOOLEAN 10 | 11 | TestNull ::= NULL 12 | 13 | TestAny ::= ANY 14 | 15 | TestOctetString ::= OCTET STRING 16 | 17 | TestGeneralized ::= GeneralizedTime 18 | 19 | TestImplicit ::= [5] IMPLICIT OCTET STRING 20 | 21 | TestExplicit ::= [5] EXPLICIT OCTET STRING 22 | 23 | TestUniversal ::= [UNIVERSAL 5] IMPLICIT OCTET STRING 24 | 25 | TestBitString ::= BIT STRING 26 | 27 | test-integers-id OBJECT IDENTIFIER ::= {1 5 13} 28 | 29 | TestIntegers ::= SEQUENCE { 30 | uint1 INTEGER, 31 | uint2 INTEGER, 32 | uint3 INTEGER DEFAULT 8888 33 | } 34 | 35 | TestConstant ::= SEQUENCE { 36 | version TestVersion DEFAULT v3 37 | } 38 | 39 | TestVersion ::= INTEGER { v1(1), v2(2), v3(3) } 40 | 41 | TestData ::= SEQUENCE { 42 | data OCTET STRING 43 | } 44 | 45 | TestBooleanSeq ::= SEQUENCE { 46 | boolean BOOLEAN DEFAULT FALSE, 47 | boolean2 BOOLEAN 48 | } 49 | 50 | TestBooleanDefault ::= SEQUENCE { 51 | boolean BOOLEAN DEFAULT TRUE 52 | } 53 | 54 | TestOid ::= SEQUENCE { 55 | oid OBJECT IDENTIFIER 56 | } 57 | 58 | TestOidOptional ::= SEQUENCE { 59 | oid OBJECT IDENTIFIER OPTIONAL 60 | } 61 | 62 | TestAnySeq ::= SEQUENCE { 63 | contents ANY 64 | } 65 | 66 | TestAnyExp ::= SEQUENCE { 67 | contents [89] ANY 68 | } 69 | 70 | TestAnyChoice ::= CHOICE { 71 | choiceShortTag [30] ANY, 72 | choiceLongTag [31] ANY 73 | } 74 | 75 | TestSet ::= SET { 76 | one [1] INTEGER, 77 | two [2] INTEGER, 78 | three [3] INTEGER 79 | } 80 | 81 | TestTagLong ::= [1234] EXPLICIT INTEGER 82 | 83 | TestSeqOf ::= SEQUENCE OF INTEGER 84 | 85 | TestSetOf ::= SET OF INTEGER 86 | 87 | TestSeqOfSeq ::= SEQUENCE OF TestIntegers 88 | 89 | TestSeqOfAny ::= SEQUENCE OF ANY 90 | 91 | TestSeqOptional ::= SEQUENCE { 92 | integers TestIntegers OPTIONAL 93 | } 94 | 95 | TestEnumerated ::= ENUMERATED { 96 | valueZero (0), 97 | valueOne (1), 98 | valueTwo (2), 99 | valueThree (3) 100 | } 101 | 102 | END 103 | -------------------------------------------------------------------------------- /gcr/gcr-certificate-extension-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gcr 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 | * Author: Niels De Graef 20 | */ 21 | 22 | #ifndef GCR_CERTIFICATE_EXTENSION_PRIVATE_H 23 | #define GCR_CERTIFICATE_EXTENSION_PRIVATE_H 24 | 25 | #include "gcr-certificate-extension.h" 26 | #include "gcr-certificate-extensions.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | GcrCertificateExtension * _gcr_certificate_extension_parse (GNode *extension); 31 | 32 | GQuark _gcr_certificate_extension_get_oid_as_quark (GcrCertificateExtension *self); 33 | 34 | void _gcr_certificate_extension_set_oid (GcrCertificateExtension *self, 35 | GQuark oid); 36 | 37 | void _gcr_certificate_extension_initialize (GcrCertificateExtension *self, 38 | GNode *extension_node); 39 | 40 | /* We keep the parsing logic internal also */ 41 | 42 | #define GCR_CERTIFICATE_EXTENSION_PARSE_ERROR (gcr_certificate_extension_parse_error_quark ()) 43 | GQuark gcr_certificate_extension_parse_error_quark (void); 44 | 45 | typedef enum _GcrCertificateExtensionParseError 46 | { 47 | GCR_CERTIFICATE_EXTENSION_PARSE_ERROR_GENERAL, 48 | } GcrCertificateExtensionParseError; 49 | 50 | typedef GcrCertificateExtension * 51 | (*GcrCertificateExtensionParseFunc) (GQuark oid, 52 | gboolean critical, 53 | GBytes *data, 54 | GError **error); 55 | 56 | G_END_DECLS 57 | 58 | #endif /* GCR_CERTIFICATE_EXTENSION_PRIVATE_H */ 59 | -------------------------------------------------------------------------------- /gcr/gcr-key-mechanisms.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 Collabora Ltd. 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU Lesser General Public License as 6 | * published by the Free Software Foundation; either version 2.1 of 7 | * the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this program; if not, see . 16 | * 17 | * Author: Stef Walter 18 | */ 19 | 20 | #ifndef __GCR_KEY_MECHANISMS_H__ 21 | #define __GCR_KEY_MECHANISMS_H__ 22 | 23 | #include 24 | 25 | #include "gck/gck.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | gulong _gcr_key_mechanisms_check (GckObject *key, 30 | const gulong *mechanisms, 31 | gsize n_mechanisms, 32 | gulong action_attr_type, 33 | GCancellable *cancellable, 34 | GError **error); 35 | 36 | void _gcr_key_mechanisms_check_async (GckObject *key, 37 | const gulong *mechanisms, 38 | gsize n_mechanisms, 39 | gulong action_attr_type, 40 | GCancellable *cancellable, 41 | GAsyncReadyCallback callback, 42 | gpointer user_data); 43 | 44 | gulong _gcr_key_mechanisms_check_finish (GckObject *key, 45 | GAsyncResult *result, 46 | GError **error); 47 | 48 | G_END_DECLS 49 | 50 | #endif /* __GCR_KEY_MECHANISMS_H__ */ 51 | -------------------------------------------------------------------------------- /gcr/gcr-mock-prompter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef __GCR_MOCK_PROMPTER_H__ 23 | #define __GCR_MOCK_PROMPTER_H__ 24 | 25 | #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) 26 | #error "Only can be included directly." 27 | #endif 28 | 29 | #include "gcr-system-prompter.h" 30 | 31 | #include 32 | 33 | G_BEGIN_DECLS 34 | 35 | const gchar * gcr_mock_prompter_start (void); 36 | 37 | void gcr_mock_prompter_disconnect (void); 38 | 39 | void gcr_mock_prompter_stop (void); 40 | 41 | gboolean gcr_mock_prompter_is_prompting (void); 42 | 43 | guint gcr_mock_prompter_get_delay_msec (void); 44 | 45 | void gcr_mock_prompter_set_delay_msec (guint delay_msec); 46 | 47 | void gcr_mock_prompter_expect_confirm_ok (const gchar *first_property_name, 48 | ...); 49 | 50 | void gcr_mock_prompter_expect_confirm_cancel (void); 51 | 52 | void gcr_mock_prompter_expect_password_ok (const gchar *password, 53 | const gchar *first_property_name, 54 | ...); 55 | 56 | void gcr_mock_prompter_expect_password_cancel (void); 57 | 58 | void gcr_mock_prompter_expect_close (void); 59 | 60 | gboolean gcr_mock_prompter_is_expecting (void); 61 | 62 | G_END_DECLS 63 | 64 | #endif /* __GCR_MOCK_PROMPTER_H__ */ 65 | -------------------------------------------------------------------------------- /gcr/gcr-dbus-constants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gnome-keyring 3 | * 4 | * Copyright (C) 2011 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 | * Author: Stef Walter 20 | */ 21 | 22 | #ifndef __GCR_DBUS_CONSTANTS_H__ 23 | #define __GCR_DBUS_CONSTANTS_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define GCR_DBUS_PROMPTER_SYSTEM_BUS_NAME "org.gnome.keyring.SystemPrompter" 30 | #define GCR_DBUS_PROMPTER_PRIVATE_BUS_NAME "org.gnome.keyring.PrivatePrompter" 31 | #define GCR_DBUS_PROMPTER_MOCK_BUS_NAME "org.gnome.keyring.MockPrompter" 32 | 33 | #define GCR_DBUS_PROMPTER_OBJECT_PATH "/org/gnome/keyring/Prompter" 34 | #define GCR_DBUS_PROMPT_OBJECT_PREFIX "/org/gnome/keyring/Prompt" 35 | 36 | #define GCR_DBUS_PROMPTER_INTERFACE "org.gnome.keyring.internal.Prompter" 37 | 38 | #define GCR_DBUS_PROMPTER_METHOD_BEGIN "BeginPrompting" 39 | #define GCR_DBUS_PROMPTER_METHOD_STOP "StopPrompting" 40 | #define GCR_DBUS_PROMPTER_METHOD_PERFORM "PerformPrompt" 41 | 42 | #define GCR_DBUS_CALLBACK_INTERFACE "org.gnome.keyring.internal.Prompter.Callback" 43 | 44 | #define GCR_DBUS_PROMPT_ERROR_IN_PROGRESS "org.gnome.keyring.Prompter.InProgress" 45 | #define GCR_DBUS_PROMPT_ERROR_FAILED "org.gnome.keyring.Prompter.Failed" 46 | 47 | #define GCR_DBUS_CALLBACK_METHOD_READY "PromptReady" 48 | #define GCR_DBUS_CALLBACK_METHOD_DONE "PromptDone" 49 | 50 | #define GCR_DBUS_PROMPT_TYPE_PASSWORD "password" 51 | #define GCR_DBUS_PROMPT_TYPE_CONFIRM "confirm" 52 | 53 | #define GCR_DBUS_PROMPT_REPLY_NONE "" 54 | #define GCR_DBUS_PROMPT_REPLY_YES "yes" 55 | #define GCR_DBUS_PROMPT_REPLY_NO "no" 56 | 57 | G_END_DECLS 58 | 59 | #endif /* __GCR_DBUS_CONSTANTS_H__ */ 60 | --------------------------------------------------------------------------------