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