[BUG] DSA failure in LargePositiveInteger in #new: <primitive: 71>

JArchibald at aol.com JArchibald at aol.com
Tue May 30 17:56:50 UTC 2000


=> 5/30/00 12:00:30 PM EDT, arning at charm.net =>
<< As far back as Squeak 2.5, I get (true '1' false ). >>

Bob,

I get the result for the evaluation (Squeak2.7 at cs#2210 -- VM => '(2000.05.24 
14:00:36 436,736) Squeak.exe' on Windows base: no question about Integer 
built-in module):
--------------------------------------------------
zz _ LargePositiveInteger new: 1.
zz digitAt: 1 put: 1.
a _ zz = 1. 
b _ zz printString. 
c _ zz = 1. 
{a. b. c. zz}
    => (false '1' false 0 )
--------------------------------------------------
where zz is a LargePositiveInteger of size 1. I take this to be a bug in 
LargePositiveInteger>>digitAt:put:, but I don't quite know how to grok in 
fullness the rest of your comments,

where in the case of evaluating
--------------------------------------------------
zz _ Integer new: 1.
zz digitAt: 1 put: 1.
a _ zz = 1. 
b _ zz printString. 
c _ zz = 1. 
{a. b. c. zz}
--------------------------------------------------
I get an error:
    Error: Integer cannot have variable sized instances
which seems to agree with the code for Integer>>digitAt:put:

When re-evaluating the DSA test, I am getting (of course) some very big 
numbers. Not as big as the tests I was hinting at in previous E-mails, but 
big enough. I am trying to compose a run-down on this test. In any case, the 
body of DigitalSignatureAlgorithm>>remainder:mod: is attempting to do an 
Integer>>new: with a negative parameter in statement
    quotient _ LargePositiveInteger new: remainder digitLength - divisor 
digitLength.
There are a number of numeric operations in that routine prior to this 
statement, and my suspicion is that one of them is behaving badly. I'll have 
an E-mail up in a few minutes.

Sincerely lost,
Jerry.
____________________________

Jerry L. Archibald
systemObjectivesIncorporated
____________________________





More information about the Squeak-dev mailing list