Certificate verification fails with latest commits (ECDSA)

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

 



Hi Steve,

thanks a lot for your quick response and for the clarification.


> Von: "Dr. Stephen Henson" <steve at openssl.org>
> The MSB is effectively a sign bit but the explanation in the standard 
isn't
> very clear. If you take your example of GTS001.pem and do:
> 
>   openssl asn1parse -in GTS001.pem -strparse 367 -out sig.der
> 
> It will parse out the Ecdsa-Sig-Value field and you get:
> 
>     0:d=0  hl=2 l=  52 cons: SEQUENCE 
>     2:d=1  hl=2 l=  24 prim: INTEGER 
> :-0739E1C1762E2E3E1D4480425633EA0BB669CE784DC3ACCB
>    28:d=1  hl=2 l=  24 prim: INTEGER 
> :-332658917A3B05831D91176C0512CF91C617819E1A7CF14B
> 
> Note the two - signs.

> [...]

> What this is saying is that if the MSB is one you subtract that value 
from
> the result.
> 
> For example 0x80 without the MSB represents '0' the MSB represents 0x80 
and
> you subtract that resulting in -0x80. 

Well, yes, that's how two's complement works.

> That's why you need the 0 padding byte prepended if the MSB is one.

The actual problem is that I have totally ignored the mathematics of ECs 
and it only occured to me when I read your reply that the values of r and 
s, as far as i understand now, can never be negative.

Not so good news for our certificates...

Thanks again!

Jan


Jan Weil
Physikalisch-Technische Bundesanstalt
Arbeitsgruppe 8.52 Datenkommunikation und -sicherheit
Abbestr. 2 - 12
10587 Berlin
Telefon: (+49 30) 34 81 - 77 64
Fax: (+49 30) 34 81 - 69 77 64
Email: jan.weil at ptb.de


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

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux