RE: problems with making Encrypted mail using SFL

"Colestock, Robert" <[email protected]> Wed, 28 Nov 2001 23:10:06 -0500
Newsgroups gmane.ietf.sfl
Message-ID <[email protected]>
Wooce:
 
The list returned from "GetAlgIDs(...)" will contain the entire list of
content encryption algorithms supported by the CTIL.  It will never be
different for any PKCS12 file used for the login.  You must re-set the
PREFERRED content enryption algorithm, not use "...->Firstl()", which is
somewhat arbitrary.  This method is
CSM_CtilInst::SetPreferredCSInstAlgs(...).  The actual algorithm used to
decrypt the PKCS12 file is not related to that used by the CTIL as a default
(it is also not the first).  For the Free3 CTIL it is triple des by default;
it is hard-coded in the CSM_Free3::SetDefaultOids(...) method (see
./SMIME/alg_libs/sm_free3/sm_free3.cpp).
 
If you wish to use the PKCS12 file algorithm, you will have to decode the
PKCS12 file and determine the appropriate algorithm.  There are some
functions available to perform this operation, but they are only present in
the Free3 CTIL.
 
Bob Colestock
VDA

-----Original Message-----
From: wooce [mailto:[email protected]]
Sent: Tuesday, November 27, 2001 3:00 AM
To: William.Adams; SFL List (E-mail)
Subject: Re: problems with making Encrypted mail using SFL


hi,   
here is my program now:
 CSM_AppLogin AppLogin;
 CSM_AlgLst *ppdigestAlgID = new CSM_AlgLst();
 CSM_AlgLst *ppdigestEncryptionAlgID = new CSM_AlgLst();
 CSM_AlgLst *ppkeyEncryptionAlgID = new CSM_AlgLst();
 CSM_AlgLst *ppcontentEncryptionAlgID = new CSM_AlgLst();
 char *dllname="libsm_free3DLL";
 char *args="sm_free3DLL /21cn.pfx 123456";
 AppLogin.AddLogin(dllname,args);        // call AddLogin() function
 CSM_CSInst *pInst;
 CSM_OID contentEOID(rc2_cbc);  //   OID  is 1.2.840.113549.3.2
 
//  testing process begin here....
 CSM_Alg rc2Alg(contentEOID);
 pInst = AppLogin.FindCSInstAlgIds(NULL,NULL,NULL,&rc2Alg);
 if( pInst==NULL)
  cout<<"no rc2 algorithm found!";
 else
  cout<<"find rc2 algorithm instance!";

 
pInst->GetAlgIDs(ppdigestAlgID,ppdigestEncryptionAlgID,ppkeyEncryptionAlgID,
ppcontentEncryptionAlgID);
  CSM_Alg *pAlg=ppcontentEncryptionAlgID->FirstL();
  while( pAlg!=NULL )
  {
 
cout<<pAlg->GetId()->GetOIDDescription()<<","<<pAlg->GetId()->GetChar()<<"\n
";
   pAlg = ppcontentEncryptionAlgID->GoNext();
  }
//    end of testing process
 
 
smEncryptMsg.SetContentEncryptOID(ppcontentEncryptionAlgID->FirstL()->GetId(
));

 
  but it still report "no instance supports requested cont encr alg",   and
the testing process output: 
find rc2 algorithm instance!Instance:sha_1,1.3.14.3.2.26
id_dsa,1.2.840.10040.4.1
rsa,2.5.8.1.1
id_aes128_ECB,2.16.840.1.101.3.4.1.1
 
why I got the content encryption oid as  id_aes128_ECB(2.16.840.1.101.3.4.1.
1)   instead  of   rc2_cbc(1.2.840.113549.3.2) from the 
instance gained by FindCSInstAlgIds(NULL,NULL,NULL,&rc2Alg) ?    it seems
very strange.
How should I  change the program?   I  don't want to change the last
statement  to  smEncryptMsg.SetContentEncryptOID(&contentEOID);
I want to use the content encryption algorithm specified in the pfx file
"21cn.pfx".
 
  Thank you and have a nice day.
 
Wooce.
----- Original Message ----- 

From: William Adams <mailto:[email protected]>  
To: 'wooce' <mailto:[email protected]>  ; SFL List (E-mail)
<mailto:[email protected]>  
Sent: Wednesday, October 17, 2001 2:28 AM
Subject: RE: problems with making Encrypted mail using SFL

You can use the 
 
void CSM_CSInst::GetAlgs(CSM_AlgLst **ppdigestAlgID,CSM_AlgLst
**ppdigestEncryptionAlgID,CSM_AlgLst **ppkeyEncryptionAlgID,CSM_AlgLst
**ppcontentEncryptionAlgID);
 
function to get the supported algs for each instance.
 
-----Original Message-----
From: [email protected] <mailto:[email protected]>
[mailto:[email protected]]On Behalf Of wooce
Sent: 17 October 2001 11:16
To: imc-sfl
Subject: problems with making Encrypted mail using SFL


 hi all, 
      Sorry for I'm a new comer to SFL and this mailing list.   Please
forgive me for asking so  simple problems.  
  I write  a program  to  make enveloped mail  by SFL.     But it reports: 
    ERROR INFORMATION AND STACK:
 
 ERROR INFORMATION: no instance supports requested cont encr alg
        ERROR CODE: 1006        SOURCE LINE NUMBER: 1165
        FILE: sm_Encrypt.cpp
        FUNCTION: CSM_DataToEncrypt::Encrypt
 
     now I find that it's probably for I passed the wrong
contentEncryptionOID to pEncryptMsg :  
   
    CSM_MsgToEncrypt *pEncryptMsg;
    CSM_OID oidEncryptedData(id_encryptedData);
    pEncryptMsg->SetContentEncryptOID(&contentEncryptionOID);

   1) How should I  get  the    CSM_OID object to pass it to
pEncryptMsg->SetContentEncryptOID()  function?
  2)  How  can I  see   the list of  the Algorithm OIDs supported by the
available instances?   
 
sincerely,
Wooce
[email protected]