From: Andy Polyakov <[email protected]>
Date: Sun, 21 Oct 2012 13:05:09 +0200

>> Therefore, for systems that don't have support for a biased 64-bit
>> stack in 32-bit processes, you should check after every operation.
> 
> But as we seem to agree that code with sequence retry is worth
> implementing for 64-bit [and biased stack] account, it would be
> trivial to check the above theory in 32-bit process context ;-)

Ok, and I agree with said 32-bit theory :-)

> Question was if it *always* blows away the top window. So that it can
> be used as canary for early exit even from between instructions in the
> sequence. Another question is following. Imagine I traversed register
> windows down to one with result. Imagine that so far all windows were
> found intact. Does it guarantee that even bottom window is intact? The
> one holding M? The question is if I can save the result without
> examining the bottom window. On the other hand I can copy part of the
> result residing in integer registers to floating point register bank
> (yes, zapping M), get down to bottom window and then decide if result
> is valid or not.

Yes, this floating point idea is feasible and in fact cheap on T4
and later by using movxtod instructions.

>> BTW, we could create even a JIT compiler for this.
> 
> While it would be totally cool, I'd prefer to adhere to static
> code. At the very least auto-generated code would be impossible to
> FIPS-validate.

Understood.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to