From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: Re: Modifying Emacs to use the Mac OS X Keychain Services Date: Sat, 28 May 2011 10:11:41 -0500 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <87aae6yi4y.fsf@lifelogs.com> References: <8762ov84k3.fsf@gmx.de> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1306595528 28401 80.91.229.12 (28 May 2011 15:12:08 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 28 May 2011 15:12:08 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat May 28 17:11:59 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QQLBG-0000KC-Dp for ged-emacs-devel@m.gmane.org; Sat, 28 May 2011 17:11:58 +0200 Original-Received: from localhost ([::1]:37407 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QQLBF-00045c-Vd for ged-emacs-devel@m.gmane.org; Sat, 28 May 2011 11:11:57 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:35872) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QQLBD-00045J-B9 for emacs-devel@gnu.org; Sat, 28 May 2011 11:11:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QQLBB-0006MZ-Ve for emacs-devel@gnu.org; Sat, 28 May 2011 11:11:55 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:56579) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QQLBB-0006MN-Je for emacs-devel@gnu.org; Sat, 28 May 2011 11:11:53 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QQLBA-0000JD-IG for emacs-devel@gnu.org; Sat, 28 May 2011 17:11:52 +0200 Original-Received: from c-67-186-102-106.hsd1.il.comcast.net ([67.186.102.106]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 28 May 2011 17:11:52 +0200 Original-Received: from tzz by c-67-186-102-106.hsd1.il.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 28 May 2011 17:11:52 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 35 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: c-67-186-102-106.hsd1.il.comcast.net X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:FumB6E7Qn15rQuV2jVdaxesP0fs= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:139837 Archived-At: On Sat, 28 May 2011 08:00:20 -0500 Ben Key wrote: BK> First, to give a little background. Several months ago there was a request BK> to have auth-source.el use the Mac OS X keychain functions (see BK> http://lists.gnu.org/archive/html/emacs-devel/2011-03/msg00486.html). These BK> functions are documented at BK> http://developer.apple.com/library/mac/#documentation/Security/Conceptual/keychainServConcepts/03tasks/tasks.html. BK> I agreed to do it but then got busy and later forgot about it. I want to BK> finally keep my promise this weekend. BK> When I started looking into what would be needed to complete this task the BK> first thing I noticed is that auth-source.el makes use of the functions in BK> secrets.el I mentioned if the user customizes the auth-sources variable to BK> include the secrets API. Since the Keychain Services API provides BK> functionality similar to that provided by the org.freedesktop.secrets BK> interface I figured that secrets.el would be a logical place to put the BK> change. Putting the code there also makes it available to packages other BK> than Gnus. Of course I could just define another authentication source in BK> auth-source.el as you suggest. BK> I thought that extending secrets.el was the more logical choice since much BK> like the org.freedesktop.secrets interface, the Keychain Services API BK> provides a Login key chain along with the possibility of using an BK> application defined keychain. They are superficially similar but internally very different (the Keychain Services API uses a C API; the Secrets API uses D-BUS and an entirely different protocol if I understand correctly). So I think it's better to supply a ELisp interface to the basic Keychain Services API, which should be a simpler task than adapting secrets.el to use the Keychain Services API. You can try to model your code after the secrets.el functions (list collections, search for items, etc.) but if it becomes an impediment, just follow the C API you're adapting. Ted