Re: libgcrypt interface

[email protected] (Kurt Starsinic) Mon, 6 Jan 2003 17:26:19 -0500
Newsgroups perl.crypto
Message-ID <[email protected]>
On Jan 04, Robert Bihlmeyer wrote:
> Dave Paris <[email protected]> writes:
> 
> > Please keep the module in the Crypt:: tree, perhaps as
> > Crypt::GCrypt::*. Top-level module namespace is typically generic,
> > like Net::, Math::, etc. regardless of the libraries implemented by
> > their constituents.
> 
> Looking at the module list, I can't believe this is a universal rule
> -- there are too many exceptions: DCE, Fwctl, NetAddr, NetPacket, RPC,
> SNMP, etc. Interfaces to external libraries/programs are more often on
> first level than not: GTop, Mon, Cdk, Curses, Shockwave, GnuPG, PGP,
> RPM, Gimp, any many more.

    He didn't say it was a universal rule.  It's a guideline.  And it's
one we try to enforce, with two prominent exceptions.  We encourage the
top level for namespaces that are likely to have many modules under them,
like Apache:: (instead of Net::) and Crypt:: (instead of Text::, Data::,
or Math::).  And we also tolerate legacy namespaces, because we can't
change the past.

> Aaand ... Crypt::GCrypt sucks rocks, aesthetically.

    You could always change the part to the *right* of the "::" . . . .

> Crypt itself is a big hodge-podge. Symmetric (Blowfish, DES, IDEA) and
> asymmetric (ElGamal, RSA) ciphers, next to modes (CBC, ECB), along
> with program/library interfaces (PGP, GPG, OpenSSL). GCrypt will
> include digest as well, which seem to have their place in Digest, not
> Crypt. Sigh.

    I don't see that as a problem.  GCrypt is meant to be a complete
cryptographic library, so it's understandable that it will provide some
features that, were they in stand-alone modules, would be better located
in other namespaces.

    - Kurt