<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Aleksey,<br>
<br>
Aleksey Sanin wrote:<br>
<blockquote type="cite" cite="mid421A9BFF.9050802@aleksey.com">
  <blockquote type="cite">What I suggest is to add minus sign to the
string format (no matter what base it is) when a bn is negative. When
creating bn from this string, the minus sign can be used to help
converting back to the original bn.
    <br>
  </blockquote>
Yes, I am thinking along the same lines...
  <br>
  <br>
  <blockquote type="cite"><br>
Anyway, I just hope any bn in string format is only used in purpose of
displaying, otherwise, the minus sign may cause some problem.
    <br>
  </blockquote>
Unfortunately, no. The bn strng is written in xml signature as
  <br>
certificate serial number. And one needs to know how to convert
  <br>
a bn to decimal string and back.
</blockquote>
It doesn't matter. When I say "to add minus sign", I don't mean adding
minus sign directly to the unsigned string format, instead, we should
use the correct <big>"<font size="-1"><big>complement" representation
for a negative. </big></font><br>
<font size="-1"><big><br>
For instance, for a bn "fe", it should be represented as "-02" in
string format, not "-254".<br>
</big></font></big>
<p></p>
<blockquote type="cite" cite="mid421A9BFF.9050802@aleksey.com"><br>
  <br>
  <blockquote type="cite">Moreover, I also think the leading zero
prefix should be reserved converting between bn and string. For
instance, when converting a bn "01" to a string, the result should be
"01", instead of "1". Only in this way, when converting back to a bn,
the leading zero can be recoveredd.
    <br>
  </blockquote>
Oh, I am really not sure about this. How this would work for decimal
  <br>
string and hex in memory representations? Will it always be 1&lt;-&gt;1
  <br>
conversion?
</blockquote>
Can a bn like "00 00 01" can be a legal serial number? If so (<b>assumption
#1</b>), I think the leading zero should be reserved in string format,
this can guarantee when converting back to a bn, it is "00 00 01" again.<br>
Why? I think it is much more possible for MSCrypto/NSS to find the cert
with "00 00 01" than using "01". (<b>assumption #2</b>, I am not so
sure about this.)<br>
Anyway, if any of my above assumptions is incorrect, just forget it. I
will try to do some test soon.<br>
<br>
Regarding to the memory representations, I think the purpose of
reserving the leading zero is to ensure that a string can be converted
back to the exact original bn, so we can find some rules to make the
convertion reversible. <br>
<br>
Michael<br>
<br>
<br>
<blockquote type="cite" cite="mid421A9BFF.9050802@aleksey.com"><br>
  <br>
Aleksey
  <br>
</blockquote>
</body>
</html>