Add support for package signature checking.
authorDaiki Ueno <ueno@gnu.org>
Thu, 3 Oct 2013 07:11:27 +0000 (16:11 +0900)
committerDaiki Ueno <ueno@gnu.org>
Thu, 3 Oct 2013 07:11:27 +0000 (16:11 +0900)
commitacbadd0046cb1643eeaf8595ede1a69cc25d3158
treef1b7ffc2d37226d1f20d53b879e008b400f545ae
parent0a858ebfc57a072ae8ab65f509d8a4901a2ec073
Add support for package signature checking.

* lisp/emacs-lisp/package.el (url-http-file-exists-p)
(epg-make-context, epg-context-set-home-directory)
(epg-verify-string, epg-context-result-for)
(epg-signature-status, epg-signature-to-string)
(epg-check-configuration, epg-configuration)
(epg-import-keys-from-file): Declare.
(package-check-signature): New user option.
(package-unsigned-archives): New user option.
(package-desc): Add `signed' field.
(package-load-descriptor): Set `signed' field if .signed file exists.
(package--archive-file-exists-p): New function.
(package--check-signature): New function.
(package-install-from-archive): Check package signature.
(package--download-one-archive): Check archive signature.
(package-delete): Remove .signed file.
(package-import-keyring): New command.
(package-refresh-contents): Import default keyring.
(package-desc-status): Add "unsigned" status.
(describe-package-1, package-menu--print-info)
(package-menu-mark-delete, package-menu--find-upgrades)
(package-menu--status-predicate): Support "unsigned" status.

* test/automated/data/package/signed/archive-contents:
* test/automated/data/package/signed/archive-contents.sig:
* test/automated/data/package/signed/signed-good-1.0.el:
* test/automated/data/package/signed/signed-good-1.0.el.sig:
* test/automated/data/package/signed/signed-bad-1.0.el:
* test/automated/data/package/signed/signed-bad-1.0.el.sig:
* test/automated/data/package/key.pub:
* test/automated/data/package/key.sec: New files.

* test/automated/package-test.el (package-test-update-listing)
(package-test-update-archives, package-test-describe-package):
Adjust to package.el change.
(package-test-signed): New test.
12 files changed:
lisp/ChangeLog
lisp/emacs-lisp/package.el
test/ChangeLog
test/automated/data/package/key.pub [new file with mode: 0644]
test/automated/data/package/key.sec [new file with mode: 0644]
test/automated/data/package/signed/archive-contents [new file with mode: 0644]
test/automated/data/package/signed/archive-contents.sig [new file with mode: 0644]
test/automated/data/package/signed/signed-bad-1.0.el [new file with mode: 0644]
test/automated/data/package/signed/signed-bad-1.0.el.sig [new file with mode: 0644]
test/automated/data/package/signed/signed-good-1.0.el [new file with mode: 0644]
test/automated/data/package/signed/signed-good-1.0.el.sig [new file with mode: 0644]
test/automated/package-test.el