Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CryptoCon's CryptoV1 CryptoLibrary Blowfish Bug

0 views
Skip to first unread message

Magnus Jansson

unread,
May 27, 1997, 3:00:00 AM5/27/97
to

Hi.
I have downloaded CryptoCon's Crypto library for Delphi, but there seems to
be serious bugs
when I try block cipher using Blowfish.
Have anyone else encountered this problem and fixed it?
How?
Thanks
Magnus Jansson

George Silva

unread,
May 29, 1997, 3:00:00 AM5/29/97
to Magnus Jansson

Hi there,

Although the code is free and the source is there, the crypto library is a bit
buggy and only useful "as an example". I too found bugs and even sent e-mail
to the author but never heard a thing (thats ok, people are busy, i know :-).
Your best bet is to dig in to the code and pull out the stuff you want and
create your own encryption class.

I did this for the Blowfish class and it works in all modes. Discalimer: It
works correctly as far as i know :-) I've yet to pickup Bruce Scheiners(sp?)
book on encryption to verify it *fully* - in other words, i'm assuming the
C/C++ to Pascal translation done by CryptoCon is correct. I just saw how they
did it then *re-wrote* a new class with cleaned up code (i ONLY took the
actual encryption algorithms to Blowfish, nothing else). Incidentally, the
Encryption book has this code in C/C++ *printed* in the text but without a
disk! The disk costs an extra $40!

I can offer you pre-compiled units but not the full source code to my class
(sorry - this policy may change).

Cheers,
George.---

Rob(t.) Brannan

unread,
May 30, 1997, 3:00:00 AM5/30/97
to

Does Delphi have a variable that keeeps its value in between
procedure or function calls. The variable would be a local variable
to the procedure, declared inside it and would retain its value between
calls.

Kirk B. Spadt

unread,
May 30, 1997, 3:00:00 AM5/30/97
to

In article <5mlh06$7...@sjx-ixn10.ix.netcom.com>,
ro...@ix.netcom.com(Rob(t.) Brannan) wrote:

The const declaration provides what you are looking for:

procedure DoSomething;
const
BeenThereDoneThat: Boolean = False;
begin
if not BeenThereDoneThat then begin
DoThisOnce;
BeenThereDoneThat := True;
end;
DoThisEachTime;
end;

-Kirk


------------------------------------------------
Kirk B. Spadt ksp...@keyware.com
Keyware Systems, Inc.
570 Lindsey Drive (610) 964-9530
Radnor, PA 19087 (610) 964-0543 fax

Brent Marshall

unread,
May 30, 1997, 3:00:00 AM5/30/97
to

On Thu, 29 May 1997 18:33:20 -0400, George Silva
<sna...@global2000.net> wrote:

<SNIP>


>works correctly as far as i know :-) I've yet to pickup Bruce Scheiners(sp?)
>book on encryption to verify it *fully* - in other words, i'm assuming the
>C/C++ to Pascal translation done by CryptoCon is correct. I just saw how they
>did it then *re-wrote* a new class with cleaned up code (i ONLY took the
>actual encryption algorithms to Blowfish, nothing else). Incidentally, the
>Encryption book has this code in C/C++ *printed* in the text but without a
>disk! The disk costs an extra $40!

You do not have to pay to get the source code in Schneier's excellent
book, Applied Cryptography. For Blowfish, visit the Blowfish page on
Schneier's Web site (http://www.counterpane.com/blowfish.html). The
other source code in the book is also available on the Net. A search
for prior Usenet postings discussing the Applied Cryptography source
code disks should give you some sites.

Regards, Brent
-----
Brent Marshall
bren...@erols.com

David Hillman

unread,
May 31, 1997, 3:00:00 AM5/31/97
to

In article <5mlk36$a0i$2...@fish.vf.pond.com>,

Kirk B. Spadt <ksp...@keyware.com> wrote:
>In article <5mlh06$7...@sjx-ixn10.ix.netcom.com>,
> ro...@ix.netcom.com(Rob(t.) Brannan) wrote:
>
>>Does Delphi have a variable that keeeps its value in between
>>procedure or function calls. The variable would be a local variable
>>to the procedure, declared inside it and would retain its value between
>>calls.
>
>The const declaration provides what you are looking for:
>
>procedure DoSomething;
>const
> BeenThereDoneThat: Boolean = False;
>begin
> if not BeenThereDoneThat then begin
> DoThisOnce;
> BeenThereDoneThat := True;
> end;
> DoThisEachTime;
>end;

This is news to me. In the Delphi 2.0 Object Pascal Language Guide they
repeatedly insist that constants cannot be changed. But then I see that
in a note on p. 53 regarding the $J compiler directive they do admit to
this. (You need {$J+} to get writable typed constants.)

Why hide this feature away? And then why do they say that this is only
there for backward compatibility, and that they don't recommend its use
for new programs? They say that writable typed constants are
essentially initialized variables. But without them the only way you
can initialize variables is if they are global. Of course you can achieve
the effect of a static local variable using objects. Is this their
intent (to get people to use objects)? Or were they worried about the
idea that a "constant" can be changed? (And do they intend to phase this
feature out?)

Sundial Services

unread,
Jun 1, 1997, 3:00:00 AM6/1/97
to


It is not a feature that I would use. If you declare variables in the
implementation part of a unit they should be sufficiently permanent.

Lee Jung Wooc

unread,
Jun 2, 1997, 3:00:00 AM6/2/97
to

On 1 Jun 1997 13:23:01 -0700, no-r...@sundialservices.com (Sundial
Services) wrote:

....


>>idea that a "constant" can be changed? (And do they intend to phase this
>>feature out?)
>
>
>It is not a feature that I would use. If you declare variables in the
>implementation part of a unit they should be sufficiently permanent.
>
>


may be sufficient... but not necessary. current pascal language
absolutely lacks static variable both in static and semantic. can
const delaration have an array?

can be expected as new feature in new pascal language in another new
delphi 3 or 4. and the keyword var should be used to denote static
variable and another new keyword for stack variable(auto or local or
push or volatile or ephemeral or something).

0 new messages