Dobry den,
chci vytvorit aplikaci, ktera vytvori S/MIME zasifrovanou zpravu. 
BouncyCastle pro tento ucel nabizi tridu SMIMEEnvelopedGenerator.
Nasledujici kod funguje za urcitych predpokladu spravne:

MimeBodyPart mbp = new MimeBodyPart();
   mbp.setText("Bucek se zelim"); 
 
   SMIMEEnvelopedGenerator gen = new SMIMEEnvelopedGenerator(); 
   gen.addKeyTransRecipient(certificate);
   MimeBodyPart mp = gen.generate(mbp, 
SMIMEEnvelopedGenerator.DES_EDE3_CBC, "BC");
   SMIMEEnveloped m = new SMIMEEnveloped(mp);

Promenna 'certificate' se nacita z PKCS12 uloziste klicu a vse funguje 
tak, jak ma. Problem je, ze ja potrebuji certifikat nacist z uloziste 
Windows-MY, cili nejspis
pres SunMSCAPI. Pokud to vsak udelam (a prepisu pouziteho providera v 
generate metode na "SunMSCAPI"), vyse zmineny program hodi NPE na 
poslednim radku (SMIME se nevygeneruje).
Pokud vsak v prislusnem BouncyCastle API pro podepisovani 
(SMIMESignedGenerator) podepisuji a overuji podpis, vse probiha naprosto v 
poradku. Zajimalo by me tedy, jestli je mozne uspesne navest 
SMIMEEnvelopedGenerator na klice vytazene z Windows, podobne jako to jde u 
tridy SMIMESignedGenerator. Pripadne jak jinak snadno vytvorit S/MIME 
zpravu s obsahem zasifrovanym pomoci Triple-DES s pribalenym 
RSA-zasifrovanym tajnym klicem (a to vsechno v PKCS7 formatu).
Dekuji,

Ondrej Homola

Odpovedet emailem