Skip to content
This repository was archived by the owner on Apr 19, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions oauth-test.el
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
("oauth_version" . "1.0")
("oauth_token" . "highballs-Croesus")))))
(should (equal
'(("Authorization" . "OAuth realm=\"\", oauth_consumer_key=\"choleric-decolletes\", oauth_nonce=\"0123456789\", oauth_signature=\"dont_tell%26\", oauth_signature_method=\"PLAINTEXT\", oauth_timestamp=\"1229298753\", oauth_token=\"highballs-Croesus\", oauth_version=\"1.0\""))
(oauth-request-to-header req)))))
'(("Authorization" . "OAuth realm=\"\", oauth_consumer_key=\"choleric-decolletes\", oauth_nonce=\"0123456789\", oauth_signature=\"dont_tell%26\", oauth_signature_method=\"PLAINTEXT\", oauth_timestamp=\"1229298753\", oauth_token=\"highballs-Croesus\", oauth_version=\"1.0\""))
(oauth-request-to-header req)))))

;; HMAC-SHA1 request
;; [oauth_version] => 1.0
Expand All @@ -82,8 +82,8 @@
("oauth_version" . "1.0")
("oauth_signature_method" . "HMAC-SHA1")))))
(should (equal
"POST&http%3A%2F%2Fterm.ie%2Foauth%2Fexample%2Frequest_token.php&oauth_consumer_key%3Dk%2526ey%26oauth_nonce%3D064f679764ac13d475e674672c106322%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1231020688%26oauth_version%3D1.0"
(oauth-build-signature-basestring-hmac-sha1 req)))))
"POST&http%3A%2F%2Fterm.ie%2Foauth%2Fexample%2Frequest_token.php&oauth_consumer_key%3Dk%2526ey%26oauth_nonce%3D064f679764ac13d475e674672c106322%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1231020688%26oauth_version%3D1.0"
(oauth-build-signature-basestring-hmac-sha1 req)))))

(ert-deftest hmac-sha1-base-string-with-url-params ()
(let ((req (make-oauth-request
Expand All @@ -95,8 +95,8 @@
("oauth_version" . "1.0")
("oauth_signature_method" . "HMAC-SHA1")))))
(should (equal
"POST&http%3A%2F%2Fterm.ie%2Foauth%2Fexample%2Frequest_token.php&id%3D1234%26oauth_consumer_key%3Dk%2526ey%26oauth_nonce%3D064f679764ac13d475e674672c106322%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1231020688%26oauth_version%3D1.0%26other_param%3Dtrue"
(oauth-build-signature-basestring-hmac-sha1 req)))))
"POST&http%3A%2F%2Fterm.ie%2Foauth%2Fexample%2Frequest_token.php&id%3D1234%26oauth_consumer_key%3Dk%2526ey%26oauth_nonce%3D064f679764ac13d475e674672c106322%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1231020688%26oauth_version%3D1.0%26other_param%3Dtrue"
(oauth-build-signature-basestring-hmac-sha1 req)))))

(ert-deftest hmac-sha1-request-signature ()
(let ((req (make-oauth-request
Expand All @@ -108,8 +108,8 @@
("oauth_signature_method" . "HMAC-SHA1"))))
(secret "secret"))
(should (equal
"grs+SdPE0DTE2+KYdlBXVk4Z+jc="
(oauth-build-signature-hmac-sha1 req secret)))))
"grs+SdPE0DTE2+KYdlBXVk4Z+jc="
(oauth-build-signature-hmac-sha1 req secret)))))

(ert-deftest sign-request-hmac-sha1 ()
(let ((req (make-oauth-request
Expand All @@ -121,11 +121,11 @@
(secret "secret"))
(oauth-sign-request-hmac-sha1 req secret)
(should (equal
"HMAC-SHA1"
(cdr (assoc "oauth_signature_method" (oauth-request-params req)))))
"HMAC-SHA1"
(cdr (assoc "oauth_signature_method" (oauth-request-params req)))))
(should (equal
"grs+SdPE0DTE2+KYdlBXVk4Z+jc="
(cdr (assoc "oauth_signature" (oauth-request-params req)))))))
"grs+SdPE0DTE2+KYdlBXVk4Z+jc="
(cdr (assoc "oauth_signature" (oauth-request-params req)))))))


;; [parameters:private] => Array
Expand All @@ -144,18 +144,18 @@

(ert-deftest sign-request-with-token-hmac-sha1()
(let ((req (make-oauth-request
:url "http://term.ie/oauth/example/request_token.php"
:params '(("oauth_consumer_key" . "k&ey")
("oauth_version" . "1.0")
("oauth_nonce" . "25c105a828aaef0837213304376d95e6")
("oauth_timestamp" . "1231121320"))
:token (make-oauth-t :token "requestkey"
:token-secret "requestsecret")))
(secret "secret"))
:url "http://term.ie/oauth/example/request_token.php"
:params '(("oauth_consumer_key" . "k&ey")
("oauth_version" . "1.0")
("oauth_nonce" . "25c105a828aaef0837213304376d95e6")
("oauth_timestamp" . "1231121320"))
:token (make-oauth-t :token "requestkey"
:token-secret "requestsecret")))
(secret "secret"))
(oauth-sign-request-hmac-sha1 req secret)
(should (equal
"HMAC-SHA1"
(cdr (assoc "oauth_signature_method" (oauth-request-params req)))))
"HMAC-SHA1"
(cdr (assoc "oauth_signature_method" (oauth-request-params req)))))
(should (equal
"TatnsMj+1RF5LzRS1/i3IeQQ21g="
(cdr (assoc "oauth_signature" (oauth-request-params req)))))))
"TatnsMj+1RF5LzRS1/i3IeQQ21g="
(cdr (assoc "oauth_signature" (oauth-request-params req)))))))
12 changes: 6 additions & 6 deletions oauth.el
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
(require 'hex-util)

(defvar oauth-nonce-function nil
"Fuction used to generate nonce.
"Fuction used to generate nonce.

Use (sasl-unique-id) if available otherwise oauth-internal-make-nonce")

Expand Down Expand Up @@ -281,9 +281,9 @@ This function is destructive"
(defun oauth-build-signature-basestring-hmac-sha1 (req)
"Returns the base string for the hmac-sha1 signing function"
(let ((base-url (oauth-extract-base-url req))
(params (append
(oauth-extract-url-params req)
(copy-sequence (oauth-request-params req)))))
(params (append
(oauth-extract-url-params req)
(copy-sequence (oauth-request-params req)))))
(concat
(oauth-request-http-method req) "&"
(oauth-hexify-string base-url) "&"
Expand Down Expand Up @@ -348,7 +348,7 @@ headers. Returns the http response buffer.
This function uses the emacs function `url-retrieve' for the http connection."
(let ((url-request-extra-headers (oauth-request-to-header req))
(url-request-method (oauth-request-http-method req)))
(url-retrieve-synchronously (oauth-request-url req))))
(url-retrieve-synchronously (oauth-request-url req))))

(defun oauth-do-request-curl (req)
"Make an http request to url using the request object to generate the oauth
Expand All @@ -358,7 +358,7 @@ This function dispatches to an external curl process"

(let ((url-request-extra-headers (oauth-request-to-header req))
(url-request-method (oauth-request-http-method req)))
(oauth-curl-retrieve (oauth-request-url req))))
(oauth-curl-retrieve (oauth-request-url req))))

(defun oauth-headers-to-curl (headers)
"Converts header alist (like `url-request-extra-headers') to a string that
Expand Down