[woes] FW: [OAUTH-WG] JWT CLI tool in PyJWT

Mike Jones <Michael.Jones@microsoft.com> Wed, 06 April 2011 04:09 UTC

Return-Path: <Michael.Jones@microsoft.com>
X-Original-To: woes@core3.amsl.com
Delivered-To: woes@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CA8053A6863; Tue, 5 Apr 2011 21:09:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.979
X-Spam-Level:
X-Spam-Status: No, score=-9.979 tagged_above=-999 required=5 tests=[AWL=-0.581, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_32=0.6, J_CHICKENPOX_33=0.6, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a3hoB3Xtkn4F; Tue, 5 Apr 2011 21:09:01 -0700 (PDT)
Received: from smtp.microsoft.com (mailb.microsoft.com [131.107.115.215]) by core3.amsl.com (Postfix) with ESMTP id 3DA633A685B; Tue, 5 Apr 2011 21:09:01 -0700 (PDT)
Received: from TK5EX14HUBC102.redmond.corp.microsoft.com (157.54.7.154) by TK5-EXGWY-E802.partners.extranet.microsoft.com (10.251.56.168) with Microsoft SMTP Server (TLS) id 8.2.176.0; Tue, 5 Apr 2011 21:10:44 -0700
Received: from TK5EX14MBXC203.redmond.corp.microsoft.com ([169.254.3.38]) by TK5EX14HUBC102.redmond.corp.microsoft.com ([157.54.7.154]) with mapi id 14.01.0270.002; Tue, 5 Apr 2011 21:10:44 -0700
From: Mike Jones <Michael.Jones@microsoft.com>
To: "woes@ietf.org" <woes@ietf.org>, "openid-specs-ab@lists.openid.net" <openid-specs-ab@lists.openid.net>
Thread-Topic: [OAUTH-WG] JWT CLI tool in PyJWT
Thread-Index: AQHL9AzB2shGLxuX70WAQ6bQp/fCHZRQOLWQ
Date: Wed, 06 Apr 2011 04:10:44 +0000
Message-ID: <4E1F6AAD24975D4BA5B1680429673943252CE74E@TK5EX14MBXC203.redmond.corp.microsoft.com>
References: <BANLkTimeYm4J-bvE-qVgY2=5JzL=wgHXWA@mail.gmail.com>
In-Reply-To: <BANLkTimeYm4J-bvE-qVgY2=5JzL=wgHXWA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.123.12]
Content-Type: multipart/alternative; boundary="_000_4E1F6AAD24975D4BA5B1680429673943252CE74ETK5EX14MBXC203r_"
MIME-Version: 1.0
Cc: "Jeff Lindsay (progrium@twilio.com)" <progrium@twilio.com>, "oauth@ietf.org" <oauth@ietf.org>
Subject: [woes] FW: [OAUTH-WG] JWT CLI tool in PyJWT
X-BeenThere: woes@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Web Object Encryption and Signing \(woes\) BOF discussion list" <woes.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/woes>, <mailto:woes-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/woes>
List-Post: <mailto:woes@ietf.org>
List-Help: <mailto:woes-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/woes>, <mailto:woes-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Apr 2011 04:09:02 -0000

(Distributing to a wider audience)

Thanks for letting us know about your implementation, Jeff!

                                                            -- Mike

From: oauth-bounces@ietf.org [mailto:oauth-bounces@ietf.org] On Behalf Of Jeff Lindsay
Sent: Tuesday, April 05, 2011 8:43 PM
To: OAuth WG (oauth@ietf.org)
Subject: [OAUTH-WG] JWT CLI tool in PyJWT

We use JWT a lot and end up needing it while using curl, or needing quick JWT generation... so I added a jwt command line utility in PyJWT. It doesn't support all crypto methods yet (since PyJWT doesn't either), but it has a pretty nice interface for encoding/decoding.

You can install it with just "easy_install PyJWT". Here's the usage doc:

Usage: jwt [options] input

Encodes or decodes JSON Web Tokens based on input

Decoding examples:

  jwt --key=secret json.web.token
  jwt --no-verify json.web.token

Encoding requires the key option and takes space separated key/value pairs
separated by equals (=) as input. Examples:

  jwt --key=secret iss=me exp=1302049071
  jwt --key=secret foo=bar exp=+10

The exp key is special and can take an offset to current Unix time.

Options:
  --version        show program's version number and exit
  -h, --help       show this help message and exit
  -n, --no-verify  ignore signature verification on decode
  --key=KEY        set the secret key to sign with
  --alg=ALG        set crypto algorithm to sign with. default=HS256