There actually was another reason for having "payload" as a parameter. <div><br></div><div>As a generic signature mechanism, we may want to sign arbitrary binary data. </div><div>In such a case, we can base64url encode it and put it into "payload" parameter. </div>
<div><br></div><div>=nat<br><br><div class="gmail_quote">On Wed, Oct 6, 2010 at 12:56 AM, Nat Sakimura <span dir="ltr"><<a href="mailto:sakimura@gmail.com">sakimura@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
In this example: <div class="im"><div><br></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">{<br>   "oauth_token": "asdfjklsdfjwoIjfk",<br>   "not_after": 12345678,<br>

   "user_id": 1223,<br>   "profile_id": 1223 ,<br>   "env" :<br>   {<br>       "type": "<a href="http://jsonenc.info/jss/" style="color:rgb(7, 77, 143)" target="_blank">http://jsonenc.info/jss/</a>",<br>

       "sig_params": [<br>           {<br>               "key_id": "<a href="http://example.com/" style="color:rgb(7, 77, 143)" target="_blank">example.com</a>",<br>               "algorithm": "HMAC-SHA256"<br>

           }<br>       ]<br>   }<br>}</span></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">I do not think we need env. That would simplify. </span></font></div>

<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">The reason why we put everything inside the payload was that we thought it would be easier to process. I am open to both ways. </span></font></div>

<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">What do others think? </span></font></div>
<div><font face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div><div><font face="arial, sans-serif"><span style="border-collapse:collapse">=nat</span></font></div>
<div><div><div></div><div class="h5"><br><div class="gmail_quote">On Wed, Oct 6, 2010 at 12:40 AM, nara hideki <span dir="ltr"><<a href="mailto:hdknr@ic-tact.co.jp" target="_blank">hdknr@ic-tact.co.jp</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi, Nat,<br>
<br>
This revision of envelope is literally "envelope" in which parameters<br>
in concern are held as JSON object in "payload".<br>
But it looks more simpler to me if all signing parameters are held as<br>
a JSON object in the concerned data.  I mean that the following sample<br>
:<br>
<br>
{<br>
    "type": "<a href="http://jsonenc.info/jss/" target="_blank">http://jsonenc.info/jss/</a>",<br>
    "sig_params": [<br>
        {<br>
            "key_id": "<a href="http://example.com" target="_blank">example.com</a>",<br>
            "algorithm": "HMAC-SHA256"<br>
        }<br>
    ],<br>
    "payload": {<br>
        "oauth_token": "asdfjklsdfjwoIjfk",<br>
        "not_after": 12345678,<br>
        "user_id": 1223,<br>
        "profile_id": 1223<br>
    }<br>
}<br>
<br>
can be simplified in this JSON:<br>
<br>
{<br>
    "oauth_token": "asdfjklsdfjwoIjfk",<br>
    "not_after": 12345678,<br>
    "user_id": 1223,<br>
    "profile_id": 1223 ,<br>
    "env" :<br>
    {<br>
        "type": "<a href="http://jsonenc.info/jss/" target="_blank">http://jsonenc.info/jss/</a>",<br>
        "sig_params": [<br>
            {<br>
                "key_id": "<a href="http://example.com" target="_blank">example.com</a>",<br>
                "algorithm": "HMAC-SHA256"<br>
            }<br>
        ]<br>
    }<br>
}<br>
<br>
because if the original parameters without a signature can be following :<br>
<br>
{<br>
    "oauth_token": "asdfjklsdfjwoIjfk",<br>
    "not_after": 12345678,<br>
    "user_id": 1223,<br>
    "profile_id": 1223<br>
}<br>
<br>
>From the programming effort's point of view, it doesn't make any difference.<br>
But JSON text looks simpler.<br>
<br>
We don't have to define holding parameter name as "env" because JSS<br>
JSON object MUST have<br>
"type". In Python, this code can be tell whether a JSON is JSS-envloped or not:<br>
<br>
>>> j=simplejson.loads( source_json_text )<br>
>>> True in [  type(v)==dict and v.has_key('type') and v['type'] == "<a href="http://jsonenc.info/jss/" target="_blank">http://jsonenc.info/jss/</a>" for k,v in j.iteritems()]<br>
True<br>
<br>
A drawback is a fact that "env" dosen't look literally an envelope.<br>
<br>
---<br>
hideki<br>
_______________________________________________<br>
Openid-specs-ab mailing list<br>
<a href="mailto:Openid-specs-ab@lists.openid.net" target="_blank">Openid-specs-ab@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-specs-ab" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-ab</a><br>
</blockquote></div><br><br clear="all"><br></div></div>-- <br>Nat Sakimura (=nat)<br><a href="http://www.sakimura.org/en/" target="_blank">http://www.sakimura.org/en/</a><br><a href="http://twitter.com/_nat_en" target="_blank">http://twitter.com/_nat_en</a><br>

</div>
</blockquote></div><br><br clear="all"><br>-- <br>Nat Sakimura (=nat)<br><a href="http://www.sakimura.org/en/">http://www.sakimura.org/en/</a><br><a href="http://twitter.com/_nat_en">http://twitter.com/_nat_en</a><br>
</div>