aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref
diff options
context:
space:
mode:
authorGlenn Morris2014-06-04 23:15:44 -0700
committerGlenn Morris2014-06-04 23:15:44 -0700
commite1b3f35f9373d71f58638e9dcaffc2ff8c4ab3b6 (patch)
treee09363a815ba1488ca47c29aa9e7676b0a43ae5d /doc/lispref
parenta56ae34d229242a065fc87d75d80d07ab14641fe (diff)
downloademacs-e1b3f35f9373d71f58638e9dcaffc2ff8c4ab3b6.tar.gz
emacs-e1b3f35f9373d71f58638e9dcaffc2ff8c4ab3b6.zip
Some documentation for signing of packages
* doc/emacs/package.texi (Package Menu, Package Installation): Mention signed packages. * doc/lispref/package.texi (Package Archives): Mention signing packages. * lisp/emacs-lisp/package.el (package-check-signature) (package-unsigned-archives): Doc fixes. * etc/NEWS: Related edits.
Diffstat (limited to 'doc/lispref')
-rw-r--r--doc/lispref/ChangeLog4
-rw-r--r--doc/lispref/package.texi35
2 files changed, 39 insertions, 0 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index e4f5c60c2d1..51f74f2eb12 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,7 @@
12014-06-05 Glenn Morris <rgm@gnu.org>
2
3 * package.texi (Package Archives): Mention signing packages.
4
12014-05-27 Glenn Morris <rgm@gnu.org> 52014-05-27 Glenn Morris <rgm@gnu.org>
2 6
3 * text.texi (Buffer Contents): 7 * text.texi (Buffer Contents):
diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
index 4bc50b2358f..cac7519671a 100644
--- a/doc/lispref/package.texi
+++ b/doc/lispref/package.texi
@@ -342,3 +342,38 @@ otherwise, an error is raised.
342@noindent 342@noindent
343After you create an archive, remember that it is not accessible in the 343After you create an archive, remember that it is not accessible in the
344Package Menu interface unless it is in @code{package-archives}. 344Package Menu interface unless it is in @code{package-archives}.
345
346@cindex package archive security
347@cindex package signing
348Maintaining a public package archive entails a degree of responsibility.
349When Emacs users install packages from your archive, those packages
350can cause Emacs to run arbitrary code with the permissions of the
351installing user. (This is true for Emacs code in general, not just
352for packages.) So you should ensure that your archive is
353well-maintained and keep the hosting system secure.
354
355 One way to increase the security of your packages is to @dfn{sign}
356them using a crytopgraphic key. If you have generated a
357private/public gpg key pair, you can use gpg to sign the package like
358this:
359
360@c FIXME EasyPG / package-x way to do this.
361@example
362gpg -ba -o @var{file}.sig @var{file}
363@end example
364
365@noindent
366For a single-file package, @var{file} is the package Lisp file;
367for a multi-file package, it is the package tar file.
368You can also sign the archive's contents file in the same way.
369Make the @file{.sig} files available in the same location as the packages.
370You should also make your public key available for people to download;
371e.g., by uploading it to a key server such as @url{http://pgp.mit.edu/}.
372When people install packages from your archive, they can use
373your public key to verify the signatures.
374
375A full explanation of these matters is outside the scope of this
376manual. For more information on crytopgraphic keys and signing,
377@pxref{Top,, GnuPG, gnupg, The GNU Privacy Guard Manual}. Emacs comes
378with an interface to GNU Privacy Guard, @pxref{Top,, EasyPG, epa,
379Emacs EasyPG Assistant Manual}.