RE: SFL, CML and Fortezza CTIL comments

"Pawling, John" <[email protected]>
Newsgroups gmane.ietf.sfl
Message-ID <[email protected]>
Tom,

Thank you very much for your feedback regarding LJL's use of the SFL, CML
and Fortezza CTIL.  During the past weeks, we have been focusing our
resources on supporting Cygnacom's and Raytheon's use of the CML (including
Cygnacom's Cert Path Development Library), SFL and SPEX/ CTIL as part of the
Bridge Certification Authority (BCA) Demonstration that is testing
cross-certified Entrust, Motorola and Spyrus PKI domains.  Raytheon has
successfully integrated the SFL/CML into a plug-in for Novell GroupWise.
Cygnacom has successfully integrated the SFL/CML into a plug-in for Eudora
Pro.  We have used the Cygnacom/Eudora client to successfully verify a
signed message generated by the Raytheon/Novell client.  Cygnacom has
successfully completed interop testing between their SFL/CML/Eudora client
and an Entrust/Eudora client that they also developed.  Also, the CML/CPDL
has been used to successfully build and verify a cross certified path
between the Motorola and Spyrus PKI domains.  Testing continues.   

The aforementioned BCA testing has delayed our release of the CML designed
for use with the CTIL DLLs released in conjunction with the v1.1 SFL.  We
are also enhancing the CML to fix bugs reported during the BCA testing and
to use the libCert library provided as part of the v1.1 SFL release.  The
VDA CML development team has requested enhancements to the libCert library
to support the CML release.  These enhancements will allow the CML team to
take advantage of code already developed and tested as part of the SFL.  The
CML team is now testing these enhancements and will deliver a new release of
the CML after the testing is complete.  We plan to deliver a new SFL release
(v1.2) to include the enhanced libCert library.  We also plan to deliver new
CTILs including fixing the bugs that you previously reported.  The new CTILs
will also include enhancements made to the SPEX/ and Fortezza CTIL DLLs to
support the CML development effort.  We plan on delivering all of this code
during October 1999.

We have the following responses to your comments:

Bug #1: We will ensure that the ENCODE_BUF_NO_ALLOC macro is fixed in the
SNACC baseline.  If necessary, we will deliver a new SNACC release.

Bug #2: We will test and fix.  This will be fixed in the v1.2 SFL.

Bug #3: We also discovered this bug.  It is fixed in the baseline and will
be delivered with the v1.2 SFL release.

Bug #4: We will add these attributes in the next CML release.  Note: The
"mosaicCASignatureCertificate" attribute, when called via ext_get_objects
function, will have the CML CM_CA_CERT_TYPE set; the
"mosaicKeyManagementCertificate" & the "mosaicUserSignatureCertificate" will
have the CM_USER_CERT_TYPE set in the EncObject_LL structure.

Bug #5: We will add this to the next CML release.

Question #6: The CTIL API is documented in the CTIL API document available
from the VDA SFL Page 
(http://www.jgvandyke.com/services/infosec/sfl.htm) and on the Fortezza
Developer's S/MIME Page 
(http://www.armadillo.huntsville.al.us/software/smime). The CTIL API is not
proprietary.  To date, it is only being implemented by Van Dyke.  Given the
numerous "standard" crypto APIs, we doubt that any standards committees
would be willing to sponsor yet another standard API. 

Question #7: See above.

============================================
John Pawling, Director - Systems Engineering
J.G. Van Dyke & Associates, Inc.,
a Wang Government Services Company
[email protected]
============================================ 

-----Original Message-----
From: Thomas Fronckowiak Jr. [mailto:[email protected]]
Sent: Monday, September 27, 1999 5:35 PM
To: [email protected]
Subject: SFL, CML and Fortezza CTIL comments


We (LJL Enterprises) have continued our effort integrating the S/MIME
Freeware Library into our front-end.  Just a few things about
SFL and related items - I apologize if any of these issues are
off-topic for this list.

1. Encrypting large files
We've had a problem using SFL to encrypt large files.  This error occurred
when the total length of the encrypted data was over 100,000 bytes,
which is what the buffer size define VDASNACC_ENCDEC_BUFSIZE is
(sm_vdasnacc.h).

The new VDA enhanced SNACC that was just delivered had a fix in the
ENCODE_BUF macro (sm_vdasnacc.h)

	free(outputBuf.BlkPtr()/*pchBuffer*/);

This initially fixed the problem, until a few more 1000 bytes were
added to the message to be encrypted.

Modifying the ENCODE_BUF_NO_ALLOC macro with this same change fixed
the problem.

2. CSM_MsgToEncrypt ASN.1 Encode
I've experienced asn.1 encode problems particularly where additional
certificates were added to encrypted messages.  In some cases, and
this *seems* to be file-length dependant, a certificate which has
been added CSM_MsgToEncrypt::m_pMsgCrtCrls does not appear
in the EncryptedData, but the ASN.1 length that surrounds the cert
sequence includes the missing cert's length.  As a result, an inner
ASN.1 length is larger than then the entire ContentInfo length.

For example, four certs are added to CSM_MsgToEncrypt::m_pMsgCrtCrls,
only 3 show up in the EncryptedData, and the ASN.1 encoding from the
beginning of the ContentInfo looks like:

30 83 01 86 46
   06 09
      2A 86 48 86 F7 0D 01 07 03
   A0 83 01 86 36
      30 83 01 87 DE

Notice that length of the last sequence is greater than the
other lengths.

This was seen before the new VDA enhanced SNACC library was
integrated. I haven't spent much time on this but I will try the
same scenario with the latest snacc code.  Let me know if there's
any more info I can provide.

3. Fortezza CTIL
In sm_fort.cpp, CSM_Fortezza::SMTI_Decrypt() returns an error 7
(invalid data size) from ci_decrypt when decrypting a large
buffer because the wrong parameter is being checked against
largestBlockSize.

Line 758:
 if (pData->Length() > largestBlockSize )
should be:
 if (pEncryptedData->Length() > largestBlockSize )

Also in sm_fort.cpp,
	line 681:
            SME_THROW(error, "CI_Encrypt() faile", NULL);
	//failed

	line 734 :
	   SME_SETUP("CSM_Fortezza::SMTI_Encrypt()");
	//should be SMTI_Decrypt

	line 789:
           SME_THROW(error, "CI_Encrypt() failed", NULL);
	//should be CI_Decrypt

4. CML DSA attributes
What's the chance of getting DSA certificate attributes added to
the CML? To work correctly with current DSAs we needed to change
CM_ldap.c, to include:

	"mosaicCASignatureCertificate",
	"mosaicKeyManagementCertificate",
	"mosaicUserSignatureCertificate",

to the list of cert attributes:

static char* certAttribs[] = {
	"userCertificate",                  /* 2.5.29.36 */
	"cACertificate",                    /* 2.5.29.37 */
	"mosaicKMandSigCertificate",        /* 2.16.840.1.101.2.1.5.5 */
	"sdnsKMandSigCertificate",          /* 2.16.840.1.101.2.1.5.3 */
	"fortezzaKMandSigCertificate",      /* 2.16.840.1.101.2.1.5.5 */
	"crossCertificatePair",             /* 2.5.29.40 */
	NULL };

5. CML parsing CRL extensions

In X_CM_CRL.c, function cvt_CRL_IssuerDistPts(), the lines:

  if(data->onlyContainsCACerts != 0)	/* defaults to false if not here */
    who->only_cAs_flag  = *(data->onlyContainsUserCerts);

should be changed to:

  if(data->onlyContainsCACerts != 0)	/* defaults to false if not here */
    who->only_cAs_flag  = *(data->onlyContainsCACerts);

Note: This was found in an earlier version of CML and may have been
fixed in the latest release (v1.53?).

6. I was wondering about using the Fortezza CTIL for other applications in
order to have a common interface to the Fortezza card.  Is the CTIL
interface
a documented standard or is this a VDA construction? I'm almost certain it's
VDA. If so, is there any push to make this a more commonly accepted crypto
interface?

7. Has SFL v1.2 and the new CTILs been released yet? I know they were
scheduled
for earlier this month - I just haven't seen them yet.

Thanks,
Tom Fronckowiak
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.