- (or (let ((pgg-default-user-id
- (or mime-edit-pgp-user-id
- (if from
- (nth 1 (std11-extract-address-components from))
- pgg-default-user-id))))
- (pgg-sign-region (point-min)(point-max)))
- (throw 'mime-edit-error 'pgp-error))
- (setq micalg
- (cdr (assq 'hash-algorithm
- (cdar (with-current-buffer pgg-output-buffer
- (pgg-parse-armor-region
- (point-min)(point-max))))))
- micalg
- (if micalg
- (concat "; micalg=pgp-" (downcase (symbol-name micalg)))
- ""))
+ (epg-context-set-armor context t)
+ (epg-context-set-textmode context t)
+ (epg-context-set-signers
+ context
+ (epa-select-keys
+ "\
+Select keys for signing.
+If no one is selected, default secret key is used. "
+ (if from
+ (list (nth 1 (std11-extract-address-components from))))
+ t))
+ (condition-case error
+ (setq signature
+ (epg-sign-string context
+ (buffer-substring (point-min) (point-max))
+ 'detached))
+ (error (signal 'mime-edit-error (cdr error))))
+ (setq micalg (cdr (assq 'digest-algorithm
+ (car (epg-context-result-for context 'sign)))))