Subject: [Simple] MSRP URI fingerprint parameter syntax

From: "Christer Holmberg" <[email-masked]>
Date: Wed, 27 May 2009 14:46:54 +0200

Hi,

<brainstorming>

IF we would extend the MSRP URI, in order to allow the transport of the
fingerprint value, below is some thinking about the syntax.

Note, that currently the proposal is not to replace the fingerprint
attribute with this parameter in the SDP. The idea is to be able to
provide the fingerprint to MSRP relays by using the parameter in the
MSRP AUTH message.

*ABNF in RFC4975*
=================

MSRP-URI 		=  msrp-scheme "://" authority ["/" session-id]
";" transport *( ";" URI-parameter) ;authority as defined in RFC3986 
msrp-scheme 	=  "msrp" / "msrps" session-id = 1*( unreserved / "+" /
"=" / "/" ) 			;unreserved as defined in RFC3986 
transport 		=  "tcp" / 1*ALPHANUM 
URI-parameter 	=  token ["=" token] 

token             =  1*(alphanum / "-" / "." / "!" / "%" / "*" / "_" /
"+" / "`" / "'" / "~" )

*New ABNF for fingerprint uri parameter (based on ABNF in RFC 4572)*
====================================================================

The easiest way would of course be to re-use the attribute syntax:

URI-parameter	=  fingerprint
fingerprint		=  "fingerprint" ":" hash-func SP fingerprint

hash-func         =  "sha-1" / "sha-224" / "sha-256" / "sha-384" /
"sha-512" / "md5" / "md2" / token 	;Additional hash functions can
only come from updates to RFC 3279
fingerprint       =  2UHEX *(":" 2UHEX)
;Each byte in upper-case hex, separated by colons.
UHEX              =  DIGIT / %x41-46
;A-F uppercase

However, token does now allow the usage of ":" and SP, so it doesn't
work.

So, another proposal, which is also more parameter-type, would be to
either use *two different uri parameters*:

URI-parameter	=  fingerprint-hash / fingerprint-value
fingerprint-hash  =  "sha-1" / "sha-224" / "sha-256" / "sha-384" /
"sha-512" / "md5" / "md2" / token 	;Additional hash functions can
only come from updates to RFC 3279
Fingerprint-value =  2UHEX *(":" 2UHEX)
;Each byte in upper-case hex, separated by colons.
UHEX              =  DIGIT / %x41-46
;A-F uppercase

</brainstorming>

Regards,

Christer