aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref/package.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lispref/package.texi')
-rw-r--r--doc/lispref/package.texi23
1 files changed, 19 insertions, 4 deletions
diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
index af87479c7d2..725fecd8952 100644
--- a/doc/lispref/package.texi
+++ b/doc/lispref/package.texi
@@ -332,10 +332,22 @@ installing user. (This is true for Emacs code in general, not just
332for packages.) So you should ensure that your archive is 332for packages.) So you should ensure that your archive is
333well-maintained and keep the hosting system secure. 333well-maintained and keep the hosting system secure.
334 334
335 One way to increase the security of your packages is to @dfn{sign} 335 To increase the security of your packages, you should distribute
336them using a cryptographic key. If you have generated a 336package checksums in the package metadata file
337private/public gpg key pair, you can use gpg to sign the package like 337@file{archive-contents}. You should also @dfn{sign} the package
338this: 338metadata file using a cryptographic key. Finally, it is important to
339include creation and expiration timestamps information in that file.
340
341 Signing individual packages is also supported, but considered
342obsolete. It provides less security than package checksums, signing
343the @file{archive-contents} file, and creation and expiration
344timestamps does when used together. More specifically, signing
345individual packages does not protect against ``replay attacks''. Note
346that distributing signatures for individual packages is still
347recommended to support Emacs versions older than 28.1.
348
349 If you have generated a private/public gpg key pair, you can use gpg
350to sign a package or the @file{archive-contents} file like this:
339 351
340@c FIXME EasyPG / package-x way to do this. 352@c FIXME EasyPG / package-x way to do this.
341@example 353@example
@@ -371,6 +383,9 @@ Return a lisp form describing the archive contents. The form is a list
371of 'package-desc' structures (see @file{package.el}), except the first 383of 'package-desc' structures (see @file{package.el}), except the first
372element of the list is the archive version. 384element of the list is the archive version.
373 385
386@item archive-contents.sig
387Return the signature for @file{archive-contents}.
388
374@item <package name>-readme.txt 389@item <package name>-readme.txt
375Return the long description of the package. 390Return the long description of the package.
376 391