Merge branch 'master' into feature/tree-sitter
This commit is contained in:
commit
cea1e95d38
69 changed files with 165 additions and 150 deletions
23
etc/NEWS
23
etc/NEWS
|
@ -443,6 +443,25 @@ We recommend using either the built-in 'display-line-numbers-mode', or
|
|||
the 'nlinum' package from GNU ELPA instead. The former has better
|
||||
performance, but the latter is closer to a drop-in replacement.
|
||||
|
||||
1. To use 'display-line-numbers-mode', add something like this to your
|
||||
Init file:
|
||||
|
||||
(global-display-line-numbers-mode 1)
|
||||
;; Alternatively, to use it only in programming modes:
|
||||
(add-hook 'prog-mode-hook #'display-line-numbers-mode)
|
||||
|
||||
2. To use 'nlinum', add this to your Init file:
|
||||
|
||||
(package-install 'nlinum)
|
||||
(global-nlinum-mode 1)
|
||||
;; Alternatively, to use it only in programming modes:
|
||||
(add-hook 'prog-mode-hook #'nlinum-mode)
|
||||
|
||||
3. To continue using the obsolete package 'linum', add this line to
|
||||
your Init file, in addition to any existing customizations:
|
||||
|
||||
(require 'linum)
|
||||
|
||||
---
|
||||
** The thumbs.el library is now obsolete.
|
||||
We recommend using 'M-x image-dired' instead.
|
||||
|
@ -3237,8 +3256,8 @@ given predicate in the specified sequence.
|
|||
|
||||
+++
|
||||
** New function 'seq-keep'.
|
||||
This is like 'seq-map', but removes all non-nil results from the
|
||||
returned list.
|
||||
This is like 'seq-map', but removes all nil results from the returned
|
||||
list.
|
||||
|
||||
** Themes
|
||||
|
||||
|
|
|
@ -914,6 +914,15 @@ The following %-sequences are provided:
|
|||
|
||||
;;; `apm' interface for BSD.
|
||||
|
||||
;; This function is a wrapper on `call-process' that return the
|
||||
;; standard output in a string. We are using it instead
|
||||
;; `shell-command-to-string' because this last one is trying to run
|
||||
;; PROGRAM on the remote host if the buffer is remote.
|
||||
(defun battery--call-process-to-string (program &rest args)
|
||||
(with-output-to-string
|
||||
(with-current-buffer standard-output
|
||||
(apply #'call-process program nil t nil args))))
|
||||
|
||||
(defun battery-bsd-apm ()
|
||||
"Get APM status information from BSD apm binary.
|
||||
The following %-sequences are provided:
|
||||
|
@ -929,13 +938,16 @@ The following %-sequences are provided:
|
|||
%t Remaining time (to charge or discharge) in the form `h:min'"
|
||||
(let* ((os-name (car (split-string
|
||||
;; FIXME: Can't we use something like `system-type'?
|
||||
(shell-command-to-string "/usr/bin/uname"))))
|
||||
(battery--call-process-to-string
|
||||
(executable-find "uname")))))
|
||||
(apm-flag (pcase os-name
|
||||
("OpenBSD" "mP")
|
||||
("FreeBSD" "st")
|
||||
(_ "ms")))
|
||||
(apm-cmd (concat "/usr/sbin/apm -abl" apm-flag))
|
||||
(apm-output (split-string (shell-command-to-string apm-cmd)))
|
||||
(apm-args (concat "-abl" apm-flag))
|
||||
(apm-output (split-string
|
||||
(battery--call-process-to-string
|
||||
(executable-find "apm") apm-args)))
|
||||
(indices (pcase os-name
|
||||
;; FreeBSD's manpage documents that multiple
|
||||
;; outputs are ordered by "the order in which
|
||||
|
|
|
@ -2436,10 +2436,14 @@ If NOSAVE is non-nil, the package is not removed from
|
|||
"Reinstall package PKG.
|
||||
PKG should be either a symbol, the package name, or a `package-desc'
|
||||
object."
|
||||
(interactive (list (intern (completing-read
|
||||
"Reinstall package: "
|
||||
(mapcar #'symbol-name
|
||||
(mapcar #'car package-alist))))))
|
||||
(interactive
|
||||
(progn
|
||||
(package--archives-initialize)
|
||||
(list (intern (completing-read
|
||||
"Reinstall package: "
|
||||
(mapcar #'symbol-name
|
||||
(mapcar #'car package-alist)))))))
|
||||
(package--archives-initialize)
|
||||
(package-delete
|
||||
(if (package-desc-p pkg) pkg (cadr (assq pkg package-alist)))
|
||||
'force 'nosave)
|
||||
|
|
|
@ -1519,12 +1519,8 @@ If you are unsure, use synchronous version of this function
|
|||
(process-send-eof (epg-context-process context))))
|
||||
;; Normal (or cleartext) signature.
|
||||
(if (epg-data-file signature)
|
||||
(epg--start context (if (eq (epg-context-protocol context) 'CMS)
|
||||
(list "--verify" "--" (epg-data-file signature))
|
||||
(list "--" (epg-data-file signature))))
|
||||
(epg--start context (if (eq (epg-context-protocol context) 'CMS)
|
||||
'("--verify" "-")
|
||||
'("-")))
|
||||
(epg--start context (list "--verify" "--" (epg-data-file signature)))
|
||||
(epg--start context '("--verify" "-"))
|
||||
(if (eq (process-status (epg-context-process context)) 'run)
|
||||
(process-send-string (epg-context-process context)
|
||||
(epg-data-string signature)))
|
||||
|
|
|
@ -1623,7 +1623,7 @@ found."
|
|||
(if (equal x-locale "C")
|
||||
;; Treat the C locale specially, as it means "ascii" under X.
|
||||
'ascii
|
||||
(let ((locale (downcase x-locale)))
|
||||
(let ((locale (locale-translate (downcase x-locale))))
|
||||
(or (locale-name-match locale locale-preferred-coding-systems)
|
||||
(when locale
|
||||
(if (string-match "\\.\\([^@]+\\)" locale)
|
||||
|
|
|
@ -1557,7 +1557,7 @@ a skeleton (see `skeleton-insert').")
|
|||
'(if (and (boundp 'reftex-mode) reftex-mode) (reftex-label "table"))
|
||||
\n _)
|
||||
("figure" nil > _ \n "\\caption{" > (skeleton-read "Caption: ") "}" > \n
|
||||
'(if (and (boundp 'reftex-mode) reftex-mode) (reftex-label "table"))))
|
||||
'(if (and (boundp 'reftex-mode) reftex-mode) (reftex-label "figure"))))
|
||||
"Skeleton element to use for the body of particular environments.
|
||||
Every element of the list has the form (NAME . SKEL-ELEM) where NAME is
|
||||
the name of the environment and SKEL-ELEM is an element to use in
|
||||
|
|
|
@ -1651,10 +1651,12 @@ process_quit_flag (void)
|
|||
void
|
||||
probably_quit (void)
|
||||
{
|
||||
specpdl_ref gc_count = inhibit_garbage_collection ();
|
||||
if (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
|
||||
process_quit_flag ();
|
||||
else if (pending_signals)
|
||||
process_pending_signals ();
|
||||
unbind_to (gc_count, Qnil);
|
||||
}
|
||||
|
||||
DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,
|
||||
|
|
|
@ -1551,7 +1551,6 @@ - (NSRect) frame
|
|||
#ifdef NS_IMPL_COCOA
|
||||
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
|
||||
#endif
|
||||
discard_menu_items ();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1599,6 +1598,7 @@ - (NSRect) frame
|
|||
|
||||
if (error_name)
|
||||
{
|
||||
unbind_to (specpdl_count, Qnil);
|
||||
discard_menu_items ();
|
||||
[dialog close];
|
||||
error ("%s", error_name);
|
||||
|
@ -1608,6 +1608,9 @@ - (NSRect) frame
|
|||
popup_activated_flag = 1;
|
||||
tem = [dialog runDialogAt: p];
|
||||
unbind_to (specpdl_count, Qnil);
|
||||
|
||||
/* This must come *after* unuse_menu_items. */
|
||||
discard_menu_items ();
|
||||
return tem;
|
||||
}
|
||||
|
||||
|
|
|
@ -8213,6 +8213,8 @@ init_window_once (void)
|
|||
|
||||
minibuf_selected_window = Qnil;
|
||||
staticpro (&minibuf_selected_window);
|
||||
old_selected_window = Qnil;
|
||||
staticpro (&old_selected_window);
|
||||
|
||||
pdumper_do_now_and_after_late_load (init_window_once_for_pdumper);
|
||||
}
|
||||
|
|
|
@ -29252,7 +29252,11 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
|
|||
#endif
|
||||
|
||||
#ifdef HAVE_X_I18N
|
||||
xim_initialize (dpyinfo, resource_name);
|
||||
/* Avoid initializing input methods if the X library does not
|
||||
support Emacs's locale. When the current locale is not
|
||||
supported, decoding input method strings becomes undefined. */
|
||||
if (XSupportsLocale ())
|
||||
xim_initialize (dpyinfo, resource_name);
|
||||
#endif
|
||||
|
||||
xsettings_initialize (dpyinfo);
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Comment: Alice's OpenPGP certificate
|
||||
|
||||
mQGiBGFQyDcRBACmAI6cfY3fM02vb9JtC1BS19boKXbBsDoVrD9qRf8tDFROOpO3
|
||||
ZMlbuz+O9Vnljo6Y4WZGnyeWWAMqCditMOfr1cLbux77wSrmAVgZ9exwtGzkmUhM
|
||||
xcptzKuyod8NuhghXbJgVbfJZ6HlBkk4kiWv98iJQwUBZJfjBUfIv+acjwCg4M2i
|
||||
Ifu2A3UYl9VqF7qfcDOZudEEAI7V35yfsBDnr9ndKqdGYNw0alX9BEG3KwnAe0fF
|
||||
O1jDVW12Y/bwnyyrRTrz6o1G8dj7M4XVZQb5PpT9mpNzOSZ6yxqhg+foeJwn2JkD
|
||||
vyP+kMYU7SZ/tWuMOCdzN95Ki1rf+ti7pLnSMqKx+t3vOWwQbtnsbI6RCLLwETPA
|
||||
esghA/0X3Dw7cdiE5Xq4TRaPSGViCWP4ekL2KYKqmKv6M/4f2pgFNJY7C+2SIiiP
|
||||
T62zFlIjs5tF2Df34/M5mh4Vx6E8341r55+XO++kfFWJ5QjLiydRAY6ochG9IFgB
|
||||
xyBCkCNpiby9PpKyPodedBScdMxIAe4eJR7rG/j9gFC1MypBurQnSm9obm55IFJv
|
||||
Y2tldHMgPGpvaG5ueS5yb2NrZXRzQGdmeS5vcmc+iHgEExECADgWIQRIVz1DPzm4
|
||||
REDIXNtltQG5ACv6lwUCYVDINwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
|
||||
CRBltQG5ACv6l4iZAKCqldroRYH7vUzVV0Uv1NcDVcpLngCgmEoLVxGLKSwDEXNq
|
||||
qjRDzDRpReg=
|
||||
=/l51
|
||||
mDMEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
|
||||
b7O1u120JkFsaWNlIExvdmVsYWNlIDxhbGljZUBvcGVucGdwLmV4YW1wbGU+iJAE
|
||||
ExYIADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTrhbtfozp14V6UTmPy
|
||||
MVUMT0fjjgUCXaWfOgAKCRDyMVUMT0fjjukrAPoDnHBSogOmsHOsd9qGsiZpgRnO
|
||||
dypvbm+QtXZqth9rvwD9HcDC0tC+PHAsO7OTh1S1TC9RiJsvawAfCPaQZoed8gK4
|
||||
OARcRwTpEgorBgEEAZdVAQUBAQdAQv8GIa2rSTzgqbXCpDDYMiKRVitCsy203x3s
|
||||
E9+eviIDAQgHiHgEGBYIACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCXEcE6QIb
|
||||
DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn
|
||||
0QEA22Kr7VkCjeAEC08VSTeV+QFsmz55/lntWkwYWhmvOgE=
|
||||
=iIGO
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
Comment: Alice's OpenPGP Transferable Secret Key
|
||||
|
||||
lQG7BGFQyDcRBACmAI6cfY3fM02vb9JtC1BS19boKXbBsDoVrD9qRf8tDFROOpO3
|
||||
ZMlbuz+O9Vnljo6Y4WZGnyeWWAMqCditMOfr1cLbux77wSrmAVgZ9exwtGzkmUhM
|
||||
xcptzKuyod8NuhghXbJgVbfJZ6HlBkk4kiWv98iJQwUBZJfjBUfIv+acjwCg4M2i
|
||||
Ifu2A3UYl9VqF7qfcDOZudEEAI7V35yfsBDnr9ndKqdGYNw0alX9BEG3KwnAe0fF
|
||||
O1jDVW12Y/bwnyyrRTrz6o1G8dj7M4XVZQb5PpT9mpNzOSZ6yxqhg+foeJwn2JkD
|
||||
vyP+kMYU7SZ/tWuMOCdzN95Ki1rf+ti7pLnSMqKx+t3vOWwQbtnsbI6RCLLwETPA
|
||||
esghA/0X3Dw7cdiE5Xq4TRaPSGViCWP4ekL2KYKqmKv6M/4f2pgFNJY7C+2SIiiP
|
||||
T62zFlIjs5tF2Df34/M5mh4Vx6E8341r55+XO++kfFWJ5QjLiydRAY6ochG9IFgB
|
||||
xyBCkCNpiby9PpKyPodedBScdMxIAe4eJR7rG/j9gFC1MypBugAAn0mvGeJi+oSo
|
||||
5jXAeXBhRiTyI5WPCuK0J0pvaG5ueSBSb2NrZXRzIDxqb2hubnkucm9ja2V0c0Bn
|
||||
Znkub3JnPoh4BBMRAgA4FiEESFc9Qz85uERAyFzbZbUBuQAr+pcFAmFQyDcCGwMF
|
||||
CwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQZbUBuQAr+peImQCgqpXa6EWB+71M
|
||||
1VdFL9TXA1XKS54AoJhKC1cRiyksAxFzaqo0Q8w0aUXo
|
||||
=cyQm
|
||||
lFgEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
|
||||
b7O1u10AAP9XBeW6lzGOLx7zHH9AsUDUTb2pggYGMzd0P3ulJ2AfvQ4RtCZBbGlj
|
||||
ZSBMb3ZlbGFjZSA8YWxpY2VAb3BlbnBncC5leGFtcGxlPoiQBBMWCAA4AhsDBQsJ
|
||||
CAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE64W7X6M6deFelE5j8jFVDE9H444FAl2l
|
||||
nzoACgkQ8jFVDE9H447pKwD6A5xwUqIDprBzrHfahrImaYEZzncqb25vkLV2arYf
|
||||
a78A/R3AwtLQvjxwLDuzk4dUtUwvUYibL2sAHwj2kGaHnfICnF0EXEcE6RIKKwYB
|
||||
BAGXVQEFAQEHQEL/BiGtq0k84Km1wqQw2DIikVYrQrMttN8d7BPfnr4iAwEIBwAA
|
||||
/3/xFPG6U17rhTuq+07gmEvaFYKfxRB6sgAYiW6TMTpQEK6IeAQYFggAIBYhBOuF
|
||||
u1+jOnXhXpROY/IxVQxPR+OOBQJcRwTpAhsMAAoJEPIxVQxPR+OOWdABAMUdSzpM
|
||||
hzGs1O0RkWNQWbUzQ8nUOeD9wNbjE3zR+yfRAQDbYqvtWQKN4AQLTxVJN5X5AWyb
|
||||
Pnn+We1aTBhaGa86AQ==
|
||||
=n8OM
|
||||
-----END PGP PRIVATE KEY BLOCK-----
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -25,8 +25,9 @@ TRUSTDB="./trust.db"
|
|||
GPG="gpg --no-default-keyring --trustdb-name $TRUSTDB --keyring $KEYRING --yes"
|
||||
|
||||
rm $KEYRING
|
||||
$GPG --full-generate-key
|
||||
$GPG --export --armor > "../key.pub"
|
||||
$GPG --export-secret-keys -armor > "../key.sec"
|
||||
#$GPG --full-generate-key
|
||||
#$GPG --export --armor > "../key.pub"
|
||||
#$GPG --export-secret-keys -armor > "../key.sec"
|
||||
$GPG --import ../key.sec
|
||||
$GPG --detach-sign --sign "./archive-contents"
|
||||
$GPG --detach-sign --sign "./signed-good-1.0.el"
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
Comment: Alice's OpenPGP certificate
|
||||
|
||||
mI0EVRDxCAEEALcScrRmxq5N+Hh+NxPg75RJJdtEi824pwtqMlT/3wG1esmP5gNu
|
||||
ZIPVaTTSGNZkEzeYdhaLXBUe5qD+RQIQVh+MLt9nisF9nD35imyOrhHwAHnglOPx
|
||||
GdylH8nQ/tIO5p/lfUlw+iCBlPH7eZHqFJhwP0hJML4PKE8ArWG6RtsxABEBAAG0
|
||||
J0pvZSBUZXN0ZXIgKHRlc3Qga2V5KSA8am9lQGV4YW1wbGUuY29tPoi4BBMBAgAi
|
||||
BQJVEPEIAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAoscCWMvu4GGYO
|
||||
A/0Zzoc2z/dvAtFVLh4ovKqP2qliQt2qschJHVP30hJnKT7dmJfJl7kz9mXmMfSt
|
||||
Ym0luYmeSzdeWORM9SygLRYXuDfN6G4ZPJTlsRhgnARhNzNhSx+YlcFh48Z+a5zR
|
||||
goBMn7DgYVqfU4UteZOSXMlnuA2Z5ao1qgGhVqESSJgU5riNBFUQ8QgBBADacLkK
|
||||
D0U11nmlsScxPGkrDr0aJPrG8MEaDRnKjHJKNp3XTp1psGBUpWF/ErjQAIu+psFt
|
||||
LO8owCGsg/vJM7CzTv2dVBRbrZXjIKvdq7HdivosTMaHArQBpEtSO9rmgVHO+jaQ
|
||||
q/M2oGvNEB86zo3nfTWhOgBiB32m8kttWRiuWQARAQABiJ8EGAECAAkFAlUQ8QgC
|
||||
GwwACgkQKLHAljL7uBj44AQAkMJRm7VJUryrDKFtfIfytQx/vmyU/cZcVV6IpKqP
|
||||
KhztgR+QD9czlHvQhz+y3hqtLRShu2Eyf75dNexcUvKs/lS4LIDXg5V7pWSRk9eQ
|
||||
G403muqR/NGu6+QmUx09rJl72trdaGxNkyHA7Zy7ZDGkcMvQsd3qoSNGsPR5TKes
|
||||
w7Q=
|
||||
=NMxb
|
||||
mDMEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
|
||||
b7O1u120JkFsaWNlIExvdmVsYWNlIDxhbGljZUBvcGVucGdwLmV4YW1wbGU+iJAE
|
||||
ExYIADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTrhbtfozp14V6UTmPy
|
||||
MVUMT0fjjgUCXaWfOgAKCRDyMVUMT0fjjukrAPoDnHBSogOmsHOsd9qGsiZpgRnO
|
||||
dypvbm+QtXZqth9rvwD9HcDC0tC+PHAsO7OTh1S1TC9RiJsvawAfCPaQZoed8gK4
|
||||
OARcRwTpEgorBgEEAZdVAQUBAQdAQv8GIa2rSTzgqbXCpDDYMiKRVitCsy203x3s
|
||||
E9+eviIDAQgHiHgEGBYIACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCXEcE6QIb
|
||||
DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn
|
||||
0QEA22Kr7VkCjeAEC08VSTeV+QFsmz55/lntWkwYWhmvOgE=
|
||||
=iIGO
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
|
|
@ -1,33 +1,16 @@
|
|||
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
Comment: Alice's OpenPGP Transferable Secret Key
|
||||
|
||||
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
|
||||
=iCIm
|
||||
lFgEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U
|
||||
b7O1u10AAP9XBeW6lzGOLx7zHH9AsUDUTb2pggYGMzd0P3ulJ2AfvQ4RtCZBbGlj
|
||||
ZSBMb3ZlbGFjZSA8YWxpY2VAb3BlbnBncC5leGFtcGxlPoiQBBMWCAA4AhsDBQsJ
|
||||
CAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE64W7X6M6deFelE5j8jFVDE9H444FAl2l
|
||||
nzoACgkQ8jFVDE9H447pKwD6A5xwUqIDprBzrHfahrImaYEZzncqb25vkLV2arYf
|
||||
a78A/R3AwtLQvjxwLDuzk4dUtUwvUYibL2sAHwj2kGaHnfICnF0EXEcE6RIKKwYB
|
||||
BAGXVQEFAQEHQEL/BiGtq0k84Km1wqQw2DIikVYrQrMttN8d7BPfnr4iAwEIBwAA
|
||||
/3/xFPG6U17rhTuq+07gmEvaFYKfxRB6sgAYiW6TMTpQEK6IeAQYFggAIBYhBOuF
|
||||
u1+jOnXhXpROY/IxVQxPR+OOBQJcRwTpAhsMAAoJEPIxVQxPR+OOWdABAMUdSzpM
|
||||
hzGs1O0RkWNQWbUzQ8nUOeD9wNbjE3zR+yfRAQDbYqvtWQKN4AQLTxVJN5X5AWyb
|
||||
Pnn+We1aTBhaGa86AQ==
|
||||
=n8OM
|
||||
-----END PGP PRIVATE KEY BLOCK-----
|
||||
|
|
|
@ -101,16 +101,15 @@
|
|||
(ert-deftest epg-decrypt-1 ()
|
||||
:expected-result (if (getenv "EMACS_HYDRA_CI") :failed :passed) ; fixme
|
||||
(with-epg-tests (:require-passphrase t)
|
||||
(with-temp-file (expand-file-name "gpg.conf" epg-tests-home-directory)
|
||||
(insert "ignore-mdc-error"))
|
||||
(should (equal "test"
|
||||
(epg-decrypt-string epg-tests-context "\
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
Version: GnuPG v2
|
||||
|
||||
jA0EAwMCE19JBLTvvmhgyRrGGglRbnKkK9PJG8fDwO5ccjysrR7IcdNcnA==
|
||||
=U8z7
|
||||
-----END PGP MESSAGE-----")))))
|
||||
jA0ECQMCdW8+qtS9Tin/0jUBO1/9Oz69BWPmtFKEeBM62WpFP4o1+bNzdxogdyeg
|
||||
+WTt292OD0yV85m5UqvLgp4ttVUmAw==
|
||||
=K5Eh
|
||||
-----END PGP MESSAGE-----
|
||||
")))))
|
||||
|
||||
(ert-deftest epg-roundtrip-1 ()
|
||||
:expected-result (if (getenv "EMACS_HYDRA_CI") :failed :passed) ; fixme
|
||||
|
@ -123,7 +122,7 @@ jA0EAwMCE19JBLTvvmhgyRrGGglRbnKkK9PJG8fDwO5ccjysrR7IcdNcnA==
|
|||
(with-epg-tests (:require-passphrase t
|
||||
:require-public-key t
|
||||
:require-secret-key t)
|
||||
(let* ((recipients (epg-list-keys epg-tests-context "joe@example.com"))
|
||||
(let* ((recipients (epg-list-keys epg-tests-context "alice@openpgp.example"))
|
||||
(cipher (epg-encrypt-string epg-tests-context "public key"
|
||||
recipients nil t)))
|
||||
(should (equal "public key"
|
||||
|
@ -135,7 +134,7 @@ jA0EAwMCE19JBLTvvmhgyRrGGglRbnKkK9PJG8fDwO5ccjysrR7IcdNcnA==
|
|||
:require-secret-key t)
|
||||
(let (signature verify-result)
|
||||
(setf (epg-context-signers epg-tests-context)
|
||||
(epg-list-keys epg-tests-context "joe@example.com"))
|
||||
(epg-list-keys epg-tests-context "alice@openpgp.example"))
|
||||
(setq signature (epg-sign-string epg-tests-context "signed" t))
|
||||
(epg-verify-string epg-tests-context signature "signed")
|
||||
(setq verify-result (epg-context-result-for context 'verify))
|
||||
|
@ -148,7 +147,7 @@ jA0EAwMCE19JBLTvvmhgyRrGGglRbnKkK9PJG8fDwO5ccjysrR7IcdNcnA==
|
|||
:require-secret-key t)
|
||||
(let (signature verify-result)
|
||||
(setf (epg-context-signers epg-tests-context)
|
||||
(epg-list-keys epg-tests-context "joe@example.com"))
|
||||
(epg-list-keys epg-tests-context "alice@openpgp.example"))
|
||||
(setq signature (epg-sign-string epg-tests-context "clearsigned" 'clear))
|
||||
;; Clearsign signature always ends with a new line.
|
||||
(should (equal "clearsigned\n"
|
||||
|
@ -163,7 +162,7 @@ jA0EAwMCE19JBLTvvmhgyRrGGglRbnKkK9PJG8fDwO5ccjysrR7IcdNcnA==
|
|||
:require-secret-key t)
|
||||
(let (signature verify-result)
|
||||
(setf (epg-context-signers epg-tests-context)
|
||||
(epg-list-keys epg-tests-context "joe@example.com"))
|
||||
(epg-list-keys epg-tests-context "alice@openpgp.example"))
|
||||
(setq signature (epg-sign-string epg-tests-context "normal signed"))
|
||||
(should (equal "normal signed"
|
||||
(epg-verify-string epg-tests-context signature)))
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -199,7 +199,7 @@ In both cases, the first key is customized for signing and encryption."
|
|||
(let* ((mml-secure-key-preferences
|
||||
'((OpenPGP (sign) (encrypt)) (CMS (sign) (encrypt))))
|
||||
(pcontext (epg-make-context 'OpenPGP))
|
||||
(pkey (epg-list-keys pcontext "C3999CF1268DBEA2"))
|
||||
(pkey (epg-list-keys pcontext "2FAF8726121EB3C6"))
|
||||
(scontext (epg-make-context 'CMS))
|
||||
(skey (epg-list-keys scontext "0x479DC6E2")))
|
||||
(mml-secure-cust-record-keys pcontext 'encrypt "sub@example.org" pkey)
|
||||
|
@ -259,17 +259,17 @@ In both cases, the first key is customized for signing and encryption."
|
|||
(should-not (mml-secure-check-sub-key context (car keys5) 'sign))
|
||||
|
||||
;; The next key has multiple subkeys.
|
||||
;; 42466F0F is valid sign subkey, 501FFD98 is expired
|
||||
(should (mml-secure-check-sub-key context (car keys6) 'sign "42466F0F"))
|
||||
;; 167C1C27A9D25305 is valid sign subkey, 2DD796DBDAC43424 is expired
|
||||
(should (mml-secure-check-sub-key context (car keys6) 'sign "167C1C27A9D25305"))
|
||||
(should-not
|
||||
(mml-secure-check-sub-key context (car keys6) 'sign "501FFD98"))
|
||||
;; DC7F66E7 is encrypt subkey
|
||||
(mml-secure-check-sub-key context (car keys6) 'sign "2DD796DBDAC43424"))
|
||||
;; 8D850AA2B34936F9 is encrypt subkey
|
||||
(should
|
||||
(mml-secure-check-sub-key context (car keys6) 'encrypt "DC7F66E7"))
|
||||
(mml-secure-check-sub-key context (car keys6) 'encrypt "8D850AA2B34936F9"))
|
||||
(should-not
|
||||
(mml-secure-check-sub-key context (car keys6) 'sign "DC7F66E7"))
|
||||
(mml-secure-check-sub-key context (car keys6) 'sign "8D850AA2B34936F9"))
|
||||
(should-not
|
||||
(mml-secure-check-sub-key context (car keys6) 'encrypt "42466F0F"))
|
||||
(mml-secure-check-sub-key context (car keys6) 'encrypt "167C1C27A9D25305"))
|
||||
|
||||
;; The final key is just a public key.
|
||||
(should (mml-secure-check-sub-key context (car keys7) 'encrypt))
|
||||
|
@ -305,9 +305,9 @@ In both cases, the first key is customized for signing and encryption."
|
|||
|
||||
;; Expired key should not be usable.
|
||||
;; Will fail for Ma Gnus v0.14 and earlier.
|
||||
;; sign@example.org has the expired subkey 0x501FFD98.
|
||||
;; sign@example.org has the expired subkey 0x2DD796DBDAC43424.
|
||||
(should-not
|
||||
(mml-secure-find-usable-keys context "0x501FFD98" 'sign))
|
||||
(mml-secure-find-usable-keys context "0x2DD796DBDAC43424" 'sign))
|
||||
|
||||
(should
|
||||
(mml-secure-find-usable-keys context "no-exp@example.org" 'encrypt))
|
||||
|
@ -355,16 +355,16 @@ In both cases, the first key is customized for signing and encryption."
|
|||
;; Search works with key IDs, with and without prefix "0x".
|
||||
(should
|
||||
(= 1 (length (mml-secure-find-usable-keys
|
||||
context "A142FD84" 'encrypt))))
|
||||
context "CA9EA5175C9043FB" 'encrypt))))
|
||||
(should
|
||||
(= 1 (length (mml-secure-find-usable-keys
|
||||
context "0xA142FD84" 'encrypt))))
|
||||
context "0xCA9EA5175C9043FB" 'encrypt))))
|
||||
(should
|
||||
(= 0 (length (mml-secure-find-usable-keys
|
||||
context "A142FD84" 'sign))))
|
||||
context "CA9EA5175C9043FB" 'sign))))
|
||||
(should
|
||||
(= 0 (length (mml-secure-find-usable-keys
|
||||
context "0xA142FD84" 'sign))))
|
||||
context "0xCA9EA5175C9043FB" 'sign))))
|
||||
))))
|
||||
|
||||
(ert-deftest mml-secure-select-preferred-keys-1 ()
|
||||
|
@ -373,7 +373,7 @@ In both cases, the first key is customized for signing and encryption."
|
|||
(mml-secure-test-fixture
|
||||
(lambda ()
|
||||
(let ((context (epg-make-context 'OpenPGP)))
|
||||
(should (equal "832F3CC6518D37BC658261B802372A42CA6D40FB"
|
||||
(should (equal "0281C7D97E90771C0D9A61BFA049C1E9179C086B"
|
||||
(mml-secure-fingerprint
|
||||
(car (mml-secure-select-preferred-keys
|
||||
context '("no-exp@example.org") 'encrypt)))))))))
|
||||
|
@ -413,18 +413,18 @@ In both cases, the first key is customized for signing and encryption."
|
|||
(let ((context (epg-make-context 'OpenPGP))
|
||||
(mml-secure-key-preferences
|
||||
'((OpenPGP (sign) (encrypt)) (CMS (sign) (encrypt)))))
|
||||
;; sub@example.org has two keys (268DBEA2, AE31D471).
|
||||
;; sub@example.org has two keys (2FAF8726121EB3C6, 8E7FEE76BB1FB195).
|
||||
;; Normal preference works.
|
||||
(mml-secure-cust-record-keys
|
||||
context 'encrypt "sub@example.org" (epg-list-keys context "268DBEA2"))
|
||||
context 'encrypt "sub@example.org" (epg-list-keys context "2FAF8726121EB3C6"))
|
||||
(should (mml-secure-select-preferred-keys
|
||||
context '("sub@example.org") 'encrypt))
|
||||
(mml-secure-cust-remove-keys context 'encrypt "sub@example.org")
|
||||
|
||||
;; Fake preference for expired (unrelated) key CE15FAE7,
|
||||
;; Fake preference for expired (unrelated) key 22F24E21C5010683,
|
||||
;; results in error (and automatic removal of outdated preference).
|
||||
(mml-secure-cust-record-keys
|
||||
context 'encrypt "sub@example.org" (epg-list-keys context "CE15FAE7"))
|
||||
context 'encrypt "sub@example.org" (epg-list-keys context "22F24E21C5010683"))
|
||||
(should-error (mml-secure-select-preferred-keys
|
||||
context '("sub@example.org") 'encrypt))
|
||||
(should-not
|
||||
|
@ -438,8 +438,8 @@ In both cases, the first key is customized for signing and encryption."
|
|||
(lambda ()
|
||||
(let ((pcontext (epg-make-context 'OpenPGP))
|
||||
(scontext (epg-make-context 'CMS))
|
||||
(pkeys '("1E6BFA973D9E3103B77FD399C3999CF1268DBEA2"
|
||||
"14632ECAB9E227369C8DD97BF7E79AB7AE31D471"))
|
||||
(pkeys '("4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6"
|
||||
"EB67A6310389C9AE8A5695908E7FEE76BB1FB195"))
|
||||
(skeys '("0x5F88E9FC" "0x479DC6E2"))
|
||||
(mml-secure-key-preferences
|
||||
'((OpenPGP (sign) (encrypt)) (CMS (sign) (encrypt)))))
|
||||
|
@ -456,17 +456,17 @@ In both cases, the first key is customized for signing and encryption."
|
|||
pcontext 'sign "sub@example.org")))
|
||||
(should (= 2 (length p-e-fprs)))
|
||||
(should (= 2 (length p-s-fprs)))
|
||||
(should (member "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2" p-e-fprs))
|
||||
(should (member "14632ECAB9E227369C8DD97BF7E79AB7AE31D471" p-e-fprs))
|
||||
(should (member "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2" p-s-fprs))
|
||||
(should (member "14632ECAB9E227369C8DD97BF7E79AB7AE31D471" p-s-fprs)))
|
||||
(should (member "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6" p-e-fprs))
|
||||
(should (member "EB67A6310389C9AE8A5695908E7FEE76BB1FB195" p-e-fprs))
|
||||
(should (member "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6" p-s-fprs))
|
||||
(should (member "EB67A6310389C9AE8A5695908E7FEE76BB1FB195" p-s-fprs)))
|
||||
;; Duplicate record does not change anything.
|
||||
(mml-secure-cust-record-keys
|
||||
pcontext 'encrypt "sub@example.org"
|
||||
(epg-list-keys pcontext "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2"))
|
||||
(epg-list-keys pcontext "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6"))
|
||||
(mml-secure-cust-record-keys
|
||||
pcontext 'sign "sub@example.org"
|
||||
(epg-list-keys pcontext "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2"))
|
||||
(epg-list-keys pcontext "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6"))
|
||||
(let ((p-e-fprs (mml-secure-cust-fpr-lookup
|
||||
pcontext 'encrypt "sub@example.org"))
|
||||
(p-s-fprs (mml-secure-cust-fpr-lookup
|
||||
|
@ -524,10 +524,10 @@ Pass optional INTERACTIVE to mml-secure-test-mail-fixture."
|
|||
(concat "Good signature from "
|
||||
(if (eq protocol 'CMS)
|
||||
"0E58229B80EE33959FF718FEEF25402B479DC6E2"
|
||||
"02372A42CA6D40FB"))
|
||||
"A049C1E9179C086B"))
|
||||
gnus-info)))
|
||||
(dolist (fpr signer-fprs nil)
|
||||
;; OpenPGP: "Good signature from 02372A42CA6D40FB No Expiry <no-exp@example.org> (trust undefined) created ..."
|
||||
;; OpenPGP: "Good signature from A049C1E9179C086B No Expiry <no-exp@example.org> (trust undefined) created ..."
|
||||
;; S/MIME: "Good signature from D06AA118653CC38E9D0CAF56ED7A2135E1582177 /CN=No Expiry (trust full) ..."
|
||||
(should (string-match-p
|
||||
(concat "Good signature from "
|
||||
|
@ -586,7 +586,7 @@ In this test, the single matching key is chosen automatically."
|
|||
;; no-exp@example.org with single encryption key
|
||||
(mml-secure-test-en-decrypt
|
||||
method "no-exp@example.org" "sub@example.org" nil t
|
||||
(list (cons "02372A42CA6D40FB" "ED7A2135E1582177")))))
|
||||
(list (cons "A049C1E9179C086B" "ED7A2135E1582177")))))
|
||||
|
||||
(ert-deftest mml-secure-en-decrypt-2 ()
|
||||
"Encrypt message; then decrypt and test for expected result.
|
||||
|
@ -600,7 +600,7 @@ In this test, the encryption key needs to fixed among multiple ones."
|
|||
(dolist (method (enc-standards) nil)
|
||||
(mml-secure-test-en-decrypt
|
||||
method "sub@example.org" "no-exp@example.org" nil t
|
||||
(list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2")))))))
|
||||
(list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2")))))))
|
||||
|
||||
(ert-deftest mml-secure-en-decrypt-3 ()
|
||||
"Encrypt message; then decrypt and test for expected result.
|
||||
|
@ -619,8 +619,8 @@ In this test, encrypt-to-self variables are set to t."
|
|||
(dolist (method (enc-standards) nil)
|
||||
(mml-secure-test-en-decrypt
|
||||
method "sub@example.org" "no-exp@example.org" nil t
|
||||
(list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2")
|
||||
(cons "02372A42CA6D40FB" "ED7A2135E1582177"))))))))
|
||||
(list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2")
|
||||
(cons "A049C1E9179C086B" "ED7A2135E1582177"))))))))
|
||||
|
||||
(ert-deftest mml-secure-en-decrypt-4 ()
|
||||
"Encrypt message; then decrypt and test for expected result.
|
||||
|
@ -628,14 +628,14 @@ In this test, encrypt-to-self variables are set to lists."
|
|||
(skip-unless (test-conf))
|
||||
;; Send from sub@example.org, which has two keys; encrypt to both.
|
||||
(let ((mml-secure-openpgp-encrypt-to-self
|
||||
'("C3999CF1268DBEA2" "F7E79AB7AE31D471"))
|
||||
'("2FAF8726121EB3C6" "8E7FEE76BB1FB195"))
|
||||
(mml-secure-smime-encrypt-to-self
|
||||
'("EF25402B479DC6E2" "4035D59B5F88E9FC")))
|
||||
(dolist (method (enc-standards) nil)
|
||||
(mml-secure-test-en-decrypt
|
||||
method "no-exp@example.org" "sub@example.org" nil t
|
||||
(list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2")
|
||||
(cons "F7E79AB7AE31D471" "4035D59B5F88E9FC"))))))
|
||||
(list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2")
|
||||
(cons "8E7FEE76BB1FB195" "4035D59B5F88E9FC"))))))
|
||||
|
||||
(ert-deftest mml-secure-en-decrypt-sign-1-1-single ()
|
||||
"Sign and encrypt message; then decrypt and test for expected result.
|
||||
|
@ -672,7 +672,7 @@ In this test, just multiple encryption and signing keys may be available."
|
|||
(mml-secure-smime-sign-with-sender t))
|
||||
;; Now use both keys to sign. The customized one via sign-with-sender,
|
||||
;; the other one via the following setting.
|
||||
(let ((mml-secure-openpgp-signers '("F7E79AB7AE31D471"))
|
||||
(let ((mml-secure-openpgp-signers '("8E7FEE76BB1FB195"))
|
||||
(mml-secure-smime-signers '("0x5F88E9FC")))
|
||||
(dolist (method (enc-sign-standards) nil)
|
||||
(mml-secure-test-en-decrypt
|
||||
|
@ -690,7 +690,7 @@ In this test, just multiple encryption and signing keys may be available."
|
|||
(let ((mml-secure-openpgp-sign-with-sender nil)
|
||||
(mml-secure-smime-sign-with-sender nil)
|
||||
(mml-secure-openpgp-signers
|
||||
'("F7E79AB7AE31D471" "C3999CF1268DBEA2"))
|
||||
'("8E7FEE76BB1FB195" "2FAF8726121EB3C6"))
|
||||
(mml-secure-smime-signers '("0x5F88E9FC" "0x479DC6E2")))
|
||||
(dolist (method (enc-sign-standards) nil)
|
||||
(mml-secure-test-en-decrypt
|
||||
|
@ -709,7 +709,7 @@ In this test, lists of encryption and signing keys are customized."
|
|||
(scontext (epg-make-context 'CMS))
|
||||
(mml-secure-openpgp-sign-with-sender t)
|
||||
(mml-secure-smime-sign-with-sender t))
|
||||
(dolist (key '("F7E79AB7AE31D471" "C3999CF1268DBEA2") nil)
|
||||
(dolist (key '("8E7FEE76BB1FB195" "2FAF8726121EB3C6") nil)
|
||||
(mml-secure-cust-record-keys
|
||||
pcontext 'encrypt "sub@example.org" (epg-list-keys pcontext key))
|
||||
(mml-secure-cust-record-keys
|
||||
|
@ -745,8 +745,8 @@ Use sign-with-sender and encrypt-to-self."
|
|||
(dolist (method (enc-sign-standards) nil)
|
||||
(mml-secure-test-en-decrypt
|
||||
method "sub@example.org" "no-exp@example.org" 1 t
|
||||
(list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2")
|
||||
(cons "02372A42CA6D40FB" "ED7A2135E1582177"))))
|
||||
(list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2")
|
||||
(cons "A049C1E9179C086B" "ED7A2135E1582177"))))
|
||||
))))
|
||||
|
||||
(ert-deftest mml-secure-sign-verify-1 ()
|
||||
|
@ -765,7 +765,7 @@ Use sign-with-sender and encrypt-to-self."
|
|||
|
||||
;; From sub@example.org, sign with two keys;
|
||||
;; sign-with-sender and one from signers-variable:
|
||||
(let ((mml-secure-openpgp-signers '("02372A42CA6D40FB"))
|
||||
(let ((mml-secure-openpgp-signers '("A049C1E9179C086B"))
|
||||
(mml-secure-smime-signers
|
||||
'("D06AA118653CC38E9D0CAF56ED7A2135E1582177")))
|
||||
(mml-secure-test-en-decrypt
|
||||
|
@ -781,7 +781,7 @@ With Ma Gnus v0.14 and earlier a signature would be created with a wrong key."
|
|||
(lambda ()
|
||||
(let ((with-smime nil)
|
||||
(mml-secure-openpgp-sign-with-sender nil)
|
||||
(mml-secure-openpgp-signers '("501FFD98")))
|
||||
(mml-secure-openpgp-signers '("2DD796DBDAC43424")))
|
||||
(dolist (method (sign-standards) nil)
|
||||
(mml-secure-test-en-decrypt
|
||||
method "no-exp@example.org" "sign@example.org" 1 nil)
|
||||
|
|
Loading…
Add table
Reference in a new issue