From: jeremy at cnri.reston.va.us (Jeremy Hylton)
Date: Tue,  6 Apr 1999 13:24:16 -0400 (EDT)
Subject: SNMPy update
In-Reply-To: <3709C8BE.4257C9F1@lemburg.com>
References: <7e1hiq$a71$1@Starbase.NeoSoft.COM>
	<7ear25$ksf$1@news-sj-3.cisco.com>
	<14089.11820.416453.80124@bitdiddle.cnri.reston.va.us>
	<3709C8BE.4257C9F1@lemburg.com>
Message-ID: <14090.16807.950025.496495@bitdiddle.cnri.reston.va.us>
Content-Length: 2162
X-UID: 1574                                                  

>>>>> "MAL" == M -A Lemburg <mal at lemburg.com> writes:

  MAL> Jeremy Hylton wrote:
  >>  I'll second your sentiment!  I did some work on an X.509 library
  >> written entirely in Python.  Like you friend's SNMP code, it will
  >> probably never be released; I don't have time to finish it nor
  >> did I expect that I'd want to release it given the export control
  >> hassles.

  MAL> Just want to note that SSLeay/OpenSSL includes a pretty
  MAL> complete X.509 lib and also routines to do ASN.1 encoding an
  MAL> decoding.  The main argument for using OpenSSL in this context
  MAL> is, of course, that no export control restrictions apply.

Absolutely!  There are a number of good reasons for using OpenSSL
other than export control as well.  OpenSSL buys you all of SSL as
well as a lot of X.509 (and more of that every day).  A Python
application built on a SWIGed OpenSSL, however, has a *lot* of C code
underneath it -- with all the problems a large C program has.  A pure
Python implementation of X.509 could be easier to understand, debug,
and maintain.

  >> However, it seemed clear to me that an ASN.1 compiler could be
  >> written to generate the encode/decode routines.  If someone is
  >> interested in that, I've got some design notes and rough code on
  >> how to do the encode/decode and on how to build a backend for
  >> SNACC.  (A free-ish ASN.1 compiler; the only one?)

  MAL> Not sure what you mean with "ASN.1" compiler. If you want a
  MAL> compiler that does ASN.1 description -> Python function calling
  MAL> de/encoding routines kind of thing, then I guess the ASN.1
  MAL> stuff in OpenSSL could help you getting started quite fast.

It seems awfully hard to separate the ASN.1 specific stuff out of
OpenSSL.  It uses it owns I/O abstractions and some moderately hair C
data structures to manage the results.  It's a lot simpler to just
write the encode/decode routines in pure Python.

  MAL> Note that I have a project running with the intention to wrap
  MAL> OpenSSL in an OO manner called mxCrypto (see the link below).

Looking forward to seeing it.  When do you think you might have an
alpha release ready?

Jeremy




