[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Canonical form for signing S-expressions



The only problem with this is that you now have an ambiguous recursion
problem.  How do you know when:
	30:(1:a,1:b,16:(2:cd,1:e,3:fgh),),

means
	'((1:a,1:b,16:(2:cd,1:e,3:fgh),))
or
	(a b (cd e fgh)

Both of these would encode to the same notation in your example.

-derek

Alan Barrett <apb@iafrica.com> writes:

> For on-the-wire encoding, there might be some advantage to pre-declaring
> the length of each parenthesised group (in the hopes of making memory
> allocation easier), something like this: 
> 
> 	(a b (cd e fgh)) 
> 	30:(1:a,1:b,16:(2:cd,1:e,3:fgh),),
> 
> Although the canonical form for signature does not need to be the same
> as an on-the-wire form, it seems to me that making them the same would
> be convenient from a code-sharing point of view.
> 
> I don't have strong opinions on decimal versus hex, but I do like the
> robustness and legibility that are added by having a comma after the end
> of the counted string in Dan Bernstein's netstrings proposal. 
> 
> --apb (Alan Barrett)
> 

-- 
       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/      PP-ASEL      N1NWH
       warlord@MIT.EDU                        PGP key available

Follow-Ups: References: