]> git.saurik.com Git - apple/security.git/blobdiff - SecurityASN1/c++/appleoids.cpp
Security-163.tar.gz
[apple/security.git] / SecurityASN1 / c++ / appleoids.cpp
diff --git a/SecurityASN1/c++/appleoids.cpp b/SecurityASN1/c++/appleoids.cpp
deleted file mode 100644 (file)
index 3fe998b..0000000
+++ /dev/null
@@ -1,3361 +0,0 @@
-//   NOTE: this is a machine generated file--editing not recommended
-//
-// appleoids.cpp - class member functions for ASN.1 module APPLE-OIDS
-//
-//   This file was generated by snacc on Mon Apr 22 22:34:19 2002
-//   UBC snacc written by Mike Sample
-//   A couple of enhancements made by IBM European Networking Center
-
-
-#include "asn-incl.h"
-#include "sm_vdatypes.h"
-#include "sm_x501ud.h"
-#include "sm_x411ub.h"
-#include "sm_x411mtsas.h"
-#include "sm_x501if.h"
-#include "sm_x520sa.h"
-#include "sm_x509cmn.h"
-#include "sm_x509af.h"
-#include "sm_x509ce.h"
-#include "pkcs1oids.h"
-#include "pkcs9oids.h"
-#include "sm_cms.h"
-#include "sm_ess.h"
-#include "pkcs7.h"
-#include "pkcs8.h"
-#include "appleoids.h"
-#include "pkcs10.h"
-
-//------------------------------------------------------------------------------
-// value defs
-
-
-//------------------------------------------------------------------------------
-// class member definitions:
-
-DSABsafeParams::DSABsafeParams()
-{
-}
-
-DSABsafeParams::DSABsafeParams (const DSABsafeParams &)
-{
-  Asn1Error << "use of incompletely defined DSABsafeParams::DSABsafeParams (const DSABsafeParams &)" << endl;
-  abort();
-}
-
-DSABsafeParams::~DSABsafeParams()
-{
-}
-
-AsnType *DSABsafeParams::Clone() const
-{
-  return new DSABsafeParams;
-}
-
-AsnType *DSABsafeParams::Copy() const
-{
-  return new DSABsafeParams (*this);
-}
-
-#if SNACC_DEEP_COPY
-DSABsafeParams &DSABsafeParams::operator = (const DSABsafeParams &that)
-#else // SNACC_DEEP_COPY
-DSABsafeParams &DSABsafeParams::operator = (const DSABsafeParams &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    keySizeInBits = that.keySizeInBits;
-    p = that.p;
-    q = that.q;
-    g = that.g;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DSABsafeParams &DSABsafeParams::operator = (const DSABsafeParams &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DSABsafeParams::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = g.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = q.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = p.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = keySizeInBits.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DSABsafeParams::BEncContent
-
-
-void DSABsafeParams::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    keySizeInBits.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-100);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    p.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-101);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    q.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-102);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    g.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-103);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-104);
-  }
-  else
-    return;
-} // DSABsafeParams::BDecContent
-
-AsnLen DSABsafeParams::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DSABsafeParams::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DSABsafeParams::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-105);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DSABsafeParams::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "keySizeInBits ";
-    os << keySizeInBits;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "p ";
-    os << p;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "q ";
-    os << q;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "g ";
-    os << g;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DSABsafeParams::Print
-
-
-DHParameter::DHParameter()
-{
-  privateValueLength = NULL;
-}
-
-DHParameter::DHParameter (const DHParameter &)
-{
-  Asn1Error << "use of incompletely defined DHParameter::DHParameter (const DHParameter &)" << endl;
-  abort();
-}
-
-DHParameter::~DHParameter()
-{
-  delete privateValueLength;
-}
-
-AsnType *DHParameter::Clone() const
-{
-  return new DHParameter;
-}
-
-AsnType *DHParameter::Copy() const
-{
-  return new DHParameter (*this);
-}
-
-#if SNACC_DEEP_COPY
-DHParameter &DHParameter::operator = (const DHParameter &that)
-#else // SNACC_DEEP_COPY
-DHParameter &DHParameter::operator = (const DHParameter &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    prime = that.prime;
-    base = that.base;
-    if (that.privateValueLength)
-    {
-      if (!privateValueLength)
-        privateValueLength = new BigIntegerStr;
-      *privateValueLength = *that.privateValueLength;
-    }
-    else
-    {
-      delete privateValueLength;
-      privateValueLength = NULL;
-    }
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DHParameter &DHParameter::operator = (const DHParameter &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DHParameter::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-  if (NOT_NULL (privateValueLength))
-  {
-    l = privateValueLength->BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-  }
-
-    l = base.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = prime.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DHParameter::BEncContent
-
-
-void DHParameter::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    prime.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-106);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    base.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    if (seqBytesDecoded == elmtLen0)
-    {
-      bytesDecoded += seqBytesDecoded;
-      return;
-    }
-    else
-    {
-      tag1 = BDecTag (b, seqBytesDecoded, env);
-
-      if ((elmtLen0 == INDEFINITE_LEN) && (tag1 == EOC_TAG_ID))
-      {
-        BDEC_2ND_EOC_OCTET (b, seqBytesDecoded, env)
-        bytesDecoded += seqBytesDecoded;
-        return;
-      }
-    }
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-107);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    privateValueLength = new BigIntegerStr;
-    privateValueLength->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-108);
-  }
-  else
-    return;
-} // DHParameter::BDecContent
-
-AsnLen DHParameter::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DHParameter::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DHParameter::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-109);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DHParameter::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "prime ";
-    os << prime;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "base ";
-    os << base;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (privateValueLength))
-  {
-    os << ","<< endl;
-    Indent (os, indentG);
-    os << "privateValueLength ";
-    os << *privateValueLength;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "privateValueLength ";
-    os << "-- void --";
-    os << endl;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DHParameter::Print
-
-
-FEECurveParameters::FEECurveParameters()
-{
-  basePrime = NULL;
-}
-
-FEECurveParameters::FEECurveParameters (const FEECurveParameters &)
-{
-  Asn1Error << "use of incompletely defined FEECurveParameters::FEECurveParameters (const FEECurveParameters &)" << endl;
-  abort();
-}
-
-FEECurveParameters::~FEECurveParameters()
-{
-  delete basePrime;
-}
-
-AsnType *FEECurveParameters::Clone() const
-{
-  return new FEECurveParameters;
-}
-
-AsnType *FEECurveParameters::Copy() const
-{
-  return new FEECurveParameters (*this);
-}
-
-#if SNACC_DEEP_COPY
-FEECurveParameters &FEECurveParameters::operator = (const FEECurveParameters &that)
-#else // SNACC_DEEP_COPY
-FEECurveParameters &FEECurveParameters::operator = (const FEECurveParameters &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    primeType = that.primeType;
-    curveType = that.curveType;
-    q = that.q;
-    k = that.k;
-    m = that.m;
-    a = that.a;
-    bb = that.bb;
-    c = that.c;
-    x1Plus = that.x1Plus;
-    x1Minus = that.x1Minus;
-    cOrderPlus = that.cOrderPlus;
-    cOrderMinus = that.cOrderMinus;
-    x1OrderPlus = that.x1OrderPlus;
-    x1OrderMinus = that.x1OrderMinus;
-    if (that.basePrime)
-    {
-      if (!basePrime)
-        basePrime = new BigIntegerStr;
-      *basePrime = *that.basePrime;
-    }
-    else
-    {
-      delete basePrime;
-      basePrime = NULL;
-    }
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined FEECurveParameters &FEECurveParameters::operator = (const FEECurveParameters &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-FEECurveParameters::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-  if (NOT_NULL (basePrime))
-  {
-    l = basePrime->BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-  }
-
-    l = x1OrderMinus.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = x1OrderPlus.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = cOrderMinus.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = cOrderPlus.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = x1Minus.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = x1Plus.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = c.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = bb.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = a.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = m.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = k.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = q.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = curveType.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = primeType.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // FEECurveParameters::BEncContent
-
-
-void FEECurveParameters::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    primeType.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-110);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    curveType.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-111);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    q.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-112);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    k.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-113);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    m.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-114);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    a.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-115);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    bb.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-116);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    c.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-117);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    x1Plus.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-118);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    x1Minus.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-119);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    cOrderPlus.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-120);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    cOrderMinus.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-121);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    x1OrderPlus.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-122);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    x1OrderMinus.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    if (seqBytesDecoded == elmtLen0)
-    {
-      bytesDecoded += seqBytesDecoded;
-      return;
-    }
-    else
-    {
-      tag1 = BDecTag (b, seqBytesDecoded, env);
-
-      if ((elmtLen0 == INDEFINITE_LEN) && (tag1 == EOC_TAG_ID))
-      {
-        BDEC_2ND_EOC_OCTET (b, seqBytesDecoded, env)
-        bytesDecoded += seqBytesDecoded;
-        return;
-      }
-    }
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-123);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    basePrime = new BigIntegerStr;
-    basePrime->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-124);
-  }
-  else
-    return;
-} // FEECurveParameters::BDecContent
-
-AsnLen FEECurveParameters::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void FEECurveParameters::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "FEECurveParameters::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-125);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void FEECurveParameters::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "primeType ";
-    os << primeType;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "curveType ";
-    os << curveType;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "q ";
-    os << q;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "k ";
-    os << k;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "m ";
-    os << m;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "a ";
-    os << a;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "bb ";
-    os << bb;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "c ";
-    os << c;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "x1Plus ";
-    os << x1Plus;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "x1Minus ";
-    os << x1Minus;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "cOrderPlus ";
-    os << cOrderPlus;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "cOrderMinus ";
-    os << cOrderMinus;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "x1OrderPlus ";
-    os << x1OrderPlus;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "x1OrderMinus ";
-    os << x1OrderMinus;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (basePrime))
-  {
-    os << ","<< endl;
-    Indent (os, indentG);
-    os << "basePrime ";
-    os << *basePrime;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "basePrime ";
-    os << "-- void --";
-    os << endl;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // FEECurveParameters::Print
-
-
-DSAAlgorithmId::DSAAlgorithmId()
-{
-#if TCL
-  params = new DSABsafeParams;
-#else
-  params = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-}
-
-DSAAlgorithmId::DSAAlgorithmId (const DSAAlgorithmId &)
-{
-  Asn1Error << "use of incompletely defined DSAAlgorithmId::DSAAlgorithmId (const DSAAlgorithmId &)" << endl;
-  abort();
-}
-
-DSAAlgorithmId::~DSAAlgorithmId()
-{
-  delete params;
-}
-
-AsnType *DSAAlgorithmId::Clone() const
-{
-  return new DSAAlgorithmId;
-}
-
-AsnType *DSAAlgorithmId::Copy() const
-{
-  return new DSAAlgorithmId (*this);
-}
-
-#if SNACC_DEEP_COPY
-DSAAlgorithmId &DSAAlgorithmId::operator = (const DSAAlgorithmId &that)
-#else // SNACC_DEEP_COPY
-DSAAlgorithmId &DSAAlgorithmId::operator = (const DSAAlgorithmId &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    algorithm = that.algorithm;
-    if (that.params)
-    {
-      if (!params)
-        params = new DSABsafeParams;
-      *params = *that.params;
-    }
-    else
-    {
-      delete params;
-      params = NULL;
-    }
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DSAAlgorithmId &DSAAlgorithmId::operator = (const DSAAlgorithmId &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DSAAlgorithmId::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-      BEncEocIfNec (b);
-    l = params->BEncContent (b);
-    l += BEncConsLen (b, l);
-
-    l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-    totalLen += l;
-
-    l = algorithm.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, OID_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DSAAlgorithmId::BEncContent
-
-
-void DSAAlgorithmId::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, OID_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    algorithm.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-126);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    params = new DSABsafeParams;
-    params->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-127);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-128);
-  }
-  else
-    return;
-} // DSAAlgorithmId::BDecContent
-
-AsnLen DSAAlgorithmId::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DSAAlgorithmId::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DSAAlgorithmId::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-129);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DSAAlgorithmId::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "algorithm ";
-    os << algorithm;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (params))
-  {
-    Indent (os, indentG);
-    os << "params ";
-    os << *params;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "params ";
-    os << "-- void --";
-    os << endl;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DSAAlgorithmId::Print
-
-
-FEEElGamalSignature::FEEElGamalSignature()
-{
-}
-
-FEEElGamalSignature::FEEElGamalSignature (const FEEElGamalSignature &)
-{
-  Asn1Error << "use of incompletely defined FEEElGamalSignature::FEEElGamalSignature (const FEEElGamalSignature &)" << endl;
-  abort();
-}
-
-FEEElGamalSignature::~FEEElGamalSignature()
-{
-}
-
-AsnType *FEEElGamalSignature::Clone() const
-{
-  return new FEEElGamalSignature;
-}
-
-AsnType *FEEElGamalSignature::Copy() const
-{
-  return new FEEElGamalSignature (*this);
-}
-
-#if SNACC_DEEP_COPY
-FEEElGamalSignature &FEEElGamalSignature::operator = (const FEEElGamalSignature &that)
-#else // SNACC_DEEP_COPY
-FEEElGamalSignature &FEEElGamalSignature::operator = (const FEEElGamalSignature &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    u = that.u;
-    pmX = that.pmX;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined FEEElGamalSignature &FEEElGamalSignature::operator = (const FEEElGamalSignature &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-FEEElGamalSignature::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = pmX.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = u.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // FEEElGamalSignature::BEncContent
-
-
-void FEEElGamalSignature::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    u.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-130);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    pmX.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-131);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-132);
-  }
-  else
-    return;
-} // FEEElGamalSignature::BDecContent
-
-AsnLen FEEElGamalSignature::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void FEEElGamalSignature::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "FEEElGamalSignature::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-133);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void FEEElGamalSignature::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "u ";
-    os << u;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "pmX ";
-    os << pmX;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // FEEElGamalSignature::Print
-
-
-FEEECDSASignature::FEEECDSASignature()
-{
-}
-
-FEEECDSASignature::FEEECDSASignature (const FEEECDSASignature &)
-{
-  Asn1Error << "use of incompletely defined FEEECDSASignature::FEEECDSASignature (const FEEECDSASignature &)" << endl;
-  abort();
-}
-
-FEEECDSASignature::~FEEECDSASignature()
-{
-}
-
-AsnType *FEEECDSASignature::Clone() const
-{
-  return new FEEECDSASignature;
-}
-
-AsnType *FEEECDSASignature::Copy() const
-{
-  return new FEEECDSASignature (*this);
-}
-
-#if SNACC_DEEP_COPY
-FEEECDSASignature &FEEECDSASignature::operator = (const FEEECDSASignature &that)
-#else // SNACC_DEEP_COPY
-FEEECDSASignature &FEEECDSASignature::operator = (const FEEECDSASignature &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    c = that.c;
-    d = that.d;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined FEEECDSASignature &FEEECDSASignature::operator = (const FEEECDSASignature &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-FEEECDSASignature::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = d.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = c.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // FEEECDSASignature::BEncContent
-
-
-void FEEECDSASignature::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    c.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-134);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    d.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-135);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-136);
-  }
-  else
-    return;
-} // FEEECDSASignature::BDecContent
-
-AsnLen FEEECDSASignature::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void FEEECDSASignature::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "FEEECDSASignature::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-137);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void FEEECDSASignature::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "c ";
-    os << c;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "d ";
-    os << d;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // FEEECDSASignature::Print
-
-
-FEEPublicKey::FEEPublicKey()
-{
-#if TCL
-  curveParams = new FEECurveParameters;
-#else
-  curveParams = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-  plusY = NULL;
-}
-
-FEEPublicKey::FEEPublicKey (const FEEPublicKey &)
-{
-  Asn1Error << "use of incompletely defined FEEPublicKey::FEEPublicKey (const FEEPublicKey &)" << endl;
-  abort();
-}
-
-FEEPublicKey::~FEEPublicKey()
-{
-  delete curveParams;
-  delete plusY;
-}
-
-AsnType *FEEPublicKey::Clone() const
-{
-  return new FEEPublicKey;
-}
-
-AsnType *FEEPublicKey::Copy() const
-{
-  return new FEEPublicKey (*this);
-}
-
-#if SNACC_DEEP_COPY
-FEEPublicKey &FEEPublicKey::operator = (const FEEPublicKey &that)
-#else // SNACC_DEEP_COPY
-FEEPublicKey &FEEPublicKey::operator = (const FEEPublicKey &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    version = that.version;
-    if (that.curveParams)
-    {
-      if (!curveParams)
-        curveParams = new FEECurveParameters;
-      *curveParams = *that.curveParams;
-    }
-    else
-    {
-      delete curveParams;
-      curveParams = NULL;
-    }
-    plusX = that.plusX;
-    minusX = that.minusX;
-    if (that.plusY)
-    {
-      if (!plusY)
-        plusY = new BigIntegerStr;
-      *plusY = *that.plusY;
-    }
-    else
-    {
-      delete plusY;
-      plusY = NULL;
-    }
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined FEEPublicKey &FEEPublicKey::operator = (const FEEPublicKey &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-FEEPublicKey::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-  if (NOT_NULL (plusY))
-  {
-    l = plusY->BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-  }
-
-    l = minusX.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = plusX.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-      BEncEocIfNec (b);
-    l = curveParams->BEncContent (b);
-    l += BEncConsLen (b, l);
-
-    l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-    totalLen += l;
-
-    l = version.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // FEEPublicKey::BEncContent
-
-
-void FEEPublicKey::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    version.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-138);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    curveParams = new FEECurveParameters;
-    curveParams->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-139);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    plusX.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-140);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    minusX.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    if (seqBytesDecoded == elmtLen0)
-    {
-      bytesDecoded += seqBytesDecoded;
-      return;
-    }
-    else
-    {
-      tag1 = BDecTag (b, seqBytesDecoded, env);
-
-      if ((elmtLen0 == INDEFINITE_LEN) && (tag1 == EOC_TAG_ID))
-      {
-        BDEC_2ND_EOC_OCTET (b, seqBytesDecoded, env)
-        bytesDecoded += seqBytesDecoded;
-        return;
-      }
-    }
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-141);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    plusY = new BigIntegerStr;
-    plusY->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-142);
-  }
-  else
-    return;
-} // FEEPublicKey::BDecContent
-
-AsnLen FEEPublicKey::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void FEEPublicKey::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "FEEPublicKey::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-143);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void FEEPublicKey::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "version ";
-    os << version;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (curveParams))
-  {
-    Indent (os, indentG);
-    os << "curveParams ";
-    os << *curveParams;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "curveParams ";
-    os << "-- void --";
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "plusX ";
-    os << plusX;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "minusX ";
-    os << minusX;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (plusY))
-  {
-    os << ","<< endl;
-    Indent (os, indentG);
-    os << "plusY ";
-    os << *plusY;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "plusY ";
-    os << "-- void --";
-    os << endl;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // FEEPublicKey::Print
-
-
-FEEPrivateKey::FEEPrivateKey()
-{
-#if TCL
-  curveParams = new FEECurveParameters;
-#else
-  curveParams = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-}
-
-FEEPrivateKey::FEEPrivateKey (const FEEPrivateKey &)
-{
-  Asn1Error << "use of incompletely defined FEEPrivateKey::FEEPrivateKey (const FEEPrivateKey &)" << endl;
-  abort();
-}
-
-FEEPrivateKey::~FEEPrivateKey()
-{
-  delete curveParams;
-}
-
-AsnType *FEEPrivateKey::Clone() const
-{
-  return new FEEPrivateKey;
-}
-
-AsnType *FEEPrivateKey::Copy() const
-{
-  return new FEEPrivateKey (*this);
-}
-
-#if SNACC_DEEP_COPY
-FEEPrivateKey &FEEPrivateKey::operator = (const FEEPrivateKey &that)
-#else // SNACC_DEEP_COPY
-FEEPrivateKey &FEEPrivateKey::operator = (const FEEPrivateKey &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    version = that.version;
-    if (that.curveParams)
-    {
-      if (!curveParams)
-        curveParams = new FEECurveParameters;
-      *curveParams = *that.curveParams;
-    }
-    else
-    {
-      delete curveParams;
-      curveParams = NULL;
-    }
-    privData = that.privData;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined FEEPrivateKey &FEEPrivateKey::operator = (const FEEPrivateKey &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-FEEPrivateKey::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = privData.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-      BEncEocIfNec (b);
-    l = curveParams->BEncContent (b);
-    l += BEncConsLen (b, l);
-
-    l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-    totalLen += l;
-
-    l = version.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // FEEPrivateKey::BEncContent
-
-
-void FEEPrivateKey::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    version.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-144);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    curveParams = new FEECurveParameters;
-    curveParams->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-145);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    privData.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-146);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-147);
-  }
-  else
-    return;
-} // FEEPrivateKey::BDecContent
-
-AsnLen FEEPrivateKey::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void FEEPrivateKey::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "FEEPrivateKey::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-148);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void FEEPrivateKey::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "version ";
-    os << version;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (curveParams))
-  {
-    Indent (os, indentG);
-    os << "curveParams ";
-    os << *curveParams;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "curveParams ";
-    os << "-- void --";
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "privData ";
-    os << privData;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // FEEPrivateKey::Print
-
-
-DSAPrivateKey::DSAPrivateKey()
-{
-#if TCL
-  dsaAlg = new DSAAlgorithmId;
-#else
-  dsaAlg = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-}
-
-DSAPrivateKey::DSAPrivateKey (const DSAPrivateKey &)
-{
-  Asn1Error << "use of incompletely defined DSAPrivateKey::DSAPrivateKey (const DSAPrivateKey &)" << endl;
-  abort();
-}
-
-DSAPrivateKey::~DSAPrivateKey()
-{
-  delete dsaAlg;
-}
-
-AsnType *DSAPrivateKey::Clone() const
-{
-  return new DSAPrivateKey;
-}
-
-AsnType *DSAPrivateKey::Copy() const
-{
-  return new DSAPrivateKey (*this);
-}
-
-#if SNACC_DEEP_COPY
-DSAPrivateKey &DSAPrivateKey::operator = (const DSAPrivateKey &that)
-#else // SNACC_DEEP_COPY
-DSAPrivateKey &DSAPrivateKey::operator = (const DSAPrivateKey &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    version = that.version;
-    if (that.dsaAlg)
-    {
-      if (!dsaAlg)
-        dsaAlg = new DSAAlgorithmId;
-      *dsaAlg = *that.dsaAlg;
-    }
-    else
-    {
-      delete dsaAlg;
-      dsaAlg = NULL;
-    }
-    privateKey = that.privateKey;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DSAPrivateKey &DSAPrivateKey::operator = (const DSAPrivateKey &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DSAPrivateKey::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = privateKey.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, OCTETSTRING_TAG_CODE);
-    totalLen += l;
-
-      BEncEocIfNec (b);
-    l = dsaAlg->BEncContent (b);
-    l += BEncConsLen (b, l);
-
-    l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-    totalLen += l;
-
-    l = version.BEncContent (b);
-    BEncDefLenTo127 (b, l);
-    l++;
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DSAPrivateKey::BEncContent
-
-
-void DSAPrivateKey::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    version.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-149);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    dsaAlg = new DSAAlgorithmId;
-    dsaAlg->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-150);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, OCTETSTRING_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, OCTETSTRING_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    privateKey.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-151);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-152);
-  }
-  else
-    return;
-} // DSAPrivateKey::BDecContent
-
-AsnLen DSAPrivateKey::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DSAPrivateKey::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DSAPrivateKey::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-153);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DSAPrivateKey::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "version ";
-    os << version;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (dsaAlg))
-  {
-    Indent (os, indentG);
-    os << "dsaAlg ";
-    os << *dsaAlg;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "dsaAlg ";
-    os << "-- void --";
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "privateKey ";
-    os << privateKey;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DSAPrivateKey::Print
-
-
-DSAPublicKey::DSAPublicKey()
-{
-#if TCL
-  dsaAlg = new DSAAlgorithmId;
-#else
-  dsaAlg = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-}
-
-DSAPublicKey::DSAPublicKey (const DSAPublicKey &)
-{
-  Asn1Error << "use of incompletely defined DSAPublicKey::DSAPublicKey (const DSAPublicKey &)" << endl;
-  abort();
-}
-
-DSAPublicKey::~DSAPublicKey()
-{
-  delete dsaAlg;
-}
-
-AsnType *DSAPublicKey::Clone() const
-{
-  return new DSAPublicKey;
-}
-
-AsnType *DSAPublicKey::Copy() const
-{
-  return new DSAPublicKey (*this);
-}
-
-#if SNACC_DEEP_COPY
-DSAPublicKey &DSAPublicKey::operator = (const DSAPublicKey &that)
-#else // SNACC_DEEP_COPY
-DSAPublicKey &DSAPublicKey::operator = (const DSAPublicKey &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    if (that.dsaAlg)
-    {
-      if (!dsaAlg)
-        dsaAlg = new DSAAlgorithmId;
-      *dsaAlg = *that.dsaAlg;
-    }
-    else
-    {
-      delete dsaAlg;
-      dsaAlg = NULL;
-    }
-    publicKey = that.publicKey;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DSAPublicKey &DSAPublicKey::operator = (const DSAPublicKey &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DSAPublicKey::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = publicKey.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, BITSTRING_TAG_CODE);
-    totalLen += l;
-
-      BEncEocIfNec (b);
-    l = dsaAlg->BEncContent (b);
-    l += BEncConsLen (b, l);
-
-    l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DSAPublicKey::BEncContent
-
-
-void DSAPublicKey::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    dsaAlg = new DSAAlgorithmId;
-    dsaAlg->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-154);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, BITSTRING_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, BITSTRING_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    publicKey.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-155);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-156);
-  }
-  else
-    return;
-} // DSAPublicKey::BDecContent
-
-AsnLen DSAPublicKey::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DSAPublicKey::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DSAPublicKey::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-157);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DSAPublicKey::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  if (NOT_NULL (dsaAlg))
-  {
-    Indent (os, indentG);
-    os << "dsaAlg ";
-    os << *dsaAlg;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "dsaAlg ";
-    os << "-- void --";
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "publicKey ";
-    os << publicKey;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DSAPublicKey::Print
-
-
-DSAPrivateKeyOcts::DSAPrivateKeyOcts()
-{
-}
-
-DSAPrivateKeyOcts::DSAPrivateKeyOcts (const DSAPrivateKeyOcts &)
-{
-  Asn1Error << "use of incompletely defined DSAPrivateKeyOcts::DSAPrivateKeyOcts (const DSAPrivateKeyOcts &)" << endl;
-  abort();
-}
-
-DSAPrivateKeyOcts::~DSAPrivateKeyOcts()
-{
-}
-
-AsnType *DSAPrivateKeyOcts::Clone() const
-{
-  return new DSAPrivateKeyOcts;
-}
-
-AsnType *DSAPrivateKeyOcts::Copy() const
-{
-  return new DSAPrivateKeyOcts (*this);
-}
-
-#if SNACC_DEEP_COPY
-DSAPrivateKeyOcts &DSAPrivateKeyOcts::operator = (const DSAPrivateKeyOcts &that)
-#else // SNACC_DEEP_COPY
-DSAPrivateKeyOcts &DSAPrivateKeyOcts::operator = (const DSAPrivateKeyOcts &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    privateKey = that.privateKey;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DSAPrivateKeyOcts &DSAPrivateKeyOcts::operator = (const DSAPrivateKeyOcts &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DSAPrivateKeyOcts::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = privateKey.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DSAPrivateKeyOcts::BEncContent
-
-
-void DSAPrivateKeyOcts::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    privateKey.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-158);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-159);
-  }
-  else
-    return;
-} // DSAPrivateKeyOcts::BDecContent
-
-AsnLen DSAPrivateKeyOcts::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DSAPrivateKeyOcts::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DSAPrivateKeyOcts::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-160);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DSAPrivateKeyOcts::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "privateKey ";
-    os << privateKey;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DSAPrivateKeyOcts::Print
-
-
-DSASignature::DSASignature()
-{
-}
-
-DSASignature::DSASignature (const DSASignature &)
-{
-  Asn1Error << "use of incompletely defined DSASignature::DSASignature (const DSASignature &)" << endl;
-  abort();
-}
-
-DSASignature::~DSASignature()
-{
-}
-
-AsnType *DSASignature::Clone() const
-{
-  return new DSASignature;
-}
-
-AsnType *DSASignature::Copy() const
-{
-  return new DSASignature (*this);
-}
-
-#if SNACC_DEEP_COPY
-DSASignature &DSASignature::operator = (const DSASignature &that)
-#else // SNACC_DEEP_COPY
-DSASignature &DSASignature::operator = (const DSASignature &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    r = that.r;
-    s = that.s;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DSASignature &DSASignature::operator = (const DSASignature &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DSASignature::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = s.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = r.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DSASignature::BEncContent
-
-
-void DSASignature::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    r.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-161);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    s.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-162);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-163);
-  }
-  else
-    return;
-} // DSASignature::BDecContent
-
-AsnLen DSASignature::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DSASignature::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DSASignature::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-164);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DSASignature::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "r ";
-    os << r;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "s ";
-    os << s;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DSASignature::Print
-
-
-DSAAlgParams::DSAAlgParams()
-{
-}
-
-DSAAlgParams::DSAAlgParams (const DSAAlgParams &)
-{
-  Asn1Error << "use of incompletely defined DSAAlgParams::DSAAlgParams (const DSAAlgParams &)" << endl;
-  abort();
-}
-
-DSAAlgParams::~DSAAlgParams()
-{
-}
-
-AsnType *DSAAlgParams::Clone() const
-{
-  return new DSAAlgParams;
-}
-
-AsnType *DSAAlgParams::Copy() const
-{
-  return new DSAAlgParams (*this);
-}
-
-#if SNACC_DEEP_COPY
-DSAAlgParams &DSAAlgParams::operator = (const DSAAlgParams &that)
-#else // SNACC_DEEP_COPY
-DSAAlgParams &DSAAlgParams::operator = (const DSAAlgParams &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    p = that.p;
-    q = that.q;
-    g = that.g;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DSAAlgParams &DSAAlgParams::operator = (const DSAAlgParams &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DSAAlgParams::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = g.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = q.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-    l = p.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DSAAlgParams::BEncContent
-
-
-void DSAAlgParams::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    p.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-165);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    q.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-166);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    g.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-167);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-168);
-  }
-  else
-    return;
-} // DSAAlgParams::BDecContent
-
-AsnLen DSAAlgParams::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DSAAlgParams::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DSAAlgParams::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-169);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DSAAlgParams::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "p ";
-    os << p;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "q ";
-    os << q;
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "g ";
-    os << g;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DSAAlgParams::Print
-
-
-DHPrivateKey::DHPrivateKey()
-{
-#if TCL
-  params = new DHParameter;
-#else
-  params = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-}
-
-DHPrivateKey::DHPrivateKey (const DHPrivateKey &)
-{
-  Asn1Error << "use of incompletely defined DHPrivateKey::DHPrivateKey (const DHPrivateKey &)" << endl;
-  abort();
-}
-
-DHPrivateKey::~DHPrivateKey()
-{
-  delete params;
-}
-
-AsnType *DHPrivateKey::Clone() const
-{
-  return new DHPrivateKey;
-}
-
-AsnType *DHPrivateKey::Copy() const
-{
-  return new DHPrivateKey (*this);
-}
-
-#if SNACC_DEEP_COPY
-DHPrivateKey &DHPrivateKey::operator = (const DHPrivateKey &that)
-#else // SNACC_DEEP_COPY
-DHPrivateKey &DHPrivateKey::operator = (const DHPrivateKey &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    dHOid = that.dHOid;
-    if (that.params)
-    {
-      if (!params)
-        params = new DHParameter;
-      *params = *that.params;
-    }
-    else
-    {
-      delete params;
-      params = NULL;
-    }
-    secretPart = that.secretPart;
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DHPrivateKey &DHPrivateKey::operator = (const DHPrivateKey &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DHPrivateKey::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-    l = secretPart.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, INTEGER_TAG_CODE);
-    totalLen += l;
-
-      BEncEocIfNec (b);
-    l = params->BEncContent (b);
-    l += BEncConsLen (b, l);
-
-    l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-    totalLen += l;
-
-    l = dHOid.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, OID_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DHPrivateKey::BEncContent
-
-
-void DHPrivateKey::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, OID_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    dHOid.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-170);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    params = new DHParameter;
-    params->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-171);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, INTEGER_TAG_CODE))
-    || (tag1 == MAKE_TAG_ID (UNIV, CONS, INTEGER_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    secretPart.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-172);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-173);
-  }
-  else
-    return;
-} // DHPrivateKey::BDecContent
-
-AsnLen DHPrivateKey::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DHPrivateKey::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DHPrivateKey::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-174);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DHPrivateKey::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "dHOid ";
-    os << dHOid;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (params))
-  {
-    Indent (os, indentG);
-    os << "params ";
-    os << *params;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "params ";
-    os << "-- void --";
-    os << "," << endl;
-  }
-
-  {
-    Indent (os, indentG);
-    os << "secretPart ";
-    os << secretPart;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DHPrivateKey::Print
-
-
-DHParameterBlock::DHParameterBlock()
-{
-#if TCL
-  params = new DHParameter;
-#else
-  params = NULL; // incomplete initialization of mandatory element!
-#endif // TCL
-}
-
-DHParameterBlock::DHParameterBlock (const DHParameterBlock &)
-{
-  Asn1Error << "use of incompletely defined DHParameterBlock::DHParameterBlock (const DHParameterBlock &)" << endl;
-  abort();
-}
-
-DHParameterBlock::~DHParameterBlock()
-{
-  delete params;
-}
-
-AsnType *DHParameterBlock::Clone() const
-{
-  return new DHParameterBlock;
-}
-
-AsnType *DHParameterBlock::Copy() const
-{
-  return new DHParameterBlock (*this);
-}
-
-#if SNACC_DEEP_COPY
-DHParameterBlock &DHParameterBlock::operator = (const DHParameterBlock &that)
-#else // SNACC_DEEP_COPY
-DHParameterBlock &DHParameterBlock::operator = (const DHParameterBlock &)
-#endif // SNACC_DEEP_COPY
-{
-#if SNACC_DEEP_COPY
-  if (this != &that)
-  {
-    oid = that.oid;
-    if (that.params)
-    {
-      if (!params)
-        params = new DHParameter;
-      *params = *that.params;
-    }
-    else
-    {
-      delete params;
-      params = NULL;
-    }
-  }
-
-  return *this;
-#else // SNACC_DEEP_COPY
-  Asn1Error << "use of incompletely defined DHParameterBlock &DHParameterBlock::operator = (const DHParameterBlock &)" << endl;
-  abort();
-  // if your compiler complains here, check the -novolat option
-#endif // SNACC_DEEP_COPY
-}
-
-AsnLen
-DHParameterBlock::BEncContent (BUF_TYPE b)
-{
-  AsnLen totalLen = 0;
-  AsnLen l;
-
-      BEncEocIfNec (b);
-    l = params->BEncContent (b);
-    l += BEncConsLen (b, l);
-
-    l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-    totalLen += l;
-
-    l = oid.BEncContent (b);
-    l += BEncDefLen (b, l);
-
-    l += BEncTag1 (b, UNIV, PRIM, OID_TAG_CODE);
-    totalLen += l;
-
-  return totalLen;
-} // DHParameterBlock::BEncContent
-
-
-void DHParameterBlock::BDecContent (BUF_TYPE b, AsnTag /*tag0*/, AsnLen elmtLen0, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag1;
-  AsnLen seqBytesDecoded = 0;
-  AsnLen elmtLen1;
-  tag1 = BDecTag (b, seqBytesDecoded, env);
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, PRIM, OID_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    oid.BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-    tag1 = BDecTag (b, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-175);
-  }
-
-  if ((tag1 == MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE)))
-  {
-    elmtLen1 = BDecLen (b, seqBytesDecoded, env);
-    params = new DHParameter;
-    params->BDecContent (b, tag1, elmtLen1, seqBytesDecoded, env);
-  }
-  else
-  {
-    Asn1Error << "ERROR - SEQUENCE is missing non-optional elmt." << endl;
-    SnaccExcep::throwMe(-176);
-  }
-
-  bytesDecoded += seqBytesDecoded;
-  if (elmtLen0 == INDEFINITE_LEN)
-  {
-    BDecEoc (b, bytesDecoded, env);
-    return;
-  }
-  else if (seqBytesDecoded != elmtLen0)
-  {
-    Asn1Error << "ERROR - Length discrepancy on sequence." << endl;
-    SnaccExcep::throwMe(-177);
-  }
-  else
-    return;
-} // DHParameterBlock::BDecContent
-
-AsnLen DHParameterBlock::BEnc (BUF_TYPE b)
-{
-  AsnLen l;
-  l = BEncContent (b);
-  l += BEncConsLen (b, l);
-  l += BEncTag1 (b, UNIV, CONS, SEQ_TAG_CODE);
-  return l;
-}
-
-void DHParameterBlock::BDec (BUF_TYPE b, AsnLen &bytesDecoded, ENV_TYPE env)
-{
-  AsnTag tag;
-  AsnLen elmtLen1;
-
-  if ((tag = BDecTag (b, bytesDecoded, env)) != MAKE_TAG_ID (UNIV, CONS, SEQ_TAG_CODE))
-  {
-    Asn1Error << "DHParameterBlock::BDec: ERROR - wrong tag" << endl;
-    SnaccExcep::throwMe(-178);
-  }
-  elmtLen1 = BDecLen (b, bytesDecoded, env);
-  BDecContent (b, tag, elmtLen1, bytesDecoded, env);
-}
-
-void DHParameterBlock::Print (ostream &os) const
-{
-#ifndef NDEBUG
-  os << "{ -- SEQUENCE --" << endl;
-  indentG += stdIndentG;
-
-  {
-    Indent (os, indentG);
-    os << "oid ";
-    os << oid;
-    os << "," << endl;
-  }
-
-  if (NOT_NULL (params))
-  {
-    Indent (os, indentG);
-    os << "params ";
-    os << *params;
-  }
-  else
-  {
-    Indent (os, indentG);
-    os << "params ";
-    os << "-- void --";
-    os << endl;
-  }
-
-  os << endl;
-  indentG -= stdIndentG;
-  Indent (os, indentG);
-  os << "}";
-#endif /* NDEBUG */
-} // DHParameterBlock::Print
-
-