<div><br></div>
                 
                <p style="color: #A0A0A8;">On Wednesday, January 30, 2013 at 10:48 AM, Eric Windisch wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Times; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: 13px; "><span style="font-family: Helvetica; font-size: 13px; "><blockquote type="cite" style="border-left-style: solid; border-left-color: rgb(0, 33, 98); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; color: rgb(0, 33, 98); margin-left: 0px; padding-left: 10px; padding-right: 0px; margin-right: 0px; "><div><span><div><br class="Apple-interchange-newline">Message signing requires that the signed message is a string including at least some bits being serialized. That message will need to include the actual message_data, but also the topic, a timestamp, ttl, etc. These are pieces that will need to become part of the envelope. They need to be either serialized along with the message data or concatenated with the message data to be signed. Serializing these pieces together seems far more optimal. However, keep in mind that the message signature chain will need to be separate.</div></span></div></blockquote></span></span><br class="Apple-interchange-newline"></span></blockquote><div>To make further progress on the trusted messaging / rpc blueprint, these considerations will have to be resolved.</div><div><br></div><div>Presently, serialize_msg(msg) does not accept a topic, a timestamp, or a ttl. These are vital for the trusted messaging blueprint. It does not seem prudent to include these in the message itself, unless wrapped in a larger dict, either before being passed to serialize_msg, or as part of that method itself.</div><div><br></div><div>The new envelope would become:</div><div><br></div><div>     sub_envelope = {</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>'topic': topic,</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>'ttl': ttl, 'timestamp': timestamp   # should this just be 'expires_at' ??</div><div><span class="Apple-tab-span" style="white-space:pre">         </span>'msg': raw_msg</div><div>     }</div><div><div>     jsonmsg = jsonutils.dumps(sub_envelope)</div></div><div><div>     msg = {_VERSION_KEY: _RPC_ENVELOPE_VERSION,</div><div>                _MESSAGE_KEY: jsonmsg,</div><div>                _SIGNATURE_KEY: jsonutils.dumps(sign_msg(jsonmsg)),</div><div>                _SIGNATURE_ID_KEY: get_crypto_id(),</div><div>                _SIGNATURE_PROTO_KEY: get_crypto_ver() }</div></div><div><br></div><div>The deserialize method would verify the key, deserialize jsonmsg, and return it (much as it does now).</div><div><br></div><div>Hash key names and the methods are just for the sake of example. I am intentionally avoiding nesting anything inside 'msg' per the concerns highlighted earlier (the idea of avoiding double serialization by zipping this dict).</div><div><br></div><div>I'm looking for thoughts and feedback,</div><div><br></div><div>Thank you,</div><div>Eric Windisch </div>
                 
                <div>
                    <br>
                </div>