Mercurial > emacs
changeset 110752:a347bc5bfc03
Provide GnuTLS API with `gnutls-negotiate' and `open-gnutls-stream'.
* net/gnutls.el: Improve docs. Remove starttls and ssl emulation.
Provide only `open-gnutls-stream' (formerly `open-ssl-stream') and
`gnutls-negotiate' (formerly `starttls-negotiate'). Remove
trivial wrapper `starttls-open-stream'.
author | Ted Zlatanov <tzz@lifelogs.com> |
---|---|
date | Sun, 03 Oct 2010 20:16:00 -0500 |
parents | 40088e2a2aba |
children | d9ff3c5329a6 |
files | lisp/ChangeLog lisp/net/gnutls.el |
diffstat | 2 files changed, 24 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Oct 03 17:55:42 2010 -0700 +++ b/lisp/ChangeLog Sun Oct 03 20:16:00 2010 -0500 @@ -1,3 +1,10 @@ +2010-10-03 Teodor Zlatanov <tzz@lifelogs.com> + + * net/gnutls.el: Improve docs. Remove starttls and ssl emulation. + Provide only `open-gnutls-stream' (formerly `open-ssl-stream') and + `gnutls-negotiate' (formerly `starttls-negotiate'). Remove + trivial wrapper `starttls-open-stream'. + 2010-10-03 Dan Nicolaescu <dann@ics.uci.edu> Make 'g' (AKA revert-buffer) rerun the VC log, log-incoming and
--- a/lisp/net/gnutls.el Sun Oct 03 17:55:42 2010 -0700 +++ b/lisp/net/gnutls.el Sun Oct 03 20:16:00 2010 -0500 @@ -1,9 +1,10 @@ -;;; gnutls.el --- Support SSL and TLS connections through GnuTLS +;;; gnutls.el --- Support SSL/TLS connections through GnuTLS ;; Copyright (C) 2010 Free Software Foundation, Inc. ;; Author: Ted Zlatanov <tzz@lifelogs.com> ;; Keywords: comm, tls, ssl, encryption ;; Originally-By: Simon Josefsson (See http://josefsson.org/emacs-security/) +;; Thanks-To: Lars Magne Ingebrigtsen <larsi@gnus.org> ;; This file is part of GNU Emacs. @@ -27,8 +28,8 @@ ;; Simple test: ;; -;; (setq jas (open-ssl-stream "ssl" (current-buffer) "www.pdc.kth.se" 443)) -;; (process-send-string jas "GET /\r\n\r\n") +;; (open-gnutls-stream "tls" "tls-buffer" "yourserver.com" "https") +;; (open-gnutls-stream "tls" "tls-buffer" "imap.gmail.com" "imaps") ;;; Code: @@ -42,8 +43,8 @@ :type 'integer :group 'gnutls) -(defun open-ssl-stream (name buffer host service) - "Open a SSL connection for a service to a host. +(defun open-gnutls-stream (name buffer host service) + "Open a SSL/TLS connection for a service to a host. Returns a subprocess-object to represent the connection. Input and output work as for subprocesses; `delete-process' closes it. Args are NAME BUFFER HOST SERVICE. @@ -55,15 +56,18 @@ with any buffer Third arg is name of the host to connect to, or its IP address. Fourth arg SERVICE is name of the service desired, or an integer -specifying a port number to connect to." - (let ((proc (open-network-stream name buffer host service))) - (starttls-negotiate proc 'gnutls-x509pki))) +specifying a port number to connect to. -;; (open-ssl-stream "tls" "tls-buffer" "yourserver.com" "https") -;; (open-ssl-stream "tls" "tls-buffer" "imap.gmail.com" "imaps") -(defun starttls-negotiate (proc type &optional priority-string - trustfiles keyfiles) - "Negotiate a SSL or TLS connection. +This is a very simple wrapper around `gnutls-negotiate'. See its +documentation for the specific parameters you can use to open a +GnuTLS connection, including specifying the credential type, +trust and key files, and priority string." + (let ((proc (open-network-stream name buffer host service))) + (gnutls-negotiate proc 'gnutls-x509pki))) + +(defun gnutls-negotiate (proc type &optional priority-string + trustfiles keyfiles) + "Negotiate a SSL/TLS connection. TYPE is `gnutls-x509pki' (default) or `gnutls-anon'. Use nil for the default. PROC is a process returned by `open-network-stream'. PRIORITY-STRING is as per the GnuTLS docs, default is \"NORMAL\". @@ -91,22 +95,6 @@ proc)) -(defun starttls-open-stream (name buffer host service) - "Open a TLS connection for a service to a host. -Returns a subprocess-object to represent the connection. -Input and output work as for subprocesses; `delete-process' closes it. -Args are NAME BUFFER HOST SERVICE. -NAME is name for process. It is modified if necessary to make it unique. -BUFFER is the buffer (or `buffer-name') to associate with the process. - Process output goes at end of that buffer, unless you specify - an output stream or filter function to handle the output. - BUFFER may be also nil, meaning that this process is not associated - with any buffer -Third arg is name of the host to connect to, or its IP address. -Fourth arg SERVICE is name of the service desired, or an integer -specifying a port number to connect to." - (open-network-stream name buffer host service)) - (defun gnutls-message-maybe (doit format &rest params) "When DOIT, message with the caller name followed by FORMAT on PARAMS." ;; (apply 'debug format (or params '(nil))) @@ -116,8 +104,6 @@ doit (gnutls-error-string doit) (apply 'format format (or params '(nil)))))) -(provide 'ssl) (provide 'gnutls) -(provide 'starttls) ;;; gnutls.el ends here