What happens when version 1.3 of the protocol comes out? We have to add support here, so it's probably fine that we're matching == and not >= against '1.2' but we shouldn't fall out the bottom here. That is, there should be an else statement that provides an error and raises an exception.

Same for where we're matching the sign_algorithm, we should raise an error if we're dealing with an algorithm that we don't support.