a13

Кстати, уменьшение уровня зарада батарей реально помогает. На двух идентичных буках 84% против 75%, причем второй покупался на полтора месяца позже.

a13

если верить http://xmpp.org/extensions/xep-0027.html, то "All program output is US-ASCII armored output with the headers removed. ", думаю, а как же тогда декриптовать? Выше реализовал через отрезание лишнего, base64 декодирование и скармливание в сыром виде. Работает. Стало интересно, как бы сделать красиво, посмотрел код Pidgin-GPG
static char* str_armor(const char* unarmored)
{
	char* header = "-----BEGIN PGP SIGNATURE-----\n\n";
	char* footer = "\n-----END PGP SIGNATURE-----";

	char* buffer = malloc(strlen(header)+strlen(footer)+strlen(unarmored)+1);
	strcpy(buffer, header);
	strcat(buffer, unarmored);
	strcat(buffer, footer);
	return buffer;
}

///_\\\

a13

Ну шо, поцоны, на приём работает:

(defun jabber-chat-print-encrypted (xml-data who mode)
"Decrypts and prints encrypted message"
(let ((foundp nil))
(dolist (x (jabber-xml-node-children xml-data))
(when (and (listp x) (eq (jabber-xml-node-name x) 'x)
(string= (jabber-xml-get-xmlns x) "jabber:x:encrypted"))
(setq foundp t)

(when (eql mode :insert)
(let* ((enc-b64-multi (car (split-string (caddr x) "\n=")))
(enc-b64 (replace-regexp-in-string "\n" "" enc-b64-multi))
(enc (base64-decode-string enc-b64))
(context (epg-make-context epa-protocol))
(dec (epg-decrypt-string context enc)))
(insert "\n"
(jabber-propertize
"encrypted message: " 'face 'jabber-chat-prompt-system)
(format "%s" (jabber-unhex dec)))))))
foundp))

Немного переусложнённо, но блин, спасибо XEP-ам

Чтобы постоянно не спрашивал пароли — gpg-agent в помощь

a13

Пока как-то так:
(add-to-list 'jabber-chat-printers 'jabber-chat-print-encrypted)
(defun jabber-chat-print-encrypted (xml-data who mode)
"Print encrypted part of the message "
(message "detect encrypted")
(let ((foundp nil))
(dolist (x (jabber-xml-node-children xml-data))
(when (and (listp x) (eq (jabber-xml-node-name x) 'x)
(string= (jabber-xml-get-xmlns x) "jabber:x:encrypted"))
(setq foundp t)

(when (eql mode :insert)
(let ((enc (caddr x)))
(insert "\n"
(jabber-propertize
"encrypted message: " 'face 'jabber-chat-prompt-system)
(format "%s" enc))))))
foundp))

осталось декриптануть

a13

Звонила девица, представилась самсунгом (+7-495-3631700), интересовалась, устраивает ли меня купленный бук их компании, пользуюсь ли я другой их продукцией и какой у меня фотоаппарат O_o

a13

донейт на progpalaceradio.com сделан через одно место, валюту выбрать можно, но если количество меньше 20 — ставит один хрен 20. Судя по тому, что выбрать можно йены — не злой умысел, а криворучие обыкновенное. Ну и ССЗБ.